@acpaas-ui/ngx-forms 6.1.9 → 6.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/datepicker/components/datepicker/datepicker.component.mjs +9 -6
- package/fesm2015/acpaas-ui-ngx-forms.mjs +7 -4
- package/fesm2015/acpaas-ui-ngx-forms.mjs.map +1 -1
- package/fesm2020/acpaas-ui-ngx-forms.mjs +7 -4
- package/fesm2020/acpaas-ui-ngx-forms.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acpaas-ui-ngx-forms.mjs","sources":["../../src/lib/shared/services/search.service.ts","../../src/lib/auto-complete/components/auto-complete/auto-complete.component.ts","../../src/lib/auto-complete/components/auto-complete/auto-complete.component.html","../../src/lib/auto-complete/auto-complete.module.ts","../../src/lib/datepicker/datepicker.conf.ts","../../src/lib/datepicker/components/datepicker/datepicker.component.ts","../../src/lib/datepicker/components/datepicker/datepicker.component.html","../../src/lib/datepicker/datepicker.module.ts","../../src/lib/range-slider/components/range-slider/range-slider.component.ts","../../src/lib/range-slider/components/range-slider/range-slider.component.html","../../src/lib/range-slider/range-slider.module.ts","../../src/lib/search-filter/components/search-filter/search-filter.component.ts","../../src/lib/search-filter/components/search-filter/search-filter.component.html","../../src/lib/search-filter/search-filter.module.ts","../../src/lib/timepicker/classes/timepicker.validators.ts","../../src/lib/timepicker/types/timepicker.types.ts","../../src/lib/timepicker/components/timepicker/timepicker.component.ts","../../src/lib/timepicker/components/timepicker/timepicker.component.html","../../src/lib/timepicker/timepicker.module.ts","../../src/lib/upload/upload.conf.ts","../../src/lib/upload/classes/uploader.class.ts","../../src/lib/upload/components/upload-queue/upload-queue.component.ts","../../src/lib/upload/components/upload-queue/upload-queue.component.html","../../src/lib/upload/components/upload-zone/upload-zone.component.ts","../../src/lib/upload/components/upload-zone/upload-zone.component.html","../../src/lib/upload/services/validation-messages.service.ts","../../src/lib/upload/components/validation-list/validation-list.component.ts","../../src/lib/upload/components/validation-list/validation-list.component.html","../../src/lib/upload/components/upload/upload.component.ts","../../src/lib/upload/components/upload/upload.component.html","../../src/lib/upload/components/upload-input/upload-input.component.ts","../../src/lib/upload/components/upload-input/upload-input.component.html","../../src/lib/upload/upload.module.ts","../../src/acpaas-ui-ngx-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SearchOptions } from '../types/search.types';\n\n@Injectable()\nexport class SearchService {\n public search(data: any[], options: SearchOptions = {}): any[] {\n const query = options.hasOwnProperty('query') ? options.query : '';\n const minLength = options.hasOwnProperty('minLength') ? options.minLength : 0;\n const key = options.hasOwnProperty('key') ? options.key : '';\n\n if ((!query && options.showAllByDefault) || query.length < minLength) {\n return [...data];\n }\n\n return [...data].filter(item => {\n if (key && !item.hasOwnProperty(key)) {\n return console.error(`\"${key}\" does not exist in item ${JSON.stringify(item, null, 2)}`);\n }\n\n if (key) {\n return this.matchItemWithSearchString(item[key], query);\n }\n\n return this.matchItemWithSearchString(item, query);\n });\n }\n\n private matchItemWithSearchString = (item: any, searchString): boolean => {\n return String(item).toLowerCase().indexOf(searchString.toLowerCase()) > -1;\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { get, isEqual } from 'lodash-es';\nimport { FlyoutDirective, FlyoutZoneDirective } from '@acpaas-ui/ngx-flyout';\nimport { SearchService } from '../../../shared/services/search.service';\n\n@Component({\n selector: 'aui-auto-complete',\n styleUrls: ['./auto-complete.component.scss'],\n templateUrl: './auto-complete.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutoCompleteComponent), // eslint-disable-line\n multi: true,\n },\n ],\n})\nexport class AutoCompleteComponent implements ControlValueAccessor, OnInit, OnChanges {\n @Input() id: string;\n @Input() placeholder: string;\n @Input() description: string;\n @Input() inputLabel: string;\n @Input() results: any[] = []; // The values for the selectable list\n @Input() data: any[] = []; // The values to search in when remote search is disabled\n @Input() remote = false; // Disable or enamble remote search\n @Input() minCharacters = 0;\n @Input() clearInvalid = false;\n @Input() searchIncentiveText: string;\n @Input() loadingText: string;\n @Input() noResultsText: string;\n @Input() showAllByDefault = false;\n @Input() autoComplete = 'off';\n\n // specify which label/value props to use\n @Input() label: string;\n @Input() value: string;\n\n // Eventemitter for searchvalue (parent object should update the results with this param)\n @Output() search: EventEmitter<string> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() select: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(FlyoutDirective, { static: true }) flyout: FlyoutDirective;\n @ViewChild(FlyoutZoneDirective, { static: true }) flyoutZone: FlyoutZoneDirective;\n\n @ContentChild(TemplateRef, { static: true }) public template: TemplateRef<any>;\n\n public query = '';\n public index = -1; // index for active element in selectable list, by default -1 (so it starts in the input field)\n public selectedItem: any = null; // keep a backup of the selectedItem\n public searching = false; // track remote search state\n public focused = false;\n public isDisabled = false;\n\n private remoteValue = false;\n\n constructor(private ref: ElementRef, private searchService: SearchService) {}\n\n public updateModel = (_: any) => {};\n\n // CONTROL_VALUE_ACCESSOR interface\n public writeValue(value = '') {\n if (this.value) {\n const selected = this.data.find((item: any) => item[this.value] === value);\n\n if (selected) {\n return (this.query = selected[this.label]);\n }\n\n if (this.remote && !!value) {\n this.remoteValue = true;\n }\n }\n\n this.query = value;\n }\n\n // CONTROL_VALUE_ACCESSOR interface\n public registerOnChange(fn) {\n this.updateModel = fn;\n }\n\n // CONTROL_VALUE_ACCESSOR interface\n public registerOnTouched() {}\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public ngOnInit(): void {\n if (Array.isArray(this.data) && this.data.length > 0 && !this.query && this.showAllByDefault) {\n this.results = [...this.data];\n }\n }\n\n // OnChanges interface\n public ngOnChanges(changes: SimpleChanges): void {\n if (!changes) {\n return;\n }\n\n const newData = get(changes, 'data.currentValue', []);\n if (!isEqual(newData, get(changes, 'data.previousValue', []))) {\n if (this.remote) {\n this.remoteSearch();\n } else {\n this.localSearch();\n }\n }\n\n if (changes.results && changes.results.currentValue) {\n this.searching = false;\n }\n }\n\n public propagateChange(item: any) {\n this.query = item !== null ? (this.label ? item[this.label] : item) : '';\n this.select.emit(item);\n\n if (!item) {\n return;\n }\n\n const key = this.value ? this.value : this.label ? this.label : null;\n this.updateModel(key ? item[key] || '' : item);\n this.selectedItem = item;\n }\n\n /**\n * triggers on input value change\n */\n public doSearch(): void {\n this.index = -1; // reset index\n this.searching = true;\n\n if (this.remote) {\n this.search.emit(this.query); // ask for new remote data\n } else {\n this.localSearch();\n }\n\n this.openFlyout(); // open the flyout when there is a change\n }\n\n /**\n * triggers on selectable-list:select -> onClick event in selectable-list\n */\n public onSelect(item: any): void {\n this.propagateChange(item);\n this.closeFlyout(); // Close the flyout manually\n }\n\n public onFlyoutClosed(): void {\n // there is only 1 result, select it\n if (this.index >= 0 && this.results.length === 1) {\n return this.onSelect(this.results[0]);\n }\n\n // there is no query nor selected item, clear the selected item\n if (!this.query && this.index < 0) {\n return this.onSelect(null);\n }\n\n // reset the query for an invalid query if clearInvalid is true\n if (this.clearInvalid && this.query && !this.results.length && this.index < 0) {\n this.query = this.selectedItem ? (this.label ? this.selectedItem[this.label] : this.selectedItem) : '';\n }\n }\n\n public onKeyArrowDown(): void {\n if (this.index < this.results.length - 1) {\n this.scrollList(1);\n }\n\n this.openFlyout();\n }\n\n public onKeyArrowUp(): void {\n if (this.index >= 0) {\n this.scrollList(-1);\n }\n }\n\n public onKeyEnter(event: Event): void {\n event.preventDefault(); // Do not submit form when selecting an item.\n\n const query = this.index >= 0 ? this.results[this.index] : this.query;\n\n this.propagateChange(query);\n this.closeFlyout();\n }\n\n public onKeyEscape(): void {\n this.closeFlyout();\n }\n\n public onFocus(): void {\n this.focused = true;\n this.openFlyout();\n }\n\n public openFlyout(): void {\n if (this.flyout) {\n this.flyout.open();\n }\n }\n\n public closeFlyout(): void {\n if (this.flyout) {\n this.flyout.close();\n }\n\n this.focused = false;\n }\n\n public localSearch(): void {\n this.results = this.searchService.search(this.data, {\n minLength: this.minCharacters,\n key: this.label,\n query: this.query,\n showAllByDefault: this.showAllByDefault,\n });\n\n if (this.results.length === 1 && this.query === this.results[0][this.label]) {\n this.index = 0;\n }\n\n this.searching = false;\n }\n\n public remoteSearch(): void {\n if (!this.remoteValue || !this.data) {\n return;\n }\n\n const selected = this.data.find((item: any) => {\n if (this.value) {\n return item[this.value] === this.query;\n }\n\n return item === this.query;\n });\n\n if (selected) {\n this.query = this.label ? selected[this.label] : selected;\n } else {\n this.query = '';\n }\n\n this.remoteValue = false;\n }\n\n public scrollList(factor: number): void {\n this.index += factor;\n\n if (!this.flyoutZone) {\n return;\n }\n\n const liItems = this.flyoutZone.element.getElementsByTagName('li');\n const liHeight = liItems[1] ? liItems[1].offsetHeight : liItems[0].offsetHeight;\n const zoneHeight = this.flyoutZone.element.offsetHeight;\n const offset = zoneHeight / liHeight / 2;\n\n this.flyoutZone.element.scrollTop = this.index * liHeight - offset * liHeight;\n }\n}\n","<div\n (closed)=\"onFlyoutClosed()\"\n [toggleClick]=\"false\"\n aria-haspopup=\"listbox\"\n auiFlyout\n class=\"m-flyout m-flyout--scrollable m-flyout--full o-auto-complete\"\n>\n <input\n (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n class=\"a-input\"\n />\n <div *ngIf=\"!isDisabled\" auiFlyoutZone>\n <span *ngIf=\"focused && loadingText && searching\" class=\"a-spinner a-spinner--s u-margin-xs\" role=\"alert\">\n <span class=\"a-spinner__circle\"></span>\n <span class=\"a-spinner__text\">{{ loadingText }}</span>\n </span>\n <span\n *ngIf=\"focused && searchIncentiveText && !searching && !query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\"\n >{{ searchIncentiveText }}</span\n >\n <span\n *ngIf=\"focused && noResultsText && !searching && query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\"\n >{{ noResultsText }}</span\n >\n <aui-selectable-list\n (selected)=\"onSelect($event)\"\n *ngIf=\"results.length > 0 && !(focused && loadingText && searching)\"\n [index]=\"index\"\n [itemTemplate]=\"template\"\n [items]=\"results\"\n [label]=\"label\"\n [search]=\"query\"\n ></aui-selectable-list>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { FlyoutModule } from '@acpaas-ui/ngx-flyout';\nimport { SelectableListModule } from '@acpaas-ui/ngx-selectable-list';\nimport { SearchService } from '../shared/services/search.service';\nimport { AutoCompleteComponent } from './components/auto-complete/auto-complete.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, FlyoutModule, SelectableListModule],\n declarations: [AutoCompleteComponent],\n exports: [AutoCompleteComponent],\n providers: [SearchService],\n})\nexport class AutoCompleteModule {}\n","import { InjectionToken } from '@angular/core';\nimport { DatepickerErrorLabels } from './types/datepicker.types';\n\nexport const DATEPICKER_ERROR_LABELS = new InjectionToken<DatepickerErrorLabels>('errorLabels');\n\nexport const DATEPICKER_DEFAULT_ERROR_LABELS = {\n ERRORS_INVALID_DATE: 'INVALID_DATE',\n ERRORS_INVALID_RANGE: 'INVALID_RANGE',\n};\n\nexport const DATEPICKER_SEPARATOR_CHAR = '/';\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n ControlValueAccessor,\n UntypedFormBuilder,\n UntypedFormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { DateHelper, DateRange } from '@acpaas-ui/ngx-utils';\nimport { TZDate } from '@date-fns/tz';\nimport { FlyoutDirective } from '@acpaas-ui/ngx-flyout';\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n CalendarService,\n DatepickerResult,\n WeekdayLabelsConfig,\n MonthLabelsConfig,\n} from '@acpaas-ui/ngx-calendar';\n\nimport {\n DATEPICKER_SEPARATOR_CHAR,\n DATEPICKER_DEFAULT_ERROR_LABELS,\n DATEPICKER_ERROR_LABELS,\n} from '../../datepicker.conf';\nimport { DatepickerValidationErrors } from '../../types/datepicker.types';\nimport { Interval, IntervalBuilder } from '@acpaas-ui/ngx-utils';\n\n@Component({\n selector: 'aui-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent), // eslint-disable-line @angular-eslint/no-forward-ref\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatepickerComponent), // eslint-disable-line @angular-eslint/no-forward-ref\n multi: true,\n },\n ],\n})\nexport class DatepickerComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {\n @ViewChild(FlyoutDirective, { static: true }) flyout: FlyoutDirective;\n @Input() id: string;\n @Input() name: string;\n @Input() placeholder = 'dd/mm/yyyy';\n @Input() label: string;\n @Input() description: string;\n @Input() range: DateRange;\n @Input()\n min: Date | null;\n @Input()\n max: Date | null;\n @Input() autocomplete: 'off';\n @Input() weekdayLabels: WeekdayLabelsConfig;\n @Input() monthLabels: MonthLabelsConfig;\n @Input() ariaOpenDatepickerLabel = 'Open kalender';\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur = new EventEmitter<Event>();\n\n public formControl: UntypedFormControl;\n public selectedDate: Date;\n public isDisabled = false;\n public interval: Interval.IInterval<Date>;\n\n private componentDestroyed$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n @Inject(CALENDAR_MONTH_LABELS) private moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS,\n @Inject(CALENDAR_WEEKDAY_LABELS) private moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n @Inject(DATEPICKER_ERROR_LABELS) private errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS,\n public calendarService: CalendarService,\n private formBuilder: UntypedFormBuilder,\n private ref: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.createInterval();\n this.formControl = this.formBuilder.control({ value: '', disabled: this.isDisabled });\n this.formControl.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((value) => {\n if (value) {\n const format = value.split(DATEPICKER_SEPARATOR_CHAR).reverse().join('-');\n const date = DateHelper.parseDate(format, 'yyyy-MM-dd');\n if (date) {\n this.selectedDate = date;\n const brusselsDate = new TZDate(date, 'Europe/Brussels');\n const year = brusselsDate.getFullYear();\n const month = brusselsDate.getMonth();\n const day = brusselsDate.getDate();\n this.onChange(DateHelper.toUtcMidnightInBrussels(year, month, day));\n } else {\n this.onChange(value);\n }\n } else {\n this.selectedDate = null;\n this.onChange('');\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.min || changes.max) {\n this.createInterval();\n }\n }\n\n public ngOnDestroy(): void {\n this.componentDestroyed$.next(true);\n this.componentDestroyed$.complete();\n }\n\n private createInterval() {\n if (!this.min && !this.max) {\n return;\n }\n // Create an interval if min/max is filled in\n this.interval = IntervalBuilder.dateInterval(\n this.min ? new Date(this.min) : null,\n this.max ? new Date(this.max) : null\n )\n .not()\n .build();\n }\n\n public writeValue(value: string | Date): void {\n if (typeof value === 'string') {\n if (this.isISODateFormat(value)) {\n this.selectedDate = DateHelper.parseDate(value);\n } else {\n this.selectedDate = DateHelper.parseDate(value, 'dd/MM/yyyy');\n }\n } else if (value instanceof Date) {\n this.selectedDate = value;\n } else {\n this.selectedDate = null;\n }\n\n const dateString = this.selectedDate ? this.formatDate(this.selectedDate) : '';\n this.formControl.setValue(dateString);\n }\n\n public registerOnChange(onChange: (res: any) => void): void {\n this.onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (_: any) => void): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n\n if (this.formControl) {\n if (isDisabled && this.formControl.enabled) {\n this.formControl.disable();\n } else if (!isDisabled && this.formControl.disabled) {\n this.formControl.enable();\n }\n }\n\n this.ref.markForCheck();\n }\n\n public selectDateFromCalendar(result: DatepickerResult): void {\n if (result.complete) {\n this.formControl.setValue(this.formatDate(result.date));\n this.flyout.close();\n }\n }\n\n public formatDate(date: Date): string {\n return DateHelper.formatDate(date, 'DD/MM/YYYY', {\n leadingZero: true,\n monthLabels: this.monthLabels,\n weekdayLabels: this.weekdayLabels,\n });\n }\n\n public validate(ctrl: UntypedFormControl): DatepickerValidationErrors {\n // no error on empty value (add required validator in app)\n if (ctrl.value === '' || ctrl.value === null) {\n return null;\n }\n\n // throw format error if no valid date was provided\n const date = DateHelper.parseDate(ctrl.value);\n if (!date) {\n return {\n format: this.errorLabels.ERRORS_INVALID_DATE,\n };\n }\n\n // no error if valid date an no range provided\n if (!this.range || !this.range.length) {\n return null;\n }\n\n // throw error when out of range\n const range = this.calendarService.getRangeForDate(date, this.range);\n\n return range.indexOf(date.getDate()) >= 0\n ? {\n range: this.errorLabels.ERRORS_INVALID_RANGE,\n }\n : null;\n }\n\n public handleBlur(e: Event): void {\n this.blur.emit(e);\n this.onTouched(e);\n }\n\n private onChange: (res: any) => void = () => undefined;\n\n private onTouched: (_: any) => void = () => undefined;\n\n private isISODateFormat(value: string) {\n if (typeof value !== 'string') {\n return false;\n }\n return value.match(/\\d{4}-\\d{2}-\\d{2}T.*/);\n }\n}\n","<div aria-haspopup=\"grid\" auiFlyout class=\"aui-datepicker a-input has-icon-right\">\n <label class=\"a-input__label\" for=\"{{ id }}\" *ngIf=\"label\">{{ label }}</label>\n <small class=\"a-input__description\" *ngIf=\"description\"> {{ description }}</small>\n <div class=\"a-input__wrapper\">\n <input\n (blur)=\"handleBlur($event)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [autocomplete]=\"autocomplete\"\n [formControl]=\"formControl\"\n id=\"{{ id }}\"\n label=\"Pick date\"\n description=\"Description\"\n name=\"{{ name }}\"\n placeholder=\"{{ placeholder }}\"\n type=\"text\"\n />\n <ng-container *ngIf=\"isDisabled\">\n <aui-icon\n name=\"ai-calendar\"\n />\n </ng-container>\n <ng-container *ngIf=\"!isDisabled\">\n <aui-icon\n auiFlyoutAction\n [openOnFocus]=\"false\"\n name=\"ai-calendar\"\n className=\"is-clickable\"\n role=\"button\"\n [attr.aria-label]=\"ariaOpenDatepickerLabel\"\n tabindex=\"0\"\n />\n </ng-container>\n\n <ng-container *ngIf=\"!isDisabled\">\n <div auiFlyoutZone class=\"m-datepicker m-datepicker--fixed\" role=\"dialog\">\n <aui-calendar\n (selectDate)=\"selectDateFromCalendar($event)\"\n [range]=\"range\"\n [selectedDate]=\"selectedDate\"\n [interval]=\"interval\"\n [weekdayLabels]=\"weekdayLabels\"\n [monthLabels]=\"monthLabels\"\n ></aui-calendar>\n </div>\n </ng-container>\n </div>\n</div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { FlyoutModule } from '@acpaas-ui/ngx-flyout';\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n CalendarModule,\n} from '@acpaas-ui/ngx-calendar';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\n\nimport { DatepickerComponent } from './components/datepicker/datepicker.component';\nimport { DATEPICKER_DEFAULT_ERROR_LABELS, DATEPICKER_ERROR_LABELS } from './datepicker.conf';\nimport { DatepickerErrorLabels } from './types/datepicker.types';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CalendarModule, IconModule, FlyoutModule],\n declarations: [DatepickerComponent],\n exports: [DatepickerComponent],\n providers: [\n {\n provide: CALENDAR_WEEKDAY_LABELS,\n useValue: CALENDAR_DEFAULT_WEEKDAY_LABELS,\n },\n { provide: CALENDAR_MONTH_LABELS, useValue: CALENDAR_DEFAULT_MONTH_LABELS },\n {\n provide: DATEPICKER_ERROR_LABELS,\n useValue: DATEPICKER_DEFAULT_ERROR_LABELS,\n },\n ],\n})\nexport class DatepickerModule {\n static forChild(\n weekdayLabels: string[],\n monthLabels: string[],\n errorLabels: DatepickerErrorLabels\n ): ModuleWithProviders<DatepickerModule> {\n return {\n ngModule: DatepickerModule,\n providers: [\n { provide: CALENDAR_WEEKDAY_LABELS, useValue: weekdayLabels },\n { provide: CALENDAR_MONTH_LABELS, useValue: monthLabels },\n { provide: DATEPICKER_ERROR_LABELS, useValue: errorLabels },\n ],\n };\n }\n}\n","import { Component, ElementRef, forwardRef, HostBinding, HostListener, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { RangeSliderRange } from '../../types/range-slider.types';\n\n@Component({\n selector: 'aui-range-slider',\n templateUrl: './range-slider.component.html',\n styleUrls: ['./range-slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSliderComponent), // eslint-disable-line\n multi: true,\n },\n ],\n})\nexport class RangeSliderComponent implements OnInit, ControlValueAccessor {\n @HostBinding('class.m-range-slider') coreBranding = true;\n @Input() public min = 0;\n @Input() public max = 100;\n @Input() public minimalDistance = 1;\n @Input() public step = 0;\n @Input() public label = '';\n @Input() public labelBefore = '';\n @Input() public labelAfter = '';\n @Input() public ariaLabelMin = 'Minimum';\n @Input() public ariaLabelMax = 'Maximum';\n public start = 0;\n public end: number | boolean = false;\n public steps = [];\n public startPercentage;\n public endPercentage;\n public active = null;\n public isDisabled = false;\n public hasFocus = false;\n public click = false;\n\n constructor(private elRef: ElementRef) {}\n\n @HostBinding('class.is-disabled') get disabledClass() {\n return this.isDisabled;\n }\n\n public propagateChange = (value: number | RangeSliderRange) => {};\n\n public ngOnInit() {\n if (this.step > 0) {\n for (let i = 0; i <= this.max; i += Number(this.step)) {\n this.steps.push(i);\n }\n }\n\n this.startPercentage = this.startToPercentage();\n\n if (this.end) {\n this.endPercentage = this.endToPercentage();\n }\n }\n\n public writeValue(value: any) {\n if (value && value.start) {\n this.start = value.start;\n } else if (!isNaN(value) && value !== '') {\n this.start = Number(value);\n } else {\n this.setStart(Number(this.min));\n }\n\n this.startPercentage = this.startToPercentage();\n\n if (value && value.end) {\n this.end = value.end;\n this.endPercentage = this.endToPercentage();\n }\n }\n\n public registerOnTouched() {}\n\n public registerOnChange(fn) {\n this.propagateChange = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public onMouseDown(handle) {\n if (this.isDisabled) {\n return;\n }\n\n this.hasFocus = true;\n this.active = handle;\n }\n\n public toggleFocus(hasFocus, element, $event) {\n if (this.isDisabled) {\n return;\n }\n\n $event.preventDefault();\n this.hasFocus = hasFocus;\n this.active = element;\n }\n\n @HostListener('document:keydown', ['$event'])\n public onKeyDown($event) {\n if (!this.hasFocus) {\n return;\n }\n\n const key = $event.keyCode;\n const keyCodes = {\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n };\n\n if (\n Object.keys(keyCodes)\n .map((e) => keyCodes[e])\n .indexOf(key) === -1\n ) {\n return;\n }\n let increment = this.minimalDistance;\n\n if (this.step > 0) {\n increment = Number(this.step);\n }\n\n const processValue = (dir) => {\n let newValue = this.active === 'start' ? this.start : Number(this.end);\n if (dir === 'up') {\n newValue += increment;\n } else {\n newValue -= increment;\n }\n let newPercentage = ((newValue - this.min) / (this.max - this.min)) * 100;\n\n if (newPercentage > 100) {\n newPercentage = 100;\n }\n if (newPercentage < 0) {\n newPercentage = 0;\n }\n return newPercentage;\n };\n\n switch (key) {\n case keyCodes.right:\n case keyCodes.up:\n this.updateHandle(processValue('up'));\n $event.preventDefault();\n break;\n case keyCodes.left:\n case keyCodes.down:\n this.updateHandle(processValue('down'));\n $event.preventDefault();\n break;\n case keyCodes.end:\n this.updateHandle(100);\n $event.preventDefault();\n break;\n case keyCodes.home:\n this.updateHandle(0);\n $event.preventDefault();\n break;\n }\n }\n\n @HostListener('touchend', ['$event'])\n @HostListener('mouseup', ['$event'])\n public onMouseUp(event) {\n if (this.active === 'start') {\n this.setStart(this.round(this.start, this.step, 0));\n this.startPercentage = this.startToPercentage();\n }\n\n if (this.active === 'end') {\n this.setEnd(this.round(this.end, this.step, 0));\n this.endPercentage = this.endToPercentage();\n }\n this.click = false;\n }\n\n @HostListener('touchstart', ['$event'])\n @HostListener('mousedown', ['$event'])\n mouseDown(event) {\n this.click = true;\n }\n\n @HostListener('touchmove', ['$event'])\n @HostListener('mousemove', ['$event'])\n public onMouseMove(event: MouseEvent | TouchEvent) {\n if (!this.active || !this.click) {\n return;\n }\n\n event.preventDefault(); // Do not select text while sliding\n\n const x =\n (event as MouseEvent).x !== undefined ? (event as MouseEvent).x : (event as TouchEvent).targetTouches[0].pageX;\n const rect = this.elRef.nativeElement.getBoundingClientRect();\n const newPercentage = this.calcPercentage(x, rect.width, rect.left);\n this.updateHandle(newPercentage);\n }\n\n public updateHandle(newPercentage) {\n if (this.active === 'start') {\n this.startPercentage = newPercentage;\n this.setStart(this.percentageToStart());\n\n if (this.minimalDistanceNotRespected()) {\n this.setStart(Number(this.end) - Number(this.minimalDistance));\n this.startPercentage = this.startToPercentage();\n }\n }\n\n if (this.active === 'end' && this.endPercentage) {\n this.endPercentage = newPercentage;\n this.setEnd(this.percentageToEnd());\n\n if (this.minimalDistanceNotRespected()) {\n this.setEnd(Number(this.start) + Number(this.minimalDistance));\n this.endPercentage = this.endToPercentage();\n }\n }\n }\n\n // ---------- HELPERS ---------- //\n public setStart(value) {\n this.start = value;\n\n if (this.end) {\n this.propagateChange({\n start: this.start,\n end: this.end,\n } as RangeSliderRange);\n } else {\n this.propagateChange(this.start);\n }\n }\n\n public setEnd(value) {\n this.end = value;\n\n this.propagateChange({\n start: this.start,\n end: this.end,\n } as RangeSliderRange);\n }\n\n public round(n, increment, offset) {\n if (increment > 0) {\n return Math.round((n - offset) / increment) * increment + offset;\n }\n\n return n;\n }\n\n public startToPercentage() {\n return Math.round(((this.start - this.min) / (this.max - this.min)) * 100);\n }\n\n public percentageToStart() {\n return Math.round((this.startPercentage / 100) * (this.max - this.min) + Number(this.min));\n }\n\n public endToPercentage() {\n return Math.round(((Number(this.end) - this.min) / (this.max - this.min)) * 100);\n }\n\n public percentageToEnd() {\n return Math.round((this.endPercentage / 100) * (this.max - this.min) + Number(this.min));\n }\n\n public minimalDistanceNotRespected() {\n return this.minimalDistance >= 0 && this.end && this.start > Number(this.end) - this.minimalDistance;\n }\n\n public calcPercentage(mouseX, width, offsetLeft) {\n const mousePos = mouseX - offsetLeft;\n\n let newPercentage = Math.round((mousePos / width) * 100);\n\n if (newPercentage > 100) {\n newPercentage = 100;\n }\n\n if (newPercentage < 0) {\n newPercentage = 0;\n }\n\n return newPercentage;\n }\n}\n","<div class=\"a-range-slider\">\n <div class=\"a-range-slider__labels\">\n <div class=\"a-range-slider__label\">{{ label }}</div>\n </div>\n <div class=\"a-range-slider__inner\">\n <div class=\"a-range-slider__tickmarks\">\n <div *ngFor=\"let step of steps; let i = index\" class=\"a-range-slider__tickmark\"></div>\n </div>\n <div\n [style.left]=\"endPercentage ? startPercentage + '%' : false\"\n [style.width]=\"endPercentage ? endPercentage - startPercentage + '%' : startPercentage + '%'\"\n class=\"a-range-slider__bar\"\n ></div>\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'start', $event)\"\n (mousedown)=\"onMouseDown('start')\"\n (touchstart)=\"onMouseDown('start')\"\n [style.left]=\"startPercentage + '%'\"\n class=\"a-range-slider__handle\"\n [attr.aria-label]=\"ariaLabelMin\"\n tabindex=\"0\"\n >\n </span>\n\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'end', $event)\"\n (mousedown)=\"onMouseDown('end')\"\n (touchstart)=\"onMouseDown('end')\"\n *ngIf=\"end\"\n [style.left]=\"endPercentage + '%'\"\n class=\"a-range-slider__handle\"\n name=\"a-range-slider__handle__end\"\n [attr.aria-label]=\"ariaLabelMax\"\n tabindex=\"0\"\n >\n </span>\n </div>\n <div class=\"a-range-slider__descriptions\">\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ min }}{{ labelAfter }}</div>\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ max }}{{ labelAfter }}</div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RangeSliderComponent } from './components/range-slider/range-slider.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [RangeSliderComponent],\n exports: [RangeSliderComponent],\n})\nexport class RangeSliderModule {}\n","import { Component, EventEmitter, forwardRef, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { debounce, get } from 'lodash-es';\n\nimport { FlyoutSize } from '@acpaas-ui/ngx-flyout';\n\nimport { SearchFilterChoice } from '../../types/search-filter.types';\n\n@Component({\n selector: 'aui-search-filter',\n templateUrl: './search-filter.component.html',\n styleUrls: ['./search-filter.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SearchFilterComponent), // eslint-disable-line @angular-eslint/no-forward-ref\n multi: true,\n },\n ],\n})\nexport class SearchFilterComponent implements OnChanges, ControlValueAccessor {\n @Input() public id: string;\n @Input() public name: string;\n @Input() public flyoutSize = FlyoutSize.Small;\n @Input() public flyoutAlign;\n @Input() public label: string;\n @Input() public description: string;\n @Input() public labelDeselect = 'Alles deselecteren';\n @Input() public labelResults = 'Resultaten';\n @Input() public labelNoResults = 'Geen resultaten gevonden.';\n @Input() public choices: SearchFilterChoice[] = [];\n @Input() public remote: boolean;\n @Input() public inputDelay = 150;\n @Input() public onSelect: () => void = () => {};\n @Input() public onClear: () => void = () => {};\n @Input() public size: 'large' | 'default' | 'small' | 'tiny' = 'default';\n\n @Output() public search: EventEmitter<string> = new EventEmitter<string>();\n\n public query = '';\n public selectedItems: string[] = [];\n public filteredChoices: SearchFilterChoice[] = [];\n public loading = false;\n public isDisabled = false;\n public closeDisabled = false;\n\n public filterDataFromSearch: () => {};\n\n constructor() {\n this.filterDataFromSearch = debounce(this.filterData.bind(this), this.inputDelay);\n }\n\n public updateModel: (_) => any = () => {};\n\n public writeValue(value: string[]): void {\n this.selectedItems = Array.isArray(value) ? value : [];\n }\n\n public registerOnChange(onChange: (_) => any): void {\n this.updateModel = onChange;\n }\n\n public registerOnTouched(): void {}\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const choices = get(changes, 'choices.currentValue', null);\n\n if (!choices) {\n return;\n }\n\n if (this.remote) {\n this.filteredChoices = [...choices];\n this.loading = false;\n } else {\n this.filterData();\n }\n }\n\n public filterData(): void {\n if (this.remote) {\n this.loading = true;\n\n return this.search.emit(this.query);\n }\n\n this.filterChoices();\n }\n\n public clear(): void {\n this.selectedItems = [];\n this.query = '';\n this.filterData();\n this.updateModel(this.selectedItems);\n this.onClear();\n }\n\n public toggleSelected(choice: string): void {\n const selected = this.selectedItems.indexOf(choice);\n\n if (selected < 0) {\n this.selectedItems = this.selectedItems.concat(choice);\n } else {\n this.selectedItems = [...this.selectedItems.slice(0, selected), ...this.selectedItems.slice(selected + 1)];\n }\n\n this.updateModel(this.selectedItems);\n this.onSelect();\n }\n\n private filterChoices(): void {\n this.filteredChoices = this.choices.filter((choice: SearchFilterChoice) => {\n return (\n this.selectedItems.indexOf(choice.value) < 0 &&\n choice.label.toLowerCase().indexOf(this.query.toLowerCase()) >= 0\n );\n });\n }\n\n public hasClose(): boolean {\n return this.filteredChoices?.length && this.query?.length > 1;\n }\n\n public getSelectedLabels(): string {\n if (!this.selectedItems.length) {\n this.closeDisabled = true;\n return null\n }\n\n else {\n this.closeDisabled = false;\n return this.selectedItems.map((el) => el).join(', ')\n }}\n \n\n}\n","<div [align]=\"flyoutAlign\" [size]=\"flyoutSize\" aria-haspopup=\"listbox\" auiFlyout class=\"m-search-filter\">\n <div\n class=\"a-input\"\n [ngClass]=\"{\n 'a-input--l': size === 'large',\n 'a-input--s': size === 'small',\n 'has-icon-right': hasClose\n }\"\n >\n <label class=\"a-input__label\" for=\"{{ id + '-search' }}\">{{ label }}</label>\n <small class=\"a-input__description\" id=\"{{ id + '-description' }}\">{{ description }}</small>\n <div class=\"m-search-filter__input\">\n <input\n (input)=\"filterDataFromSearch()\"\n [(ngModel)]=\"query\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.disabled]=\"isDisabled ? '' : null\"\n aria-autocomplete=\"list\"\n id=\"{{ id + '-search' }}\"\n name=\"{{ name + '-search' }}\"\n value=\"{{ getSelectedLabels() }}\"\n type=\"text\"\n auiFlyoutAction\n />\n <button\n *ngIf=\"hasClose\"\n [ngClass]=\"{\n 'a-button--l': size === 'large',\n 'a-button--s': size === 'small'\n }\"\n class=\"a-button a-button--outlined has-icon m-search-filter__button a-button--danger\"\n aria-label=\"Zoekopdracht wissen\"\n type=\"button\"\n (click)=\"clear()\"\n [attr.disabled]=\"isDisabled || closeDisabled ? '' : null\"\n >\n <aui-icon name=\"ai-close\"></aui-icon>\n </button>\n <aui-icon *ngIf=\"!hasClose\" name=\"ai-close\"></aui-icon>\n </div>\n </div>\n <div auiFlyoutZone class=\"m-search-filter__search m-search-filter__search--scroll\">\n <p *ngIf=\"labelResults\" class=\"h6 m-search-filter__results-title u-margin-bottom-xs\">{{ labelResults }}</p>\n <div *ngIf=\"loading\" class=\"u-text-center u-padding a-spinner\"></div>\n <ul *ngIf=\"!loading\" class=\"a-checkbox-list a-checkbox-list--flushed\">\n <li *ngIf=\"!filteredChoices.length\" class=\"a-checkbox-list__item\">\n <p class=\"u-margin-xs\">{{ labelNoResults }}</p>\n </li>\n <li *ngFor=\"let choice of filteredChoices; index as i\" class=\"a-checkbox-list__item\">\n <div class=\"a-input a-checkbox-list__checkbox\">\n <div class=\"a-input__checkbox\">\n <input\n (change)=\"toggleSelected(choice.label)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [checked]=\"selectedItems.indexOf(choice.label) >= 0\"\n id=\"{{ 'checkbox--' + i + '--' + id }}\"\n name=\"{{ 'checkbox--' + i + '--' + id }}\"\n type=\"checkbox\"\n />\n <label for=\"{{ 'checkbox--' + i + '--' + id }}\">{{ choice.label }}</label>\n </div>\n </div>\n </li>\n </ul>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FlyoutModule } from '@acpaas-ui/ngx-flyout';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport { SearchFilterComponent } from './components/search-filter/search-filter.component';\n\n@NgModule({\n imports: [CommonModule, FlyoutModule, FormsModule, IconModule],\n declarations: [SearchFilterComponent],\n exports: [SearchFilterComponent],\n})\nexport class SearchFilterModule {}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport class TimePickerValidators {\n // time `hh:mm` 24h format\n public static minTime(time: string): ValidatorFn {\n const validator = (control: AbstractControl): { [key: string]: any } => {\n const splittedControlValue = control.value.split(':');\n const controlHours = parseInt(splittedControlValue[0], 10);\n const controlMinutes = parseInt(splittedControlValue[1], 10);\n const splittedMinTime = time.split(':');\n const minHours = parseInt(splittedMinTime[0], 10);\n const minMinutes = parseInt(splittedMinTime[1], 10);\n\n // Don't throw error --> use Validator.required\n if (isNaN(controlHours) || isNaN(controlMinutes) || isNaN(minHours) || isNaN(minMinutes)) {\n return null;\n }\n\n if (minHours < controlHours) {\n return null;\n }\n\n if (minHours === controlHours && minMinutes <= controlMinutes) {\n return null;\n }\n\n return { minTime: { value: control.value } };\n };\n\n return validator;\n }\n\n // time `hh:mm` 24h format\n public static maxTime(time: string): ValidatorFn {\n const validator = (control: AbstractControl): { [key: string]: any } => {\n const splittedControlValue = control.value.split(':');\n const controlHours = parseInt(splittedControlValue[0], 10);\n const controlMinutes = parseInt(splittedControlValue[1], 10);\n const splittedMinTime = time.split(':');\n const maxHours = parseInt(splittedMinTime[0], 10);\n const maxMinutes = parseInt(splittedMinTime[1], 10);\n\n // Don't throw error --> use Validator.required\n if (isNaN(controlHours) || isNaN(controlMinutes) || isNaN(maxHours) || isNaN(maxMinutes)) {\n return null;\n }\n\n if (maxHours > controlHours) {\n return null;\n }\n\n if (maxHours === controlHours && maxMinutes >= controlMinutes) {\n return null;\n }\n\n return { maxTime: { value: control.value } };\n };\n\n return validator;\n }\n}\n","export enum TimepickerInputSize {\n Auto = 'auto',\n Small = 'small',\n Large = 'large',\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DateHelper } from '@acpaas-ui/ngx-utils';\n\nimport { TimepickerInputSize } from '../../types/timepicker.types';\n\n@Component({\n selector: 'aui-timepicker',\n templateUrl: './timepicker.component.html',\n styleUrls: ['./timepicker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimepickerComponent), // eslint-disable-line @angular-eslint/no-forward-ref\n multi: true,\n },\n ],\n})\nexport class TimepickerComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() public id = 'aui-timepicker-' + Math.random().toString(36).substring(2);\n @Input() public hoursPlaceholder = 'uu';\n @Input() public minutesPlaceholder = 'mm';\n @Input() public hasError = false;\n @Input() public size: TimepickerInputSize = TimepickerInputSize.Auto;\n @Input() public ariaLabelHours = 'Uur';\n @Input() public ariaLabelMinutes = 'Minuten';\n @Input() public label: string;\n @Input() public description: string;\n\n public shouldUseFallback = false;\n public minutes: string[] = [];\n public hours: string[] = [];\n public updateModel: (value: string) => any;\n\n public timeControl = new UntypedFormControl();\n public fallbackForm: UntypedFormGroup;\n\n private componentDestroyed$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private formBuilder: UntypedFormBuilder, private renderer: Renderer2) {}\n\n public ngOnInit() {\n this.shouldUseFallback = this.supportsNativeTimepicker();\n this.minutes = this.getMinutes();\n this.hours = this.getHours();\n\n this.fallbackForm = this.formBuilder.group({\n hours: null,\n minutes: null,\n });\n\n this.fallbackForm.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((formData) => {\n if (formData.hours && formData.minutes) {\n this.updateModel(`${formData.hours}:${formData.minutes}`);\n } else {\n this.updateModel('');\n }\n });\n\n this.timeControl.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((time) => {\n this.updateModel(time);\n });\n }\n\n public ngOnDestroy() {\n this.componentDestroyed$.next(true);\n this.componentDestroyed$.complete();\n }\n\n public writeValue(value: any): void {\n this.timeControl.setValue(value, { emitEvent: false });\n\n if (value) {\n const splitted = value.split(':');\n this.fallbackForm.get('hours').setValue(splitted[0], { emitEvent: false });\n this.fallbackForm.get('minutes').setValue(splitted[1], { emitEvent: false });\n }\n }\n\n public registerOnChange(onChange): void {\n this.updateModel = onChange;\n }\n\n public registerOnTouched(): void {}\n\n public setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this.timeControl.disable({ emitEvent: false });\n this.fallbackForm.disable({ emitEvent: false });\n } else {\n this.timeControl.enable({ emitEvent: false });\n this.fallbackForm.enable({ emitEvent: false });\n }\n }\n\n private supportsNativeTimepicker(): boolean {\n const element = this.renderer.createElement('input');\n element.type = 'time';\n\n return element.type === 'text';\n }\n\n private getMinutes(): string[] {\n return Array(60)\n .fill('')\n .map((value, index) => {\n return DateHelper.addLeadingZero(index);\n });\n }\n\n private getHours(): string[] {\n return Array(24)\n .fill('')\n .map((value, index) => {\n return DateHelper.addLeadingZero(index);\n });\n }\n}\n","<div class=\"m-timepicker\">\n <div *ngIf=\"!shouldUseFallback\" [class]=\"'a-input--' + size\" [ngClass]=\"{ 'has-error': hasError }\" class=\"a-input\">\n <label class=\"a-input__label\" for=\"id\" *ngIf=\"label\">{{ label }}</label>\n <small class=\"a-input__description\" id=\"id\" [ngClass]=\"{ 'is-error': hasError }\" *ngIf=\"description\">\n <aui-icon *ngIf=\"hasError\" name=\"ai-alert-triangle\"></aui-icon>\n {{ description }}</small\n >\n <input\n [attr.aria-label]=\"ariaLabelHours + ':' + ariaLabelMinutes\"\n [formControl]=\"timeControl\"\n [id]=\"id\"\n type=\"time\"\n />\n </div>\n\n <div *ngIf=\"shouldUseFallback\" [formGroup]=\"fallbackForm\">\n <div [class]=\"'a-input--' + size\" [ngClass]=\"{ 'has-error': hasError }\" class=\"a-input has-icon-right\">\n <div class=\"a-input__wrapper\">\n <select [attr.aria-label]=\"ariaLabelHours\" [id]=\"id\" formControlName=\"hours\">\n <option disabled value=\"null\">{{ hoursPlaceholder }}</option>\n <option *ngFor=\"let hour of hours\" [value]=\"hour\">{{ hour }}</option>\n </select>\n <aui-icon name=\"ai-arrow-down-1\"></aui-icon>\n </div>\n </div>\n\n <div [class]=\"'a-input--' + size\" [ngClass]=\"{ 'has-error': hasError }\" class=\"a-input has-icon-right\">\n <div class=\"a-input__wrapper\">\n <select [attr.aria-label]=\"ariaLabelMinutes\" formControlName=\"minutes\">\n <option disabled value=\"null\">{{ minutesPlaceholder }}</option>\n <option *ngFor=\"let minute of minutes\" [value]=\"minute\">{{ minute }}</option>\n </select>\n <aui-icon name=\"ai-arrow-down-1\"></aui-icon>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport { TimepickerComponent } from './components/timepicker/timepicker.component';\n\n@NgModule({\n imports: [ReactiveFormsModule, CommonModule, IconModule],\n declarations: [TimepickerComponent],\n exports: [TimepickerComponent],\n providers: [],\n})\nexport class TimepickerModule {}\n","import { InjectionToken } from '@angular/core';\n\nimport { UploadOptions, ValidationMessages } from './types/upload.types';\n\nexport const UPLOAD_OPTIONS_DEFAULT: UploadOptions = {\n allowedMimeTypes: [],\n allowedFileTypes: [],\n autoUpload: false,\n maxFileSize: 0, // 0 is infinite\n queueLimit: 0, // 0 is infinite\n type: 'drop',\n url: '',\n};\n\nexport const UPLOAD_VALIDATION_MESSAGES = new InjectionToken<ValidationMessages>('uploadValidationMessages');\n","import { Observable } from 'rxjs';\n\nimport { UPLOAD_OPTIONS_DEFAULT } from '../upload.conf';\nimport { InvalidFile, UploadOptions } from '../types/upload.types';\n\nexport class Uploader {\n public options: UploadOptions = UPLOAD_OPTIONS_DEFAULT;\n\n constructor(options?: UploadOptions) {\n this.setOptions(options);\n }\n\n public setOptions(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n public uploadFiles(files: File[]): Observable<{ progress: number, data: object[] }> {\n const formData: FormData = this.filesToFormData(files);\n\n return new Observable(observer => {\n const xhr = new XMLHttpRequest();\n\n // Progress callback\n xhr.upload.addEventListener('progress', (e) => {\n if (e.lengthComputable) {\n const percentComplete = e.loaded / e.total;\n\n observer.next({\n progress: percentComplete,\n data: null,\n });\n }\n });\n\n // Complete callback\n xhr.onload = () => {\n observer.next({\n progress: 1,\n data: xhr.response,\n });\n // observer.complete();\n };\n\n // Do request\n xhr.responseType = 'json';\n xhr.open('post', this.options.url);\n xhr.send(formData);\n });\n }\n\n public validateFiles(files) {\n const validFiles: File[] = [];\n const invalidFiles: InvalidFile[] = [];\n\n if (files.length > 0) {\n\n for (const file of files) {\n const errors = [];\n\n if (!this.validateFileType(file)) {\n errors.push('INVALID_FILE_TYPE');\n }\n\n if (!this.validateFileSize(file)) {\n errors.push('INVALID_FILE_SIZE');\n }\n\n if (!this.validateMimeType(file)) {\n errors.push('INVALID_MIME_TYPE');\n }\n\n if (errors.length === 0) {\n validFiles.push(file);\n } else {\n invalidFiles.push({\n reasons: errors,\n file,\n });\n }\n }\n }\n\n return {\n validFiles,\n invalidFiles,\n };\n }\n\n protected filesToFormData(files: File[]): FormData {\n const formData = new FormData();\n\n if (!this.options.url || this.options.url === '') {\n throw new Error('Define the upload url.');\n }\n\n for (const file of files) {\n formData.append('file', file);\n }\n\n return formData;\n }\n\n protected getFileExtension(file: File): string {\n return file.name.split('.')[file.name.split('.').length - 1];\n }\n\n protected validateFileType(file: File): boolean {\n const allowedFileTypes = this.options.allowedFileTypes;\n const ext = this.getFileExtension(file);\n\n // Filter defined?\n if (!Array.isArray(allowedFileTypes) || allowedFileTypes.length === 0) {\n return true;\n }\n\n // Make allowedFileTypes case insensitive\n const toUpper = (x) => x.toUpperCase();\n const allowedFileTypesToUpper = allowedFileTypes.map(toUpper);\n\n return allowedFileTypesToUpper.lastIndexOf(ext.toUpperCase()) !== -1;\n }\n\n protected validateFileSize(file: File): boolean {\n const maxFileSize = this.options.maxFileSize;\n\n // Filter defined?\n if (!maxFileSize || maxFileSize === 0) {\n return true;\n }\n\n return maxFileSize > file.size;\n }\n\n protected validateMimeType(file: File): boolean {\n const allowedMimeTypes = this.options.allowedMimeTypes;\n\n // Filter defined?\n if (!Array.isArray(allowedMimeTypes) || allowedMimeTypes.length === 0) {\n return true;\n }\n\n return allowedMimeTypes.lastIndexOf(file.type) !== -1;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { Uploader } from '../../classes/uploader.class';\n\n@Component({\n selector: 'aui-upload-queue',\n templateUrl: './upload-queue.component.html',\n})\nexport class UploadQueueComponent {\n @Input() public files: File[];\n @Input() public uploader: Uploader;\n @Input() public ariaLabelRemove = 'Verwijder';\n @Output() public uploadedFiles: EventEmitter<object[]> = new EventEmitter<object[]>();\n\n public uploadProgress = 0;\n\n public remove(index) {\n this.files.splice(index, 1);\n }\n\n public uploadFiles() {\n const progress = undefined;\n const data = undefined;\n this.uploader.uploadFiles(this.files).subscribe(\n (response) => {\n if (response.progress) {\n this.uploadProgress = Math.floor(response.progress * 100);\n }\n if (response.data) {\n this.uploadedFiles.emit(response.data);\n this.files = [];\n }\n }\n );\n }\n}\n","<ul class=\"m-upload__files u-margin-bottom-xs\">\n <li *ngFor=\"let file of files; let i = index\">\n <aui-icon name=\"ai-common-file-empty\"></aui-icon>\n <span class=\"m-upload__filename\">{{ file.name }}</span>\n\n <button\n (click)=\"remove(i)\"\n class=\"m-upload__delete a-button a-button--text a-button--neutral a-button--s has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-close\" [ariaLabel]=\"ariaLabelRemove\"></aui-icon>\n </button>\n </li>\n</ul>\n\n<button (click)=\"uploadFiles()\" *ngIf=\"files.length > 0\" class=\"a-button\" type=\"button\">Upload</button>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\n\nimport { InvalidFile } from '../../types/upload.types';\nimport { Uploader } from '../../classes/uploader.class';\n\n@Component({\n selector: 'aui-upload-zone',\n styleUrls: ['./upload-zone.component.scss'],\n templateUrl: './upload-zone.component.html',\n})\nexport class UploadZoneComponent implements AfterViewInit {\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\n\n @Input() public uploader: Uploader;\n @Input() public id = '';\n @Input() public accept = [];\n @Input() public capture = '';\n @Input() public ariaId = '';\n @Input() public disabled = false;\n @Input() public multiple = true;\n @Input() public label = '';\n @Input() public description = '';\n\n @Output() public uploadedFiles: EventEmitter<object[]> = new EventEmitter<object[]>();\n @Output() public queuedFiles: EventEmitter<File[]> = new EventEmitter<File[]>();\n @Output() public invalidFiles: EventEmitter<InvalidFile[]> = new EventEmitter<InvalidFile[]>();\n\n public hasDragOver = false;\n public classNames: string;\n public uploadProgress = 0;\n public uploadingFiles: File[];\n public uploadedFilesString: String;\n\n @HostListener('dragover', ['$event'])\n public onDragOver(event: any): void {\n this.preventAndStop(event);\n this.hasDragOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event: any): void {\n this.preventAndStop(event);\n this.hasDragOver = false;\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n this.preventAndStop(event);\n this.hasDragOver = false;\n const files = this.fileListToArray(event.dataTransfer.files);\n this.handleFiles(files);\n }\n\n constructor(private renderer: Renderer2) {}\n\n public triggerFile() {\n this.fileInput.nativeElement.click();\n }\n\n public updateFiles() {\n const files: any[] = this.fileListToArray(this.fileInput.nativeElement.files);\n this.uploadedFilesString = files.map((file) => file.name).join(', ');\n this.handleFiles(files);\n }\n\n public onFileClick(event) {\n // When removing a file make sure you can add it again later\n // See: https://stackoverflow.com/questions/59870335/ng2-file-upload-not-allowing-me-to-add-same-doc-after-ive-removed-it-from-que\n event.target.value = '';\n }\n\n ngAfterViewInit() {\n if (this.multiple !== false) {\n this.renderer.setProperty(this.fileInput.nativeElement, 'multiple', 'multiple');\n }\n if (!!this.accept.length) {\n this.renderer.setProperty(this.fileInput.nativeElement, 'accept', this.accept.join());\n }\n if (this.disabled) {\n this.renderer.setProperty(this.fileInput.nativeElement, 'disabled', 'disabled');\n }\n if (this.capture !== '') {\n this.renderer.setAttribute(this.fileInput.nativeElement, 'capture', this.capture);\n }\n }\n\n protected handleFiles(files) {\n const response = this.uploader.validateFiles(files);\n this.invalidFiles.emit(response.invalidFiles);\n\n if (this.uploader.options.autoUpload && response.validFiles.length > 0) {\n this.uploadFiles(response.validFiles);\n } else {\n this.queuedFiles.emit(response.validFiles);\n }\n }\n\n protected uploadFiles(files) {\n // Reset progress\n this.uploadProgress = 0;\n this.uploadingFiles = files;\n\n // upload\n this.uploader.uploadFiles(files).subscribe(\n (response) => {\n if (response.progress) {\n this.uploadProgress = Math.floor(response.progress * 100);\n }\n if (response.data) {\n this.uploadedFiles.emit(response.data);\n }\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n protected fileListToArray(list: FileList): object[] {\n return Array.from(list);\n }\n\n protected preventAndStop(event: any): any {\n event.preventDefault();\n event.stopPropagation();\n }\n\n public uploadedFilesToString(): string {\n console.log('UPLOADS TO STRING');\n return this.fileInput.nativeElement.files.map((file) => file.name).join('');\n }\n}\n","<div *ngIf=\"uploader.options.type === 'drop'\" [class.is-disabled]=\"disabled\" class=\"m-upload\">\n <div class=\"m-upload__inner\">\n <div class=\"m-upload__dropzone\">\n <input\n #fileInput\n type=\"file\"\n class=\"m-upload__input\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaId\"\n (click)=\"onFileClick($event)\"\n (change)=\"updateFiles()\"\n />\n\n <div *ngIf=\"!uploadProgress || uploadProgress === 0\" class=\"m-upload__content\">\n <label [for]=\"ariaId\" class=\"m-upload__message\">\n {{ label }}\n </label>\n <p class=\"m-upload__uploads u-text-bold\">{{ uploadedFilesString }}</p>\n </div>\n\n <ng-container *ngIf=\"uploadProgress > 0\">\n <p class=\"m-upload__uploads u-text-bold u-margin-bottom-xs\">\n <ng-container *ngFor=\"let file of uploadingFiles; let last = last\">\n {{ file.name }}\n <ng-container *ngIf=\"!last\">,</ng-container>\n </ng-container>\n </p>\n <aui-progress-bar [value]=\"uploadProgress\" max=\"100\"></aui-progress-bar>\n </ng-container>\n </div>\n </div>\n\n <small class=\"m-upload__description\">\n {{ description }}\n </small>\n</div>\n\n<button\n (click)=\"triggerFile()\"\n *ngIf=\"uploader.options.type === 'button'\"\n [disabled]=\"disabled\"\n class=\"a-button m-upload__button\"\n type=\"button\"\n>\n <span [id]=\"ariaId\"><ng-content select=\".m-upload__button\"></ng-content></span>\n <input\n #fileInput\n type=\"file\"\n class=\"m-upload__input\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaId\"\n (click)=\"onFileClick($event)\"\n (change)=\"updateFiles()\"\n />\n</button>\n","import { Inject, Injectable } from '@angular/core';\n\nimport { UPLOAD_VALIDATION_MESSAGES } from '../upload.conf';\n\n@Injectable()\nexport class ValidationMessagesService {\n public INVALID_FILE_TYPE = 'INVALID_FILE_TYPE';\n public INVALID_FILE_SIZE = 'INVALID_FILE_SIZE';\n public INVALID_MIME_TYPE = 'INVALID_MIME_TYPE';\n\n constructor(\n @Inject(UPLOAD_VALIDATION_MESSAGES) private initValues\n ) {\n if (initValues.INVALID_FILE_TYPE) {\n this.INVALID_FILE_TYPE = initValues.INVALID_FILE_TYPE;\n }\n\n if (initValues.INVALID_FILE_SIZE) {\n this.INVALID_FILE_SIZE = initValues.INVALID_FILE_SIZE;\n }\n\n if (initValues.INVALID_MIME_TYPE) {\n this.INVALID_MIME_TYPE = initValues.INVALID_MIME_TYPE;\n }\n }\n}\n\n","import { Component, Input } from '@angular/core';\n\nimport { InvalidFile } from '../../types/upload.types';\n\nimport { ValidationMessagesService } from '../../services/validation-messages.service';\n\n@Component({\n selector: 'aui-validation-list',\n templateUrl: './validation-list.component.html',\n})\nexport class ValidationListComponent {\n @Input() public invalidFiles: InvalidFile[] = [];\n @Input() public ariaLabelRemove = 'Verwijder';\n\n constructor(private messagesService: ValidationMessagesService) {\n }\n\n public remove(index: number): void {\n this.invalidFiles.splice(index, 1);\n }\n\n public formatReasons(reasons: string[]): string {\n const result = [];\n for (const reason of reasons) {\n result.push(this.messagesService[reason]);\n }\n return result.join(', ');\n }\n}\n","<ul class=\"m-upload__files\">\n <li *ngFor=\"let invalidFile of invalidFiles; let i = index\" class=\"is-error\">\n <aui-icon name=\"ai-alert-triangle\"></aui-icon>\n <span class=\"m-upload__filename\">{{ invalidFile.file.name }}</span>\n <span class=\"m-upload__error\">{{ formatReasons(invalidFile.reasons) }}</span>\n\n <button\n (click)=\"remove(i)\"\n class=\"m-upload__delete a-button a-button--text a-button--danger a-button--s has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-close\" [ariaLabel]=\"ariaLabelRemove\"></aui-icon>\n </button>\n </li>\n</ul>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { InvalidFile, UploadOptions } from '../../types/upload.types';\nimport { UPLOAD_OPTIONS_DEFAULT } from '../../upload.conf';\nimport { Uploader } from '../../classes/uploader.class';\n\n@Component({\n selector: 'aui-upload',\n styleUrls: ['./upload.component.scss'],\n templateUrl: './upload.component.html',\n})\nexport class UploadComponent implements OnInit {\n @Input() public id = '';\n @Input() public accept = [];\n @Input() public capture = '';\n @Input() public ariaLabelRemove = 'Verwijder';\n @Input() public disabled = false;\n @Input() public multiple = true;\n @Input() public label = '';\n @Input() public description = '';\n @Input() public options: UploadOptions = UPLOAD_OPTIONS_DEFAULT;\n @Output() public selectUploadedFiles: EventEmitter<object[]> = new EventEmitter<object[]>();\n\n public uploader;\n public ariaId;\n public uploadedFiles: object[] = [];\n public invalidFiles: InvalidFile[] = [];\n public queuedFiles: File[] = [];\n\n public ngOnInit() {\n if (!this.id) {\n this.ariaId = 'aui-upload-' + Math.random().toString(36).substring(2);\n this.id = this.ariaId;\n }\n this.uploader = new Uploader(this.options);\n }\n\n public onUploadedFiles(files: object[]) {\n this.uploadedFiles = this.uploadedFiles.concat(files);\n this.selectUploadedFiles.emit(this.uploadedFiles);\n }\n\n public onInvalidFiles(files: InvalidFile[]) {\n this.invalidFiles = files;\n }\n\n public onQueuedFiles(files: File[]) {\n this.queuedFiles = this.queuedFiles.concat(files);\n }\n}\n","<div class=\"m-upload aui-upload\">\n <aui-upload-zone\n [id]=\"id\"\n [accept]=\"accept\"\n [capture]=\"capture\"\n [ariaId]=\"ariaId\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n [uploader]=\"uploader\"\n (invalidFiles)=\"onInvalidFiles($event)\"\n (queuedFiles)=\"onQueuedFiles($event)\"\n (uploadedFiles)=\"onUploadedFiles($event)\"\n [label]=\"label\"\n [description]=\"description\"\n >\n <div class=\"m-upload__button\">\n <ng-content select=\".m-upload__button\"></ng-content>\n </div>\n </aui-upload-zone>\n <aui-validation-list [ariaLabelRemove]=\"ariaLabelRemove\" [invalidFiles]=\"invalidFiles\"></aui-validation-list>\n <aui-upload-queue\n (uploadedFiles)=\"onUploadedFiles($event)\"\n *ngIf=\"!options?.autoUpload\"\n [ariaLabelRemove]=\"ariaLabelRemove\"\n [files]=\"queuedFiles\"\n [uploader]=\"uploader\"\n ></aui-upload-queue>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { UploadOptions } from '../../types/upload.types';\n\n@Component({\n selector: 'aui-upload-input',\n templateUrl: './upload-input.component.html',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: UploadInputComponent,\n multi: true,\n }],\n})\nexport class UploadInputComponent implements ControlValueAccessor {\n @Input() public options: UploadOptions;\n @Input() public format: any;\n\n public propagateChange = (_: any) => undefined;\n\n public writeValue(value: any) {\n }\n\n public registerOnChange(fn) {\n this.propagateChange = fn;\n }\n\n registerOnTouched() {\n }\n\n public onUpload(files) {\n const data = (this.format ? this.format(files) : files);\n this.propagateChange(data);\n }\n}\n","<aui-upload (selectUploadedFiles)=\"onUpload($event)\" [options]=\"options\">\n <div class=\"m-upload__message\">\n <ng-content select=\".m-upload__message\"></ng-content>\n </div>\n <div class=\"m-upload__description\">\n <ng-content select=\".m-upload__description\"></ng-content>\n </div>\n <div class=\"m-upload__button\">\n <ng-content select=\".m-upload__button\"></ng-content>\n </div>\n</aui-upload>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport { ProgressBarModule } from '@acpaas-ui/ngx-progress-bar';\nimport { UPLOAD_VALIDATION_MESSAGES } from './upload.conf';\nimport { ValidationMessages } from './types/upload.types';\nimport { UploadComponent } from './components/upload/upload.component';\nimport { UploadInputComponent } from './components/upload-input/upload-input.component';\nimport { UploadQueueComponent } from './components/upload-queue/upload-queue.component';\nimport { UploadZoneComponent } from './components/upload-zone/upload-zone.component';\nimport { ValidationListComponent } from './components/validation-list/validation-list.component';\nimport { ValidationMessagesService } from './services/validation-messages.service';\n\n@NgModule({\n imports: [CommonModule, ProgressBarModule, FormsModule, IconModule],\n declarations: [\n UploadComponent,\n UploadInputComponent,\n UploadQueueComponent,\n UploadZoneComponent,\n ValidationListComponent,\n ],\n exports: [UploadComponent, UploadInputComponent, UploadQueueComponent, UploadZoneComponent, ValidationListComponent],\n providers: [ValidationMessagesService, { provide: UPLOAD_VALIDATION_MESSAGES, useValue: {} }],\n})\nexport class UploadModule {\n static forChild(validationMessages: ValidationMessages = {}): ModuleWithProviders<UploadModule> {\n return {\n ngModule: UploadModule,\n providers: [{ provide: UPLOAD_VALIDATION_MESSAGES, useValue: validationMessages }],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SearchService","i2","i3","i1","i4","i5","i1.ValidationMessagesService","i2.UploadQueueComponent","i3.UploadZoneComponent","i4.ValidationListComponent","i1.UploadComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acpaas-ui-ngx-forms.mjs","sources":["../../src/lib/shared/services/search.service.ts","../../src/lib/auto-complete/components/auto-complete/auto-complete.component.ts","../../src/lib/auto-complete/components/auto-complete/auto-complete.component.html","../../src/lib/auto-complete/auto-complete.module.ts","../../src/lib/datepicker/datepicker.conf.ts","../../src/lib/datepicker/components/datepicker/datepicker.component.ts","../../src/lib/datepicker/components/datepicker/datepicker.component.html","../../src/lib/datepicker/datepicker.module.ts","../../src/lib/range-slider/components/range-slider/range-slider.component.ts","../../src/lib/range-slider/components/range-slider/range-slider.component.html","../../src/lib/range-slider/range-slider.module.ts","../../src/lib/search-filter/components/search-filter/search-filter.component.ts","../../src/lib/search-filter/components/search-filter/search-filter.component.html","../../src/lib/search-filter/search-filter.module.ts","../../src/lib/timepicker/classes/timepicker.validators.ts","../../src/lib/timepicker/types/timepicker.types.ts","../../src/lib/timepicker/components/timepicker/timepicker.component.ts","../../src/lib/timepicker/components/timepicker/timepicker.component.html","../../src/lib/timepicker/timepicker.module.ts","../../src/lib/upload/upload.conf.ts","../../src/lib/upload/classes/uploader.class.ts","../../src/lib/upload/components/upload-queue/upload-queue.component.ts","../../src/lib/upload/components/upload-queue/upload-queue.component.html","../../src/lib/upload/components/upload-zone/upload-zone.component.ts","../../src/lib/upload/components/upload-zone/upload-zone.component.html","../../src/lib/upload/services/validation-messages.service.ts","../../src/lib/upload/components/validation-list/validation-list.component.ts","../../src/lib/upload/components/validation-list/validation-list.component.html","../../src/lib/upload/components/upload/upload.component.ts","../../src/lib/upload/components/upload/upload.component.html","../../src/lib/upload/components/upload-input/upload-input.component.ts","../../src/lib/upload/components/upload-input/upload-input.component.html","../../src/lib/upload/upload.module.ts","../../src/acpaas-ui-ngx-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SearchOptions } from '../types/search.types';\n\n@Injectable()\nexport class SearchService {\n public search(data: any[], options: SearchOptions = {}): any[] {\n const query = options.hasOwnProperty('query') ? options.query : '';\n const minLength = options.hasOwnProperty('minLength') ? options.minLength : 0;\n const key = options.hasOwnProperty('key') ? options.key : '';\n\n if ((!query && options.showAllByDefault) || query.length < minLength) {\n return [...data];\n }\n\n return [...data].filter(item => {\n if (key && !item.hasOwnProperty(key)) {\n return console.error(`\"${key}\" does not exist in item ${JSON.stringify(item, null, 2)}`);\n }\n\n if (key) {\n return this.matchItemWithSearchString(item[key], query);\n }\n\n return this.matchItemWithSearchString(item, query);\n });\n }\n\n private matchItemWithSearchString = (item: any, searchString): boolean => {\n return String(item).toLowerCase().indexOf(searchString.toLowerCase()) > -1;\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { get, isEqual } from 'lodash-es';\nimport { FlyoutDirective, FlyoutZoneDirective } from '@acpaas-ui/ngx-flyout';\nimport { SearchService } from '../../../shared/services/search.service';\n\n@Component({\n selector: 'aui-auto-complete',\n styleUrls: ['./auto-complete.component.scss'],\n templateUrl: './auto-complete.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutoCompleteComponent), // eslint-disable-line\n multi: true,\n },\n ],\n})\nexport class AutoCompleteComponent implements ControlValueAccessor, OnInit, OnChanges {\n @Input() id: string;\n @Input() placeholder: string;\n @Input() description: string;\n @Input() inputLabel: string;\n @Input() results: any[] = []; // The values for the selectable list\n @Input() data: any[] = []; // The values to search in when remote search is disabled\n @Input() remote = false; // Disable or enamble remote search\n @Input() minCharacters = 0;\n @Input() clearInvalid = false;\n @Input() searchIncentiveText: string;\n @Input() loadingText: string;\n @Input() noResultsText: string;\n @Input() showAllByDefault = false;\n @Input() autoComplete = 'off';\n\n // specify which label/value props to use\n @Input() label: string;\n @Input() value: string;\n\n // Eventemitter for searchvalue (parent object should update the results with this param)\n @Output() search: EventEmitter<string> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() select: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(FlyoutDirective, { static: true }) flyout: FlyoutDirective;\n @ViewChild(FlyoutZoneDirective, { static: true }) flyoutZone: FlyoutZoneDirective;\n\n @ContentChild(TemplateRef, { static: true }) public template: TemplateRef<any>;\n\n public query = '';\n public index = -1; // index for active element in selectable list, by default -1 (so it starts in the input field)\n public selectedItem: any = null; // keep a backup of the selectedItem\n public searching = false; // track remote search state\n public focused = false;\n public isDisabled = false;\n\n private remoteValue = false;\n\n constructor(private ref: ElementRef, private searchService: SearchService) {}\n\n public updateModel = (_: any) => {};\n\n // CONTROL_VALUE_ACCESSOR interface\n public writeValue(value = '') {\n if (this.value) {\n const selected = this.data.find((item: any) => item[this.value] === value);\n\n if (selected) {\n return (this.query = selected[this.label]);\n }\n\n if (this.remote && !!value) {\n this.remoteValue = true;\n }\n }\n\n this.query = value;\n }\n\n // CONTROL_VALUE_ACCESSOR interface\n public registerOnChange(fn) {\n this.updateModel = fn;\n }\n\n // CONTROL_VALUE_ACCESSOR interface\n public registerOnTouched() {}\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public ngOnInit(): void {\n if (Array.isArray(this.data) && this.data.length > 0 && !this.query && this.showAllByDefault) {\n this.results = [...this.data];\n }\n }\n\n // OnChanges interface\n public ngOnChanges(changes: SimpleChanges): void {\n if (!changes) {\n return;\n }\n\n const newData = get(changes, 'data.currentValue', []);\n if (!isEqual(newData, get(changes, 'data.previousValue', []))) {\n if (this.remote) {\n this.remoteSearch();\n } else {\n this.localSearch();\n }\n }\n\n if (changes.results && changes.results.currentValue) {\n this.searching = false;\n }\n }\n\n public propagateChange(item: any) {\n this.query = item !== null ? (this.label ? item[this.label] : item) : '';\n this.select.emit(item);\n\n if (!item) {\n return;\n }\n\n const key = this.value ? this.value : this.label ? this.label : null;\n this.updateModel(key ? item[key] || '' : item);\n this.selectedItem = item;\n }\n\n /**\n * triggers on input value change\n */\n public doSearch(): void {\n this.index = -1; // reset index\n this.searching = true;\n\n if (this.remote) {\n this.search.emit(this.query); // ask for new remote data\n } else {\n this.localSearch();\n }\n\n this.openFlyout(); // open the flyout when there is a change\n }\n\n /**\n * triggers on selectable-list:select -> onClick event in selectable-list\n */\n public onSelect(item: any): void {\n this.propagateChange(item);\n this.closeFlyout(); // Close the flyout manually\n }\n\n public onFlyoutClosed(): void {\n // there is only 1 result, select it\n if (this.index >= 0 && this.results.length === 1) {\n return this.onSelect(this.results[0]);\n }\n\n // there is no query nor selected item, clear the selected item\n if (!this.query && this.index < 0) {\n return this.onSelect(null);\n }\n\n // reset the query for an invalid query if clearInvalid is true\n if (this.clearInvalid && this.query && !this.results.length && this.index < 0) {\n this.query = this.selectedItem ? (this.label ? this.selectedItem[this.label] : this.selectedItem) : '';\n }\n }\n\n public onKeyArrowDown(): void {\n if (this.index < this.results.length - 1) {\n this.scrollList(1);\n }\n\n this.openFlyout();\n }\n\n public onKeyArrowUp(): void {\n if (this.index >= 0) {\n this.scrollList(-1);\n }\n }\n\n public onKeyEnter(event: Event): void {\n event.preventDefault(); // Do not submit form when selecting an item.\n\n const query = this.index >= 0 ? this.results[this.index] : this.query;\n\n this.propagateChange(query);\n this.closeFlyout();\n }\n\n public onKeyEscape(): void {\n this.closeFlyout();\n }\n\n public onFocus(): void {\n this.focused = true;\n this.openFlyout();\n }\n\n public openFlyout(): void {\n if (this.flyout) {\n this.flyout.open();\n }\n }\n\n public closeFlyout(): void {\n if (this.flyout) {\n this.flyout.close();\n }\n\n this.focused = false;\n }\n\n public localSearch(): void {\n this.results = this.searchService.search(this.data, {\n minLength: this.minCharacters,\n key: this.label,\n query: this.query,\n showAllByDefault: this.showAllByDefault,\n });\n\n if (this.results.length === 1 && this.query === this.results[0][this.label]) {\n this.index = 0;\n }\n\n this.searching = false;\n }\n\n public remoteSearch(): void {\n if (!this.remoteValue || !this.data) {\n return;\n }\n\n const selected = this.data.find((item: any) => {\n if (this.value) {\n return item[this.value] === this.query;\n }\n\n return item === this.query;\n });\n\n if (selected) {\n this.query = this.label ? selected[this.label] : selected;\n } else {\n this.query = '';\n }\n\n this.remoteValue = false;\n }\n\n public scrollList(factor: number): void {\n this.index += factor;\n\n if (!this.flyoutZone) {\n return;\n }\n\n const liItems = this.flyoutZone.element.getElementsByTagName('li');\n const liHeight = liItems[1] ? liItems[1].offsetHeight : liItems[0].offsetHeight;\n const zoneHeight = this.flyoutZone.element.offsetHeight;\n const offset = zoneHeight / liHeight / 2;\n\n this.flyoutZone.element.scrollTop = this.index * liHeight - offset * liHeight;\n }\n}\n","<div\n (closed)=\"onFlyoutClosed()\"\n [toggleClick]=\"false\"\n aria-haspopup=\"listbox\"\n auiFlyout\n class=\"m-flyout m-flyout--scrollable m-flyout--full o-auto-complete\"\n>\n <input\n (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n class=\"a-input\"\n />\n <div *ngIf=\"!isDisabled\" auiFlyoutZone>\n <span *ngIf=\"focused && loadingText && searching\" class=\"a-spinner a-spinner--s u-margin-xs\" role=\"alert\">\n <span class=\"a-spinner__circle\"></span>\n <span class=\"a-spinner__text\">{{ loadingText }}</span>\n </span>\n <span\n *ngIf=\"focused && searchIncentiveText && !searching && !query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\"\n >{{ searchIncentiveText }}</span\n >\n <span\n *ngIf=\"focused && noResultsText && !searching && query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\"\n >{{ noResultsText }}</span\n >\n <aui-selectable-list\n (selected)=\"onSelect($event)\"\n *ngIf=\"results.length > 0 && !(focused && loadingText && searching)\"\n [index]=\"index\"\n [itemTemplate]=\"template\"\n [items]=\"results\"\n [label]=\"label\"\n [search]=\"query\"\n ></aui-selectable-list>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { FlyoutModule } from '@acpaas-ui/ngx-flyout';\nimport { SelectableListModule } from '@acpaas-ui/ngx-selectable-list';\nimport { SearchService } from '../shared/services/search.service';\nimport { AutoCompleteComponent } from './components/auto-complete/auto-complete.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, FlyoutModule, SelectableListModule],\n declarations: [AutoCompleteComponent],\n exports: [AutoCompleteComponent],\n providers: [SearchService],\n})\nexport class AutoCompleteModule {}\n","import { InjectionToken } from '@angular/core';\nimport { DatepickerErrorLabels } from './types/datepicker.types';\n\nexport const DATEPICKER_ERROR_LABELS = new InjectionToken<DatepickerErrorLabels>('errorLabels');\n\nexport const DATEPICKER_DEFAULT_ERROR_LABELS = {\n ERRORS_INVALID_DATE: 'INVALID_DATE',\n ERRORS_INVALID_RANGE: 'INVALID_RANGE',\n};\n\nexport const DATEPICKER_SEPARATOR_CHAR = '/';\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n ControlValueAccessor,\n UntypedFormBuilder,\n UntypedFormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { DateHelper, DateRange } from '@acpaas-ui/ngx-utils';\nimport { TZDate } from '@date-fns/tz';\nimport { FlyoutDirective } from '@acpaas-ui/ngx-flyout';\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n CalendarService,\n DatepickerResult,\n WeekdayLabelsConfig,\n MonthLabelsConfig,\n} from '@acpaas-ui/ngx-calendar';\n\nimport {\n DATEPICKER_SEPARATOR_CHAR,\n DATEPICKER_DEFAULT_ERROR_LABELS,\n DATEPICKER_ERROR_LABELS,\n} from '../../datepicker.conf';\nimport { DatepickerValidationErrors } from '../../types/datepicker.types';\nimport { Interval, IntervalBuilder } from '@acpaas-ui/ngx-utils';\n\n@Component({\n selector: 'aui-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent), // eslint-disable-line @angular-eslint/no-forward-ref\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatepickerComponent), // eslint-disable-line @angular-eslint/no-forward-ref\n multi: true,\n },\n ],\n})\nexport class DatepickerComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {\n @ViewChild(FlyoutDirective, { static: true }) flyout: FlyoutDirective;\n @Input() id: string;\n @Input() name: string;\n @Input() placeholder = 'dd/mm/yyyy';\n @Input() label: string;\n @Input() description: string;\n @Input() range: DateRange;\n @Input()\n min: Date | null;\n @Input()\n max: Date | null;\n @Input() autocomplete: 'off';\n @Input() weekdayLabels: WeekdayLabelsConfig;\n @Input() monthLabels: MonthLabelsConfig;\n @Input() ariaOpenDatepickerLabel = 'Open kalender';\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur = new EventEmitter<Event>();\n\n public formControl: UntypedFormControl;\n public selectedDate: Date;\n public isDisabled = false;\n public interval: Interval.IInterval<Date>;\n\n private componentDestroyed$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n @Inject(CALENDAR_MONTH_LABELS) private moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS,\n @Inject(CALENDAR_WEEKDAY_LABELS) private moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n @Inject(DATEPICKER_ERROR_LABELS) private errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS,\n public calendarService: CalendarService,\n private formBuilder: UntypedFormBuilder,\n private ref: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.createInterval();\n this.formControl = this.formBuilder.control({ value: '', disabled: this.isDisabled });\n this.formControl.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((value) => {\n if (value) {\n const date = DateHelper.parseDate(value, 'dd/MM/yyyy');\n if (date instanceof Date) {\n this.selectedDate = date;\n const brusselsDate = new TZDate(date, 'Europe/Brussels');\n const year = brusselsDate.getFullYear();\n const month = brusselsDate.getMonth();\n const day = brusselsDate.getDate();\n this.onChange(DateHelper.toUtcMidnightInBrussels(year, month, day));\n } else if (typeof date === 'string') {\n this.onChange(value);\n } else {\n this.onChange(value);\n }\n } else {\n this.selectedDate = null;\n this.onChange('');\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.min || changes.max) {\n this.createInterval();\n }\n }\n\n public ngOnDestroy(): void {\n this.componentDestroyed$.next(true);\n this.componentDestroyed$.complete();\n }\n\n private createInterval() {\n if (!this.min && !this.max) {\n return;\n }\n // Create an interval if min/max is filled in\n this.interval = IntervalBuilder.dateInterval(\n this.min ? new Date(this.min) : null,\n this.max ? new Date(this.max) : null\n )\n .not()\n .build();\n }\n\n public writeValue(value: string | Date): void {\n if (typeof value === 'string') {\n if (this.isISODateFormat(value)) {\n this.selectedDate = DateHelper.parseDate(value) as Date;\n } else {\n const parsed = DateHelper.parseDate(value, 'dd/MM/yyyy');\n this.selectedDate = parsed instanceof Date ? parsed : null;\n }\n } else if (value instanceof Date) {\n this.selectedDate = value;\n } else {\n this.selectedDate = null;\n }\n\n const dateString = this.selectedDate ? this.formatDate(this.selectedDate) : '';\n this.formControl.setValue(dateString);\n }\n\n public registerOnChange(onChange: (res: any) => void): void {\n this.onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (_: any) => void): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n\n if (this.formControl) {\n if (isDisabled && this.formControl.enabled) {\n this.formControl.disable();\n } else if (!isDisabled && this.formControl.disabled) {\n this.formControl.enable();\n }\n }\n\n this.ref.markForCheck();\n }\n\n public selectDateFromCalendar(result: DatepickerResult): void {\n if (result.complete) {\n this.formControl.setValue(this.formatDate(result.date));\n this.flyout.close();\n }\n }\n\n public formatDate(date: Date): string {\n return DateHelper.formatDate(date, 'DD/MM/YYYY', {\n leadingZero: true,\n monthLabels: this.monthLabels,\n weekdayLabels: this.weekdayLabels,\n });\n }\n\n public validate(ctrl: UntypedFormControl): DatepickerValidationErrors {\n // no error on empty value (add required validator in app)\n if (ctrl.value === '' || ctrl.value === null) {\n return null;\n }\n\n // throw format error if no valid date was provided\n const date = DateHelper.parseDate(ctrl.value);\n if (!date) {\n return {\n format: this.errorLabels.ERRORS_INVALID_DATE,\n };\n }\n\n // no error if valid date an no range provided\n if (!this.range || !this.range.length) {\n return null;\n }\n\n // throw error when out of range\n const range = this.calendarService.getRangeForDate(date, this.range);\n\n return range.indexOf(date.getDate()) >= 0\n ? {\n range: this.errorLabels.ERRORS_INVALID_RANGE,\n }\n : null;\n }\n\n public handleBlur(e: Event): void {\n this.blur.emit(e);\n this.onTouched(e);\n }\n\n private onChange: (res: any) => void = () => undefined;\n\n private onTouched: (_: any) => void = () => undefined;\n\n private isISODateFormat(value: string) {\n if (typeof value !== 'string') {\n return false;\n }\n return value.match(/\\d{4}-\\d{2}-\\d{2}T.*/);\n }\n}\n","<div aria-haspopup=\"grid\" auiFlyout class=\"aui-datepicker a-input has-icon-right\">\n <label class=\"a-input__label\" for=\"{{ id }}\" *ngIf=\"label\">{{ label }}</label>\n <small class=\"a-input__description\" *ngIf=\"description\"> {{ description }}</small>\n <div class=\"a-input__wrapper\">\n <input\n (blur)=\"handleBlur($event)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [autocomplete]=\"autocomplete\"\n [formControl]=\"formControl\"\n id=\"{{ id }}\"\n label=\"Pick date\"\n description=\"Description\"\n name=\"{{ name }}\"\n placeholder=\"{{ placeholder }}\"\n type=\"text\"\n />\n <ng-container *ngIf=\"isDisabled\">\n <aui-icon\n name=\"ai-calendar\"\n />\n </ng-container>\n <ng-container *ngIf=\"!isDisabled\">\n <aui-icon\n auiFlyoutAction\n [openOnFocus]=\"false\"\n name=\"ai-calendar\"\n className=\"is-clickable\"\n role=\"button\"\n [attr.aria-label]=\"ariaOpenDatepickerLabel\"\n tabindex=\"0\"\n />\n </ng-container>\n\n <ng-container *ngIf=\"!isDisabled\">\n <div auiFlyoutZone class=\"m-datepicker m-datepicker--fixed\" role=\"dialog\">\n <aui-calendar\n (selectDate)=\"selectDateFromCalendar($event)\"\n [range]=\"range\"\n [selectedDate]=\"selectedDate\"\n [interval]=\"interval\"\n [weekdayLabels]=\"weekdayLabels\"\n [monthLabels]=\"monthLabels\"\n ></aui-calendar>\n </div>\n </ng-container>\n </div>\n</div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { FlyoutModule } from '@acpaas-ui/ngx-flyout';\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n CalendarModule,\n} from '@acpaas-ui/ngx-calendar';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\n\nimport { DatepickerComponent } from './components/datepicker/datepicker.component';\nimport { DATEPICKER_DEFAULT_ERROR_LABELS, DATEPICKER_ERROR_LABELS } from './datepicker.conf';\nimport { DatepickerErrorLabels } from './types/datepicker.types';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CalendarModule, IconModule, FlyoutModule],\n declarations: [DatepickerComponent],\n exports: [DatepickerComponent],\n providers: [\n {\n provide: CALENDAR_WEEKDAY_LABELS,\n useValue: CALENDAR_DEFAULT_WEEKDAY_LABELS,\n },\n { provide: CALENDAR_MONTH_LABELS, useValue: CALENDAR_DEFAULT_MONTH_LABELS },\n {\n provide: DATEPICKER_ERROR_LABELS,\n useValue: DATEPICKER_DEFAULT_ERROR_LABELS,\n },\n ],\n})\nexport class DatepickerModule {\n static forChild(\n weekdayLabels: string[],\n monthLabels: string[],\n errorLabels: DatepickerErrorLabels\n ): ModuleWithProviders<DatepickerModule> {\n return {\n ngModule: DatepickerModule,\n providers: [\n { provide: CALENDAR_WEEKDAY_LABELS, useValue: weekdayLabels },\n { provide: CALENDAR_MONTH_LABELS, useValue: monthLabels },\n { provide: DATEPICKER_ERROR_LABELS, useValue: errorLabels },\n ],\n };\n }\n}\n","import { Component, ElementRef, forwardRef, HostBinding, HostListener, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { RangeSliderRange } from '../../types/range-slider.types';\n\n@Component({\n selector: 'aui-range-slider',\n templateUrl: './range-slider.component.html',\n styleUrls: ['./range-slider.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSliderComponent), // eslint-disable-line\n multi: true,\n },\n ],\n})\nexport class RangeSliderComponent implements OnInit, ControlValueAccessor {\n @HostBinding('class.m-range-slider') coreBranding = true;\n @Input() public min = 0;\n @Input() public max = 100;\n @Input() public minimalDistance = 1;\n @Input() public step = 0;\n @Input() public label = '';\n @Input() public labelBefore = '';\n @Input() public labelAfter = '';\n @Input() public ariaLabelMin = 'Minimum';\n @Input() public ariaLabelMax = 'Maximum';\n public start = 0;\n public end: number | boolean = false;\n public steps = [];\n public startPercentage;\n public endPercentage;\n public active = null;\n public isDisabled = false;\n public hasFocus = false;\n public click = false;\n\n constructor(private elRef: ElementRef) {}\n\n @HostBinding('class.is-disabled') get disabledClass() {\n return this.isDisabled;\n }\n\n public propagateChange = (value: number | RangeSliderRange) => {};\n\n public ngOnInit() {\n if (this.step > 0) {\n for (let i = 0; i <= this.max; i += Number(this.step)) {\n this.steps.push(i);\n }\n }\n\n this.startPercentage = this.startToPercentage();\n\n if (this.end) {\n this.endPercentage = this.endToPercentage();\n }\n }\n\n public writeValue(value: any) {\n if (value && value.start) {\n this.start = value.start;\n } else if (!isNaN(value) && value !== '') {\n this.start = Number(value);\n } else {\n this.setStart(Number(this.min));\n }\n\n this.startPercentage = this.startToPercentage();\n\n if (value && value.end) {\n this.end = value.end;\n this.endPercentage = this.endToPercentage();\n }\n }\n\n public registerOnTouched() {}\n\n public registerOnChange(fn) {\n this.propagateChange = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public onMouseDown(handle) {\n if (this.isDisabled) {\n return;\n }\n\n this.hasFocus = true;\n this.active = handle;\n }\n\n public toggleFocus(hasFocus, element, $event) {\n if (this.isDisabled) {\n return;\n }\n\n $event.preventDefault();\n this.hasFocus = hasFocus;\n this.active = element;\n }\n\n @HostListener('document:keydown', ['$event'])\n public onKeyDown($event) {\n if (!this.hasFocus) {\n return;\n }\n\n const key = $event.keyCode;\n const keyCodes = {\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n };\n\n if (\n Object.keys(keyCodes)\n .map((e) => keyCodes[e])\n .indexOf(key) === -1\n ) {\n return;\n }\n let increment = this.minimalDistance;\n\n if (this.step > 0) {\n increment = Number(this.step);\n }\n\n const processValue = (dir) => {\n let newValue = this.active === 'start' ? this.start : Number(this.end);\n if (dir === 'up') {\n newValue += increment;\n } else {\n newValue -= increment;\n }\n let newPercentage = ((newValue - this.min) / (this.max - this.min)) * 100;\n\n if (newPercentage > 100) {\n newPercentage = 100;\n }\n if (newPercentage < 0) {\n newPercentage = 0;\n }\n return newPercentage;\n };\n\n switch (key) {\n case keyCodes.right:\n case keyCodes.up:\n this.updateHandle(processValue('up'));\n $event.preventDefault();\n break;\n case keyCodes.left:\n case keyCodes.down:\n this.updateHandle(processValue('down'));\n $event.preventDefault();\n break;\n case keyCodes.end:\n this.updateHandle(100);\n $event.preventDefault();\n break;\n case keyCodes.home:\n this.updateHandle(0);\n $event.preventDefault();\n break;\n }\n }\n\n @HostListener('touchend', ['$event'])\n @HostListener('mouseup', ['$event'])\n public onMouseUp(event) {\n if (this.active === 'start') {\n this.setStart(this.round(this.start, this.step, 0));\n this.startPercentage = this.startToPercentage();\n }\n\n if (this.active === 'end') {\n this.setEnd(this.round(this.end, this.step, 0));\n this.endPercentage = this.endToPercentage();\n }\n this.click = false;\n }\n\n @HostListener('touchstart', ['$event'])\n @HostListener('mousedown', ['$event'])\n mouseDown(event) {\n this.click = true;\n }\n\n @HostListener('touchmove', ['$event'])\n @HostListener('mousemove', ['$event'])\n public onMouseMove(event: MouseEvent | TouchEvent) {\n if (!this.active || !this.click) {\n return;\n }\n\n event.preventDefault(); // Do not select text while sliding\n\n const x =\n (event as MouseEvent).x !== undefined ? (event as MouseEvent).x : (event as TouchEvent).targetTouches[0].pageX;\n const rect = this.elRef.nativeElement.getBoundingClientRect();\n const newPercentage = this.calcPercentage(x, rect.width, rect.left);\n this.updateHandle(newPercentage);\n }\n\n public updateHandle(newPercentage) {\n if (this.active === 'start') {\n this.startPercentage = newPercentage;\n this.setStart(this.percentageToStart());\n\n if (this.minimalDistanceNotRespected()) {\n this.setStart(Number(this.end) - Number(this.minimalDistance));\n this.startPercentage = this.startToPercentage();\n }\n }\n\n if (this.active === 'end' && this.endPercentage) {\n this.endPercentage = newPercentage;\n this.setEnd(this.percentageToEnd());\n\n if (this.minimalDistanceNotRespected()) {\n this.setEnd(Number(this.start) + Number(this.minimalDistance));\n this.endPercentage = this.endToPercentage();\n }\n }\n }\n\n // ---------- HELPERS ---------- //\n public setStart(value) {\n this.start = value;\n\n if (this.end) {\n this.propagateChange({\n start: this.start,\n end: this.end,\n } as RangeSliderRange);\n } else {\n this.propagateChange(this.start);\n }\n }\n\n public setEnd(value) {\n this.end = value;\n\n this.propagateChange({\n start: this.start,\n end: this.end,\n } as RangeSliderRange);\n }\n\n public round(n, increment, offset) {\n if (increment > 0) {\n return Math.round((n - offset) / increment) * increment + offset;\n }\n\n return n;\n }\n\n public startToPercentage() {\n return Math.round(((this.start - this.min) / (this.max - this.min)) * 100);\n }\n\n public percentageToStart() {\n return Math.round((this.startPercentage / 100) * (this.max - this.min) + Number(this.min));\n }\n\n public endToPercentage() {\n return Math.round(((Number(this.end) - this.min) / (this.max - this.min)) * 100);\n }\n\n public percentageToEnd() {\n return Math.round((this.endPercentage / 100) * (this.max - this.min) + Number(this.min));\n }\n\n public minimalDistanceNotRespected() {\n return this.minimalDistance >= 0 && this.end && this.start > Number(this.end) - this.minimalDistance;\n }\n\n public calcPercentage(mouseX, width, offsetLeft) {\n const mousePos = mouseX - offsetLeft;\n\n let newPercentage = Math.round((mousePos / width) * 100);\n\n if (newPercentage > 100) {\n newPercentage = 100;\n }\n\n if (newPercentage < 0) {\n newPercentage = 0;\n }\n\n return newPercentage;\n }\n}\n","<div class=\"a-range-slider\">\n <div class=\"a-range-slider__labels\">\n <div class=\"a-range-slider__label\">{{ label }}</div>\n </div>\n <div class=\"a-range-slider__inner\">\n <div class=\"a-range-slider__tickmarks\">\n <div *ngFor=\"let step of steps; let i = index\" class=\"a-range-slider__tickmark\"></div>\n </div>\n <div\n [style.left]=\"endPercentage ? startPercentage + '%' : false\"\n [style.width]=\"endPercentage ? endPercentage - startPercentage + '%' : startPercentage + '%'\"\n class=\"a-range-slider__bar\"\n ></div>\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'start', $event)\"\n (mousedown)=\"onMouseDown('start')\"\n (touchstart)=\"onMouseDown('start')\"\n [style.left]=\"startPercentage + '%'\"\n class=\"a-range-slider__handle\"\n [attr.aria-label]=\"ariaLabelMin\"\n tabindex=\"0\"\n >\n </span>\n\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'end', $event)\"\n (mousedown)=\"onMouseDown('end')\"\n (touchstart)=\"onMouseDown('end')\"\n *ngIf=\"end\"\n [style.left]=\"endPercentage + '%'\"\n class=\"a-range-slider__handle\"\n name=\"a-range-slider__handle__end\"\n [attr.aria-label]=\"ariaLabelMax\"\n tabindex=\"0\"\n >\n </span>\n </div>\n <div class=\"a-range-slider__descriptions\">\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ min }}{{ labelAfter }}</div>\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ max }}{{ labelAfter }}</div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RangeSliderComponent } from './components/range-slider/range-slider.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [RangeSliderComponent],\n exports: [RangeSliderComponent],\n})\nexport class RangeSliderModule {}\n","import { Component, EventEmitter, forwardRef, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { debounce, get } from 'lodash-es';\n\nimport { FlyoutSize } from '@acpaas-ui/ngx-flyout';\n\nimport { SearchFilterChoice } from '../../types/search-filter.types';\n\n@Component({\n selector: 'aui-search-filter',\n templateUrl: './search-filter.component.html',\n styleUrls: ['./search-filter.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SearchFilterComponent), // eslint-disable-line @angular-eslint/no-forward-ref\n multi: true,\n },\n ],\n})\nexport class SearchFilterComponent implements OnChanges, ControlValueAccessor {\n @Input() public id: string;\n @Input() public name: string;\n @Input() public flyoutSize = FlyoutSize.Small;\n @Input() public flyoutAlign;\n @Input() public label: string;\n @Input() public description: string;\n @Input() public labelDeselect = 'Alles deselecteren';\n @Input() public labelResults = 'Resultaten';\n @Input() public labelNoResults = 'Geen resultaten gevonden.';\n @Input() public choices: SearchFilterChoice[] = [];\n @Input() public remote: boolean;\n @Input() public inputDelay = 150;\n @Input() public onSelect: () => void = () => {};\n @Input() public onClear: () => void = () => {};\n @Input() public size: 'large' | 'default' | 'small' | 'tiny' = 'default';\n\n @Output() public search: EventEmitter<string> = new EventEmitter<string>();\n\n public query = '';\n public selectedItems: string[] = [];\n public filteredChoices: SearchFilterChoice[] = [];\n public loading = false;\n public isDisabled = false;\n public closeDisabled = false;\n\n public filterDataFromSearch: () => {};\n\n constructor() {\n this.filterDataFromSearch = debounce(this.filterData.bind(this), this.inputDelay);\n }\n\n public updateModel: (_) => any = () => {};\n\n public writeValue(value: string[]): void {\n this.selectedItems = Array.isArray(value) ? value : [];\n }\n\n public registerOnChange(onChange: (_) => any): void {\n this.updateModel = onChange;\n }\n\n public registerOnTouched(): void {}\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const choices = get(changes, 'choices.currentValue', null);\n\n if (!choices) {\n return;\n }\n\n if (this.remote) {\n this.filteredChoices = [...choices];\n this.loading = false;\n } else {\n this.filterData();\n }\n }\n\n public filterData(): void {\n if (this.remote) {\n this.loading = true;\n\n return this.search.emit(this.query);\n }\n\n this.filterChoices();\n }\n\n public clear(): void {\n this.selectedItems = [];\n this.query = '';\n this.filterData();\n this.updateModel(this.selectedItems);\n this.onClear();\n }\n\n public toggleSelected(choice: string): void {\n const selected = this.selectedItems.indexOf(choice);\n\n if (selected < 0) {\n this.selectedItems = this.selectedItems.concat(choice);\n } else {\n this.selectedItems = [...this.selectedItems.slice(0, selected), ...this.selectedItems.slice(selected + 1)];\n }\n\n this.updateModel(this.selectedItems);\n this.onSelect();\n }\n\n private filterChoices(): void {\n this.filteredChoices = this.choices.filter((choice: SearchFilterChoice) => {\n return (\n this.selectedItems.indexOf(choice.value) < 0 &&\n choice.label.toLowerCase().indexOf(this.query.toLowerCase()) >= 0\n );\n });\n }\n\n public hasClose(): boolean {\n return this.filteredChoices?.length && this.query?.length > 1;\n }\n\n public getSelectedLabels(): string {\n if (!this.selectedItems.length) {\n this.closeDisabled = true;\n return null\n }\n\n else {\n this.closeDisabled = false;\n return this.selectedItems.map((el) => el).join(', ')\n }}\n \n\n}\n","<div [align]=\"flyoutAlign\" [size]=\"flyoutSize\" aria-haspopup=\"listbox\" auiFlyout class=\"m-search-filter\">\n <div\n class=\"a-input\"\n [ngClass]=\"{\n 'a-input--l': size === 'large',\n 'a-input--s': size === 'small',\n 'has-icon-right': hasClose\n }\"\n >\n <label class=\"a-input__label\" for=\"{{ id + '-search' }}\">{{ label }}</label>\n <small class=\"a-input__description\" id=\"{{ id + '-description' }}\">{{ description }}</small>\n <div class=\"m-search-filter__input\">\n <input\n (input)=\"filterDataFromSearch()\"\n [(ngModel)]=\"query\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.disabled]=\"isDisabled ? '' : null\"\n aria-autocomplete=\"list\"\n id=\"{{ id + '-search' }}\"\n name=\"{{ name + '-search' }}\"\n value=\"{{ getSelectedLabels() }}\"\n type=\"text\"\n auiFlyoutAction\n />\n <button\n *ngIf=\"hasClose\"\n [ngClass]=\"{\n 'a-button--l': size === 'large',\n 'a-button--s': size === 'small'\n }\"\n class=\"a-button a-button--outlined has-icon m-search-filter__button a-button--danger\"\n aria-label=\"Zoekopdracht wissen\"\n type=\"button\"\n (click)=\"clear()\"\n [attr.disabled]=\"isDisabled || closeDisabled ? '' : null\"\n >\n <aui-icon name=\"ai-close\"></aui-icon>\n </button>\n <aui-icon *ngIf=\"!hasClose\" name=\"ai-close\"></aui-icon>\n </div>\n </div>\n <div auiFlyoutZone class=\"m-search-filter__search m-search-filter__search--scroll\">\n <p *ngIf=\"labelResults\" class=\"h6 m-search-filter__results-title u-margin-bottom-xs\">{{ labelResults }}</p>\n <div *ngIf=\"loading\" class=\"u-text-center u-padding a-spinner\"></div>\n <ul *ngIf=\"!loading\" class=\"a-checkbox-list a-checkbox-list--flushed\">\n <li *ngIf=\"!filteredChoices.length\" class=\"a-checkbox-list__item\">\n <p class=\"u-margin-xs\">{{ labelNoResults }}</p>\n </li>\n <li *ngFor=\"let choice of filteredChoices; index as i\" class=\"a-checkbox-list__item\">\n <div class=\"a-input a-checkbox-list__checkbox\">\n <div class=\"a-input__checkbox\">\n <input\n (change)=\"toggleSelected(choice.label)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [checked]=\"selectedItems.indexOf(choice.label) >= 0\"\n id=\"{{ 'checkbox--' + i + '--' + id }}\"\n name=\"{{ 'checkbox--' + i + '--' + id }}\"\n type=\"checkbox\"\n />\n <label for=\"{{ 'checkbox--' + i + '--' + id }}\">{{ choice.label }}</label>\n </div>\n </div>\n </li>\n </ul>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FlyoutModule } from '@acpaas-ui/ngx-flyout';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport { SearchFilterComponent } from './components/search-filter/search-filter.component';\n\n@NgModule({\n imports: [CommonModule, FlyoutModule, FormsModule, IconModule],\n declarations: [SearchFilterComponent],\n exports: [SearchFilterComponent],\n})\nexport class SearchFilterModule {}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport class TimePickerValidators {\n // time `hh:mm` 24h format\n public static minTime(time: string): ValidatorFn {\n const validator = (control: AbstractControl): { [key: string]: any } => {\n const splittedControlValue = control.value.split(':');\n const controlHours = parseInt(splittedControlValue[0], 10);\n const controlMinutes = parseInt(splittedControlValue[1], 10);\n const splittedMinTime = time.split(':');\n const minHours = parseInt(splittedMinTime[0], 10);\n const minMinutes = parseInt(splittedMinTime[1], 10);\n\n // Don't throw error --> use Validator.required\n if (isNaN(controlHours) || isNaN(controlMinutes) || isNaN(minHours) || isNaN(minMinutes)) {\n return null;\n }\n\n if (minHours < controlHours) {\n return null;\n }\n\n if (minHours === controlHours && minMinutes <= controlMinutes) {\n return null;\n }\n\n return { minTime: { value: control.value } };\n };\n\n return validator;\n }\n\n // time `hh:mm` 24h format\n public static maxTime(time: string): ValidatorFn {\n const validator = (control: AbstractControl): { [key: string]: any } => {\n const splittedControlValue = control.value.split(':');\n const controlHours = parseInt(splittedControlValue[0], 10);\n const controlMinutes = parseInt(splittedControlValue[1], 10);\n const splittedMinTime = time.split(':');\n const maxHours = parseInt(splittedMinTime[0], 10);\n const maxMinutes = parseInt(splittedMinTime[1], 10);\n\n // Don't throw error --> use Validator.required\n if (isNaN(controlHours) || isNaN(controlMinutes) || isNaN(maxHours) || isNaN(maxMinutes)) {\n return null;\n }\n\n if (maxHours > controlHours) {\n return null;\n }\n\n if (maxHours === controlHours && maxMinutes >= controlMinutes) {\n return null;\n }\n\n return { maxTime: { value: control.value } };\n };\n\n return validator;\n }\n}\n","export enum TimepickerInputSize {\n Auto = 'auto',\n Small = 'small',\n Large = 'large',\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport {\n ControlValueAccessor,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DateHelper } from '@acpaas-ui/ngx-utils';\n\nimport { TimepickerInputSize } from '../../types/timepicker.types';\n\n@Component({\n selector: 'aui-timepicker',\n templateUrl: './timepicker.component.html',\n styleUrls: ['./timepicker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimepickerComponent), // eslint-disable-line @angular-eslint/no-forward-ref\n multi: true,\n },\n ],\n})\nexport class TimepickerComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() public id = 'aui-timepicker-' + Math.random().toString(36).substring(2);\n @Input() public hoursPlaceholder = 'uu';\n @Input() public minutesPlaceholder = 'mm';\n @Input() public hasError = false;\n @Input() public size: TimepickerInputSize = TimepickerInputSize.Auto;\n @Input() public ariaLabelHours = 'Uur';\n @Input() public ariaLabelMinutes = 'Minuten';\n @Input() public label: string;\n @Input() public description: string;\n\n public shouldUseFallback = false;\n public minutes: string[] = [];\n public hours: string[] = [];\n public updateModel: (value: string) => any;\n\n public timeControl = new UntypedFormControl();\n public fallbackForm: UntypedFormGroup;\n\n private componentDestroyed$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private formBuilder: UntypedFormBuilder, private renderer: Renderer2) {}\n\n public ngOnInit() {\n this.shouldUseFallback = this.supportsNativeTimepicker();\n this.minutes = this.getMinutes();\n this.hours = this.getHours();\n\n this.fallbackForm = this.formBuilder.group({\n hours: null,\n minutes: null,\n });\n\n this.fallbackForm.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((formData) => {\n if (formData.hours && formData.minutes) {\n this.updateModel(`${formData.hours}:${formData.minutes}`);\n } else {\n this.updateModel('');\n }\n });\n\n this.timeControl.valueChanges.pipe(takeUntil(this.componentDestroyed$)).subscribe((time) => {\n this.updateModel(time);\n });\n }\n\n public ngOnDestroy() {\n this.componentDestroyed$.next(true);\n this.componentDestroyed$.complete();\n }\n\n public writeValue(value: any): void {\n this.timeControl.setValue(value, { emitEvent: false });\n\n if (value) {\n const splitted = value.split(':');\n this.fallbackForm.get('hours').setValue(splitted[0], { emitEvent: false });\n this.fallbackForm.get('minutes').setValue(splitted[1], { emitEvent: false });\n }\n }\n\n public registerOnChange(onChange): void {\n this.updateModel = onChange;\n }\n\n public registerOnTouched(): void {}\n\n public setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this.timeControl.disable({ emitEvent: false });\n this.fallbackForm.disable({ emitEvent: false });\n } else {\n this.timeControl.enable({ emitEvent: false });\n this.fallbackForm.enable({ emitEvent: false });\n }\n }\n\n private supportsNativeTimepicker(): boolean {\n const element = this.renderer.createElement('input');\n element.type = 'time';\n\n return element.type === 'text';\n }\n\n private getMinutes(): string[] {\n return Array(60)\n .fill('')\n .map((value, index) => {\n return DateHelper.addLeadingZero(index);\n });\n }\n\n private getHours(): string[] {\n return Array(24)\n .fill('')\n .map((value, index) => {\n return DateHelper.addLeadingZero(index);\n });\n }\n}\n","<div class=\"m-timepicker\">\n <div *ngIf=\"!shouldUseFallback\" [class]=\"'a-input--' + size\" [ngClass]=\"{ 'has-error': hasError }\" class=\"a-input\">\n <label class=\"a-input__label\" for=\"id\" *ngIf=\"label\">{{ label }}</label>\n <small class=\"a-input__description\" id=\"id\" [ngClass]=\"{ 'is-error': hasError }\" *ngIf=\"description\">\n <aui-icon *ngIf=\"hasError\" name=\"ai-alert-triangle\"></aui-icon>\n {{ description }}</small\n >\n <input\n [attr.aria-label]=\"ariaLabelHours + ':' + ariaLabelMinutes\"\n [formControl]=\"timeControl\"\n [id]=\"id\"\n type=\"time\"\n />\n </div>\n\n <div *ngIf=\"shouldUseFallback\" [formGroup]=\"fallbackForm\">\n <div [class]=\"'a-input--' + size\" [ngClass]=\"{ 'has-error': hasError }\" class=\"a-input has-icon-right\">\n <div class=\"a-input__wrapper\">\n <select [attr.aria-label]=\"ariaLabelHours\" [id]=\"id\" formControlName=\"hours\">\n <option disabled value=\"null\">{{ hoursPlaceholder }}</option>\n <option *ngFor=\"let hour of hours\" [value]=\"hour\">{{ hour }}</option>\n </select>\n <aui-icon name=\"ai-arrow-down-1\"></aui-icon>\n </div>\n </div>\n\n <div [class]=\"'a-input--' + size\" [ngClass]=\"{ 'has-error': hasError }\" class=\"a-input has-icon-right\">\n <div class=\"a-input__wrapper\">\n <select [attr.aria-label]=\"ariaLabelMinutes\" formControlName=\"minutes\">\n <option disabled value=\"null\">{{ minutesPlaceholder }}</option>\n <option *ngFor=\"let minute of minutes\" [value]=\"minute\">{{ minute }}</option>\n </select>\n <aui-icon name=\"ai-arrow-down-1\"></aui-icon>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport { TimepickerComponent } from './components/timepicker/timepicker.component';\n\n@NgModule({\n imports: [ReactiveFormsModule, CommonModule, IconModule],\n declarations: [TimepickerComponent],\n exports: [TimepickerComponent],\n providers: [],\n})\nexport class TimepickerModule {}\n","import { InjectionToken } from '@angular/core';\n\nimport { UploadOptions, ValidationMessages } from './types/upload.types';\n\nexport const UPLOAD_OPTIONS_DEFAULT: UploadOptions = {\n allowedMimeTypes: [],\n allowedFileTypes: [],\n autoUpload: false,\n maxFileSize: 0, // 0 is infinite\n queueLimit: 0, // 0 is infinite\n type: 'drop',\n url: '',\n};\n\nexport const UPLOAD_VALIDATION_MESSAGES = new InjectionToken<ValidationMessages>('uploadValidationMessages');\n","import { Observable } from 'rxjs';\n\nimport { UPLOAD_OPTIONS_DEFAULT } from '../upload.conf';\nimport { InvalidFile, UploadOptions } from '../types/upload.types';\n\nexport class Uploader {\n public options: UploadOptions = UPLOAD_OPTIONS_DEFAULT;\n\n constructor(options?: UploadOptions) {\n this.setOptions(options);\n }\n\n public setOptions(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n public uploadFiles(files: File[]): Observable<{ progress: number, data: object[] }> {\n const formData: FormData = this.filesToFormData(files);\n\n return new Observable(observer => {\n const xhr = new XMLHttpRequest();\n\n // Progress callback\n xhr.upload.addEventListener('progress', (e) => {\n if (e.lengthComputable) {\n const percentComplete = e.loaded / e.total;\n\n observer.next({\n progress: percentComplete,\n data: null,\n });\n }\n });\n\n // Complete callback\n xhr.onload = () => {\n observer.next({\n progress: 1,\n data: xhr.response,\n });\n // observer.complete();\n };\n\n // Do request\n xhr.responseType = 'json';\n xhr.open('post', this.options.url);\n xhr.send(formData);\n });\n }\n\n public validateFiles(files) {\n const validFiles: File[] = [];\n const invalidFiles: InvalidFile[] = [];\n\n if (files.length > 0) {\n\n for (const file of files) {\n const errors = [];\n\n if (!this.validateFileType(file)) {\n errors.push('INVALID_FILE_TYPE');\n }\n\n if (!this.validateFileSize(file)) {\n errors.push('INVALID_FILE_SIZE');\n }\n\n if (!this.validateMimeType(file)) {\n errors.push('INVALID_MIME_TYPE');\n }\n\n if (errors.length === 0) {\n validFiles.push(file);\n } else {\n invalidFiles.push({\n reasons: errors,\n file,\n });\n }\n }\n }\n\n return {\n validFiles,\n invalidFiles,\n };\n }\n\n protected filesToFormData(files: File[]): FormData {\n const formData = new FormData();\n\n if (!this.options.url || this.options.url === '') {\n throw new Error('Define the upload url.');\n }\n\n for (const file of files) {\n formData.append('file', file);\n }\n\n return formData;\n }\n\n protected getFileExtension(file: File): string {\n return file.name.split('.')[file.name.split('.').length - 1];\n }\n\n protected validateFileType(file: File): boolean {\n const allowedFileTypes = this.options.allowedFileTypes;\n const ext = this.getFileExtension(file);\n\n // Filter defined?\n if (!Array.isArray(allowedFileTypes) || allowedFileTypes.length === 0) {\n return true;\n }\n\n // Make allowedFileTypes case insensitive\n const toUpper = (x) => x.toUpperCase();\n const allowedFileTypesToUpper = allowedFileTypes.map(toUpper);\n\n return allowedFileTypesToUpper.lastIndexOf(ext.toUpperCase()) !== -1;\n }\n\n protected validateFileSize(file: File): boolean {\n const maxFileSize = this.options.maxFileSize;\n\n // Filter defined?\n if (!maxFileSize || maxFileSize === 0) {\n return true;\n }\n\n return maxFileSize > file.size;\n }\n\n protected validateMimeType(file: File): boolean {\n const allowedMimeTypes = this.options.allowedMimeTypes;\n\n // Filter defined?\n if (!Array.isArray(allowedMimeTypes) || allowedMimeTypes.length === 0) {\n return true;\n }\n\n return allowedMimeTypes.lastIndexOf(file.type) !== -1;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { Uploader } from '../../classes/uploader.class';\n\n@Component({\n selector: 'aui-upload-queue',\n templateUrl: './upload-queue.component.html',\n})\nexport class UploadQueueComponent {\n @Input() public files: File[];\n @Input() public uploader: Uploader;\n @Input() public ariaLabelRemove = 'Verwijder';\n @Output() public uploadedFiles: EventEmitter<object[]> = new EventEmitter<object[]>();\n\n public uploadProgress = 0;\n\n public remove(index) {\n this.files.splice(index, 1);\n }\n\n public uploadFiles() {\n const progress = undefined;\n const data = undefined;\n this.uploader.uploadFiles(this.files).subscribe(\n (response) => {\n if (response.progress) {\n this.uploadProgress = Math.floor(response.progress * 100);\n }\n if (response.data) {\n this.uploadedFiles.emit(response.data);\n this.files = [];\n }\n }\n );\n }\n}\n","<ul class=\"m-upload__files u-margin-bottom-xs\">\n <li *ngFor=\"let file of files; let i = index\">\n <aui-icon name=\"ai-common-file-empty\"></aui-icon>\n <span class=\"m-upload__filename\">{{ file.name }}</span>\n\n <button\n (click)=\"remove(i)\"\n class=\"m-upload__delete a-button a-button--text a-button--neutral a-button--s has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-close\" [ariaLabel]=\"ariaLabelRemove\"></aui-icon>\n </button>\n </li>\n</ul>\n\n<button (click)=\"uploadFiles()\" *ngIf=\"files.length > 0\" class=\"a-button\" type=\"button\">Upload</button>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\n\nimport { InvalidFile } from '../../types/upload.types';\nimport { Uploader } from '../../classes/uploader.class';\n\n@Component({\n selector: 'aui-upload-zone',\n styleUrls: ['./upload-zone.component.scss'],\n templateUrl: './upload-zone.component.html',\n})\nexport class UploadZoneComponent implements AfterViewInit {\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\n\n @Input() public uploader: Uploader;\n @Input() public id = '';\n @Input() public accept = [];\n @Input() public capture = '';\n @Input() public ariaId = '';\n @Input() public disabled = false;\n @Input() public multiple = true;\n @Input() public label = '';\n @Input() public description = '';\n\n @Output() public uploadedFiles: EventEmitter<object[]> = new EventEmitter<object[]>();\n @Output() public queuedFiles: EventEmitter<File[]> = new EventEmitter<File[]>();\n @Output() public invalidFiles: EventEmitter<InvalidFile[]> = new EventEmitter<InvalidFile[]>();\n\n public hasDragOver = false;\n public classNames: string;\n public uploadProgress = 0;\n public uploadingFiles: File[];\n public uploadedFilesString: String;\n\n @HostListener('dragover', ['$event'])\n public onDragOver(event: any): void {\n this.preventAndStop(event);\n this.hasDragOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event: any): void {\n this.preventAndStop(event);\n this.hasDragOver = false;\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n this.preventAndStop(event);\n this.hasDragOver = false;\n const files = this.fileListToArray(event.dataTransfer.files);\n this.handleFiles(files);\n }\n\n constructor(private renderer: Renderer2) {}\n\n public triggerFile() {\n this.fileInput.nativeElement.click();\n }\n\n public updateFiles() {\n const files: any[] = this.fileListToArray(this.fileInput.nativeElement.files);\n this.uploadedFilesString = files.map((file) => file.name).join(', ');\n this.handleFiles(files);\n }\n\n public onFileClick(event) {\n // When removing a file make sure you can add it again later\n // See: https://stackoverflow.com/questions/59870335/ng2-file-upload-not-allowing-me-to-add-same-doc-after-ive-removed-it-from-que\n event.target.value = '';\n }\n\n ngAfterViewInit() {\n if (this.multiple !== false) {\n this.renderer.setProperty(this.fileInput.nativeElement, 'multiple', 'multiple');\n }\n if (!!this.accept.length) {\n this.renderer.setProperty(this.fileInput.nativeElement, 'accept', this.accept.join());\n }\n if (this.disabled) {\n this.renderer.setProperty(this.fileInput.nativeElement, 'disabled', 'disabled');\n }\n if (this.capture !== '') {\n this.renderer.setAttribute(this.fileInput.nativeElement, 'capture', this.capture);\n }\n }\n\n protected handleFiles(files) {\n const response = this.uploader.validateFiles(files);\n this.invalidFiles.emit(response.invalidFiles);\n\n if (this.uploader.options.autoUpload && response.validFiles.length > 0) {\n this.uploadFiles(response.validFiles);\n } else {\n this.queuedFiles.emit(response.validFiles);\n }\n }\n\n protected uploadFiles(files) {\n // Reset progress\n this.uploadProgress = 0;\n this.uploadingFiles = files;\n\n // upload\n this.uploader.uploadFiles(files).subscribe(\n (response) => {\n if (response.progress) {\n this.uploadProgress = Math.floor(response.progress * 100);\n }\n if (response.data) {\n this.uploadedFiles.emit(response.data);\n }\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n protected fileListToArray(list: FileList): object[] {\n return Array.from(list);\n }\n\n protected preventAndStop(event: any): any {\n event.preventDefault();\n event.stopPropagation();\n }\n\n public uploadedFilesToString(): string {\n console.log('UPLOADS TO STRING');\n return this.fileInput.nativeElement.files.map((file) => file.name).join('');\n }\n}\n","<div *ngIf=\"uploader.options.type === 'drop'\" [class.is-disabled]=\"disabled\" class=\"m-upload\">\n <div class=\"m-upload__inner\">\n <div class=\"m-upload__dropzone\">\n <input\n #fileInput\n type=\"file\"\n class=\"m-upload__input\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaId\"\n (click)=\"onFileClick($event)\"\n (change)=\"updateFiles()\"\n />\n\n <div *ngIf=\"!uploadProgress || uploadProgress === 0\" class=\"m-upload__content\">\n <label [for]=\"ariaId\" class=\"m-upload__message\">\n {{ label }}\n </label>\n <p class=\"m-upload__uploads u-text-bold\">{{ uploadedFilesString }}</p>\n </div>\n\n <ng-container *ngIf=\"uploadProgress > 0\">\n <p class=\"m-upload__uploads u-text-bold u-margin-bottom-xs\">\n <ng-container *ngFor=\"let file of uploadingFiles; let last = last\">\n {{ file.name }}\n <ng-container *ngIf=\"!last\">,</ng-container>\n </ng-container>\n </p>\n <aui-progress-bar [value]=\"uploadProgress\" max=\"100\"></aui-progress-bar>\n </ng-container>\n </div>\n </div>\n\n <small class=\"m-upload__description\">\n {{ description }}\n </small>\n</div>\n\n<button\n (click)=\"triggerFile()\"\n *ngIf=\"uploader.options.type === 'button'\"\n [disabled]=\"disabled\"\n class=\"a-button m-upload__button\"\n type=\"button\"\n>\n <span [id]=\"ariaId\"><ng-content select=\".m-upload__button\"></ng-content></span>\n <input\n #fileInput\n type=\"file\"\n class=\"m-upload__input\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaId\"\n (click)=\"onFileClick($event)\"\n (change)=\"updateFiles()\"\n />\n</button>\n","import { Inject, Injectable } from '@angular/core';\n\nimport { UPLOAD_VALIDATION_MESSAGES } from '../upload.conf';\n\n@Injectable()\nexport class ValidationMessagesService {\n public INVALID_FILE_TYPE = 'INVALID_FILE_TYPE';\n public INVALID_FILE_SIZE = 'INVALID_FILE_SIZE';\n public INVALID_MIME_TYPE = 'INVALID_MIME_TYPE';\n\n constructor(\n @Inject(UPLOAD_VALIDATION_MESSAGES) private initValues\n ) {\n if (initValues.INVALID_FILE_TYPE) {\n this.INVALID_FILE_TYPE = initValues.INVALID_FILE_TYPE;\n }\n\n if (initValues.INVALID_FILE_SIZE) {\n this.INVALID_FILE_SIZE = initValues.INVALID_FILE_SIZE;\n }\n\n if (initValues.INVALID_MIME_TYPE) {\n this.INVALID_MIME_TYPE = initValues.INVALID_MIME_TYPE;\n }\n }\n}\n\n","import { Component, Input } from '@angular/core';\n\nimport { InvalidFile } from '../../types/upload.types';\n\nimport { ValidationMessagesService } from '../../services/validation-messages.service';\n\n@Component({\n selector: 'aui-validation-list',\n templateUrl: './validation-list.component.html',\n})\nexport class ValidationListComponent {\n @Input() public invalidFiles: InvalidFile[] = [];\n @Input() public ariaLabelRemove = 'Verwijder';\n\n constructor(private messagesService: ValidationMessagesService) {\n }\n\n public remove(index: number): void {\n this.invalidFiles.splice(index, 1);\n }\n\n public formatReasons(reasons: string[]): string {\n const result = [];\n for (const reason of reasons) {\n result.push(this.messagesService[reason]);\n }\n return result.join(', ');\n }\n}\n","<ul class=\"m-upload__files\">\n <li *ngFor=\"let invalidFile of invalidFiles; let i = index\" class=\"is-error\">\n <aui-icon name=\"ai-alert-triangle\"></aui-icon>\n <span class=\"m-upload__filename\">{{ invalidFile.file.name }}</span>\n <span class=\"m-upload__error\">{{ formatReasons(invalidFile.reasons) }}</span>\n\n <button\n (click)=\"remove(i)\"\n class=\"m-upload__delete a-button a-button--text a-button--danger a-button--s has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-close\" [ariaLabel]=\"ariaLabelRemove\"></aui-icon>\n </button>\n </li>\n</ul>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { InvalidFile, UploadOptions } from '../../types/upload.types';\nimport { UPLOAD_OPTIONS_DEFAULT } from '../../upload.conf';\nimport { Uploader } from '../../classes/uploader.class';\n\n@Component({\n selector: 'aui-upload',\n styleUrls: ['./upload.component.scss'],\n templateUrl: './upload.component.html',\n})\nexport class UploadComponent implements OnInit {\n @Input() public id = '';\n @Input() public accept = [];\n @Input() public capture = '';\n @Input() public ariaLabelRemove = 'Verwijder';\n @Input() public disabled = false;\n @Input() public multiple = true;\n @Input() public label = '';\n @Input() public description = '';\n @Input() public options: UploadOptions = UPLOAD_OPTIONS_DEFAULT;\n @Output() public selectUploadedFiles: EventEmitter<object[]> = new EventEmitter<object[]>();\n\n public uploader;\n public ariaId;\n public uploadedFiles: object[] = [];\n public invalidFiles: InvalidFile[] = [];\n public queuedFiles: File[] = [];\n\n public ngOnInit() {\n if (!this.id) {\n this.ariaId = 'aui-upload-' + Math.random().toString(36).substring(2);\n this.id = this.ariaId;\n }\n this.uploader = new Uploader(this.options);\n }\n\n public onUploadedFiles(files: object[]) {\n this.uploadedFiles = this.uploadedFiles.concat(files);\n this.selectUploadedFiles.emit(this.uploadedFiles);\n }\n\n public onInvalidFiles(files: InvalidFile[]) {\n this.invalidFiles = files;\n }\n\n public onQueuedFiles(files: File[]) {\n this.queuedFiles = this.queuedFiles.concat(files);\n }\n}\n","<div class=\"m-upload aui-upload\">\n <aui-upload-zone\n [id]=\"id\"\n [accept]=\"accept\"\n [capture]=\"capture\"\n [ariaId]=\"ariaId\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n [uploader]=\"uploader\"\n (invalidFiles)=\"onInvalidFiles($event)\"\n (queuedFiles)=\"onQueuedFiles($event)\"\n (uploadedFiles)=\"onUploadedFiles($event)\"\n [label]=\"label\"\n [description]=\"description\"\n >\n <div class=\"m-upload__button\">\n <ng-content select=\".m-upload__button\"></ng-content>\n </div>\n </aui-upload-zone>\n <aui-validation-list [ariaLabelRemove]=\"ariaLabelRemove\" [invalidFiles]=\"invalidFiles\"></aui-validation-list>\n <aui-upload-queue\n (uploadedFiles)=\"onUploadedFiles($event)\"\n *ngIf=\"!options?.autoUpload\"\n [ariaLabelRemove]=\"ariaLabelRemove\"\n [files]=\"queuedFiles\"\n [uploader]=\"uploader\"\n ></aui-upload-queue>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { UploadOptions } from '../../types/upload.types';\n\n@Component({\n selector: 'aui-upload-input',\n templateUrl: './upload-input.component.html',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: UploadInputComponent,\n multi: true,\n }],\n})\nexport class UploadInputComponent implements ControlValueAccessor {\n @Input() public options: UploadOptions;\n @Input() public format: any;\n\n public propagateChange = (_: any) => undefined;\n\n public writeValue(value: any) {\n }\n\n public registerOnChange(fn) {\n this.propagateChange = fn;\n }\n\n registerOnTouched() {\n }\n\n public onUpload(files) {\n const data = (this.format ? this.format(files) : files);\n this.propagateChange(data);\n }\n}\n","<aui-upload (selectUploadedFiles)=\"onUpload($event)\" [options]=\"options\">\n <div class=\"m-upload__message\">\n <ng-content select=\".m-upload__message\"></ng-content>\n </div>\n <div class=\"m-upload__description\">\n <ng-content select=\".m-upload__description\"></ng-content>\n </div>\n <div class=\"m-upload__button\">\n <ng-content select=\".m-upload__button\"></ng-content>\n </div>\n</aui-upload>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport { ProgressBarModule } from '@acpaas-ui/ngx-progress-bar';\nimport { UPLOAD_VALIDATION_MESSAGES } from './upload.conf';\nimport { ValidationMessages } from './types/upload.types';\nimport { UploadComponent } from './components/upload/upload.component';\nimport { UploadInputComponent } from './components/upload-input/upload-input.component';\nimport { UploadQueueComponent } from './components/upload-queue/upload-queue.component';\nimport { UploadZoneComponent } from './components/upload-zone/upload-zone.component';\nimport { ValidationListComponent } from './components/validation-list/validation-list.component';\nimport { ValidationMessagesService } from './services/validation-messages.service';\n\n@NgModule({\n imports: [CommonModule, ProgressBarModule, FormsModule, IconModule],\n declarations: [\n UploadComponent,\n UploadInputComponent,\n UploadQueueComponent,\n UploadZoneComponent,\n ValidationListComponent,\n ],\n exports: [UploadComponent, UploadInputComponent, UploadQueueComponent, UploadZoneComponent, ValidationListComponent],\n providers: [ValidationMessagesService, { provide: UPLOAD_VALIDATION_MESSAGES, useValue: {} }],\n})\nexport class UploadModule {\n static forChild(validationMessages: ValidationMessages = {}): ModuleWithProviders<UploadModule> {\n return {\n ngModule: UploadModule,\n providers: [{ provide: UPLOAD_VALIDATION_MESSAGES, useValue: validationMessages }],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SearchService","i2","i3","i1","i4","i5","i1.ValidationMessagesService","i2.UploadQueueComponent","i3.UploadZoneComponent","i4.ValidationListComponent","i1.UploadComponent"],"mappings":"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"}
|