@acpaas-ui/ngx-forms 5.2.0 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"acpaas-ui-ngx-forms.js","sources":["ng://@acpaas-ui/ngx-forms/lib/mask/directives/mask.directive.ts","ng://@acpaas-ui/ngx-forms/lib/mask/mask.module.ts","ng://@acpaas-ui/ngx-forms/lib/shared/services/search.service.ts","ng://@acpaas-ui/ngx-forms/lib/auto-complete/components/auto-complete/auto-complete.component.ts","ng://@acpaas-ui/ngx-forms/lib/auto-complete/auto-complete.module.ts","ng://@acpaas-ui/ngx-forms/lib/datepicker/datepicker.conf.ts","ng://@acpaas-ui/ngx-forms/lib/datepicker/components/datepicker/datepicker.component.ts","ng://@acpaas-ui/ngx-forms/lib/datepicker/datepicker.module.ts","ng://@acpaas-ui/ngx-forms/lib/range-slider/components/range-slider/range-slider.component.ts","ng://@acpaas-ui/ngx-forms/lib/range-slider/range-slider.module.ts","ng://@acpaas-ui/ngx-forms/lib/search-filter/components/search-filter/search-filter.component.ts","ng://@acpaas-ui/ngx-forms/lib/search-filter/search-filter.module.ts","ng://@acpaas-ui/ngx-forms/lib/timepicker/classes/timepicker.validators.ts","ng://@acpaas-ui/ngx-forms/lib/timepicker/types/timepicker.types.ts","ng://@acpaas-ui/ngx-forms/lib/timepicker/components/timepicker/timepicker.component.ts","ng://@acpaas-ui/ngx-forms/lib/timepicker/timepicker.module.ts","ng://@acpaas-ui/ngx-forms/lib/upload/upload.conf.ts","ng://@acpaas-ui/ngx-forms/lib/upload/classes/uploader.class.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/upload/upload.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/upload-input/upload-input.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/upload-queue/upload-queue.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/upload-zone/upload-zone.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/services/validation-messages.service.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/validation-list/validation-list.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/upload.module.ts","ng://@acpaas-ui/ngx-forms/lib/wysiwyg/wysiwyg.conf.ts","ng://@acpaas-ui/ngx-forms/lib/wysiwyg/components/wysiwyg/wysiwyg.component.ts","ng://@acpaas-ui/ngx-forms/lib/wysiwyg/wysiwyg.module.ts"],"sourcesContent":["import { Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport Inputmask from 'inputmask';\n\n@Directive({\n selector: '[auiMask]',\n})\nexport class MaskDirective implements OnChanges {\n @Input() public auiMask: string;\n\n constructor(private ref: ElementRef) {\n }\n\n public ngOnChanges(): void {\n this.setMask(this.auiMask);\n }\n\n private setMask(mask): void {\n Inputmask(mask).mask(this.ref.nativeElement);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MaskDirective } from './directives/mask.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n MaskDirective,\n ],\n exports: [\n MaskDirective,\n ],\n providers: [],\n})\nexport class MaskModule {\n}\n","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: [\n './auto-complete.component.scss',\n ],\n templateUrl: './auto-complete.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutoCompleteComponent), // tslint: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() 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() mask: string = null;\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 @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(\n private ref: ElementRef,\n private searchService: SearchService\n ) {\n }\n\n public updateModel = (_: any) => {\n }\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\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","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 { MaskModule } from '../mask/mask.module';\nimport { SearchService } from '../shared/services/search.service';\nimport { AutoCompleteComponent } from './components/auto-complete/auto-complete.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n FlyoutModule,\n SelectableListModule,\n MaskModule,\n ],\n declarations: [\n AutoCompleteComponent,\n ],\n exports: [\n AutoCompleteComponent,\n ],\n providers: [\n SearchService,\n ],\n})\nexport class AutoCompleteModule {\n}\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 = '/';\nexport const DATEPICKER_DATE_MASK = `99${DATEPICKER_SEPARATOR_CHAR}99${DATEPICKER_SEPARATOR_CHAR}9999`;\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ControlValueAccessor, FormBuilder, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateHelper, DateRange } from '@acpaas-ui/js-date-utils';\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} from '@acpaas-ui/ngx-calendar';\n\nimport {\n DATEPICKER_DATE_MASK,\n DATEPICKER_DEFAULT_ERROR_LABELS,\n DATEPICKER_ERROR_LABELS,\n DATEPICKER_SEPARATOR_CHAR\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: [\n './datepicker.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent), // tslint:disable-line:no-forward-ref\n multi: true,\n }, {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatepickerComponent), // tslint:disable-line:no-forward-ref\n multi: true,\n }],\n})\nexport class DatepickerComponent implements OnInit, 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() range: DateRange;\n @Input()\n min: Date | null;\n @Input()\n max: Date | null;\n @Input() autocomplete: 'off';\n\n @Output() blur = new EventEmitter<Event>();\n\n public dateMask = {mask: DATEPICKER_DATE_MASK, showMaskOnHover: false};\n public formControl: FormControl;\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 monthLabels = CALENDAR_DEFAULT_MONTH_LABELS,\n @Inject(CALENDAR_WEEKDAY_LABELS) private weekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n @Inject(DATEPICKER_ERROR_LABELS) private errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS,\n public calendarService: CalendarService,\n private formBuilder: FormBuilder,\n private ref: ChangeDetectorRef\n ) {\n }\n\n public ngOnInit(): void {\n this.createInterval();\n this.formControl = this.formBuilder.control({value: '', disabled: this.isDisabled});\n this.formControl.valueChanges\n .pipe(\n takeUntil(this.componentDestroyed$)\n )\n .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 this.onChange(date.toISOString());\n } else {\n // Change value with original value (and not null or '') so we can add an error in the validate function\n this.onChange(value);\n }\n } else {\n this.selectedDate = null;\n this.onChange('');\n }\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(this.min ? new Date(this.min) : null, this.max ? new Date(this.max) : null)\n .not()\n .build();\n }\n\n public writeValue(value: string | Date): void {\n this.selectedDate = typeof value === 'string'\n ? this.isISODateFormat(value) ? new Date(value) : DateHelper.parseDate(value, 'dd/MM/yyyy')\n : value;\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: FormControl): 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 range: this.errorLabels.ERRORS_INVALID_RANGE,\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","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 { MaskModule } from '../mask/mask.module';\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: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CalendarModule,\n IconModule,\n FlyoutModule,\n MaskModule,\n ],\n declarations: [\n DatepickerComponent,\n ],\n exports: [\n DatepickerComponent,\n ],\n providers: [\n {provide: CALENDAR_WEEKDAY_LABELS, useValue: CALENDAR_DEFAULT_WEEKDAY_LABELS},\n {provide: CALENDAR_MONTH_LABELS, useValue: CALENDAR_DEFAULT_MONTH_LABELS},\n {provide: DATEPICKER_ERROR_LABELS, useValue: DATEPICKER_DEFAULT_ERROR_LABELS},\n ],\n})\nexport class DatepickerModule {\n static forChild(\n weekdayLabels: string[],\n monthLabels: string[],\n errorLabels: DatepickerErrorLabels\n ): ModuleWithProviders {\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: [\n './range-slider.component.scss',\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSliderComponent), // tslint: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 labelBefore = '';\n @Input() public labelAfter = '';\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\n @HostBinding('class.is-disabled') get disabledClass() {\n return this.isDisabled;\n }\n\n public propagateChange = (value: number | RangeSliderRange) => {\n }\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\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 (Object.keys(keyCodes).map(e => keyCodes[e]).indexOf(key) === -1) {\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\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 = (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","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: [\n CommonModule,\n FormsModule,\n ],\n declarations: [\n RangeSliderComponent,\n ],\n exports: [\n RangeSliderComponent,\n ],\n})\nexport class RangeSliderModule {\n}\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 providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SearchFilterComponent), // tslint:disable-line:no-forward-ref\n multi: true,\n }],\n})\nexport class SearchFilterComponent implements OnInit, 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 = 'Filter';\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 placeholder = 'Zoeken';\n @Input() public inputDelay = 150;\n @Input() public showAllByDefault = false;\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\n public filterDataFromSearch: () => {};\n\n constructor() {\n this.filterDataFromSearch = debounce(this.filterData.bind(this), this.inputDelay);\n }\n\n public updateModel: (_) => any = () => {\n }\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\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public ngOnInit(): void {\n if (this.showAllByDefault) {\n this.filterData();\n }\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\n this.filterData();\n this.updateModel(this.selectedItems);\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 = [\n ...this.selectedItems.slice(0, selected),\n ...this.selectedItems.slice(selected + 1),\n ];\n }\n\n this.updateModel(this.selectedItems);\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","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: [\n CommonModule,\n FlyoutModule,\n FormsModule,\n IconModule,\n ],\n declarations: [\n SearchFilterComponent,\n ],\n exports: [\n SearchFilterComponent,\n ],\n})\nexport class SearchFilterModule {\n}\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 { ControlValueAccessor, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DateHelper } from '@acpaas-ui/js-date-utils';\n\nimport { TimepickerInputSize } from '../../types/timepicker.types';\n\n@Component({\n selector: 'aui-timepicker',\n templateUrl: './timepicker.component.html',\n styleUrls: [\n './timepicker.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimepickerComponent), // tslint:disable-line:no-forward-ref\n multi: true,\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\n public shouldUseFallback = false;\n public minutes: string[] = [];\n public hours: string[] = [];\n public updateModel: (value: string) => any;\n\n public timeControl = new FormControl();\n public fallbackForm: FormGroup;\n\n private componentDestroyed$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n private formBuilder: FormBuilder,\n private renderer: Renderer2\n ) {\n }\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\n .pipe(takeUntil(this.componentDestroyed$))\n .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\n .pipe(takeUntil(this.componentDestroyed$))\n .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\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).fill('').map((value, index) => {\n return DateHelper.addLeadingZero(index);\n });\n }\n\n private getHours(): string[] {\n return Array(24).fill('').map((value, index) => {\n return DateHelper.addLeadingZero(index);\n });\n }\n}\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: [\n ReactiveFormsModule,\n CommonModule,\n IconModule,\n ],\n declarations: [\n TimepickerComponent,\n ],\n exports: [\n TimepickerComponent,\n ],\n providers: [],\n})\nexport class TimepickerModule {\n}\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, 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: [\n './upload.component.scss',\n ],\n templateUrl: './upload.component.html',\n})\nexport class UploadComponent implements OnInit {\n @Input() public id = '';\n @Input() public accept = [];\n @Input() public ariaLabelRemove = 'Verwijder';\n @Input() public disabled = false;\n @Input() public multiple = true;\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 }\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","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","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","import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2, ViewChild } 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 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 ariaId = '';\n @Input() public disabled = false;\n @Input() public multiple = true;\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\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(\n private renderer: Renderer2,\n ) {}\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.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) { this.renderer.setProperty(this.fileInput.nativeElement, 'multiple', 'multiple'); }\n if (this.accept) { this.renderer.setProperty(this.fileInput.nativeElement, 'accept', this.accept.join()); }\n if (this.disabled) { this.renderer.setProperty(this.fileInput.nativeElement, 'disabled', 'disabled'); }\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","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","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: [\n CommonModule,\n ProgressBarModule,\n FormsModule,\n IconModule,\n ],\n declarations: [\n UploadComponent,\n UploadInputComponent,\n UploadQueueComponent,\n UploadZoneComponent,\n ValidationListComponent,\n ],\n exports: [\n UploadComponent,\n UploadInputComponent,\n UploadQueueComponent,\n UploadZoneComponent,\n ValidationListComponent,\n ],\n providers: [\n ValidationMessagesService,\n {provide: UPLOAD_VALIDATION_MESSAGES, useValue: {}},\n ],\n})\nexport class UploadModule {\n static forChild(\n validationMessages: ValidationMessages = {}\n ): ModuleWithProviders {\n return {\n ngModule: UploadModule,\n providers: [\n {provide: UPLOAD_VALIDATION_MESSAGES, useValue: validationMessages},\n ],\n };\n }\n}\n","export const WYSIWYG_DEFAULT_CONFIG = {\n bodyClass: 'a-input ckeditor-editable-body',\n contentsCss: ['https://cdn.antwerpen.be/core_branding_scss/5.0.0/main.min.css'],\n extraPlugins: 'divarea',\n find_highlight: {\n element: 'span',\n styles: {'background-color': '#fffc00', color: '#0064b4'},\n },\n format_tags: 'p;h1;h2;h3;h4;h5;h6',\n toolbar_Basic: [\n ['Bold', 'Italic', 'Underline', '-', 'Format', '-', 'Source'],\n ],\n removeButtons: 'Styles',\n removePlugins: 'about',\n toolbar: null,\n uiColor: '#d8d8d8',\n};\n","import { Component, EventEmitter, forwardRef, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { WYSIWYG_DEFAULT_CONFIG } from '../../wysiwyg.conf';\n\n@Component({\n selector: 'aui-wysiwyg',\n templateUrl: './wysiwyg.component.html',\n styleUrls: [\n './wysiwyg.component.scss',\n ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WysiwygComponent), // tslint:disable-line:no-forward-ref\n multi: true,\n }],\n})\nexport class WysiwygComponent implements OnInit, ControlValueAccessor {\n @HostBinding('class.aui-wysiwyg') setClass = true;\n\n @Input() additionalStyling: string[];\n @Input() availableTags: string;\n @Input() basic = false;\n @Input() uiColour: string;\n @Input() customConfig: any;\n @Input() debounce: number;\n\n @Output() emitContent: EventEmitter<string> = new EventEmitter();\n @Output() focus: EventEmitter<string> = new EventEmitter();\n @Output() blur: EventEmitter<string> = new EventEmitter();\n\n public ckeditorContent: string;\n public ckeditorConfig = WYSIWYG_DEFAULT_CONFIG;\n public isDisabled = false;\n\n // NG_VALUE_ACCESSOR_INTERFACE\n public writeValue(value: string): void {\n this.ckeditorContent = value;\n this.updateModel(value);\n this.emitContent.emit(this.ckeditorContent);\n }\n\n public onFocus(value: string): void {\n this.focus.emit(value);\n }\n\n public onBlur(value: string): void {\n this.blur.emit(value);\n }\n\n public registerOnChange(onChange: () => void): void {\n this.updateModel = onChange;\n }\n\n public registerOnTouched(): void {\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public ngOnInit() {\n this.setConfig();\n }\n\n private updateModel = (...args: any[]) => undefined;\n\n private setConfig(): void {\n if (this.customConfig) {\n this.ckeditorConfig = this.customConfig;\n } else {\n if (this.basic) {\n this.ckeditorConfig.toolbar = 'Basic';\n }\n\n if (this.availableTags) {\n this.ckeditorConfig.format_tags = this.availableTags;\n }\n\n if (this.uiColour) {\n this.ckeditorConfig.uiColor = this.uiColour;\n }\n\n if (this.additionalStyling) {\n this.ckeditorConfig.contentsCss.concat(this.additionalStyling);\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CKEditorModule } from 'ng2-ckeditor';\nimport { WysiwygComponent } from './components/wysiwyg/wysiwyg.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CKEditorModule,\n ],\n declarations: [\n WysiwygComponent,\n ],\n exports: [\n WysiwygComponent,\n ],\n})\nexport class WysiwygModule {\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,MAMa,aAAa;;;;IAGxB,YAAoB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;KAClC;;;;IAEM,WAAW;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;;;;;;IAEO,OAAO,CAAC,IAAI;QAClB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAC9C;;;YAfF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;aACtB;;;;YALmB,UAAU;;;sBAO3B,KAAK;;;;IAAN,gCAAgC;;;;;IAEpB,4BAAuB;;;;;;;;ACTrC,MAgBa,UAAU;;;YAZtB,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;iBACb;gBACD,YAAY,EAAE;oBACZ,aAAa;iBACd;gBACD,OAAO,EAAE;oBACP,aAAa;iBACd;gBACD,SAAS,EAAE,EAAE;aACd;;;;;;;;ACfD,MAKa,aAAa;IAD1B;QAwBU,8BAAyB;;;;;QAAG,CAAC,IAAS,EAAE,YAAY;YAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5E,EAAA;KACF;;;;;;IAzBQ,MAAM,CAAC,IAAW,EAAE,UAAyB,EAAE;;cAC9C,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE;;cAC5D,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC;;cACvE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,EAAE;QAE5D,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;YACpE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;SAClB;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM;;;;QAAC,IAAI;YAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBACpC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,4BAA4B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC1F;YAED,IAAI,GAAG,EAAE;gBACP,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;aACzD;YAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACpD,EAAC,CAAC;KACJ;;;YAtBF,UAAU;;;;;;;IAwBT,kDAEC;;;;;;;;AC9BH,MAiCa,qBAAqB;;;;;IAqChC,YACU,GAAe,EACf,aAA4B;QAD5B,QAAG,GAAH,GAAG,CAAY;QACf,kBAAa,GAAb,aAAa,CAAe;QApC7B,YAAO,GAAU,EAAE,CAAC;;QACpB,SAAI,GAAU,EAAE,CAAC;;QACjB,WAAM,GAAG,KAAK,CAAC;;QACf,kBAAa,GAAG,CAAC,CAAC;QAClB,SAAI,GAAW,IAAI,CAAC;QACpB,iBAAY,GAAG,KAAK,CAAC;QAIrB,qBAAgB,GAAG,KAAK,CAAC;QACzB,iBAAY,GAAG,KAAK,CAAC;;QAOpB,WAAM,GAAyB,IAAI,YAAY,EAAE,CAAC;QAClD,WAAM,GAAsB,IAAI,YAAY,EAAE,CAAC;QAOlD,UAAK,GAAG,EAAE,CAAC;QACX,UAAK,GAAG,CAAC,CAAC,CAAC;;QACX,iBAAY,GAAQ,IAAI,CAAC;;QACzB,cAAS,GAAG,KAAK,CAAC;;QAClB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,KAAK,CAAC;QAElB,gBAAW,GAAG,KAAK,CAAC;QAQrB,gBAAW;;;;QAAG,CAAC,CAAM;SAC3B,EAAA;KAHA;;;;;;IAMM,UAAU,CAAC,KAAK,GAAG,EAAE;QAC1B,IAAI,IAAI,CAAC,KAAK,EAAE;;kBACR,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;;;;YAAC,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAC;YAE1E,IAAI,QAAQ,EAAE;gBACZ,OAAO,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1C;YAED,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;SACF;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;;;;;;IAGM,gBAAgB,CAAC,EAAE;QACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACvB;;;;;IAGM,iBAAiB;KACvB;;;;;IAEM,gBAAgB,CAAC,UAAmB;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;;;;IAEM,QAAQ;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC9F,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/B;KACF;;;;;;IAGM,WAAW,CAAC,OAAsB;QACvC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;;cAEK,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,EAAE;YAC7D,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;iBAAM;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;QAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE;YACnD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;KACF;;;;;IAEM,eAAe,CAAC,IAAS;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;;cAEK,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;QACpE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;;;;;IAKM,QAAQ;QACb,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;;;;IAKM,QAAQ,CAAC,IAAS;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;;;IAEM,cAAc;;QAEnB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC;;QAGD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC5B;;QAGD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAC7E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACtG;KACF;;;;IAEM,cAAc;QACnB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACpB;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;;IAEM,YAAY;QACjB,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;KACF;;;;;IAEM,UAAU,CAAC,KAAY;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;;;cAEjB,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK;QAErE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;;;IAEM,WAAW;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;;;IAEM,OAAO;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;;IAEM,UAAU;QACf,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACpB;KACF;;;;IAEM,WAAW;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;;;;IAEM,WAAW;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;YAClD,SAAS,EAAE,IAAI,CAAC,aAAa;YAC7B,GAAG,EAAE,IAAI,CAAC,KAAK;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3E,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAChB;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;;;;IAEM,YAAY;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACnC,OAAO;SACR;;cAEK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;;;;QAAC,CAAC,IAAS;YACxC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;aACxC;YAED,OAAO,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC;SAC5B,EAAC;QAEF,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;SAC3D;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACjB;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;;;;;IAEM,UAAU,CAAC,MAAc;QAC9B,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;;cAEK,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;;cAC5D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;;cAC3E,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY;;cACjD,MAAM,GAAG,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC;QAE1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,KAAK,MAAM,GAAG,QAAQ,CAAC,CAAC;KACnF;;;YA1QF,SAAS,SAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAI7B,4zEAA6C;gBAC7C,SAAS,EAAE;oBACT;wBACE,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,UAAU;;;wBAAC,MAAM,qBAAqB,EAAC;;wBACpD,KAAK,EAAE,IAAI;qBACZ;iBACF;;aACF;;;;YA7BC,UAAU;YAcH,aAAa;;;iBAiBnB,KAAK;0BACL,KAAK;sBACL,KAAK;mBACL,KAAK;qBACL,KAAK;4BACL,KAAK;mBACL,KAAK;2BACL,KAAK;kCACL,KAAK;0BACL,KAAK;4BACL,KAAK;+BACL,KAAK;2BACL,KAAK;oBAGL,KAAK;oBACL,KAAK;qBAGL,MAAM;qBACN,MAAM;qBAEN,SAAS,SAAC,eAAe,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;yBACzC,SAAS,SAAC,mBAAmB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;uBAE7C,YAAY,SAAC,WAAW,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;;;;IAzBzC,mCAAoB;;IACpB,4CAA6B;;IAC7B,wCAA6B;;IAC7B,qCAA0B;;IAC1B,uCAAwB;;IACxB,8CAA2B;;IAC3B,qCAA6B;;IAC7B,6CAA8B;;IAC9B,oDAAqC;;IACrC,4CAA6B;;IAC7B,8CAA+B;;IAC/B,iDAAkC;;IAClC,6CAA8B;;IAG9B,sCAAuB;;IACvB,sCAAuB;;IAGvB,uCAA4D;;IAC5D,uCAAyD;;IAEzD,uCAAoE;;IACpE,2CAAgF;;IAEhF,yCAA6E;;IAE7E,sCAAkB;;IAClB,sCAAkB;;IAClB,6CAAgC;;IAChC,0CAAyB;;IACzB,wCAAuB;;IACvB,2CAA0B;;;;;IAE1B,4CAA4B;;IAQ5B,4CACC;;;;;IANC,oCAAuB;;;;;IACvB,8CAAoC;;;;;;;;ACxExC,MA2Ba,kBAAkB;;;YAlB9B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,YAAY;oBACZ,oBAAoB;oBACpB,UAAU;iBACX;gBACD,YAAY,EAAE;oBACZ,qBAAqB;iBACtB;gBACD,OAAO,EAAE;oBACP,qBAAqB;iBACtB;gBACD,SAAS,EAAE;oBACT,aAAa;iBACd;aACF;;;;;;;;;;;;;;AC1BD;AAGA,MAAa,uBAAuB,GAAG,IAAI,cAAc,CAAwB,aAAa,CAAC;;AAE/F,MAAa,+BAA+B,GAAG;IAC7C,mBAAmB,EAAE,cAAc;IACnC,oBAAoB,EAAE,eAAe;CACtC;;AAED,MAAa,yBAAyB,GAAG,GAAG;;AAC5C,MAAa,oBAAoB,GAAG,KAAK,yBAAyB,KAAK,yBAAyB,MAAM;;;;;;;ACXtG,MAqDa,mBAAmB;;;;;;;;;IAsB9B,YACyC,cAAc,6BAA6B,EACzC,gBAAgB,+BAA+B,EAC/C,cAAc,+BAA+B,EAC/E,eAAgC,EAC/B,WAAwB,EACxB,GAAsB;QALS,gBAAW,GAAX,WAAW,CAAgC;QACzC,kBAAa,GAAb,aAAa,CAAkC;QAC/C,gBAAW,GAAX,WAAW,CAAkC;QAC/E,oBAAe,GAAf,eAAe,CAAiB;QAC/B,gBAAW,GAAX,WAAW,CAAa;QACxB,QAAG,GAAH,GAAG,CAAmB;QAxBvB,gBAAW,GAAG,YAAY,CAAC;QAQ1B,SAAI,GAAG,IAAI,YAAY,EAAS,CAAC;QAEpC,aAAQ,GAAG,EAAC,IAAI,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,EAAC,CAAC;QAGhE,eAAU,GAAG,KAAK,CAAC;QAGlB,wBAAmB,GAAqB,IAAI,OAAO,EAAW,CAAC;QAiI/D,aAAQ;;;QAAuB,MAAM,SAAS,EAAC;QAE/C,cAAS;;;QAAqB,MAAM,SAAS,EAAC;KAzHrD;;;;IAEM,QAAQ;QACb,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAC,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW,CAAC,YAAY;aAC1B,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CACpC;aACA,SAAS;;;;QAAC,CAAC,KAAK;YACf,IAAI,KAAK,EAAE;;sBACH,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;;sBACnE,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;gBACvD,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;iBACnC;qBAAM;;oBAEL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF;iBAAM;gBACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACnB;SACF,EAAC,CAAC;KACN;;;;IAEM,WAAW;QAChB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;KACrC;;;;;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAC1B,OAAO;SACR;;QAED,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACrH,GAAG,EAAE;aACL,KAAK,EAAE,CAAC;KACZ;;;;;IAEM,UAAU,CAAC,KAAoB;QACpC,IAAI,CAAC,YAAY,GAAG,OAAO,KAAK,KAAK,QAAQ;cACzC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;cACzF,KAAK,CAAC;;cACJ,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;QAC9E,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KACvC;;;;;IAEM,gBAAgB,CAAC,QAA4B;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;;;;;IAEM,iBAAiB,CAAC,SAA2B;QAClD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;;;;;IAEM,gBAAgB,CAAC,UAAmB;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;aAC5B;iBAAM,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACnD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;aAC3B;SACF;QAED,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;;;;IAEM,sBAAsB,CAAC,MAAwB;QACpD,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACrB;KACF;;;;;IAEM,UAAU,CAAC,IAAU;QAC1B,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE;YAC/C,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;KACJ;;;;;IAEM,QAAQ,CAAC,IAAiB;;QAE/B,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YAC5C,OAAO,IAAI,CAAC;SACb;;;cAGK,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,mBAAmB;aAC7C,CAAC;SACH;;QAGD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;;;cAGK,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;QAEpE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG;YAC1C,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,oBAAoB;SAC7C,GAAG,IAAI,CAAC;KACV;;;;;IAEM,UAAU,CAAC,CAAQ;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACnB;;;;;;IAMO,eAAe,CAAC,KAAa;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;KAC5C;;;YA/KF,SAAS,SAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,iiCAA0C;gBAI1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,SAAS,EAAE,CAAC;wBACV,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,UAAU;;;wBAAC,MAAM,mBAAmB,EAAC;;wBAClD,KAAK,EAAE,IAAI;qBACZ,EAAE;wBACD,OAAO,EAAE,aAAa;wBACtB,WAAW,EAAE,UAAU;;;wBAAC,MAAM,mBAAmB,EAAC;;wBAClD,KAAK,EAAE,IAAI;qBACZ,CAAC;;aACH;;;;4CAwBI,MAAM,SAAC,qBAAqB;4CAC5B,MAAM,SAAC,uBAAuB;4CAC9B,MAAM,SAAC,uBAAuB;YAvDjC,eAAe;YARc,WAAW;YAbxC,iBAAiB;;;qBAoDhB,SAAS,SAAC,eAAe,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;iBACzC,KAAK;mBACL,KAAK;0BACL,KAAK;oBACL,KAAK;kBACL,KAAK;kBAEL,KAAK;2BAEL,KAAK;mBAEL,MAAM;;;;IAXP,qCAAoE;;IACpE,iCAAoB;;IACpB,mCAAsB;;IACtB,0CAAoC;;IACpC,oCAA0B;;IAC1B,kCACiB;;IACjB,kCACiB;;IACjB,2CAA6B;;IAE7B,mCAA2C;;IAE3C,uCAAuE;;IACvE,0CAAgC;;IAChC,2CAA0B;;IAC1B,yCAA0B;;IAC1B,uCAA0C;;;;;IAE1C,kDAAuE;;;;;IAiIvE,uCAAuD;;;;;IAEvD,wCAAsD;;;;;IAhIpD,0CAAkF;;;;;IAClF,4CAAwF;;;;;IACxF,0CAAsF;;IACtF,8CAAuC;;;;;IACvC,0CAAgC;;;;;IAChC,kCAA8B;;;;;;;;ACjFlC,WAqCiD,+BAA+B,OACjC,6BAA6B,OAC3B,+BAA+B;AAGhF,MAAa,gBAAgB;;;;;;;IAC3B,OAAO,QAAQ,CACb,aAAuB,EACvB,WAAqB,EACrB,WAAkC;QAElC,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE;gBACT,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,aAAa,EAAC;gBAC3D,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,WAAW,EAAC;gBACvD,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,WAAW,EAAC;aAC1D;SACF,CAAC;KACH;;;YApCF,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,cAAc;oBACd,UAAU;oBACV,YAAY;oBACZ,UAAU;iBACX;gBACD,YAAY,EAAE;oBACZ,mBAAmB;iBACpB;gBACD,OAAO,EAAE;oBACP,mBAAmB;iBACpB;gBACD,SAAS,EAAE;oBACT,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,IAAiC,EAAC;oBAC7E,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,IAA+B,EAAC;oBACzE,EAAC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,IAAiC,EAAC;iBAC9E;aACF;;;;;;;;;;;;;;;;;;;;ACzCD,MAmBa,oBAAoB;;;;IAkB/B,YAAoB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAjBA,iBAAY,GAAG,IAAI,CAAC;QACzC,QAAG,GAAG,CAAC,CAAC;QACR,QAAG,GAAG,GAAG,CAAC;QACV,oBAAe,GAAG,CAAC,CAAC;QACpB,SAAI,GAAG,CAAC,CAAC;QACT,gBAAW,GAAG,EAAE,CAAC;QACjB,eAAU,GAAG,EAAE,CAAC;QACzB,UAAK,GAAG,CAAC,CAAC;QACV,QAAG,GAAuB,KAAK,CAAC;QAChC,UAAK,GAAG,EAAE,CAAC;QAGX,WAAM,GAAG,IAAI,CAAC;QACd,eAAU,GAAG,KAAK,CAAC;QACnB,aAAQ,GAAG,KAAK,CAAC;QACjB,UAAK,GAAG,KAAK,CAAC;QASd,oBAAe;;;;QAAG,CAAC,KAAgC;SACzD,EAAA;KAPA;;;;IAED,IAAsC,aAAa;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;;;;IAKM,QAAQ;QACb,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpB;SACF;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEhD,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;SAC7C;KACF;;;;;IAEM,UAAU,CAAC,KAAU;QAC1B,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;SAC1B;aAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEhD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;YACtB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;SAC7C;KACF;;;;IAEM,iBAAiB;KACvB;;;;;IAEM,gBAAgB,CAAC,EAAE;QACxB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;;;;;IAEM,gBAAgB,CAAC,UAAmB;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;;;;;IAEM,WAAW,CAAC,MAAM;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACtB;;;;;;;IAEM,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM;QAC1C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO;SACR;QAED,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;KACvB;;;;;IAGM,SAAS,CAAC,MAAM;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;;cAEK,GAAG,GAAG,MAAM,CAAC,OAAO;;cACpB,QAAQ,GAAG;YACf,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,EAAE,EAAE,EAAE;YACN,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;SACT;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG;;;;QAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACnE,OAAO;SACR;;YACG,SAAS,GAAG,IAAI,CAAC,eAAe;QAEpC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;YACjB,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/B;;cAEK,YAAY;;;;QAAG,CAAC,GAAG;;gBACnB,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,QAAQ,IAAI,SAAS,CAAC;aACvB;iBAAM;gBACL,QAAQ,IAAI,SAAS,CAAC;aACvB;;gBACG,aAAa,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;YAEvE,IAAI,aAAa,GAAG,GAAG,EAAE;gBACvB,aAAa,GAAG,GAAG,CAAC;aACrB;YACD,IAAI,aAAa,GAAG,CAAC,EAAE;gBACrB,aAAa,GAAG,CAAC,CAAC;aACnB;YACD,OAAO,aAAa,CAAC;SACtB,CAAA;QAED,QAAQ,GAAG;YACT,KAAK,QAAQ,CAAC,KAAK,CAAC;YACpB,KAAK,QAAQ,CAAC,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,QAAQ,CAAC,IAAI,CAAC;YACnB,KAAK,QAAQ,CAAC,IAAI;gBAChB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,QAAQ,CAAC,GAAG;gBACf,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,QAAQ,CAAC,IAAI;gBAChB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM;SACT;KAEF;;;;;IAIM,SAAS,CAAC,KAAK;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACjD;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;SAC7C;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;;;;;IAID,SAAS,CAAC,KAAK;QACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;;;;;IAIM,WAAW,CAAC,KAA8B;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC/B,OAAO;SACR;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;;;cAEjB,CAAC,GAAG,oBAAC,KAAK,IAAgB,CAAC,KAAK,SAAS,GAAG,oBAAC,KAAK,IAAgB,CAAC,GAAG,oBAAC,KAAK,IAAgB,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK;;cAClH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE;;cACvD,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;KAClC;;;;;IAEM,YAAY,CAAC,aAAa;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;YAC3B,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAExC,IAAI,IAAI,CAAC,2BAA2B,EAAE,EAAE;gBACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;aACjD;SACF;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YAC/C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;YAEpC,IAAI,IAAI,CAAC,2BAA2B,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;aAC7C;SACF;KACF;;;;;;IAGM,QAAQ,CAAC,KAAK;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,eAAe,oBAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,GAAqB,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;KACF;;;;;IAEM,MAAM,CAAC,KAAK;QACjB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QAEjB,IAAI,CAAC,eAAe,oBAAC;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,GAAqB,CAAC;KACxB;;;;;;;IAEM,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM;QAC/B,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,SAAS,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;SAClE;QAED,OAAO,CAAC,CAAC;KACV;;;;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;KAC1E;;;;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5F;;;;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;KAChF;;;;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1F;;;;IAEM,2BAA2B;QAChC,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;KACtG;;;;;;;IAEM,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU;;cACvC,QAAQ,GAAG,MAAM,GAAG,UAAU;;YAEhC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,IAAI,GAAG,CAAC;QAExD,IAAI,aAAa,GAAG,GAAG,EAAE;YACvB,aAAa,GAAG,GAAG,CAAC;SACrB;QAED,IAAI,aAAa,GAAG,CAAC,EAAE;YACrB,aAAa,GAAG,CAAC,CAAC;SACnB;QAED,OAAO,aAAa,CAAC;KACtB;;;YApSF,SAAS,SAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,mnDAA4C;gBAI5C,SAAS,EAAE;oBACT;wBACE,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,UAAU;;;wBAAC,MAAM,oBAAoB,EAAC;;wBACnD,KAAK,EAAE,IAAI;qBACZ;iBACF;;aACF;;;;YAlBmB,UAAU;;;2BAoB3B,WAAW,SAAC,sBAAsB;kBAClC,KAAK;kBACL,KAAK;8BACL,KAAK;mBACL,KAAK;0BACL,KAAK;yBACL,KAAK;4BAcL,WAAW,SAAC,mBAAmB;wBAoE/B,YAAY,SAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;wBAkE3C,YAAY,SAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,cACnC,YAAY,SAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;wBAclC,YAAY,SAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,cACrC,YAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;0BAKpC,YAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cACpC,YAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;;;;IAhLrC,4CAAyD;;IACzD,mCAAwB;;IACxB,mCAA0B;;IAC1B,+CAAoC;;IACpC,oCAAyB;;IACzB,2CAAiC;;IACjC,0CAAgC;;IAChC,qCAAiB;;IACjB,mCAAuC;;IACvC,qCAAkB;;IAClB,+CAAuB;;IACvB,6CAAqB;;IACrB,sCAAqB;;IACrB,0CAA0B;;IAC1B,wCAAwB;;IACxB,qCAAqB;;IASrB,+CACC;;;;;IARW,qCAAyB;;;;;;;;ACrCvC,MAiBa,iBAAiB;;;YAZ7B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;iBACZ;gBACD,YAAY,EAAE;oBACZ,oBAAoB;iBACrB;gBACD,OAAO,EAAE;oBACP,oBAAoB;iBACrB;aACF;;;;;;;;;;;;;;AChBD,MAiBa,qBAAqB;IA0BhC;QAvBgB,eAAU,GAAG,UAAU,CAAC,KAAK,CAAC;QAE9B,UAAK,GAAG,QAAQ,CAAC;QACjB,kBAAa,GAAG,oBAAoB,CAAC;QACrC,iBAAY,GAAG,YAAY,CAAC;QAC5B,mBAAc,GAAG,2BAA2B,CAAC;QAC7C,YAAO,GAAyB,EAAE,CAAC;QAEnC,gBAAW,GAAG,QAAQ,CAAC;QACvB,eAAU,GAAG,GAAG,CAAC;QACjB,qBAAgB,GAAG,KAAK,CAAC;QACzB,SAAI,GAA2C,SAAS,CAAC;QAExD,WAAM,GAAyB,IAAI,YAAY,EAAU,CAAC;QAEpE,UAAK,GAAG,EAAE,CAAC;QACX,kBAAa,GAAa,EAAE,CAAC;QAC7B,oBAAe,GAAyB,EAAE,CAAC;QAC3C,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,KAAK,CAAC;QAQnB,gBAAW;;;QAAe;SAChC,EAAA;QAJC,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACnF;;;;;IAKM,UAAU,CAAC,KAAe;QAC/B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;KACxD;;;;;IAEM,gBAAgB,CAAC,QAAoB;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;KAC7B;;;;IAEM,iBAAiB;KACvB;;;;;IAEM,gBAAgB,CAAC,UAAmB;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;;;;IAEM,QAAQ;QACb,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;;;;;IAEM,WAAW,CAAC,OAAsB;;cACjC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,IAAI,CAAC;QAE1D,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;;;;IAEM,UAAU;QACf,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;;;IAEM,KAAK;QACV,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACtC;;;;;IAEM,cAAc,CAAC,MAAc;;cAC5B,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QAEnD,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACxD;aAAM;YACL,IAAI,CAAC,aAAa,GAAG;gBACnB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;gBACxC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;aAC1C,CAAC;SACH;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACtC;;;;;IAEO,aAAa;QACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;;;;QAAC,CAAC,MAA0B;YACpE,QACE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,EACjE;SACH,EAAC,CAAC;KACJ;;;YAtHF,SAAS,SAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,6tFAA6C;gBAC7C,SAAS,EAAE,CAAC;wBACV,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,UAAU;;;wBAAC,MAAM,qBAAqB,EAAC;;wBACpD,KAAK,EAAE,IAAI;qBACZ,CAAC;aACH;;;;;iBAEE,KAAK;mBACL,KAAK;yBACL,KAAK;0BACL,KAAK;oBACL,KAAK;4BACL,KAAK;2BACL,KAAK;6BACL,KAAK;sBACL,KAAK;qBACL,KAAK;0BACL,KAAK;yBACL,KAAK;+BACL,KAAK;mBACL,KAAK;qBAEL,MAAM;;;;IAfP,mCAA2B;;IAC3B,qCAA6B;;IAC7B,2CAA8C;;IAC9C,4CAA4B;;IAC5B,sCAAiC;;IACjC,8CAAqD;;IACrD,6CAA4C;;IAC5C,+CAA6D;;IAC7D,wCAAmD;;IACnD,uCAAgC;;IAChC,4CAAuC;;IACvC,2CAAiC;;IACjC,iDAAyC;;IACzC,qCAAyE;;IAEzE,uCAA2E;;IAE3E,sCAAkB;;IAClB,8CAAoC;;IACpC,gDAAkD;;IAClD,wCAAuB;;IACvB,2CAA0B;;IAE1B,qDAAsC;;IAMtC,4CACC;;;;;;;;AChDH,MAqBa,kBAAkB;;;YAd9B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,YAAY;oBACZ,WAAW;oBACX,UAAU;iBACX;gBACD,YAAY,EAAE;oBACZ,qBAAqB;iBACtB;gBACD,OAAO,EAAE;oBACP,qBAAqB;iBACtB;aACF;;;;;;;;;;;;;;AClBD,MAAa,oBAAoB;;;;;;IAExB,OAAO,OAAO,CAAC,IAAY;;cAC1B,SAAS;;;;QAAG,CAAC,OAAwB;;kBACnC,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;kBAC/C,YAAY,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;kBACpD,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;kBACtD,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;kBACjC,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;kBAC3C,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;YAGnD,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;gBACxF,OAAO,IAAI,CAAC;aACb;YAED,IAAI,QAAQ,GAAG,YAAY,EAAE;gBAC3B,OAAO,IAAI,CAAC;aACb;YAED,IAAI,QAAQ,KAAK,YAAY,IAAI,UAAU,IAAI,cAAc,EAAE;gBAC7D,OAAO,IAAI,CAAC;aACb;YAED,OAAO,EAAC,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAC,EAAC,CAAC;SAC1C,CAAA;QAED,OAAO,SAAS,CAAC;KAClB;;;;;;IAGM,OAAO,OAAO,CAAC,IAAY;;cAC1B,SAAS;;;;QAAG,CAAC,OAAwB;;kBACnC,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;kBAC/C,YAAY,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;kBACpD,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;kBACtD,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;kBACjC,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;kBAC3C,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;YAGnD,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;gBACxF,OAAO,IAAI,CAAC;aACb;YAED,IAAI,QAAQ,GAAG,YAAY,EAAE;gBAC3B,OAAO,IAAI,CAAC;aACb;YAED,IAAI,QAAQ,KAAK,YAAY,IAAI,UAAU,IAAI,cAAc,EAAE;gBAC7D,OAAO,IAAI,CAAC;aACb;YAED,OAAO,EAAC,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAC,EAAC,CAAC;SAC1C,CAAA;QAED,OAAO,SAAS,CAAC;KAClB;CACF;;;;;;;;AC5DD,MAAY,mBAAmB;IAC7B,IAAI,QAAS;IACb,KAAK,SAAU;IACf,KAAK,SAAU;;;;;;;;ACHjB,MAsBa,mBAAmB;;;;;IAmB9B,YACU,WAAwB,EACxB,QAAmB;QADnB,gBAAW,GAAX,WAAW,CAAa;QACxB,aAAQ,GAAR,QAAQ,CAAW;QApBb,OAAE,GAAG,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACjE,qBAAgB,GAAG,IAAI,CAAC;QACxB,uBAAkB,GAAG,IAAI,CAAC;QAC1B,aAAQ,GAAG,KAAK,CAAC;QACjB,SAAI,GAAwB,mBAAmB,CAAC,IAAI,CAAC;QACrD,mBAAc,GAAG,KAAK,CAAC;QACvB,qBAAgB,GAAG,SAAS,CAAC;QAEtC,sBAAiB,GAAG,KAAK,CAAC;QAC1B,YAAO,GAAa,EAAE,CAAC;QACvB,UAAK,GAAa,EAAE,CAAC;QAGrB,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAG/B,wBAAmB,GAAqB,IAAI,OAAO,EAAW,CAAC;KAMtE;;;;IAEM,QAAQ;QACb,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzC,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,YAAY;aAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACzC,SAAS;;;;QAAC,CAAC,QAAQ;YAClB,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACtC,IAAI,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;aAC3D;iBAAM;gBACL,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;aACtB;SACF,EAAC,CAAC;QAEL,IAAI,CAAC,WAAW,CAAC,YAAY;aAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACzC,SAAS;;;;QAAC,CAAC,IAAI;YACd,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxB,EAAC,CAAC;KACN;;;;IAEM,WAAW;QAChB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;KACrC;;;;;IAEM,UAAU,CAAC,KAAU;QAC1B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;QAErD,IAAI,KAAK,EAAE;;kBACH,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;YACzE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;SAC5E;KACF;;;;;IAEM,gBAAgB,CAAC,QAAQ;QAC9B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;KAC7B;;;;IAEM,iBAAiB;KACvB;;;;;IAEM,gBAAgB,CAAC,UAAmB;QACzC,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;SAC/C;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;SAC9C;KACF;;;;;IAEO,wBAAwB;;cACxB,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QACpD,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;QAEtB,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;KAChC;;;;;IAEO,UAAU;QAChB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG;;;;;QAAC,CAAC,KAAK,EAAE,KAAK;YACzC,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACzC,EAAC,CAAC;KACJ;;;;;IAEO,QAAQ;QACd,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG;;;;;QAAC,CAAC,KAAK,EAAE,KAAK;YACzC,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACzC,EAAC,CAAC;KACJ;;;YAlHF,SAAS,SAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,s5CAA0C;gBAI1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,SAAS,EAAE,CAAC;wBACV,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,UAAU;;;wBAAC,MAAM,mBAAmB,EAAC;;wBAClD,KAAK,EAAE,IAAI;qBACZ,CAAC;;aACH;;;;YApB8B,WAAW;YADyC,SAAS;;;iBAuBzF,KAAK;+BACL,KAAK;iCACL,KAAK;uBACL,KAAK;mBACL,KAAK;6BACL,KAAK;+BACL,KAAK;;;;IANN,iCAAiF;;IACjF,+CAAwC;;IACxC,iDAA0C;;IAC1C,uCAAiC;;IACjC,mCAAqE;;IACrE,6CAAuC;;IACvC,+CAA6C;;IAE7C,gDAAiC;;IACjC,sCAA8B;;IAC9B,oCAA4B;;IAC5B,0CAA2C;;IAE3C,0CAAuC;;IACvC,2CAA+B;;;;;IAE/B,kDAAuE;;;;;IAGrE,0CAAgC;;;;;IAChC,uCAA2B;;;;;;;;AC3C/B,MAoBa,gBAAgB;;;YAd5B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,mBAAmB;oBACnB,YAAY;oBACZ,UAAU;iBACX;gBACD,YAAY,EAAE;oBACZ,mBAAmB;iBACpB;gBACD,OAAO,EAAE;oBACP,mBAAmB;iBACpB;gBACD,SAAS,EAAE,EAAE;aACd;;;;;;;;;;;;;;ACnBD;AAIA,MAAa,sBAAsB,GAAkB;IACnD,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IACpB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,CAAC;;IACd,UAAU,EAAE,CAAC;;IACb,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,EAAE;CACR;;AAED,MAAa,0BAA0B,GAAG,IAAI,cAAc,CAAqB,0BAA0B,CAAC;;;;;;;ACd5G,MAKa,QAAQ;;;;IAGnB,YAAY,OAAuB;QAF5B,YAAO,GAAkB,sBAAsB,CAAC;QAGrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC1B;;;;;IAEM,UAAU,CAAC,OAAO;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACzD;;;;;IAEM,WAAW,CAAC,KAAa;;cACxB,QAAQ,GAAa,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAEtD,OAAO,IAAI,UAAU;;;;QAAC,QAAQ;;kBACtB,GAAG,GAAG,IAAI,cAAc,EAAE;;YAGhC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU;;;;YAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,CAAC,gBAAgB,EAAE;;0BAChB,eAAe,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK;oBAE1C,QAAQ,CAAC,IAAI,CAAC;wBACZ,QAAQ,EAAE,eAAe;wBACzB,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC;iBACJ;aACF,EAAC,CAAC;;YAGH,GAAG,CAAC,MAAM;;;YAAG;gBACX,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,CAAC;oBACX,IAAI,EAAE,GAAG,CAAC,QAAQ;iBACnB,CAAC,CAAC;;aAEJ,CAAA,CAAC;;YAGF,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACpB,EAAC,CAAC;KACJ;;;;;IAEM,aAAa,CAAC,KAAK;;cAClB,UAAU,GAAW,EAAE;;cACvB,YAAY,GAAkB,EAAE;QAEtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;;sBAClB,MAAM,GAAG,EAAE;gBAEjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;oBAChC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;iBAClC;gBAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;oBAChC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;iBAClC;gBAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;oBAChC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;iBAClC;gBAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvB;qBAAM;oBACL,YAAY,CAAC,IAAI,CAAC;wBAChB,OAAO,EAAE,MAAM;wBACf,IAAI;qBACL,CAAC,CAAC;iBACJ;aACF;SACF;QAED,OAAO;YACL,UAAU;YACV,YAAY;SACb,CAAC;KACH;;;;;;IAES,eAAe,CAAC,KAAa;;cAC/B,QAAQ,GAAG,IAAI,QAAQ,EAAE;QAE/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC/B;QAED,OAAO,QAAQ,CAAC;KACjB;;;;;;IAES,gBAAgB,CAAC,IAAU;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC9D;;;;;;IAES,gBAAgB,CAAC,IAAU;;cAC7B,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB;;cAChD,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;;QAGvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACrE,OAAO,IAAI,CAAC;SACb;;;cAGK,OAAO;;;;QAAG,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;;cAChC,uBAAuB,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;QAE7D,OAAO,uBAAuB,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;KACtE;;;;;;IAES,gBAAgB,CAAC,IAAU;;cAC7B,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;;QAG5C,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;KAChC;;;;;;IAES,gBAAgB,CAAC,IAAU;;cAC7B,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB;;QAGtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACrE,OAAO,IAAI,CAAC;SACb;QAED,OAAO,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACvD;CACF;;;IAzIC,2BAAuD;;;;;;;;ACNzD,MAaa,eAAe;IAP5B;QAQkB,OAAE,GAAG,EAAE,CAAC;QACR,WAAM,GAAG,EAAE,CAAC;QACZ,oBAAe,GAAG,WAAW,CAAC;QAC9B,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,IAAI,CAAC;QAChB,YAAO,GAAkB,sBAAsB,CAAC;QAC/C,wBAAmB,GAA2B,IAAI,YAAY,EAAY,CAAC;QAIrF,kBAAa,GAAa,EAAE,CAAC;QAC7B,iBAAY,GAAkB,EAAE,CAAC;QACjC,gBAAW,GAAW,EAAE,CAAC;KAqBjC;;;;IAnBQ,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACvE;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5C;;;;;IAEM,eAAe,CAAC,KAAe;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACnD;;;;;IAEM,cAAc,CAAC,KAAoB;QACxC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;;;;;IAEM,aAAa,CAAC,KAAa;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACnD;;;YAxCF,SAAS,SAAC;gBACT,QAAQ,EAAE,YAAY;gBAItB,2iCAAsC;;aACvC;;;iBAEE,KAAK;qBACL,KAAK;8BACL,KAAK;uBACL,KAAK;uBACL,KAAK;sBACL,KAAK;kCACL,MAAM;;;;IANP,6BAAwB;;IACxB,iCAA4B;;IAC5B,0CAA8C;;IAC9C,mCAAiC;;IACjC,mCAAgC;;IAChC,kCAAgE;;IAChE,8CAA4F;;IAE5F,mCAAgB;;IAChB,iCAAc;;IACd,wCAAoC;;IACpC,uCAAwC;;IACxC,sCAAgC;;;;;;;;AC1BlC,MAca,oBAAoB;IATjC;QAaS,oBAAe;;;;QAAG,CAAC,CAAM,KAAK,SAAS,EAAC;KAgBhD;;;;;IAdQ,UAAU,CAAC,KAAU;KAC3B;;;;;IAEM,gBAAgB,CAAC,EAAE;QACxB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;;;;IAED,iBAAiB;KAChB;;;;;IAEM,QAAQ,CAAC,KAAK;;cACb,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KAC5B;;;YA5BF,SAAS,SAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,obAA4C;gBAC5C,SAAS,EAAE,CAAC;wBACV,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,oBAAoB;wBACjC,KAAK,EAAE,IAAI;qBACZ,CAAC;aACH;;;sBAEE,KAAK;qBACL,KAAK;;;;IADN,uCAAuC;;IACvC,sCAA4B;;IAE5B,+CAA+C;;;;;;;;AClBjD,MAQa,oBAAoB;IAJjC;QAOkB,oBAAe,GAAG,WAAW,CAAC;QAC7B,kBAAa,GAA2B,IAAI,YAAY,EAAY,CAAC;QAE/E,mBAAc,GAAG,CAAC,CAAC;KAqB3B;;;;;IAnBQ,MAAM,CAAC,KAAK;QACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC7B;;;;IAEM,WAAW;;cACV,QAAQ,GAAG,SAAS;;cACpB,IAAI,GAAG,SAAS;QACtB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS;;;;QAC7C,CAAC,QAAQ;YACP,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;aAC3D;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;aACjB;SACF,EACF,CAAC;KACH;;;YA9BF,SAAS,SAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,6lBAA4C;aAC7C;;;oBAEE,KAAK;uBACL,KAAK;8BACL,KAAK;4BACL,MAAM;;;;IAHP,qCAA8B;;IAC9B,wCAAmC;;IACnC,+CAA8C;;IAC9C,6CAAsF;;IAEtF,8CAA0B;;;;;;;;ACd5B,MASa,mBAAmB;;;;IAsC9B,YACU,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAnCb,OAAE,GAAG,EAAE,CAAC;QACR,WAAM,GAAG,EAAE,CAAC;QACZ,WAAM,GAAG,EAAE,CAAC;QACZ,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,IAAI,CAAC;QACf,kBAAa,GAA2B,IAAI,YAAY,EAAY,CAAC;QACrE,gBAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;QAC/D,iBAAY,GAAgC,IAAI,YAAY,EAAiB,CAAC;QAExF,gBAAW,GAAG,KAAK,CAAC;QAEpB,mBAAc,GAAG,CAAC,CAAC;KAyBtB;;;;;IArBG,UAAU,CAAC,KAAU;QAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;;;;;IAGM,WAAW,CAAC,KAAU;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;;;;;IAGM,MAAM,CAAC,KAAU;QACtB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;;cACnB,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;;;;IAMM,WAAW;QAChB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACtC;;;;IAEM,WAAW;;cACV,KAAK,GAAU,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;QAC7E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;;;;;IAEM,WAAW,CAAC,KAAK;;;QAGtB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;KACzB;;;;IAED,eAAe;QACb,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;SAAE;QACjH,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;SAAE;QAC3G,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;SAAE;KACxG;;;;;;IAES,WAAW,CAAC,KAAK;;cACnB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACtE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC5C;KACF;;;;;;IAES,WAAW,CAAC,KAAK;;QAEzB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;;QAG5B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS;;;;QACxC,CAAC,QAAQ;YACP,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;aAC3D;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACxC;SACF;;;;QACD,CAAC,GAAG;YACF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAClB,EACF,CAAC;KACH;;;;;;IAES,eAAe,CAAC,IAAc;QACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;;;;;;IAES,cAAc,CAAC,KAAU;QACjC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;;;YA1GF,SAAS,SAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,qsDAA2C;aAC5C;;;;YARyF,SAAS;;;wBAUhG,SAAS,SAAC,WAAW,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC;uBAEtC,KAAK;iBACL,KAAK;qBACL,KAAK;qBACL,KAAK;uBACL,KAAK;uBACL,KAAK;4BACL,MAAM;0BACN,MAAM;2BACN,MAAM;yBAON,YAAY,SAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;0BAMnC,YAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;qBAMpC,YAAY,SAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;;;IA7BhC,wCAA+D;;IAE/D,uCAAmC;;IACnC,iCAAwB;;IACxB,qCAA4B;;IAC5B,qCAA4B;;IAC5B,uCAAiC;;IACjC,uCAAgC;;IAChC,4CAAsF;;IACtF,0CAAgF;;IAChF,2CAA+F;;IAE/F,0CAA2B;;IAC3B,yCAA0B;;IAC1B,6CAA0B;;IAC1B,6CAA8B;;;;;IAuB5B,uCAA2B;;;;;;;;AChD/B,MAKa,yBAAyB;;;;IAKpC,YAC8C,UAAU;QAAV,eAAU,GAAV,UAAU,CAAA;QALjD,sBAAiB,GAAG,mBAAmB,CAAC;QACxC,sBAAiB,GAAG,mBAAmB,CAAC;QACxC,sBAAiB,GAAG,mBAAmB,CAAC;QAK7C,IAAI,UAAU,CAAC,iBAAiB,EAAE;YAChC,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;SACvD;QAED,IAAI,UAAU,CAAC,iBAAiB,EAAE;YAChC,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;SACvD;QAED,IAAI,UAAU,CAAC,iBAAiB,EAAE;YAChC,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;SACvD;KACF;;;YApBF,UAAU;;;;4CAON,MAAM,SAAC,0BAA0B;;;;IALpC,sDAA+C;;IAC/C,sDAA+C;;IAC/C,sDAA+C;;;;;IAG7C,+CAAsD;;;;;;;;ACX1D,MAUa,uBAAuB;;;;IAIlC,YAAoB,eAA0C;QAA1C,oBAAe,GAAf,eAAe,CAA2B;QAH9C,iBAAY,GAAkB,EAAE,CAAC;QACjC,oBAAe,GAAG,WAAW,CAAC;KAG7C;;;;;IAEM,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACpC;;;;;IAEM,aAAa,CAAC,OAAiB;;cAC9B,MAAM,GAAG,EAAE;QACjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;;;YArBF,SAAS,SAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,kmBAA+C;aAChD;;;;YALQ,yBAAyB;;;2BAO/B,KAAK;8BACL,KAAK;;;;IADN,+CAAiD;;IACjD,kDAA8C;;;;;IAElC,kDAAkD;;;;;;;;ACdhE,aAqCoD,EAAE;AAGtD,MAAa,YAAY;;;;;IACvB,OAAO,QAAQ,CACb,qBAAyC,EAAE;QAE3C,OAAO;YACL,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE;gBACT,EAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,kBAAkB,EAAC;aACpE;SACF,CAAC;KACH;;;YApCF,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,iBAAiB;oBACjB,WAAW;oBACX,UAAU;iBACX;gBACD,YAAY,EAAE;oBACZ,eAAe;oBACf,oBAAoB;oBACpB,oBAAoB;oBACpB,mBAAmB;oBACnB,uBAAuB;iBACxB;gBACD,OAAO,EAAE;oBACP,eAAe;oBACf,oBAAoB;oBACpB,oBAAoB;oBACpB,mBAAmB;oBACnB,uBAAuB;iBACxB;gBACD,SAAS,EAAE;oBACT,yBAAyB;oBACzB,EAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,MAAI,EAAC;iBACpD;aACF;;;;;;;;;;;;;;;ACvCD,MAAa,sBAAsB,GAAG;IACpC,SAAS,EAAE,gCAAgC;IAC3C,WAAW,EAAE,CAAC,gEAAgE,CAAC;IAC/E,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE;QACd,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAC,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAC;KAC1D;IACD,WAAW,EAAE,qBAAqB;IAClC,aAAa,EAAE;QACb,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC;KAC9D;IACD,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,SAAS;CACnB;;;;;;;AChBD,MAiBa,gBAAgB;IAZ7B;QAaoC,aAAQ,GAAG,IAAI,CAAC;QAIzC,UAAK,GAAG,KAAK,CAAC;QAKb,gBAAW,GAAyB,IAAI,YAAY,EAAE,CAAC;QACvD,UAAK,GAAyB,IAAI,YAAY,EAAE,CAAC;QACjD,SAAI,GAAyB,IAAI,YAAY,EAAE,CAAC;QAGnD,mBAAc,GAAG,sBAAsB,CAAC;QACxC,eAAU,GAAG,KAAK,CAAC;QAgClB,gBAAW;;;;QAAG,CAAC,GAAG,IAAW,KAAK,SAAS,EAAC;KAuBrD;;;;;;IApDQ,UAAU,CAAC,KAAa;QAC7B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC7C;;;;;IAEM,OAAO,CAAC,KAAa;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxB;;;;;IAEM,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvB;;;;;IAEM,gBAAgB,CAAC,QAAoB;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;KAC7B;;;;IAEM,iBAAiB;KACvB;;;;;IAEM,gBAAgB,CAAC,UAAmB;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;;;;IAEM,QAAQ;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;;IAIO,SAAS;QACf,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;SACzC;aAAM;YACL,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;aACvC;YAED,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;aACtD;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;aAC7C;YAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAChE;SACF;KACF;;;YAlFF,SAAS,SAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,4TAAuC;gBAIvC,SAAS,EAAE,CAAC;wBACV,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,UAAU;;;wBAAC,MAAM,gBAAgB,EAAC;;wBAC/C,KAAK,EAAE,IAAI;qBACZ,CAAC;;aACH;;;uBAEE,WAAW,SAAC,mBAAmB;gCAE/B,KAAK;4BACL,KAAK;oBACL,KAAK;uBACL,KAAK;2BACL,KAAK;uBACL,KAAK;0BAEL,MAAM;oBACN,MAAM;mBACN,MAAM;;;;IAXP,oCAAkD;;IAElD,6CAAqC;;IACrC,yCAA+B;;IAC/B,iCAAuB;;IACvB,oCAA0B;;IAC1B,wCAA2B;;IAC3B,oCAA0B;;IAE1B,uCAAiE;;IACjE,iCAA2D;;IAC3D,gCAA0D;;IAE1D,2CAA+B;;IAC/B,0CAA+C;;IAC/C,sCAA0B;;;;;IAgC1B,uCAAoD;;;;;;;;ACjEtD,MAoBa,aAAa;;;YAdzB,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,cAAc;iBACf;gBACD,YAAY,EAAE;oBACZ,gBAAgB;iBACjB;gBACD,OAAO,EAAE;oBACP,gBAAgB;iBACjB;aACF;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"acpaas-ui-ngx-forms.js","sources":["ng://@acpaas-ui/ngx-forms/lib/mask/directives/mask.directive.ts","ng://@acpaas-ui/ngx-forms/lib/mask/mask.module.ts","ng://@acpaas-ui/ngx-forms/lib/shared/services/search.service.ts","ng://@acpaas-ui/ngx-forms/lib/auto-complete/components/auto-complete/auto-complete.component.ts","ng://@acpaas-ui/ngx-forms/lib/auto-complete/auto-complete.module.ts","ng://@acpaas-ui/ngx-forms/lib/datepicker/datepicker.conf.ts","ng://@acpaas-ui/ngx-forms/lib/datepicker/components/datepicker/datepicker.component.ts","ng://@acpaas-ui/ngx-forms/lib/datepicker/datepicker.module.ts","ng://@acpaas-ui/ngx-forms/lib/range-slider/components/range-slider/range-slider.component.ts","ng://@acpaas-ui/ngx-forms/lib/range-slider/range-slider.module.ts","ng://@acpaas-ui/ngx-forms/lib/search-filter/components/search-filter/search-filter.component.ts","ng://@acpaas-ui/ngx-forms/lib/search-filter/search-filter.module.ts","ng://@acpaas-ui/ngx-forms/lib/timepicker/classes/timepicker.validators.ts","ng://@acpaas-ui/ngx-forms/lib/timepicker/types/timepicker.types.ts","ng://@acpaas-ui/ngx-forms/lib/timepicker/components/timepicker/timepicker.component.ts","ng://@acpaas-ui/ngx-forms/lib/timepicker/timepicker.module.ts","ng://@acpaas-ui/ngx-forms/lib/upload/upload.conf.ts","ng://@acpaas-ui/ngx-forms/lib/upload/classes/uploader.class.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/upload/upload.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/upload-input/upload-input.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/upload-queue/upload-queue.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/upload-zone/upload-zone.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/services/validation-messages.service.ts","ng://@acpaas-ui/ngx-forms/lib/upload/components/validation-list/validation-list.component.ts","ng://@acpaas-ui/ngx-forms/lib/upload/upload.module.ts","ng://@acpaas-ui/ngx-forms/lib/wysiwyg/wysiwyg.conf.ts","ng://@acpaas-ui/ngx-forms/lib/wysiwyg/components/wysiwyg/wysiwyg.component.ts","ng://@acpaas-ui/ngx-forms/lib/wysiwyg/wysiwyg.module.ts"],"sourcesContent":["import { Directive, ElementRef, Input, OnChanges } from '@angular/core';\nimport Inputmask from 'inputmask';\n\n@Directive({\n selector: '[auiMask]',\n})\nexport class MaskDirective implements OnChanges {\n @Input() public auiMask: string;\n\n constructor(private ref: ElementRef) {\n }\n\n public ngOnChanges(): void {\n this.setMask(this.auiMask);\n }\n\n private setMask(mask): void {\n Inputmask(mask).mask(this.ref.nativeElement);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MaskDirective } from './directives/mask.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n MaskDirective,\n ],\n exports: [\n MaskDirective,\n ],\n providers: [],\n})\nexport class MaskModule {\n}\n","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: [\n './auto-complete.component.scss',\n ],\n templateUrl: './auto-complete.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutoCompleteComponent), // tslint: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() 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() mask: string = null;\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 @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(\n private ref: ElementRef,\n private searchService: SearchService\n ) {\n }\n\n public updateModel = (_: any) => {\n }\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\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","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 { MaskModule } from '../mask/mask.module';\nimport { SearchService } from '../shared/services/search.service';\nimport { AutoCompleteComponent } from './components/auto-complete/auto-complete.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n FlyoutModule,\n SelectableListModule,\n MaskModule,\n ],\n declarations: [\n AutoCompleteComponent,\n ],\n exports: [\n AutoCompleteComponent,\n ],\n providers: [\n SearchService,\n ],\n})\nexport class AutoCompleteModule {\n}\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 = '/';\nexport const DATEPICKER_DATE_MASK = `99${DATEPICKER_SEPARATOR_CHAR}99${DATEPICKER_SEPARATOR_CHAR}9999`;\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 { ControlValueAccessor, FormBuilder, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateHelper, DateRange } from '@acpaas-ui/js-date-utils';\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} from '@acpaas-ui/ngx-calendar';\n\nimport {\n DATEPICKER_DATE_MASK,\n DATEPICKER_DEFAULT_ERROR_LABELS,\n DATEPICKER_ERROR_LABELS,\n DATEPICKER_SEPARATOR_CHAR\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: [\n './datepicker.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent), // tslint:disable-line:no-forward-ref\n multi: true,\n }, {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatepickerComponent), // tslint:disable-line:no-forward-ref\n multi: true,\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() range: DateRange;\n @Input()\n min: Date | null;\n @Input()\n max: Date | null;\n @Input() autocomplete: 'off';\n\n @Output() blur = new EventEmitter<Event>();\n\n public dateMask = {mask: DATEPICKER_DATE_MASK, showMaskOnHover: false};\n public formControl: FormControl;\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 monthLabels = CALENDAR_DEFAULT_MONTH_LABELS,\n @Inject(CALENDAR_WEEKDAY_LABELS) private weekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n @Inject(DATEPICKER_ERROR_LABELS) private errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS,\n public calendarService: CalendarService,\n private formBuilder: FormBuilder,\n private ref: ChangeDetectorRef\n ) {\n }\n\n public ngOnInit(): void {\n this.createInterval();\n this.formControl = this.formBuilder.control({value: '', disabled: this.isDisabled});\n this.formControl.valueChanges\n .pipe(\n takeUntil(this.componentDestroyed$)\n )\n .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 this.onChange(date.toISOString());\n } else {\n // Change value with original value (and not null or '') so we can add an error in the validate function\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(this.min ? new Date(this.min) : null, this.max ? new Date(this.max) : null)\n .not()\n .build();\n }\n\n public writeValue(value: string | Date): void {\n this.selectedDate = typeof value === 'string'\n ? this.isISODateFormat(value) ? new Date(value) : DateHelper.parseDate(value, 'dd/MM/yyyy')\n : value;\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: FormControl): 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 range: this.errorLabels.ERRORS_INVALID_RANGE,\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","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 { MaskModule } from '../mask/mask.module';\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: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CalendarModule,\n IconModule,\n FlyoutModule,\n MaskModule,\n ],\n declarations: [\n DatepickerComponent,\n ],\n exports: [\n DatepickerComponent,\n ],\n providers: [\n {provide: CALENDAR_WEEKDAY_LABELS, useValue: CALENDAR_DEFAULT_WEEKDAY_LABELS},\n {provide: CALENDAR_MONTH_LABELS, useValue: CALENDAR_DEFAULT_MONTH_LABELS},\n {provide: DATEPICKER_ERROR_LABELS, useValue: DATEPICKER_DEFAULT_ERROR_LABELS},\n ],\n})\nexport class DatepickerModule {\n static forChild(\n weekdayLabels: string[],\n monthLabels: string[],\n errorLabels: DatepickerErrorLabels\n ): ModuleWithProviders {\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: [\n './range-slider.component.scss',\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSliderComponent), // tslint: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 labelBefore = '';\n @Input() public labelAfter = '';\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\n @HostBinding('class.is-disabled') get disabledClass() {\n return this.isDisabled;\n }\n\n public propagateChange = (value: number | RangeSliderRange) => {\n }\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\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 (Object.keys(keyCodes).map(e => keyCodes[e]).indexOf(key) === -1) {\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\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 = (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","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: [\n CommonModule,\n FormsModule,\n ],\n declarations: [\n RangeSliderComponent,\n ],\n exports: [\n RangeSliderComponent,\n ],\n})\nexport class RangeSliderModule {\n}\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 providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SearchFilterComponent), // tslint:disable-line:no-forward-ref\n multi: true,\n }],\n})\nexport class SearchFilterComponent implements OnInit, 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 = 'Filter';\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 placeholder = 'Zoeken';\n @Input() public inputDelay = 150;\n @Input() public showAllByDefault = false;\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\n public filterDataFromSearch: () => {};\n\n constructor() {\n this.filterDataFromSearch = debounce(this.filterData.bind(this), this.inputDelay);\n }\n\n public updateModel: (_) => any = () => {\n }\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\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public ngOnInit(): void {\n if (this.showAllByDefault) {\n this.filterData();\n }\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\n this.filterData();\n this.updateModel(this.selectedItems);\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 = [\n ...this.selectedItems.slice(0, selected),\n ...this.selectedItems.slice(selected + 1),\n ];\n }\n\n this.updateModel(this.selectedItems);\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","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: [\n CommonModule,\n FlyoutModule,\n FormsModule,\n IconModule,\n ],\n declarations: [\n SearchFilterComponent,\n ],\n exports: [\n SearchFilterComponent,\n ],\n})\nexport class SearchFilterModule {\n}\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 { ControlValueAccessor, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DateHelper } from '@acpaas-ui/js-date-utils';\n\nimport { TimepickerInputSize } from '../../types/timepicker.types';\n\n@Component({\n selector: 'aui-timepicker',\n templateUrl: './timepicker.component.html',\n styleUrls: [\n './timepicker.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimepickerComponent), // tslint:disable-line:no-forward-ref\n multi: true,\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\n public shouldUseFallback = false;\n public minutes: string[] = [];\n public hours: string[] = [];\n public updateModel: (value: string) => any;\n\n public timeControl = new FormControl();\n public fallbackForm: FormGroup;\n\n private componentDestroyed$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n private formBuilder: FormBuilder,\n private renderer: Renderer2\n ) {\n }\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\n .pipe(takeUntil(this.componentDestroyed$))\n .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\n .pipe(takeUntil(this.componentDestroyed$))\n .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\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).fill('').map((value, index) => {\n return DateHelper.addLeadingZero(index);\n });\n }\n\n private getHours(): string[] {\n return Array(24).fill('').map((value, index) => {\n return DateHelper.addLeadingZero(index);\n });\n }\n}\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: [\n ReactiveFormsModule,\n CommonModule,\n IconModule,\n ],\n declarations: [\n TimepickerComponent,\n ],\n exports: [\n TimepickerComponent,\n ],\n providers: [],\n})\nexport class TimepickerModule {\n}\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, 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: [\n './upload.component.scss',\n ],\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 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 }\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","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","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","import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2, ViewChild } 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 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 @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\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(\n private renderer: Renderer2,\n ) {}\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.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) { this.renderer.setProperty(this.fileInput.nativeElement, 'multiple', 'multiple'); }\n if (!!this.accept.length) { this.renderer.setProperty(this.fileInput.nativeElement, 'accept', this.accept.join()); }\n if (this.disabled) { this.renderer.setProperty(this.fileInput.nativeElement, 'disabled', 'disabled'); }\n if (this.capture !== '') { this.renderer.setAttribute(this.fileInput.nativeElement, 'capture', this.capture); }\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","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","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: [\n CommonModule,\n ProgressBarModule,\n FormsModule,\n IconModule,\n ],\n declarations: [\n UploadComponent,\n UploadInputComponent,\n UploadQueueComponent,\n UploadZoneComponent,\n ValidationListComponent,\n ],\n exports: [\n UploadComponent,\n UploadInputComponent,\n UploadQueueComponent,\n UploadZoneComponent,\n ValidationListComponent,\n ],\n providers: [\n ValidationMessagesService,\n {provide: UPLOAD_VALIDATION_MESSAGES, useValue: {}},\n ],\n})\nexport class UploadModule {\n static forChild(\n validationMessages: ValidationMessages = {}\n ): ModuleWithProviders {\n return {\n ngModule: UploadModule,\n providers: [\n {provide: UPLOAD_VALIDATION_MESSAGES, useValue: validationMessages},\n ],\n };\n }\n}\n","export const WYSIWYG_DEFAULT_CONFIG = {\n bodyClass: 'a-input ckeditor-editable-body',\n contentsCss: ['https://cdn.antwerpen.be/core_branding_scss/5.0.0/main.min.css'],\n extraPlugins: 'divarea',\n find_highlight: {\n element: 'span',\n styles: {'background-color': '#fffc00', color: '#0064b4'},\n },\n format_tags: 'p;h1;h2;h3;h4;h5;h6',\n toolbar_Basic: [\n ['Bold', 'Italic', 'Underline', '-', 'Format', '-', 'Source'],\n ],\n removeButtons: 'Styles',\n removePlugins: 'about',\n toolbar: null,\n uiColor: '#d8d8d8',\n};\n","import { Component, EventEmitter, forwardRef, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { WYSIWYG_DEFAULT_CONFIG } from '../../wysiwyg.conf';\n\n@Component({\n selector: 'aui-wysiwyg',\n templateUrl: './wysiwyg.component.html',\n styleUrls: [\n './wysiwyg.component.scss',\n ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WysiwygComponent), // tslint:disable-line:no-forward-ref\n multi: true,\n }],\n})\nexport class WysiwygComponent implements OnInit, ControlValueAccessor {\n @HostBinding('class.aui-wysiwyg') setClass = true;\n\n @Input() additionalStyling: string[];\n @Input() availableTags: string;\n @Input() basic = false;\n @Input() uiColour: string;\n @Input() customConfig: any;\n @Input() debounce: number;\n\n @Output() emitContent: EventEmitter<string> = new EventEmitter();\n @Output() focus: EventEmitter<string> = new EventEmitter();\n @Output() blur: EventEmitter<string> = new EventEmitter();\n\n public ckeditorContent: string;\n public ckeditorConfig = WYSIWYG_DEFAULT_CONFIG;\n public isDisabled = false;\n\n // NG_VALUE_ACCESSOR_INTERFACE\n public writeValue(value: string): void {\n this.ckeditorContent = value;\n this.updateModel(value);\n this.emitContent.emit(this.ckeditorContent);\n }\n\n public onFocus(value: string): void {\n this.focus.emit(value);\n }\n\n public onBlur(value: string): void {\n this.blur.emit(value);\n }\n\n public registerOnChange(onChange: () => void): void {\n this.updateModel = onChange;\n }\n\n public registerOnTouched(): void {\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public ngOnInit() {\n this.setConfig();\n }\n\n private updateModel = (...args: any[]) => undefined;\n\n private setConfig(): void {\n if (this.customConfig) {\n this.ckeditorConfig = this.customConfig;\n } else {\n if (this.basic) {\n this.ckeditorConfig.toolbar = 'Basic';\n }\n\n if (this.availableTags) {\n this.ckeditorConfig.format_tags = this.availableTags;\n }\n\n if (this.uiColour) {\n this.ckeditorConfig.uiColor = this.uiColour;\n }\n\n if (this.additionalStyling) {\n this.ckeditorConfig.contentsCss.concat(this.additionalStyling);\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CKEditorModule } from 'ng2-ckeditor';\nimport { WysiwygComponent } from './components/wysiwyg/wysiwyg.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CKEditorModule,\n ],\n declarations: [\n WysiwygComponent,\n ],\n exports: [\n WysiwygComponent,\n ],\n})\nexport class WysiwygModule {\n}\n"],"names":[],"mappings":"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"}
@@ -780,6 +780,19 @@ var DatepickerComponent = /** @class */ (function () {
780
780
  }
781
781
  }));
782
782
  };
783
+ /**
784
+ * @param {?} changes
785
+ * @return {?}
786
+ */
787
+ DatepickerComponent.prototype.ngOnChanges = /**
788
+ * @param {?} changes
789
+ * @return {?}
790
+ */
791
+ function (changes) {
792
+ if (changes.min || changes.max) {
793
+ this.createInterval();
794
+ }
795
+ };
783
796
  /**
784
797
  * @return {?}
785
798
  */
@@ -2641,6 +2654,7 @@ var UploadComponent = /** @class */ (function () {
2641
2654
  function UploadComponent() {
2642
2655
  this.id = '';
2643
2656
  this.accept = [];
2657
+ this.capture = '';
2644
2658
  this.ariaLabelRemove = 'Verwijder';
2645
2659
  this.disabled = false;
2646
2660
  this.multiple = true;
@@ -2699,13 +2713,14 @@ var UploadComponent = /** @class */ (function () {
2699
2713
  UploadComponent.decorators = [
2700
2714
  { type: Component, args: [{
2701
2715
  selector: 'aui-upload',
2702
- template: "<div class=\"m-upload aui-upload\">\n <aui-upload-zone\n [id]=\"id\"\n [accept]=\"accept\"\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 <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-zone>\n <aui-validation-list [ariaLabelRemove]=\"ariaLabelRemove\" [invalidFiles]=\"invalidFiles\"></aui-validation-list>\n <aui-upload-queue (uploadedFiles)=\"onUploadedFiles($event)\" *ngIf=\"!options?.autoUpload\" [ariaLabelRemove]=\"ariaLabelRemove\"\n [files]=\"queuedFiles\" [uploader]=\"uploader\"></aui-upload-queue>\n</div>\n",
2716
+ template: "<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 <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-zone>\n <aui-validation-list [ariaLabelRemove]=\"ariaLabelRemove\" [invalidFiles]=\"invalidFiles\"></aui-validation-list>\n <aui-upload-queue (uploadedFiles)=\"onUploadedFiles($event)\" *ngIf=\"!options?.autoUpload\" [ariaLabelRemove]=\"ariaLabelRemove\"\n [files]=\"queuedFiles\" [uploader]=\"uploader\"></aui-upload-queue>\n</div>\n",
2703
2717
  styles: [".m-upload__button>.m-upload__input{display:none}"]
2704
2718
  }] }
2705
2719
  ];
2706
2720
  UploadComponent.propDecorators = {
2707
2721
  id: [{ type: Input }],
2708
2722
  accept: [{ type: Input }],
2723
+ capture: [{ type: Input }],
2709
2724
  ariaLabelRemove: [{ type: Input }],
2710
2725
  disabled: [{ type: Input }],
2711
2726
  multiple: [{ type: Input }],
@@ -2720,6 +2735,8 @@ if (false) {
2720
2735
  /** @type {?} */
2721
2736
  UploadComponent.prototype.accept;
2722
2737
  /** @type {?} */
2738
+ UploadComponent.prototype.capture;
2739
+ /** @type {?} */
2723
2740
  UploadComponent.prototype.ariaLabelRemove;
2724
2741
  /** @type {?} */
2725
2742
  UploadComponent.prototype.disabled;
@@ -2907,6 +2924,7 @@ var UploadZoneComponent = /** @class */ (function () {
2907
2924
  this.renderer = renderer;
2908
2925
  this.id = '';
2909
2926
  this.accept = [];
2927
+ this.capture = '';
2910
2928
  this.ariaId = '';
2911
2929
  this.disabled = false;
2912
2930
  this.multiple = true;
@@ -2998,12 +3016,15 @@ var UploadZoneComponent = /** @class */ (function () {
2998
3016
  if (this.multiple !== false) {
2999
3017
  this.renderer.setProperty(this.fileInput.nativeElement, 'multiple', 'multiple');
3000
3018
  }
3001
- if (this.accept) {
3019
+ if (!!this.accept.length) {
3002
3020
  this.renderer.setProperty(this.fileInput.nativeElement, 'accept', this.accept.join());
3003
3021
  }
3004
3022
  if (this.disabled) {
3005
3023
  this.renderer.setProperty(this.fileInput.nativeElement, 'disabled', 'disabled');
3006
3024
  }
3025
+ if (this.capture !== '') {
3026
+ this.renderer.setAttribute(this.fileInput.nativeElement, 'capture', this.capture);
3027
+ }
3007
3028
  };
3008
3029
  /**
3009
3030
  * @protected
@@ -3103,6 +3124,7 @@ var UploadZoneComponent = /** @class */ (function () {
3103
3124
  uploader: [{ type: Input }],
3104
3125
  id: [{ type: Input }],
3105
3126
  accept: [{ type: Input }],
3127
+ capture: [{ type: Input }],
3106
3128
  ariaId: [{ type: Input }],
3107
3129
  disabled: [{ type: Input }],
3108
3130
  multiple: [{ type: Input }],
@@ -3125,6 +3147,8 @@ if (false) {
3125
3147
  /** @type {?} */
3126
3148
  UploadZoneComponent.prototype.accept;
3127
3149
  /** @type {?} */
3150
+ UploadZoneComponent.prototype.capture;
3151
+ /** @type {?} */
3128
3152
  UploadZoneComponent.prototype.ariaId;
3129
3153
  /** @type {?} */
3130
3154
  UploadZoneComponent.prototype.disabled;