@ng-matero/extensions 13.2.1 → 13.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/alert/alert.component.d.ts +1 -1
  2. package/core/datetime/datetime-formats.d.ts +2 -0
  3. package/esm2020/alert/alert.component.mjs +4 -4
  4. package/esm2020/button/button-loading.directive.mjs +1 -1
  5. package/esm2020/core/datetime/datetime-formats.mjs +1 -1
  6. package/esm2020/datetimepicker/datetimepicker-input.mjs +6 -1
  7. package/esm2020/form-group/form-group.component.mjs +3 -3
  8. package/esm2020/grid/cell.component.mjs +32 -32
  9. package/esm2020/grid/column-menu.component.mjs +11 -17
  10. package/esm2020/grid/grid.component.mjs +16 -9
  11. package/esm2020/popover/popover-animations.mjs +10 -13
  12. package/esm2020/popover/popover-content.mjs +90 -0
  13. package/esm2020/popover/popover-interfaces.mjs +1 -1
  14. package/esm2020/popover/popover-module.mjs +9 -7
  15. package/esm2020/popover/popover-target.mjs +3 -3
  16. package/esm2020/popover/popover-trigger.mjs +214 -184
  17. package/esm2020/popover/popover-types.mjs +1 -1
  18. package/esm2020/popover/popover.mjs +188 -133
  19. package/esm2020/popover/public-api.mjs +2 -1
  20. package/esm2020/select/option.component.mjs +4 -6
  21. package/esm2020/select/select.component.mjs +121 -31
  22. package/fesm2015/mtxAlert.mjs +3 -3
  23. package/fesm2015/mtxAlert.mjs.map +1 -1
  24. package/fesm2015/mtxButton.mjs.map +1 -1
  25. package/fesm2015/mtxCore.mjs.map +1 -1
  26. package/fesm2015/mtxDatetimepicker.mjs +5 -0
  27. package/fesm2015/mtxDatetimepicker.mjs.map +1 -1
  28. package/fesm2015/mtxFormGroup.mjs +2 -2
  29. package/fesm2015/mtxFormGroup.mjs.map +1 -1
  30. package/fesm2015/mtxGrid.mjs +57 -55
  31. package/fesm2015/mtxGrid.mjs.map +1 -1
  32. package/fesm2015/mtxPopover.mjs +520 -352
  33. package/fesm2015/mtxPopover.mjs.map +1 -1
  34. package/fesm2015/mtxSelect.mjs +172 -83
  35. package/fesm2015/mtxSelect.mjs.map +1 -1
  36. package/fesm2020/mtxAlert.mjs +3 -3
  37. package/fesm2020/mtxAlert.mjs.map +1 -1
  38. package/fesm2020/mtxButton.mjs.map +1 -1
  39. package/fesm2020/mtxCore.mjs.map +1 -1
  40. package/fesm2020/mtxDatetimepicker.mjs +5 -0
  41. package/fesm2020/mtxDatetimepicker.mjs.map +1 -1
  42. package/fesm2020/mtxFormGroup.mjs +2 -2
  43. package/fesm2020/mtxFormGroup.mjs.map +1 -1
  44. package/fesm2020/mtxGrid.mjs +56 -55
  45. package/fesm2020/mtxGrid.mjs.map +1 -1
  46. package/fesm2020/mtxPopover.mjs +514 -350
  47. package/fesm2020/mtxPopover.mjs.map +1 -1
  48. package/fesm2020/mtxSelect.mjs +170 -83
  49. package/fesm2020/mtxSelect.mjs.map +1 -1
  50. package/grid/cell.component.d.ts +6 -9
  51. package/grid/column-menu.component.d.ts +4 -6
  52. package/grid/grid.component.d.ts +7 -5
  53. package/package.json +1 -1
  54. package/popover/popover-animations.d.ts +1 -1
  55. package/popover/popover-content.d.ts +43 -0
  56. package/popover/popover-interfaces.d.ts +37 -31
  57. package/popover/popover-module.d.ts +4 -3
  58. package/popover/popover-target.d.ts +2 -2
  59. package/popover/popover-trigger.d.ts +67 -62
  60. package/popover/popover-types.d.ts +6 -1
  61. package/popover/popover.d.ts +99 -71
  62. package/popover/popover.scss +2 -0
  63. package/popover/public-api.d.ts +1 -0
  64. package/select/option.component.d.ts +7 -6
  65. package/select/select.component.d.ts +61 -22
@@ -1 +1 @@
1
- {"version":3,"file":"mtxSelect.mjs","sources":["../../../projects/extensions/select/templates.directive.ts","../../../projects/extensions/select/option.component.ts","../../../projects/extensions/select/select.component.ts","../../../projects/extensions/select/select.component.html","../../../projects/extensions/select/select.module.ts","../../../projects/extensions/select/mtxSelect.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class MtxSelectOptionTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class MtxSelectOptgroupTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class MtxSelectLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class MtxSelectMultiLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class MtxSelectHeaderTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class MtxSelectFooterTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class MtxSelectNotFoundTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class MtxSelectTypeToSearchTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class MtxSelectLoadingTextTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class MtxSelectTagTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class MtxSelectLoadingSpinnerTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'mtx-option',\n exportAs: 'mtxOption',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`,\n})\nexport class MtxOptionComponent implements OnChanges, AfterViewChecked, OnDestroy {\n @Input() value: any;\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = this._isDisabled(value);\n }\n\n readonly stateChange$ = new Subject<{ value: any; disabled: boolean; label?: string }>();\n\n private _disabled = false;\n private _previousLabel!: string;\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n\n get label(): string {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML,\n });\n }\n }\n\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n\n private _isDisabled(value: null) {\n return value != null && `${value}` !== 'false';\n }\n}\n","import {\n Component,\n OnInit,\n OnDestroy,\n DoCheck,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n ElementRef,\n ChangeDetectorRef,\n Optional,\n Self,\n Output,\n EventEmitter,\n TemplateRef,\n ContentChild,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Subject, merge } from 'rxjs';\nimport { takeUntil, startWith } from 'rxjs/operators';\n\nimport {\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n} from './templates.directive';\nimport { MtxOptionComponent } from './option.component';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\nexport type AddTagFn = (term: string) => any | Promise<any>;\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (\n key: string | Record<string, any>,\n children: any[]\n) => string | Record<string, any>;\nexport type SearchFn = (term: string, item: any) => boolean;\nexport type TrackByFn = (item: any) => any;\n\nexport function isDefined(value: any) {\n return value !== undefined && value !== null;\n}\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'mtx-select',\n exportAs: 'mtxSelect',\n host: {\n '[attr.id]': 'id',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[class.mtx-select-floating]': 'shouldLabelFloat',\n '[class.mtx-select-invalid]': 'errorState',\n 'class': 'mtx-select',\n },\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: MtxSelectComponent }],\n})\nexport class MtxSelectComponent\n implements\n OnInit,\n OnDestroy,\n DoCheck,\n AfterViewInit,\n ControlValueAccessor,\n MatFormFieldControl<any>\n{\n @ViewChild('ngSelect', { static: true }) ngSelect!: NgSelectComponent;\n\n // MtxSelect custom templates\n @ContentChild(MtxSelectOptionTemplateDirective, { read: TemplateRef })\n optionTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectOptgroupTemplateDirective, { read: TemplateRef })\n optgroupTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLabelTemplateDirective, { read: TemplateRef })\n labelTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectMultiLabelTemplateDirective, { read: TemplateRef })\n multiLabelTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectHeaderTemplateDirective, { read: TemplateRef })\n headerTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectFooterTemplateDirective, { read: TemplateRef })\n footerTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectNotFoundTemplateDirective, { read: TemplateRef })\n notFoundTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectTypeToSearchTemplateDirective, { read: TemplateRef })\n typeToSearchTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLoadingTextTemplateDirective, { read: TemplateRef })\n loadingTextTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectTagTemplateDirective, { read: TemplateRef })\n tagTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLoadingSpinnerTemplateDirective, { read: TemplateRef })\n loadingSpinnerTemplate!: TemplateRef<any>;\n\n @ContentChildren(MtxOptionComponent, { descendants: true })\n mtxOptions!: QueryList<MtxOptionComponent>;\n\n /** MtxSelect options */\n @Input() addTag: boolean | AddTagFn = false;\n @Input() addTagText = 'Add item';\n @Input() appearance = 'underline';\n @Input() appendTo!: string;\n @Input() bindLabel!: string;\n @Input() bindValue!: string;\n @Input() closeOnSelect = true;\n @Input() clearAllText = 'Clear all';\n @Input() clearable = true;\n @Input() clearOnBackspace = true;\n @Input() compareWith!: CompareWithFn;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() groupBy!: string | (() => void);\n @Input() groupValue!: GroupValueFn;\n @Input() selectableGroup = false;\n @Input() selectableGroupAsModel = true;\n @Input() hideSelected = false;\n @Input() isOpen!: boolean;\n @Input() loading = false;\n @Input() loadingText = 'Loading...';\n @Input() labelForId: string | null = null;\n @Input() markFirst = true;\n @Input() maxSelectedItems!: number;\n @Input() multiple = false;\n @Input() notFoundText = 'No items found';\n @Input() searchable = true;\n @Input() readonly = false;\n @Input() searchFn: SearchFn | null = null;\n @Input() searchWhileComposing = true;\n @Input() selectOnTab = false;\n @Input() trackByFn: TrackByFn | null = null;\n @Input() inputAttrs: { [key: string]: string } = {};\n @Input() tabIndex!: number;\n @Input() openOnEnter!: boolean;\n @Input() minTermLength = 0;\n @Input() editableSearchTerm = false;\n @Input() keyDownFn = (_: KeyboardEvent) => true;\n @Input() virtualScroll = false;\n @Input() typeToSearchText = 'Type to search';\n @Input() typeahead!: Subject<string>;\n\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n @Output('search') searchEvent = new EventEmitter<{ term: string; items: any[] }>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n @Input()\n get clearSearchOnAdd() {\n return isDefined(this._clearSearchOnAdd) ? this._clearSearchOnAdd : this.closeOnSelect;\n }\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n }\n private _clearSearchOnAdd!: boolean;\n\n @Input()\n get items() {\n return this._items;\n }\n set items(value: any[]) {\n this._itemsAreUsed = true;\n this._items = value;\n }\n private _items: any[] = [];\n private _itemsAreUsed!: boolean;\n private readonly _destroy$ = new Subject<void>();\n\n /** Value of the select control. */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n this._value = newValue;\n this._onChange(newValue);\n this.stateChanges.next();\n }\n private _value = null;\n\n /** Implemented as part of MatFormFieldControl. */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /** Unique id of the element. */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n private _id!: string;\n\n /** Unique id for this input. */\n private _uid = `mtx-select-${nextUniqueId++}`;\n\n /** Placeholder to be shown if value is empty. */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder!: string;\n\n /** Whether the input is focused. */\n get focused(): boolean {\n return this._focused;\n }\n private _focused = false;\n\n get empty(): boolean {\n return this.value == null || (Array.isArray(this.value) && this.value.length === 0);\n }\n\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.readonly = this._disabled;\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n }\n private _disabled = false;\n\n errorState = false;\n\n /** A name for this control that can be used by `mat-form-field`. */\n controlType = 'mtx-select';\n\n /** The aria-describedby attribute on the select for improved a11y. */\n _ariaDescribedby!: string;\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n _onTouched = () => {};\n\n constructor(\n private _focusMonitor: FocusMonitor,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl\n ) {\n _focusMonitor.monitor(_elementRef, true).subscribe(origin => {\n if (this._focused && !origin) {\n this._onTouched();\n }\n this._focused = !!origin;\n this.stateChanges.next();\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit() {\n // Fix compareWith warning of undefined value\n // https://github.com/ng-select/ng-select/issues/1537\n if (this.compareWith) {\n this.ngSelect.compareWith = this.compareWith;\n }\n }\n\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this._setItemsFromMtxOptions();\n }\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) as boolean;\n this.stateChanges.next();\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Implemented as part of MatFormFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /** Implemented as part of MatFormFieldControl. */\n onContainerClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n if (/mat-form-field|mtx-select/g.test(target.parentElement?.classList[0] || '')) {\n this.focus();\n this.open();\n }\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /** NgSelect: _setItemsFromNgOptions */\n private _setItemsFromMtxOptions() {\n const mapMtxOptions = (options: QueryList<MtxOptionComponent>) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled,\n }));\n this.ngSelect.itemsList.setItems(this.items);\n if (this.ngSelect.hasValue) {\n this.ngSelect.itemsList.mapSelectedItems();\n }\n this.ngSelect.detectChanges();\n };\n\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.mtxOptions.changes, this._destroy$);\n merge(...this.mtxOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.ngSelect.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this.ngSelect.detectChanges();\n });\n };\n\n this.mtxOptions.changes\n .pipe(startWith(this.mtxOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n mapMtxOptions(options);\n handleOptionChange();\n });\n }\n\n open() {\n this.ngSelect.open();\n }\n\n close() {\n this.ngSelect.close();\n }\n\n focus() {\n this.ngSelect.focus();\n }\n\n blur() {\n this.ngSelect.blur();\n }\n\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","<ng-select #ngSelect [class.ng-select-invalid]=\"errorState\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n [items]=\"items\"\n [addTag]=\"addTag\"\n [addTagText]=\"addTagText\"\n [appendTo]=\"appendTo\"\n [appearance]=\"appearance\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [closeOnSelect]=\"closeOnSelect\"\n [clearAllText]=\"clearAllText\"\n [clearable]=\"clearable\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [dropdownPosition]=\"dropdownPosition\"\n [groupBy]=\"groupBy\"\n [groupValue]=\"groupValue\"\n [hideSelected]=\"hideSelected\"\n [isOpen]=\"isOpen\"\n [inputAttrs]=\"inputAttrs\"\n [loading]=\"loading\"\n [loadingText]=\"loadingText\"\n [labelForId]=\"labelForId\"\n [markFirst]=\"markFirst\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [multiple]=\"multiple\"\n [notFoundText]=\"notFoundText\"\n [readonly]=\"readonly\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n [trackByFn]=\"trackByFn\"\n [searchable]=\"searchable\"\n [searchFn]=\"searchFn\"\n [searchWhileComposing]=\"searchWhileComposing\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [selectOnTab]=\"selectOnTab\"\n [tabIndex]=\"tabIndex\"\n [openOnEnter]=\"openOnEnter\"\n [minTermLength]=\"minTermLength\"\n [editableSearchTerm]=\"editableSearchTerm\"\n [keyDownFn]=\"keyDownFn\"\n [virtualScroll]=\"virtualScroll\"\n (blur)=\"blurEvent.emit($event)\"\n (focus)=\"focusEvent.emit($event)\"\n (change)=\"changeEvent.emit($event)\"\n (open)=\"openEvent.emit($event)\"\n (close)=\"closeEvent.emit($event)\"\n (search)=\"searchEvent.emit($event)\"\n (clear)=\"clearEvent.emit($event)\"\n (add)=\"addEvent.emit($event)\"\n (remove)=\"removeEvent.emit($event)\"\n (scroll)=\"scroll.emit($event)\"\n (scrollToEnd)=\"scrollToEnd.emit($event)\">\n\n <ng-container *ngIf=\"optionTemplate\">\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\"\n let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, item$: item$, index: index, searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"optgroupTemplate\">\n <ng-template ng-optgroup-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\"\n let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"optgroupTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, item$: item$, index: index, searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"labelTemplate\">\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\" let-label=\"label\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, clear: clear, label: label }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"multiLabelTemplate\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-template [ngTemplateOutlet]=\"multiLabelTemplate\"\n [ngTemplateOutletContext]=\"{ items: items, clear: clear }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-template [ngTemplateOutlet]=\"headerTemplate\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"footerTemplate\">\n <ng-template ng-footer-tmp>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"notFoundTemplate\">\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"notFoundTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"typeToSearchTemplate\">\n <ng-template ng-typetosearch-tmp>\n <ng-template [ngTemplateOutlet]=\"typeToSearchTemplate\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"loadingTextTemplate\">\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"loadingTextTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"tagTemplate\">\n <ng-template ng-tag-tmp let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"tagTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"loadingSpinnerTemplate\">\n <ng-template ng-loadingspinner-tmp>\n <ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-select>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { MtxSelectComponent } from './select.component';\nimport {\n MtxSelectFooterTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n} from './templates.directive';\nimport { MtxOptionComponent } from './option.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, NgSelectModule],\n exports: [\n MtxSelectComponent,\n MtxOptionComponent,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n ],\n declarations: [\n MtxSelectComponent,\n MtxOptionComponent,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n ],\n})\nexport class MtxSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mtxSelect.mjs","sources":["../../../projects/extensions/select/option.component.ts","../../../projects/extensions/select/templates.directive.ts","../../../projects/extensions/select/select.component.ts","../../../projects/extensions/select/select.component.html","../../../projects/extensions/select/select.module.ts","../../../projects/extensions/select/mtxSelect.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'mtx-option',\n exportAs: 'mtxOption',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`,\n})\nexport class MtxOptionComponent implements OnChanges, AfterViewChecked, OnDestroy {\n @Input() value: any;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n get label() {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n private _previousLabel?: string;\n\n readonly stateChange$ = new Subject<{\n value: any;\n disabled: boolean;\n label?: string;\n }>();\n\n constructor(public elementRef: ElementRef<HTMLElement>) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML,\n });\n }\n }\n\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class MtxSelectOptionTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class MtxSelectOptgroupTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class MtxSelectLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class MtxSelectMultiLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class MtxSelectHeaderTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class MtxSelectFooterTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class MtxSelectNotFoundTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class MtxSelectTypeToSearchTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class MtxSelectLoadingTextTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class MtxSelectTagTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class MtxSelectLoadingSpinnerTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ErrorStateMatcher, mixinErrorState } from '@angular/material/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { MatFormField, MatFormFieldControl, MAT_FORM_FIELD } from '@angular/material/form-field';\nimport { merge, Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { MtxOptionComponent } from './option.component';\nimport {\n MtxSelectFooterTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n} from './templates.directive';\n\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\nexport type AddTagFn = (term: string) => any | Promise<any>;\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (\n key: string | Record<string, any>,\n children: any[]\n) => string | Record<string, any>;\nexport type SearchFn = (term: string, item: any) => boolean;\nexport type TrackByFn = (item: any) => any;\n\nlet nextUniqueId = 0;\n\n// Boilerplate for applying mixins to MtxSelect.\n/** @docs-private */\nconst _MtxSelectMixinBase = mixinErrorState(\n class {\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n readonly stateChanges = new Subject<void>();\n\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n public ngControl: NgControl\n ) {}\n }\n);\n\n@Component({\n selector: 'mtx-select',\n exportAs: 'mtxSelect',\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'none',\n '[attr.id]': 'id',\n '[attr.aria-expanded]': 'panelOpen',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.aria-labelledby]': '_getAriaLabelledby()',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[class.mtx-select-floating]': 'shouldLabelFloat',\n '[class.mtx-select-disabled]': 'disabled',\n '[class.mtx-select-invalid]': 'errorState',\n '[class.mtx-select-required]': 'required',\n '[class.mtx-select-empty]': 'empty',\n '[class.mtx-select-multiple]': 'multiple',\n 'class': 'mtx-select',\n },\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: MtxSelectComponent }],\n})\nexport class MtxSelectComponent\n extends _MtxSelectMixinBase\n implements\n OnInit,\n OnDestroy,\n DoCheck,\n AfterViewInit,\n ControlValueAccessor,\n MatFormFieldControl<any>\n{\n @ViewChild('ngSelect', { static: true }) ngSelect!: NgSelectComponent;\n\n @ContentChild(MtxSelectOptionTemplateDirective, { read: TemplateRef })\n optionTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectOptgroupTemplateDirective, { read: TemplateRef })\n optgroupTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLabelTemplateDirective, { read: TemplateRef })\n labelTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectMultiLabelTemplateDirective, { read: TemplateRef })\n multiLabelTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectHeaderTemplateDirective, { read: TemplateRef })\n headerTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectFooterTemplateDirective, { read: TemplateRef })\n footerTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectNotFoundTemplateDirective, { read: TemplateRef })\n notFoundTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectTypeToSearchTemplateDirective, { read: TemplateRef })\n typeToSearchTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLoadingTextTemplateDirective, { read: TemplateRef })\n loadingTextTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectTagTemplateDirective, { read: TemplateRef })\n tagTemplate!: TemplateRef<any>;\n @ContentChild(MtxSelectLoadingSpinnerTemplateDirective, { read: TemplateRef })\n loadingSpinnerTemplate!: TemplateRef<any>;\n\n @ContentChildren(MtxOptionComponent, { descendants: true })\n mtxOptions!: QueryList<MtxOptionComponent>;\n\n @Input() addTag: boolean | AddTagFn = false;\n @Input() addTagText = 'Add item';\n @Input() appearance = 'underline';\n @Input() appendTo!: string;\n @Input() bindLabel!: string;\n @Input() bindValue!: string;\n @Input() closeOnSelect = true;\n @Input() clearAllText = 'Clear all';\n @Input() clearable = true;\n @Input() clearOnBackspace = true;\n @Input() compareWith!: CompareWithFn;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() groupBy!: string | (() => void);\n @Input() groupValue!: GroupValueFn;\n @Input() selectableGroup = false;\n @Input() selectableGroupAsModel = true;\n @Input() hideSelected = false;\n @Input() isOpen!: boolean;\n @Input() loading = false;\n @Input() loadingText = 'Loading...';\n @Input() labelForId: string | null = null;\n @Input() markFirst = true;\n @Input() maxSelectedItems!: number;\n @Input() multiple = false;\n @Input() notFoundText = 'No items found';\n @Input() searchable = true;\n @Input() readonly = false;\n @Input() searchFn: SearchFn | null = null;\n @Input() searchWhileComposing = true;\n @Input() selectOnTab = false;\n @Input() trackByFn: TrackByFn | null = null;\n @Input() inputAttrs: { [key: string]: string } = {};\n @Input() tabIndex!: number;\n @Input() openOnEnter!: boolean;\n @Input() minTermLength = 0;\n @Input() editableSearchTerm = false;\n @Input() keyDownFn = (_: KeyboardEvent) => true;\n @Input() virtualScroll = false;\n @Input() typeToSearchText = 'Type to search';\n @Input() typeahead!: Subject<string>;\n\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n @Output('search') searchEvent = new EventEmitter<{ term: string; items: any[] }>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n @Input()\n get clearSearchOnAdd() {\n return this._clearSearchOnAdd ?? this.closeOnSelect;\n }\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n }\n private _clearSearchOnAdd?: boolean;\n\n @Input()\n get items() {\n return this._items;\n }\n set items(value: any[]) {\n this._itemsAreUsed = true;\n this._items = value;\n }\n private _items: any[] = [];\n private _itemsAreUsed = false;\n\n /** Emits whenever the component is destroyed. */\n private readonly _destroy$ = new Subject<void>();\n\n /** Value of the select control. */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n this._value = newValue;\n this._onChange(newValue);\n this.stateChanges.next();\n }\n private _value = null;\n\n /** Implemented as part of MatFormFieldControl. */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /** Unique id of the element. */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n private _id!: string;\n\n /** Unique id for this select. */\n private _uid = `mtx-select-${nextUniqueId++}`;\n\n /** Placeholder to be shown if value is empty. */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n private _placeholder!: string;\n\n /** Whether the select is focused. */\n get focused(): boolean {\n return this._focused;\n }\n private _focused = false;\n\n /** Whether the select has a value. */\n get empty(): boolean {\n return this.value == null || (Array.isArray(this.value) && this.value.length === 0);\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n /** Whether the component is required. */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n /** Whether the select is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.readonly = this._disabled;\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n }\n private _disabled = false;\n\n /** Object used to control when error messages are shown. */\n @Input() override errorStateMatcher!: ErrorStateMatcher;\n\n /** Aria label of the select. */\n @Input('aria-label') ariaLabel: string = '';\n\n /** Input that can be used to specify the `aria-labelledby` attribute. */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The aria-describedby attribute on the select for improved a11y. */\n _ariaDescribedby: string | null = null;\n\n /** A name for this control that can be used by `mat-form-field`. */\n controlType = 'mtx-select';\n\n /** `View -> model callback called when value changes` */\n _onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n _onTouched = () => {};\n\n /** ID for the DOM node containing the select's value. */\n _valueId = `mtx-select-value-${nextUniqueId++}`;\n\n /** Whether or not the overlay panel is open. */\n get panelOpen(): boolean {\n return !!this.ngSelect.isOpen;\n }\n\n constructor(\n protected _changeDetectorRef: ChangeDetectorRef,\n protected _elementRef: ElementRef,\n protected _focusMonitor: FocusMonitor,\n _defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Self() ngControl: NgControl,\n @Optional() @Inject(MAT_FORM_FIELD) private _parentFormField?: MatFormField\n ) {\n super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n\n _focusMonitor.monitor(this._elementRef, true).subscribe(origin => {\n if (this._focused && !origin) {\n this._onTouched();\n }\n this._focused = !!origin;\n this.stateChanges.next();\n });\n\n if (this.ngControl != null) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n // Force setter to be called in case id was not specified.\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n ngOnInit() {\n // Fix compareWith warning of undefined value\n // https://github.com/ng-select/ng-select/issues/1537\n if (this.compareWith) {\n this.ngSelect.compareWith = this.compareWith;\n }\n }\n\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this._setItemsFromMtxOptions();\n }\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Gets the value for the `aria-labelledby` attribute of the inputs. */\n _getAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n\n const labelId = this._parentFormField?.getLabelId();\n let value = (labelId ? labelId + ' ' : '') + this._valueId;\n\n if (this.ariaLabelledby) {\n value += ' ' + this.ariaLabelledby;\n }\n\n return value;\n }\n\n /** Implemented as part of MatFormFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.length ? ids.join(' ') : null;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /** Implemented as part of MatFormFieldControl. */\n onContainerClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n if (/mat-form-field|mtx-select/g.test(target.parentElement?.classList[0] || '')) {\n this.focus();\n this.open();\n }\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /** NgSelect's `_setItemsFromNgOptions` */\n private _setItemsFromMtxOptions() {\n const mapMtxOptions = (options: QueryList<MtxOptionComponent>) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled,\n }));\n this.ngSelect.itemsList.setItems(this.items);\n if (this.ngSelect.hasValue) {\n this.ngSelect.itemsList.mapSelectedItems();\n }\n this.ngSelect.detectChanges();\n };\n\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.mtxOptions.changes, this._destroy$);\n merge(...this.mtxOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.ngSelect.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this.ngSelect.detectChanges();\n });\n };\n\n this.mtxOptions.changes\n .pipe(startWith(this.mtxOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n mapMtxOptions(options);\n handleOptionChange();\n });\n }\n\n open() {\n this.ngSelect.open();\n }\n\n close() {\n this.ngSelect.close();\n }\n\n focus() {\n this.ngSelect.focus();\n }\n\n blur() {\n this.ngSelect.blur();\n }\n\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","<ng-select #ngSelect [class.ng-select-invalid]=\"errorState\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n [items]=\"items\"\n [addTag]=\"addTag\"\n [addTagText]=\"addTagText\"\n [appendTo]=\"appendTo\"\n [appearance]=\"appearance\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [closeOnSelect]=\"closeOnSelect\"\n [clearAllText]=\"clearAllText\"\n [clearable]=\"clearable\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [dropdownPosition]=\"dropdownPosition\"\n [groupBy]=\"groupBy\"\n [groupValue]=\"groupValue\"\n [hideSelected]=\"hideSelected\"\n [isOpen]=\"isOpen\"\n [inputAttrs]=\"inputAttrs\"\n [loading]=\"loading\"\n [loadingText]=\"loadingText\"\n [labelForId]=\"labelForId\"\n [markFirst]=\"markFirst\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [multiple]=\"multiple\"\n [notFoundText]=\"notFoundText\"\n [readonly]=\"readonly\"\n [typeahead]=\"typeahead\"\n [typeToSearchText]=\"typeToSearchText\"\n [trackByFn]=\"trackByFn\"\n [searchable]=\"searchable\"\n [searchFn]=\"searchFn\"\n [searchWhileComposing]=\"searchWhileComposing\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\n [selectableGroup]=\"selectableGroup\"\n [selectableGroupAsModel]=\"selectableGroupAsModel\"\n [selectOnTab]=\"selectOnTab\"\n [tabIndex]=\"tabIndex\"\n [openOnEnter]=\"openOnEnter\"\n [minTermLength]=\"minTermLength\"\n [editableSearchTerm]=\"editableSearchTerm\"\n [keyDownFn]=\"keyDownFn\"\n [virtualScroll]=\"virtualScroll\"\n (blur)=\"blurEvent.emit($event)\"\n (focus)=\"focusEvent.emit($event)\"\n (change)=\"changeEvent.emit($event)\"\n (open)=\"openEvent.emit($event)\"\n (close)=\"closeEvent.emit($event)\"\n (search)=\"searchEvent.emit($event)\"\n (clear)=\"clearEvent.emit($event)\"\n (add)=\"addEvent.emit($event)\"\n (remove)=\"removeEvent.emit($event)\"\n (scroll)=\"scroll.emit($event)\"\n (scrollToEnd)=\"scrollToEnd.emit($event)\">\n\n <ng-container *ngIf=\"optionTemplate\">\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\"\n let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, item$: item$, index: index, searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"optgroupTemplate\">\n <ng-template ng-optgroup-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\"\n let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"optgroupTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, item$: item$, index: index, searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"labelTemplate\">\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\" let-label=\"label\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, clear: clear, label: label }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"multiLabelTemplate\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-template [ngTemplateOutlet]=\"multiLabelTemplate\"\n [ngTemplateOutletContext]=\"{ items: items, clear: clear }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"headerTemplate\">\n <ng-template ng-header-tmp>\n <ng-template [ngTemplateOutlet]=\"headerTemplate\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"footerTemplate\">\n <ng-template ng-footer-tmp>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"notFoundTemplate\">\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"notFoundTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"typeToSearchTemplate\">\n <ng-template ng-typetosearch-tmp>\n <ng-template [ngTemplateOutlet]=\"typeToSearchTemplate\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"loadingTextTemplate\">\n <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"loadingTextTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"tagTemplate\">\n <ng-template ng-tag-tmp let-searchTerm=\"searchTerm\">\n <ng-template [ngTemplateOutlet]=\"tagTemplate\"\n [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"loadingSpinnerTemplate\">\n <ng-template ng-loadingspinner-tmp>\n <ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate\">\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-select>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { MtxSelectComponent } from './select.component';\nimport {\n MtxSelectFooterTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n} from './templates.directive';\nimport { MtxOptionComponent } from './option.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, NgSelectModule],\n exports: [\n MtxSelectComponent,\n MtxOptionComponent,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n ],\n declarations: [\n MtxSelectComponent,\n MtxOptionComponent,\n MtxSelectOptgroupTemplateDirective,\n MtxSelectOptionTemplateDirective,\n MtxSelectLabelTemplateDirective,\n MtxSelectMultiLabelTemplateDirective,\n MtxSelectHeaderTemplateDirective,\n MtxSelectFooterTemplateDirective,\n MtxSelectNotFoundTemplateDirective,\n MtxSelectTypeToSearchTemplateDirective,\n MtxSelectLoadingTextTemplateDirective,\n MtxSelectTagTemplateDirective,\n MtxSelectLoadingSpinnerTemplateDirective,\n ],\n})\nexport class MtxSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ class MtxAlertComponent {
15
15
  /** This event fires when alert closed, $event is an instance of Alert component */
16
16
  this.closed = new EventEmitter();
17
17
  }
18
- get hostClassList() {
18
+ get _hostClassList() {
19
19
  return `mtx-alert-${this.type} mat-elevation-z${this.elevation}`;
20
20
  }
21
21
  /** Whether displays an inline `Close` button */
@@ -31,7 +31,7 @@ class MtxAlertComponent {
31
31
  }
32
32
  }
33
33
  /** @nocollapse */ MtxAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxAlertComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
34
- /** @nocollapse */ MtxAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: MtxAlertComponent, selector: "mtx-alert", inputs: { type: "type", dismissible: "dismissible", elevation: "elevation" }, outputs: { closed: "closed" }, host: { attributes: { "role": "alert" }, properties: { "class.mtx-alert": "true", "class.mtx-alert-dismissible": "dismissible", "class": "this.hostClassList" } }, exportAs: ["mtxAlert"], ngImport: i0, template: "<ng-content></ng-content>\n<ng-template [ngIf]=\"dismissible\">\n <button type=\"button\" class=\"mtx-alert-close\" aria-label=\"Close\" (click)=\"_onClosed()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n</ng-template>\n", styles: [".mtx-alert{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.mtx-alert-close{position:absolute;top:0;bottom:0;right:0;padding:0 1.25rem;font-size:1.5rem;line-height:1;color:inherit;opacity:.5;background-color:transparent;border:0;cursor:pointer}[dir=rtl] .mtx-alert-close{right:auto;left:0}.mtx-alert-close:hover{opacity:.75}.mtx-alert-dismissible{padding-right:4rem}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
34
+ /** @nocollapse */ MtxAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: MtxAlertComponent, selector: "mtx-alert", inputs: { type: "type", dismissible: "dismissible", elevation: "elevation" }, outputs: { closed: "closed" }, host: { attributes: { "role": "alert" }, properties: { "class.mtx-alert": "true", "class.mtx-alert-dismissible": "dismissible", "class": "this._hostClassList" } }, exportAs: ["mtxAlert"], ngImport: i0, template: "<ng-content></ng-content>\n<ng-template [ngIf]=\"dismissible\">\n <button type=\"button\" class=\"mtx-alert-close\" aria-label=\"Close\" (click)=\"_onClosed()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n</ng-template>\n", styles: [".mtx-alert{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.mtx-alert-close{position:absolute;top:0;bottom:0;right:0;padding:0 1.25rem;font-size:1.5rem;line-height:1;color:inherit;opacity:.5;background-color:transparent;border:0;cursor:pointer}[dir=rtl] .mtx-alert-close{right:auto;left:0}.mtx-alert-close:hover{opacity:.75}.mtx-alert-dismissible{padding-right:4rem}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxAlertComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: 'mtx-alert', exportAs: 'mtxAlert', host: {
@@ -39,7 +39,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
39
39
  '[class.mtx-alert-dismissible]': 'dismissible',
40
40
  'role': 'alert',
41
41
  }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<ng-template [ngIf]=\"dismissible\">\n <button type=\"button\" class=\"mtx-alert-close\" aria-label=\"Close\" (click)=\"_onClosed()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n</ng-template>\n", styles: [".mtx-alert{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.mtx-alert-close{position:absolute;top:0;bottom:0;right:0;padding:0 1.25rem;font-size:1.5rem;line-height:1;color:inherit;opacity:.5;background-color:transparent;border:0;cursor:pointer}[dir=rtl] .mtx-alert-close{right:auto;left:0}.mtx-alert-close:hover{opacity:.75}.mtx-alert-dismissible{padding-right:4rem}\n"] }]
42
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { hostClassList: [{
42
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _hostClassList: [{
43
43
  type: HostBinding,
44
44
  args: ['class']
45
45
  }], type: [{
@@ -1 +1 @@
1
- {"version":3,"file":"mtxAlert.mjs","sources":["../../../projects/extensions/alert/alert.component.ts","../../../projects/extensions/alert/alert.component.html","../../../projects/extensions/alert/alert.module.ts","../../../projects/extensions/alert/mtxAlert.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n HostBinding,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport type MtxAlertType = 'default' | 'info' | 'success' | 'warning' | 'danger';\n\n@Component({\n selector: 'mtx-alert',\n exportAs: 'mtxAlert',\n host: {\n '[class.mtx-alert]': 'true',\n '[class.mtx-alert-dismissible]': 'dismissible',\n 'role': 'alert',\n },\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxAlertComponent {\n @HostBinding('class') get hostClassList() {\n return `mtx-alert-${this.type} mat-elevation-z${this.elevation}`;\n }\n\n /** The alert type */\n @Input() type: MtxAlertType = 'default';\n\n /** Whether displays an inline `Close` button */\n @Input()\n get dismissible(): boolean {\n return this._dismissible;\n }\n set dismissible(value: boolean) {\n this._dismissible = coerceBooleanProperty(value);\n }\n private _dismissible = false;\n\n /** Material elevation */\n @Input() elevation = 0;\n\n /** This event fires when alert closed, $event is an instance of Alert component */\n @Output() closed = new EventEmitter<MtxAlertComponent>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _onClosed(): void {\n this._changeDetectorRef.markForCheck();\n this.closed.emit(this);\n }\n\n static ngAcceptInputType_dismissible: BooleanInput;\n}\n","<ng-content></ng-content>\n<ng-template [ngIf]=\"dismissible\">\n <button type=\"button\" class=\"mtx-alert-close\" aria-label=\"Close\" (click)=\"_onClosed()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxAlertComponent } from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxAlertComponent],\n declarations: [MtxAlertComponent],\n})\nexport class MtxAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MA2Ba,iBAAiB;IAwB5B,YAAoB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;;QAlBhD,SAAI,GAAiB,SAAS,CAAC;QAUhC,iBAAY,GAAG,KAAK,CAAC;;QAGpB,cAAS,GAAG,CAAC,CAAC;;QAGb,WAAM,GAAG,IAAI,YAAY,EAAqB,CAAC;KAEI;IAvB7D,IAA0B,aAAa;QACrC,OAAO,aAAa,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClE;;IAMD,IACI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IACD,IAAI,WAAW,CAAC,KAAc;QAC5B,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAClD;IAWD,SAAS;QACP,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;;iIA7BU,iBAAiB;qHAAjB,iBAAiB,yVC3B9B,kPAMA;2FDqBa,iBAAiB;kBAb7B,SAAS;+BACE,WAAW,YACX,UAAU,QACd;wBACJ,mBAAmB,EAAE,MAAM;wBAC3B,+BAA+B,EAAE,aAAa;wBAC9C,MAAM,EAAE,OAAO;qBAChB,iBAGc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;wGAGrB,aAAa;sBAAtC,WAAW;uBAAC,OAAO;gBAKX,IAAI;sBAAZ,KAAK;gBAIF,WAAW;sBADd,KAAK;gBAUG,SAAS;sBAAjB,KAAK;gBAGI,MAAM;sBAAf,MAAM;;;MEvCI,cAAc;;8HAAd,cAAc;+HAAd,cAAc,iBAFV,iBAAiB,aAFtB,YAAY,aACZ,iBAAiB;+HAGhB,cAAc,YAJhB,CAAC,YAAY,CAAC;2FAIZ,cAAc;kBAL1B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,YAAY,EAAE,CAAC,iBAAiB,CAAC;iBAClC;;;ACTD;;;;;;"}
1
+ {"version":3,"file":"mtxAlert.mjs","sources":["../../../projects/extensions/alert/alert.component.ts","../../../projects/extensions/alert/alert.component.html","../../../projects/extensions/alert/alert.module.ts","../../../projects/extensions/alert/mtxAlert.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n HostBinding,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport type MtxAlertType = 'default' | 'info' | 'success' | 'warning' | 'danger';\n\n@Component({\n selector: 'mtx-alert',\n exportAs: 'mtxAlert',\n host: {\n '[class.mtx-alert]': 'true',\n '[class.mtx-alert-dismissible]': 'dismissible',\n 'role': 'alert',\n },\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtxAlertComponent {\n @HostBinding('class')\n get _hostClassList() {\n return `mtx-alert-${this.type} mat-elevation-z${this.elevation}`;\n }\n\n /** The alert type */\n @Input() type: MtxAlertType = 'default';\n\n /** Whether displays an inline `Close` button */\n @Input()\n get dismissible(): boolean {\n return this._dismissible;\n }\n set dismissible(value: boolean) {\n this._dismissible = coerceBooleanProperty(value);\n }\n private _dismissible = false;\n\n /** Material elevation */\n @Input() elevation = 0;\n\n /** This event fires when alert closed, $event is an instance of Alert component */\n @Output() closed = new EventEmitter<MtxAlertComponent>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _onClosed(): void {\n this._changeDetectorRef.markForCheck();\n this.closed.emit(this);\n }\n\n static ngAcceptInputType_dismissible: BooleanInput;\n}\n","<ng-content></ng-content>\n<ng-template [ngIf]=\"dismissible\">\n <button type=\"button\" class=\"mtx-alert-close\" aria-label=\"Close\" (click)=\"_onClosed()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxAlertComponent } from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxAlertComponent],\n declarations: [MtxAlertComponent],\n})\nexport class MtxAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MA2Ba,iBAAiB;IAyB5B,YAAoB,kBAAqC;QAArC,uBAAkB,GAAlB,kBAAkB,CAAmB;;QAlBhD,SAAI,GAAiB,SAAS,CAAC;QAUhC,iBAAY,GAAG,KAAK,CAAC;;QAGpB,cAAS,GAAG,CAAC,CAAC;;QAGb,WAAM,GAAG,IAAI,YAAY,EAAqB,CAAC;KAEI;IAxB7D,IACI,cAAc;QAChB,OAAO,aAAa,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClE;;IAMD,IACI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IACD,IAAI,WAAW,CAAC,KAAc;QAC5B,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAClD;IAWD,SAAS;QACP,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;;iIA9BU,iBAAiB;qHAAjB,iBAAiB,0VC3B9B,kPAMA;2FDqBa,iBAAiB;kBAb7B,SAAS;+BACE,WAAW,YACX,UAAU,QACd;wBACJ,mBAAmB,EAAE,MAAM;wBAC3B,+BAA+B,EAAE,aAAa;wBAC9C,MAAM,EAAE,OAAO;qBAChB,iBAGc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;wGAI3C,cAAc;sBADjB,WAAW;uBAAC,OAAO;gBAMX,IAAI;sBAAZ,KAAK;gBAIF,WAAW;sBADd,KAAK;gBAUG,SAAS;sBAAjB,KAAK;gBAGI,MAAM;sBAAf,MAAM;;;MExCI,cAAc;;8HAAd,cAAc;+HAAd,cAAc,iBAFV,iBAAiB,aAFtB,YAAY,aACZ,iBAAiB;+HAGhB,cAAc,YAJhB,CAAC,YAAY,CAAC;2FAIZ,cAAc;kBAL1B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,YAAY,EAAE,CAAC,iBAAiB,CAAC;iBAClC;;;ACTD;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"mtxButton.mjs","sources":["../../../projects/extensions/button/button-loading.directive.ts","../../../projects/extensions/button/button.module.ts","../../../projects/extensions/button/mtxButton.ts"],"sourcesContent":["import {\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\n\n@Directive({\n selector: `button[mat-button][loading],\n button[mat-raised-button][loading],\n button[mat-stroked-button][loading],\n button[mat-flat-button][loading],\n button[mat-icon-button][loading],\n button[mat-fab][loading],\n button[mat-mini-fab][loading]`,\n})\nexport class MatButtonLoadingDirective implements OnChanges {\n private spinner!: ComponentRef<MatProgressSpinner> | null;\n\n @Input()\n get loading(): boolean {\n return this._loading;\n }\n set loading(value: boolean) {\n this._loading = coerceBooleanProperty(value);\n }\n private _loading = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n @Input()\n color: ThemePalette;\n\n constructor(\n private matButton: MatButton,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.loading) {\n return;\n }\n\n if (changes.loading.currentValue) {\n this.matButton._elementRef.nativeElement.classList.add('mat-button-loading');\n this.matButton.disabled = true;\n this.createSpinner();\n } else if (!changes.loading.firstChange) {\n this.matButton._elementRef.nativeElement.classList.remove('mat-button-loading');\n this.matButton.disabled = this.disabled;\n this.destroySpinner();\n }\n }\n\n private createSpinner(): void {\n if (!this.spinner) {\n this.spinner = this.viewContainerRef.createComponent(MatProgressSpinner);\n this.spinner.instance.color = this.color;\n this.spinner.instance.diameter = 20;\n this.spinner.instance.mode = 'indeterminate';\n this.renderer.appendChild(\n this.matButton._elementRef.nativeElement,\n this.spinner.instance._elementRef.nativeElement\n );\n }\n }\n\n private destroySpinner(): void {\n if (this.spinner) {\n this.spinner.destroy();\n this.spinner = null;\n }\n }\n\n static ngAcceptInputType_loading: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonLoadingDirective } from './button-loading.directive';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule],\n exports: [MatButtonLoadingDirective],\n declarations: [MatButtonLoadingDirective],\n})\nexport class MtxButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mtxButton.mjs","sources":["../../../projects/extensions/button/button-loading.directive.ts","../../../projects/extensions/button/button.module.ts","../../../projects/extensions/button/mtxButton.ts"],"sourcesContent":["import {\n ComponentRef,\n Directive,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\n\n@Directive({\n selector: `button[mat-button][loading],\n button[mat-raised-button][loading],\n button[mat-stroked-button][loading],\n button[mat-flat-button][loading],\n button[mat-icon-button][loading],\n button[mat-fab][loading],\n button[mat-mini-fab][loading]`,\n})\nexport class MatButtonLoadingDirective implements OnChanges {\n private spinner!: ComponentRef<MatProgressSpinner> | null;\n\n @Input()\n get loading(): boolean {\n return this._loading;\n }\n set loading(value: boolean) {\n this._loading = coerceBooleanProperty(value);\n }\n private _loading = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n @Input()\n color: ThemePalette;\n\n constructor(\n private matButton: MatButton,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.loading) {\n return;\n }\n\n if (changes.loading.currentValue) {\n this.matButton._elementRef.nativeElement.classList.add('mat-button-loading');\n this.matButton.disabled = true;\n this.createSpinner();\n } else if (!changes.loading.firstChange) {\n this.matButton._elementRef.nativeElement.classList.remove('mat-button-loading');\n this.matButton.disabled = this.disabled;\n this.destroySpinner();\n }\n }\n\n private createSpinner(): void {\n if (!this.spinner) {\n this.spinner = this.viewContainerRef.createComponent(MatProgressSpinner);\n this.spinner.instance.color = this.color;\n this.spinner.instance.diameter = 20;\n this.spinner.instance.mode = 'indeterminate';\n this.renderer.appendChild(\n this.matButton._elementRef.nativeElement,\n this.spinner.instance._elementRef.nativeElement\n );\n }\n }\n\n private destroySpinner(): void {\n if (this.spinner) {\n this.spinner.destroy();\n this.spinner = null;\n }\n }\n\n static ngAcceptInputType_loading: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonLoadingDirective } from './button-loading.directive';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule],\n exports: [MatButtonLoadingDirective],\n declarations: [MatButtonLoadingDirective],\n})\nexport class MtxButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mtxCore.mjs","sources":["../../../projects/extensions/core/datetime/datetime-adapter.ts","../../../projects/extensions/core/datetime/datetime-formats.ts","../../../projects/extensions/core/datetime/native-datetime-adapter.ts","../../../projects/extensions/core/datetime/native-datetime-formats.ts","../../../projects/extensions/core/datetime/datetime.module.ts","../../../projects/extensions/core/pipes/to-observable.pipe.ts","../../../projects/extensions/core/pipes/pipes.module.ts","../../../projects/extensions/core/mtxCore.ts"],"sourcesContent":["import { DateAdapter } from '@angular/material/core';\n\nexport abstract class DatetimeAdapter<D> extends DateAdapter<D> {\n constructor(protected _delegate: DateAdapter<D>) {\n super();\n }\n\n abstract getHour(date: D): number;\n\n abstract getMinute(date: D): number;\n\n abstract getFirstDateOfMonth(date: D): D;\n\n abstract isInNextMonth(startDate: D, endDate: D): boolean;\n\n abstract getHourNames(): string[];\n\n abstract getMinuteNames(): string[];\n\n abstract addCalendarHours(date: D, months: number): D;\n\n abstract addCalendarMinutes(date: D, months: number): D;\n\n abstract createDatetime(\n year: number,\n month: number,\n date: number,\n hour: number,\n minute: number\n ): D;\n\n getValidDateOrNull(obj: any): D | null {\n return this.isDateInstance(obj) && this.isValid(obj) ? obj : null;\n }\n\n compareDatetime(first: D, second: D, respectMinutePart: boolean = true): number | boolean {\n return (\n this.compareDate(first, second) ||\n this.getHour(first) - this.getHour(second) ||\n (respectMinutePart && this.getMinute(first) - this.getMinute(second))\n );\n }\n\n sameDatetime(first: D | null, second: D | null): boolean {\n if (first && second) {\n const firstValid = this.isValid(first);\n const secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !this.compareDatetime(first, second);\n }\n return firstValid === secondValid;\n }\n return first === second;\n }\n\n sameYear(first: D, second: D) {\n return first && second && this.getYear(first) === this.getYear(second);\n }\n\n sameDay(first: D, second: D) {\n return (\n first &&\n second &&\n this.getDate(first) === this.getDate(second) &&\n this.sameMonthAndYear(first, second)\n );\n }\n\n sameHour(first: D, second: D) {\n return (\n first && second && this.getHour(first) === this.getHour(second) && this.sameDay(first, second)\n );\n }\n\n sameMinute(first: D, second: D) {\n return (\n first &&\n second &&\n this.getMinute(first) === this.getMinute(second) &&\n this.sameHour(first, second)\n );\n }\n\n sameMonthAndYear(first: D | null, second: D | null): boolean {\n if (first && second) {\n const firstValid = this.isValid(first);\n const secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !(\n this.getYear(first) - this.getYear(second) || this.getMonth(first) - this.getMonth(second)\n );\n }\n return firstValid === secondValid;\n }\n return first === second;\n }\n\n // delegate\n clone(date: D): D {\n return this._delegate.clone(date);\n }\n\n addCalendarYears(date: D, years: number): D {\n return this._delegate.addCalendarYears(date, years);\n }\n\n addCalendarMonths(date: D, months: number): D {\n return this._delegate.addCalendarMonths(date, months);\n }\n\n addCalendarDays(date: D, days: number): D {\n return this._delegate.addCalendarDays(date, days);\n }\n\n getYear(date: D): number {\n return this._delegate.getYear(date);\n }\n\n getMonth(date: D): number {\n return this._delegate.getMonth(date);\n }\n\n getDate(date: D): number {\n return this._delegate.getDate(date);\n }\n\n getDayOfWeek(date: D): number {\n return this._delegate.getDayOfWeek(date);\n }\n\n getMonthNames(style: any): string[] {\n return this._delegate.getMonthNames(style);\n }\n\n getDateNames(): string[] {\n return this._delegate.getDateNames();\n }\n\n getDayOfWeekNames(style: any): string[] {\n return this._delegate.getDayOfWeekNames(style);\n }\n\n getYearName(date: D): string {\n return this._delegate.getYearName(date);\n }\n\n getFirstDayOfWeek(): number {\n return this._delegate.getFirstDayOfWeek();\n }\n\n getNumDaysInMonth(date: D): number {\n return this._delegate.getNumDaysInMonth(date);\n }\n\n createDate(year: number, month: number, date: number): D {\n return this._delegate.createDate(year, month, date);\n }\n\n today(): D {\n return this._delegate.today();\n }\n\n parse(value: any, parseFormat: any): D | null {\n return this._delegate.parse(value, parseFormat);\n }\n\n format(date: D, displayFormat: any): string {\n return this._delegate.format(date, displayFormat);\n }\n\n toIso8601(date: D): string {\n return this._delegate.toIso8601(date);\n }\n\n isDateInstance(obj: any): boolean {\n return this._delegate.isDateInstance(obj);\n }\n\n isValid(date: D): boolean {\n return this._delegate.isValid(date);\n }\n\n invalid(): D {\n return this._delegate.invalid();\n }\n\n clampDate(date: D, min?: D | null, max?: D | null): D {\n if (min && this.compareDatetime(date, min) < 0) {\n return min;\n }\n if (max && this.compareDatetime(date, max) > 0) {\n return max;\n }\n return date;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface MtxDatetimeFormats {\n parse: {\n dateInput?: any;\n monthInput?: any;\n timeInput?: any;\n datetimeInput?: any;\n };\n display: {\n dateInput: any;\n monthInput: any;\n timeInput: any;\n datetimeInput: any;\n monthYearLabel: any;\n dateA11yLabel: any;\n monthYearA11yLabel: any;\n popupHeaderDateLabel: any;\n };\n}\n\nexport const MTX_DATETIME_FORMATS = new InjectionToken<MtxDatetimeFormats>('mtx-datetime-formats');\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DatetimeAdapter } from './datetime-adapter';\n\n/** The default hour names to use if Intl API is not available. */\nconst DEFAULT_HOUR_NAMES = range(24, i => String(i));\n\n/** The default minute names to use if Intl API is not available. */\nconst DEFAULT_MINUTE_NAMES = range(60, i => String(i));\n\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n@Injectable()\nexport class NativeDatetimeAdapter extends DatetimeAdapter<Date> {\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) matDateLocale: string,\n _delegate: DateAdapter<Date>\n ) {\n super(_delegate);\n this.setLocale(matDateLocale);\n }\n\n clone(date: Date): Date {\n return this.createDatetime(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date),\n this.getHour(date),\n this.getMinute(date)\n );\n }\n\n getHour(date: Date): number {\n return date.getHours();\n }\n\n getMinute(date: Date): number {\n return date.getMinutes();\n }\n\n isInNextMonth(startDate: Date, endDate: Date): boolean {\n const nextMonth = this.getDateInNextMonth(startDate);\n return this.sameMonthAndYear(nextMonth, endDate);\n }\n\n createDatetime(year: number, month: number, date: number, hour: number, minute: number): Date {\n // Check for invalid month and date (except upper bound on date which we have to check after\n // creating the Date).\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n if (hour < 0 || hour > 23) {\n throw Error(`Invalid hour \"${hour}\". Hour has to be between 0 and 23.`);\n }\n\n if (minute < 0 || minute > 59) {\n throw Error(`Invalid minute \"${minute}\". Minute has to be between 0 and 59.`);\n }\n\n const result = this._createDateWithOverflow(year, month, date, hour, minute);\n\n // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n if (result.getMonth() !== month) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n\n getFirstDateOfMonth(date: Date): Date {\n const result = new Date();\n result.setFullYear(date.getFullYear(), date.getMonth(), 1);\n return result;\n }\n\n getHourNames(): string[] {\n return DEFAULT_HOUR_NAMES;\n }\n\n getMinuteNames(): string[] {\n return DEFAULT_MINUTE_NAMES;\n }\n\n addCalendarYears(date: Date, years: number): Date {\n return this.addCalendarMonths(date, years * 12);\n }\n\n addCalendarMonths(date: Date, months: number): Date {\n let newDate = this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date) + months,\n this.getDate(date),\n this.getHour(date),\n this.getMinute(date)\n );\n\n // It's possible to wind up in the wrong month if the original month has more days than the new\n // month. In this case we want to go to the last day of the desired month.\n // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't\n // guarantee this.\n if (this.getMonth(newDate) !== (((this.getMonth(date) + months) % 12) + 12) % 12) {\n newDate = this._createDateWithOverflow(\n this.getYear(newDate),\n this.getMonth(newDate),\n 0,\n this.getHour(date),\n this.getMinute(date)\n );\n }\n\n return newDate;\n }\n\n addCalendarDays(date: Date, days: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date) + days,\n this.getHour(date),\n this.getMinute(date)\n );\n }\n\n addCalendarHours(date: Date, hours: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date),\n this.getHour(date) + hours,\n this.getMinute(date)\n );\n }\n\n addCalendarMinutes(date: Date, minutes: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date),\n this.getHour(date),\n this.getMinute(date) + minutes\n );\n }\n\n toIso8601(date: Date): string {\n return (\n super.toIso8601(date) +\n 'T' +\n [this._2digit(date.getUTCHours()), this._2digit(date.getUTCMinutes())].join(':')\n );\n }\n\n private getDateInNextMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes());\n }\n\n /**\n * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n * other browsers do not. We remove them to make output consistent and because they interfere with\n * date parsing.\n * @param str The string to strip direction characters from.\n * @returns The stripped string.\n */\n private _stripDirectionalityCharacters(str: string) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\n\n /**\n * Pads a number to make it two digits.\n * @param n The number to pad.\n * @returns The padded number.\n */\n private _2digit(n: number) {\n return ('00' + n).slice(-2);\n }\n\n /** Creates a date but allows the month and date to overflow. */\n private _createDateWithOverflow(\n year: number,\n month: number,\n date: number,\n hours: number,\n minutes: number\n ) {\n const result = new Date(year, month, date, hours, minutes);\n\n // We need to correct for the fact that JS native Date treats years in range [0, 99] as\n // abbreviations for 19xx.\n if (year >= 0 && year < 100) {\n result.setFullYear(this.getYear(result) - 1900);\n }\n return result;\n }\n}\n","import { MtxDatetimeFormats } from './datetime-formats';\n\nexport const MTX_NATIVE_DATETIME_FORMATS: MtxDatetimeFormats = {\n parse: {},\n display: {\n dateInput: { year: 'numeric', month: '2-digit', day: '2-digit' },\n monthInput: { month: 'long' },\n datetimeInput: {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n },\n timeInput: { hour: '2-digit', minute: '2-digit' },\n monthYearLabel: { year: 'numeric', month: 'short' },\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\n popupHeaderDateLabel: { weekday: 'short', month: 'short', day: '2-digit' },\n },\n};\n","import { NgModule } from '@angular/core';\nimport { MatNativeDateModule, NativeDateModule } from '@angular/material/core';\nimport { DatetimeAdapter } from './datetime-adapter';\nimport { MTX_DATETIME_FORMATS } from './datetime-formats';\nimport { NativeDatetimeAdapter } from './native-datetime-adapter';\nimport { MTX_NATIVE_DATETIME_FORMATS } from './native-datetime-formats';\n\n@NgModule({\n imports: [NativeDateModule],\n providers: [\n {\n provide: DatetimeAdapter,\n useClass: NativeDatetimeAdapter,\n },\n ],\n})\nexport class NativeDatetimeModule {}\n\n@NgModule({\n imports: [NativeDatetimeModule, MatNativeDateModule],\n providers: [{ provide: MTX_DATETIME_FORMATS, useValue: MTX_NATIVE_DATETIME_FORMATS }],\n})\nexport class MtxNativeDatetimeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable, of, isObservable } from 'rxjs';\n\n@Pipe({ name: 'toObservable' })\nexport class MtxToObservablePipe implements PipeTransform {\n transform(value: Observable<any> | unknown): Observable<any> {\n return isObservable(value) ? value : of(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxToObservablePipe } from './to-observable.pipe';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxToObservablePipe],\n declarations: [MtxToObservablePipe],\n})\nexport class MtxPipesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAEsB,eAAmB,SAAQ,WAAc;IAC7D,YAAsB,SAAyB;QAC7C,KAAK,EAAE,CAAC;QADY,cAAS,GAAT,SAAS,CAAgB;KAE9C;IA0BD,kBAAkB,CAAC,GAAQ;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;KACnE;IAED,eAAe,CAAC,KAAQ,EAAE,MAAS,EAAE,oBAA6B,IAAI;QACpE,QACE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACzC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EACrE;KACH;IAED,YAAY,CAAC,KAAe,EAAE,MAAgB;QAC5C,IAAI,KAAK,IAAI,MAAM,EAAE;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,UAAU,IAAI,WAAW,EAAE;gBAC7B,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC7C;YACD,OAAO,UAAU,KAAK,WAAW,CAAC;SACnC;QACD,OAAO,KAAK,KAAK,MAAM,CAAC;KACzB;IAED,QAAQ,CAAC,KAAQ,EAAE,MAAS;QAC1B,OAAO,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACxE;IAED,OAAO,CAAC,KAAQ,EAAE,MAAS;QACzB,QACE,KAAK;YACL,MAAM;YACN,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EACpC;KACH;IAED,QAAQ,CAAC,KAAQ,EAAE,MAAS;QAC1B,QACE,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAC9F;KACH;IAED,UAAU,CAAC,KAAQ,EAAE,MAAS;QAC5B,QACE,KAAK;YACL,MAAM;YACN,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAC5B;KACH;IAED,gBAAgB,CAAC,KAAe,EAAE,MAAgB;QAChD,IAAI,KAAK,IAAI,MAAM,EAAE;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,UAAU,IAAI,WAAW,EAAE;gBAC7B,OAAO,EACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC3F,CAAC;aACH;YACD,OAAO,UAAU,KAAK,WAAW,CAAC;SACnC;QACD,OAAO,KAAK,KAAK,MAAM,CAAC;KACzB;;IAGD,KAAK,CAAC,IAAO;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACnC;IAED,gBAAgB,CAAC,IAAO,EAAE,KAAa;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACrD;IAED,iBAAiB,CAAC,IAAO,EAAE,MAAc;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACvD;IAED,eAAe,CAAC,IAAO,EAAE,IAAY;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACnD;IAED,OAAO,CAAC,IAAO;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,QAAQ,CAAC,IAAO;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACtC;IAED,OAAO,CAAC,IAAO;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,YAAY,CAAC,IAAO;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAC1C;IAED,aAAa,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC5C;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACtC;IAED,iBAAiB,CAAC,KAAU;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KAChD;IAED,WAAW,CAAC,IAAO;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACzC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;KAC3C;IAED,iBAAiB,CAAC,IAAO;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC/C;IAED,UAAU,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KACrD;IAED,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC/B;IAED,KAAK,CAAC,KAAU,EAAE,WAAgB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;KACjD;IAED,MAAM,CAAC,IAAO,EAAE,aAAkB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACnD;IAED,SAAS,CAAC,IAAO;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACvC;IAED,cAAc,CAAC,GAAQ;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;KAC3C;IAED,OAAO,CAAC,IAAO;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;KACjC;IAED,SAAS,CAAC,IAAO,EAAE,GAAc,EAAE,GAAc;QAC/C,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE;YAC9C,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE;YAC9C,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,IAAI,CAAC;KACb;;;MC7KU,oBAAoB,GAAG,IAAI,cAAc,CAAqB,sBAAsB;;ACjBjG;AACA,MAAM,kBAAkB,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAErD;AACA,MAAM,oBAAoB,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvD,SAAS,KAAK,CAAI,MAAc,EAAE,aAAmC;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;KACnC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;MAGY,qBAAsB,SAAQ,eAAqB;IAC9D,YACuC,aAAqB,EAC1D,SAA4B;QAE5B,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC/B;IAED,KAAK,CAAC,IAAU;QACd,OAAO,IAAI,CAAC,cAAc,CACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;KACH;IAED,OAAO,CAAC,IAAU;QAChB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;KACxB;IAED,SAAS,CAAC,IAAU;QAClB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;KAC1B;IAED,aAAa,CAAC,SAAe,EAAE,OAAa;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAClD;IAED,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,IAAY,EAAE,MAAc;;;QAGpF,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE;YAC3B,MAAM,KAAK,CAAC,wBAAwB,KAAK,4CAA4C,CAAC,CAAC;SACxF;QAED,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,MAAM,KAAK,CAAC,iBAAiB,IAAI,mCAAmC,CAAC,CAAC;SACvE;QAED,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE;YACzB,MAAM,KAAK,CAAC,iBAAiB,IAAI,qCAAqC,CAAC,CAAC;SACzE;QAED,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE;YAC7B,MAAM,KAAK,CAAC,mBAAmB,MAAM,uCAAuC,CAAC,CAAC;SAC/E;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;;QAG7E,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;YAC/B,MAAM,KAAK,CAAC,iBAAiB,IAAI,2BAA2B,KAAK,IAAI,CAAC,CAAC;SACxE;QAED,OAAO,MAAM,CAAC;KACf;IAED,mBAAmB,CAAC,IAAU;QAC5B,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;KACf;IAED,YAAY;QACV,OAAO,kBAAkB,CAAC;KAC3B;IAED,cAAc;QACZ,OAAO,oBAAoB,CAAC;KAC7B;IAED,gBAAgB,CAAC,IAAU,EAAE,KAAa;QACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;KACjD;IAED,iBAAiB,CAAC,IAAU,EAAE,MAAc;QAC1C,IAAI,OAAO,GAAG,IAAI,CAAC,uBAAuB,CACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,EAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;;;;;QAMF,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAChF,OAAO,GAAG,IAAI,CAAC,uBAAuB,CACpC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EACtB,CAAC,EACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;SACH;QAED,OAAO,OAAO,CAAC;KAChB;IAED,eAAe,CAAC,IAAU,EAAE,IAAY;QACtC,OAAO,IAAI,CAAC,uBAAuB,CACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;KACH;IAED,gBAAgB,CAAC,IAAU,EAAE,KAAa;QACxC,OAAO,IAAI,CAAC,uBAAuB,CACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,EAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;KACH;IAED,kBAAkB,CAAC,IAAU,EAAE,OAAe;QAC5C,OAAO,IAAI,CAAC,uBAAuB,CACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAC/B,CAAC;KACH;IAED,SAAS,CAAC,IAAU;QAClB,QACE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,GAAG;YACH,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAChF;KACH;IAEO,kBAAkB,CAAC,IAAU;QACnC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KACjG;;;;;;;;IASO,8BAA8B,CAAC,GAAW;QAChD,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;KAC3C;;;;;;IAOO,OAAO,CAAC,CAAS;QACvB,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7B;;IAGO,uBAAuB,CAC7B,IAAY,EACZ,KAAa,EACb,IAAY,EACZ,KAAa,EACb,OAAe;QAEf,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;;;QAI3D,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,EAAE;YAC3B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;SACjD;QACD,OAAO,MAAM,CAAC;KACf;;qIAvLU,qBAAqB,kBAEV,eAAe;yIAF1B,qBAAqB;2FAArB,qBAAqB;kBADjC,UAAU;;0BAGN,QAAQ;;0BAAI,MAAM;2BAAC,eAAe;;;MCnB1B,2BAA2B,GAAuB;IAC7D,KAAK,EAAE,EAAE;IACT,OAAO,EAAE;QACP,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;QAChE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QAC7B,aAAa,EAAE;YACb,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SAClB;QACD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;QACjD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;QACnD,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;QACjE,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;QACtD,oBAAoB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;KAC3E;;;MCHU,oBAAoB;;oIAApB,oBAAoB;qIAApB,oBAAoB,YARrB,gBAAgB;qIAQf,oBAAoB,aAPpB;QACT;YACE,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,qBAAqB;SAChC;KACF,YANQ,CAAC,gBAAgB,CAAC;2FAQhB,oBAAoB;kBAThC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,eAAe;4BACxB,QAAQ,EAAE,qBAAqB;yBAChC;qBACF;iBACF;;MAOY,uBAAuB;;uIAAvB,uBAAuB;wIAAvB,uBAAuB,YANvB,oBAAoB,EAGC,mBAAmB;wIAGxC,uBAAuB,aAFvB,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC,YAD5E,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;2FAGzC,uBAAuB;kBAJnC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;oBACpD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC;iBACtF;;;MCjBY,mBAAmB;IAC9B,SAAS,CAAC,KAAgC;QACxC,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;KAChD;;mIAHU,mBAAmB;iIAAnB,mBAAmB;2FAAnB,mBAAmB;kBAD/B,IAAI;mBAAC,EAAE,IAAI,EAAE,cAAc,EAAE;;;MCOjB,cAAc;;8HAAd,cAAc;+HAAd,cAAc,iBAFV,mBAAmB,aAFxB,YAAY,aACZ,mBAAmB;+HAGlB,cAAc,YAJhB,CAAC,YAAY,CAAC;2FAIZ,cAAc;kBAL1B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,YAAY,EAAE,CAAC,mBAAmB,CAAC;iBACpC;;;ACTD;;;;;;"}
1
+ {"version":3,"file":"mtxCore.mjs","sources":["../../../projects/extensions/core/datetime/datetime-adapter.ts","../../../projects/extensions/core/datetime/datetime-formats.ts","../../../projects/extensions/core/datetime/native-datetime-adapter.ts","../../../projects/extensions/core/datetime/native-datetime-formats.ts","../../../projects/extensions/core/datetime/datetime.module.ts","../../../projects/extensions/core/pipes/to-observable.pipe.ts","../../../projects/extensions/core/pipes/pipes.module.ts","../../../projects/extensions/core/mtxCore.ts"],"sourcesContent":["import { DateAdapter } from '@angular/material/core';\n\nexport abstract class DatetimeAdapter<D> extends DateAdapter<D> {\n constructor(protected _delegate: DateAdapter<D>) {\n super();\n }\n\n abstract getHour(date: D): number;\n\n abstract getMinute(date: D): number;\n\n abstract getFirstDateOfMonth(date: D): D;\n\n abstract isInNextMonth(startDate: D, endDate: D): boolean;\n\n abstract getHourNames(): string[];\n\n abstract getMinuteNames(): string[];\n\n abstract addCalendarHours(date: D, months: number): D;\n\n abstract addCalendarMinutes(date: D, months: number): D;\n\n abstract createDatetime(\n year: number,\n month: number,\n date: number,\n hour: number,\n minute: number\n ): D;\n\n getValidDateOrNull(obj: any): D | null {\n return this.isDateInstance(obj) && this.isValid(obj) ? obj : null;\n }\n\n compareDatetime(first: D, second: D, respectMinutePart: boolean = true): number | boolean {\n return (\n this.compareDate(first, second) ||\n this.getHour(first) - this.getHour(second) ||\n (respectMinutePart && this.getMinute(first) - this.getMinute(second))\n );\n }\n\n sameDatetime(first: D | null, second: D | null): boolean {\n if (first && second) {\n const firstValid = this.isValid(first);\n const secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !this.compareDatetime(first, second);\n }\n return firstValid === secondValid;\n }\n return first === second;\n }\n\n sameYear(first: D, second: D) {\n return first && second && this.getYear(first) === this.getYear(second);\n }\n\n sameDay(first: D, second: D) {\n return (\n first &&\n second &&\n this.getDate(first) === this.getDate(second) &&\n this.sameMonthAndYear(first, second)\n );\n }\n\n sameHour(first: D, second: D) {\n return (\n first && second && this.getHour(first) === this.getHour(second) && this.sameDay(first, second)\n );\n }\n\n sameMinute(first: D, second: D) {\n return (\n first &&\n second &&\n this.getMinute(first) === this.getMinute(second) &&\n this.sameHour(first, second)\n );\n }\n\n sameMonthAndYear(first: D | null, second: D | null): boolean {\n if (first && second) {\n const firstValid = this.isValid(first);\n const secondValid = this.isValid(second);\n if (firstValid && secondValid) {\n return !(\n this.getYear(first) - this.getYear(second) || this.getMonth(first) - this.getMonth(second)\n );\n }\n return firstValid === secondValid;\n }\n return first === second;\n }\n\n // delegate\n clone(date: D): D {\n return this._delegate.clone(date);\n }\n\n addCalendarYears(date: D, years: number): D {\n return this._delegate.addCalendarYears(date, years);\n }\n\n addCalendarMonths(date: D, months: number): D {\n return this._delegate.addCalendarMonths(date, months);\n }\n\n addCalendarDays(date: D, days: number): D {\n return this._delegate.addCalendarDays(date, days);\n }\n\n getYear(date: D): number {\n return this._delegate.getYear(date);\n }\n\n getMonth(date: D): number {\n return this._delegate.getMonth(date);\n }\n\n getDate(date: D): number {\n return this._delegate.getDate(date);\n }\n\n getDayOfWeek(date: D): number {\n return this._delegate.getDayOfWeek(date);\n }\n\n getMonthNames(style: any): string[] {\n return this._delegate.getMonthNames(style);\n }\n\n getDateNames(): string[] {\n return this._delegate.getDateNames();\n }\n\n getDayOfWeekNames(style: any): string[] {\n return this._delegate.getDayOfWeekNames(style);\n }\n\n getYearName(date: D): string {\n return this._delegate.getYearName(date);\n }\n\n getFirstDayOfWeek(): number {\n return this._delegate.getFirstDayOfWeek();\n }\n\n getNumDaysInMonth(date: D): number {\n return this._delegate.getNumDaysInMonth(date);\n }\n\n createDate(year: number, month: number, date: number): D {\n return this._delegate.createDate(year, month, date);\n }\n\n today(): D {\n return this._delegate.today();\n }\n\n parse(value: any, parseFormat: any): D | null {\n return this._delegate.parse(value, parseFormat);\n }\n\n format(date: D, displayFormat: any): string {\n return this._delegate.format(date, displayFormat);\n }\n\n toIso8601(date: D): string {\n return this._delegate.toIso8601(date);\n }\n\n isDateInstance(obj: any): boolean {\n return this._delegate.isDateInstance(obj);\n }\n\n isValid(date: D): boolean {\n return this._delegate.isValid(date);\n }\n\n invalid(): D {\n return this._delegate.invalid();\n }\n\n clampDate(date: D, min?: D | null, max?: D | null): D {\n if (min && this.compareDatetime(date, min) < 0) {\n return min;\n }\n if (max && this.compareDatetime(date, max) > 0) {\n return max;\n }\n return date;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface MtxDatetimeFormats {\n parse: {\n dateInput?: any;\n monthInput?: any;\n yearInput?: any;\n timeInput?: any;\n datetimeInput?: any;\n };\n display: {\n dateInput: any;\n monthInput: any;\n yearInput?: any;\n timeInput: any;\n datetimeInput: any;\n monthYearLabel: any;\n dateA11yLabel: any;\n monthYearA11yLabel: any;\n popupHeaderDateLabel: any;\n };\n}\n\nexport const MTX_DATETIME_FORMATS = new InjectionToken<MtxDatetimeFormats>('mtx-datetime-formats');\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DatetimeAdapter } from './datetime-adapter';\n\n/** The default hour names to use if Intl API is not available. */\nconst DEFAULT_HOUR_NAMES = range(24, i => String(i));\n\n/** The default minute names to use if Intl API is not available. */\nconst DEFAULT_MINUTE_NAMES = range(60, i => String(i));\n\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n@Injectable()\nexport class NativeDatetimeAdapter extends DatetimeAdapter<Date> {\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) matDateLocale: string,\n _delegate: DateAdapter<Date>\n ) {\n super(_delegate);\n this.setLocale(matDateLocale);\n }\n\n clone(date: Date): Date {\n return this.createDatetime(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date),\n this.getHour(date),\n this.getMinute(date)\n );\n }\n\n getHour(date: Date): number {\n return date.getHours();\n }\n\n getMinute(date: Date): number {\n return date.getMinutes();\n }\n\n isInNextMonth(startDate: Date, endDate: Date): boolean {\n const nextMonth = this.getDateInNextMonth(startDate);\n return this.sameMonthAndYear(nextMonth, endDate);\n }\n\n createDatetime(year: number, month: number, date: number, hour: number, minute: number): Date {\n // Check for invalid month and date (except upper bound on date which we have to check after\n // creating the Date).\n if (month < 0 || month > 11) {\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n }\n\n if (date < 1) {\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n }\n\n if (hour < 0 || hour > 23) {\n throw Error(`Invalid hour \"${hour}\". Hour has to be between 0 and 23.`);\n }\n\n if (minute < 0 || minute > 59) {\n throw Error(`Invalid minute \"${minute}\". Minute has to be between 0 and 59.`);\n }\n\n const result = this._createDateWithOverflow(year, month, date, hour, minute);\n\n // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n if (result.getMonth() !== month) {\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n }\n\n return result;\n }\n\n getFirstDateOfMonth(date: Date): Date {\n const result = new Date();\n result.setFullYear(date.getFullYear(), date.getMonth(), 1);\n return result;\n }\n\n getHourNames(): string[] {\n return DEFAULT_HOUR_NAMES;\n }\n\n getMinuteNames(): string[] {\n return DEFAULT_MINUTE_NAMES;\n }\n\n addCalendarYears(date: Date, years: number): Date {\n return this.addCalendarMonths(date, years * 12);\n }\n\n addCalendarMonths(date: Date, months: number): Date {\n let newDate = this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date) + months,\n this.getDate(date),\n this.getHour(date),\n this.getMinute(date)\n );\n\n // It's possible to wind up in the wrong month if the original month has more days than the new\n // month. In this case we want to go to the last day of the desired month.\n // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't\n // guarantee this.\n if (this.getMonth(newDate) !== (((this.getMonth(date) + months) % 12) + 12) % 12) {\n newDate = this._createDateWithOverflow(\n this.getYear(newDate),\n this.getMonth(newDate),\n 0,\n this.getHour(date),\n this.getMinute(date)\n );\n }\n\n return newDate;\n }\n\n addCalendarDays(date: Date, days: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date) + days,\n this.getHour(date),\n this.getMinute(date)\n );\n }\n\n addCalendarHours(date: Date, hours: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date),\n this.getHour(date) + hours,\n this.getMinute(date)\n );\n }\n\n addCalendarMinutes(date: Date, minutes: number): Date {\n return this._createDateWithOverflow(\n this.getYear(date),\n this.getMonth(date),\n this.getDate(date),\n this.getHour(date),\n this.getMinute(date) + minutes\n );\n }\n\n toIso8601(date: Date): string {\n return (\n super.toIso8601(date) +\n 'T' +\n [this._2digit(date.getUTCHours()), this._2digit(date.getUTCMinutes())].join(':')\n );\n }\n\n private getDateInNextMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes());\n }\n\n /**\n * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n * other browsers do not. We remove them to make output consistent and because they interfere with\n * date parsing.\n * @param str The string to strip direction characters from.\n * @returns The stripped string.\n */\n private _stripDirectionalityCharacters(str: string) {\n return str.replace(/[\\u200e\\u200f]/g, '');\n }\n\n /**\n * Pads a number to make it two digits.\n * @param n The number to pad.\n * @returns The padded number.\n */\n private _2digit(n: number) {\n return ('00' + n).slice(-2);\n }\n\n /** Creates a date but allows the month and date to overflow. */\n private _createDateWithOverflow(\n year: number,\n month: number,\n date: number,\n hours: number,\n minutes: number\n ) {\n const result = new Date(year, month, date, hours, minutes);\n\n // We need to correct for the fact that JS native Date treats years in range [0, 99] as\n // abbreviations for 19xx.\n if (year >= 0 && year < 100) {\n result.setFullYear(this.getYear(result) - 1900);\n }\n return result;\n }\n}\n","import { MtxDatetimeFormats } from './datetime-formats';\n\nexport const MTX_NATIVE_DATETIME_FORMATS: MtxDatetimeFormats = {\n parse: {},\n display: {\n dateInput: { year: 'numeric', month: '2-digit', day: '2-digit' },\n monthInput: { month: 'long' },\n datetimeInput: {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n },\n timeInput: { hour: '2-digit', minute: '2-digit' },\n monthYearLabel: { year: 'numeric', month: 'short' },\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\n popupHeaderDateLabel: { weekday: 'short', month: 'short', day: '2-digit' },\n },\n};\n","import { NgModule } from '@angular/core';\nimport { MatNativeDateModule, NativeDateModule } from '@angular/material/core';\nimport { DatetimeAdapter } from './datetime-adapter';\nimport { MTX_DATETIME_FORMATS } from './datetime-formats';\nimport { NativeDatetimeAdapter } from './native-datetime-adapter';\nimport { MTX_NATIVE_DATETIME_FORMATS } from './native-datetime-formats';\n\n@NgModule({\n imports: [NativeDateModule],\n providers: [\n {\n provide: DatetimeAdapter,\n useClass: NativeDatetimeAdapter,\n },\n ],\n})\nexport class NativeDatetimeModule {}\n\n@NgModule({\n imports: [NativeDatetimeModule, MatNativeDateModule],\n providers: [{ provide: MTX_DATETIME_FORMATS, useValue: MTX_NATIVE_DATETIME_FORMATS }],\n})\nexport class MtxNativeDatetimeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable, of, isObservable } from 'rxjs';\n\n@Pipe({ name: 'toObservable' })\nexport class MtxToObservablePipe implements PipeTransform {\n transform(value: Observable<any> | unknown): Observable<any> {\n return isObservable(value) ? value : of(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MtxToObservablePipe } from './to-observable.pipe';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtxToObservablePipe],\n declarations: [MtxToObservablePipe],\n})\nexport class MtxPipesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2219,6 +2219,8 @@ class MtxDatetimepickerInput {
2219
2219
  return this._dateFormats.display.timeInput;
2220
2220
  case 'month':
2221
2221
  return this._dateFormats.display.monthInput;
2222
+ case 'year':
2223
+ return this._dateFormats.display.yearInput;
2222
2224
  }
2223
2225
  }
2224
2226
  getParseFormat() {
@@ -2236,6 +2238,9 @@ class MtxDatetimepickerInput {
2236
2238
  case 'month':
2237
2239
  parseFormat = this._dateFormats.parse.monthInput;
2238
2240
  break;
2241
+ case 'year':
2242
+ parseFormat = this._dateFormats.parse.yearInput;
2243
+ break;
2239
2244
  }
2240
2245
  if (!parseFormat) {
2241
2246
  parseFormat = this._dateFormats.parse.dateInput;