@metadev/lux 0.16.3 → 0.19.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.
- package/esm2020/lib/autocomplete/autocomplete.component.mjs +479 -0
- package/esm2020/lib/autocomplete-list/autocomplete-list.component.mjs +254 -0
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +75 -0
- package/esm2020/lib/checkbox/checkbox.component.mjs +154 -0
- package/{esm2015/lib/datasource.js → esm2020/lib/datasource.mjs} +0 -0
- package/esm2020/lib/datetime/datetime.component.mjs +306 -0
- package/esm2020/lib/filter/filter.component.mjs +152 -0
- package/esm2020/lib/geolocation/geolocation.component.mjs +407 -0
- package/{esm2015/lib/geolocation/geolocation.service.js → esm2020/lib/geolocation/geolocation.service.mjs} +7 -11
- package/esm2020/lib/geolocation/openlayer-loader.service.mjs +62 -0
- package/esm2020/lib/helperFns.mjs +109 -0
- package/esm2020/lib/input/input.component.mjs +452 -0
- package/{esm2015/lib/input/regexp.service.js → esm2020/lib/input/regexp.service.mjs} +7 -6
- package/{esm2015/lib/lang.js → esm2020/lib/lang.mjs} +0 -0
- package/esm2020/lib/lux.module.mjs +130 -0
- package/{esm2015/lib/map/geopoint.js → esm2020/lib/map/geopoint.mjs} +0 -0
- package/esm2020/lib/map/map.component.mjs +265 -0
- package/esm2020/lib/modal/modal-backdrop.mjs +26 -0
- package/esm2020/lib/modal/modal-config.mjs +14 -0
- package/{esm2015/lib/modal/modal-dismiss-reasons.js → esm2020/lib/modal/modal-dismiss-reasons.mjs} +0 -0
- package/{esm2015/lib/modal/modal-ref.js → esm2020/lib/modal/modal-ref.mjs} +0 -0
- package/esm2020/lib/modal/modal-stack.mjs +179 -0
- package/esm2020/lib/modal/modal-window.mjs +119 -0
- package/esm2020/lib/modal/modal.service.mjs +26 -0
- package/{esm2015/lib/modal/util.js → esm2020/lib/modal/util.mjs} +0 -0
- package/esm2020/lib/pagination/pagination.component.mjs +137 -0
- package/{esm2015/lib/pagination/pagination.js → esm2020/lib/pagination/pagination.mjs} +0 -0
- package/esm2020/lib/radiogroup/radiogroup.component.mjs +130 -0
- package/esm2020/lib/select/select.component.mjs +149 -0
- package/{esm2015/lib/tooltip/placement.js → esm2020/lib/tooltip/placement.mjs} +0 -0
- package/{esm2015/lib/tooltip/tooltip-context.js → esm2020/lib/tooltip/tooltip-context.mjs} +0 -0
- package/esm2020/lib/tooltip/tooltip.component.mjs +23 -0
- package/esm2020/lib/tooltip/tooltip.directive.mjs +60 -0
- package/{esm2015/lib/tooltip/tooltip.service.js → esm2020/lib/tooltip/tooltip.service.mjs} +7 -9
- package/{esm2015/lib/tooltip/tooltop-content.js → esm2020/lib/tooltip/tooltop-content.mjs} +0 -0
- package/esm2020/lib/voice-recognition/voice-recognition.directive.mjs +73 -0
- package/{esm2015/lib/window/window.service.js → esm2020/lib/window/window.service.mjs} +0 -0
- package/esm2020/metadev-lux.mjs +5 -0
- package/esm2020/public-api.mjs +21 -0
- package/fesm2015/metadev-lux.mjs +4345 -0
- package/fesm2015/metadev-lux.mjs.map +1 -0
- package/fesm2020/metadev-lux.mjs +4343 -0
- package/fesm2020/metadev-lux.mjs.map +1 -0
- package/lib/autocomplete/autocomplete.component.d.ts +3 -0
- package/lib/autocomplete-list/autocomplete-list.component.d.ts +3 -0
- package/lib/breadcrumb/breadcrumb.component.d.ts +3 -0
- package/lib/checkbox/checkbox.component.d.ts +3 -0
- package/lib/datetime/datetime.component.d.ts +4 -0
- package/lib/filter/filter.component.d.ts +3 -0
- package/lib/geolocation/geolocation.component.d.ts +4 -0
- package/lib/geolocation/geolocation.service.d.ts +3 -0
- package/lib/geolocation/openlayer-loader.service.d.ts +3 -0
- package/lib/helperFns.d.ts +2 -0
- package/lib/input/input.component.d.ts +15 -0
- package/lib/input/regexp.service.d.ts +3 -0
- package/lib/lux.module.d.ts +26 -0
- package/lib/map/map.component.d.ts +3 -0
- package/lib/modal/modal-backdrop.d.ts +3 -0
- package/lib/modal/modal-config.d.ts +3 -0
- package/lib/modal/modal-stack.d.ts +3 -0
- package/lib/modal/modal-window.d.ts +3 -0
- package/lib/modal/modal.service.d.ts +3 -0
- package/lib/pagination/pagination.component.d.ts +3 -0
- package/lib/radiogroup/radiogroup.component.d.ts +3 -0
- package/lib/select/select.component.d.ts +3 -0
- package/lib/tooltip/tooltip.component.d.ts +3 -0
- package/lib/tooltip/tooltip.directive.d.ts +3 -0
- package/lib/tooltip/tooltip.service.d.ts +3 -0
- package/lib/voice-recognition/voice-recognition.directive.d.ts +3 -0
- package/metadev-lux.d.ts +1 -16
- package/package.json +20 -8
- package/public-api.d.ts +12 -7
- package/bundles/metadev-lux.umd.js +0 -4647
- package/bundles/metadev-lux.umd.js.map +0 -1
- package/esm2015/lib/autocomplete/autocomplete.component.js +0 -455
- package/esm2015/lib/autocomplete-list/autocomplete-list.component.js +0 -230
- package/esm2015/lib/breadcrumb/breadcrumb.component.js +0 -77
- package/esm2015/lib/checkbox/checkbox.component.js +0 -142
- package/esm2015/lib/datetime/datetime.component.js +0 -275
- package/esm2015/lib/filter/filter.component.js +0 -140
- package/esm2015/lib/geolocation/geolocation.component.js +0 -371
- package/esm2015/lib/geolocation/openlayer-loader.service.js +0 -63
- package/esm2015/lib/helperFns.js +0 -93
- package/esm2015/lib/input/input.component.js +0 -371
- package/esm2015/lib/lux.module.js +0 -83
- package/esm2015/lib/map/map.component.js +0 -261
- package/esm2015/lib/modal/modal-backdrop.js +0 -19
- package/esm2015/lib/modal/modal-config.js +0 -12
- package/esm2015/lib/modal/modal-stack.js +0 -182
- package/esm2015/lib/modal/modal-window.js +0 -92
- package/esm2015/lib/modal/modal.service.js +0 -28
- package/esm2015/lib/pagination/pagination.component.js +0 -134
- package/esm2015/lib/radiogroup/radiogroup.component.js +0 -114
- package/esm2015/lib/select/select.component.js +0 -131
- package/esm2015/lib/tooltip/tooltip.component.js +0 -19
- package/esm2015/lib/tooltip/tooltip.directive.js +0 -52
- package/esm2015/lib/voice-recognition/voice-recognition.directive.js +0 -76
- package/esm2015/metadev-lux.js +0 -21
- package/esm2015/public-api.js +0 -16
- package/fesm2015/metadev-lux.js +0 -4025
- package/fesm2015/metadev-lux.js.map +0 -1
- package/metadev-lux.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadev-lux.umd.js","sources":["../../../projects/lux/src/lib/helperFns.ts","../../../projects/lux/src/lib/autocomplete/autocomplete.component.ts","../../../projects/lux/src/lib/lang.ts","../../../projects/lux/src/lib/autocomplete-list/autocomplete-list.component.ts","../../../projects/lux/src/lib/checkbox/checkbox.component.ts","../../../projects/lux/src/lib/datetime/datetime.component.ts","../../../projects/lux/src/lib/input/regexp.service.ts","../../../projects/lux/src/lib/input/input.component.ts","../../../projects/lux/src/lib/filter/filter.component.ts","../../../projects/lux/src/lib/modal/modal-ref.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/lux/src/lib/modal/util.ts","../../../projects/lux/src/lib/modal/modal-dismiss-reasons.ts","../../../projects/lux/src/lib/modal/modal-window.ts","../../../projects/lux/src/lib/modal/modal-backdrop.ts","../../../projects/lux/src/lib/modal/modal-config.ts","../../../projects/lux/src/lib/modal/modal-stack.ts","../../../projects/lux/src/lib/modal/modal.service.ts","../../../projects/lux/src/lib/geolocation/geolocation.service.ts","../../../projects/lux/src/lib/geolocation/geolocation.component.ts","../../../projects/lux/src/lib/tooltip/placement.ts","../../../projects/lux/src/lib/tooltip/tooltip.component.ts","../../../projects/lux/src/lib/tooltip/tooltop-content.ts","../../../projects/lux/src/lib/tooltip/tooltip.service.ts","../../../projects/lux/src/lib/tooltip/tooltip.directive.ts","../../../projects/lux/src/lib/breadcrumb/breadcrumb.component.ts","../../../projects/lux/src/lib/geolocation/openlayer-loader.service.ts","../../../projects/lux/src/lib/map/map.component.ts","../../../projects/lux/src/lib/pagination/pagination.component.ts","../../../projects/lux/src/lib/radiogroup/radiogroup.component.ts","../../../projects/lux/src/lib/select/select.component.ts","../../../projects/lux/src/lib/voice-recognition/voice-recognition.directive.ts","../../../projects/lux/src/lib/window/window.service.ts","../../../projects/lux/src/lib/lux.module.ts","../../../projects/lux/src/public-api.ts","../../../projects/lux/src/metadev-lux.ts"],"sourcesContent":["// undefined and null functions\r\n\r\nexport const exists = (value: any): boolean =>\r\n value !== null && value !== undefined;\r\n\r\nexport const hasValue = (value: any): boolean =>\r\n exists(value) && (typeof value === 'string' ? !isEmptyString(value) : true);\r\n\r\n// string functions\r\n\r\nexport const isEmptyString = (value: string): boolean => value.trim() === '';\r\n\r\nexport const isValidEmail = (value: string): boolean => {\r\n const re =\r\n /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;\r\n return re.test(String(value).toLowerCase().trim());\r\n};\r\n\r\n// date functions\r\n\r\nexport const isValidDate = (date: Date): boolean =>\r\n exists(date) ? !isNaN(date.getTime()) : false;\r\n\r\nexport const normalizeDate = (value: any): string => {\r\n if (typeof value === 'string' && value.length > 10) {\r\n return value.substr(0, 10);\r\n }\r\n return value ? value.toString() : null;\r\n};\r\n\r\nexport const addTimezoneOffset = (date: Date): Date => {\r\n if (!isValidDate(date)) {\r\n return date;\r\n } else {\r\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000);\r\n }\r\n};\r\n\r\n// number functions\r\n\r\nexport const isValidNumber = (\r\n value: string | number | undefined | null\r\n): boolean => (hasValue(value) ? !Number.isNaN(Number(value)) : false);\r\n\r\nexport const numberOfDecimalDigits = (\r\n x: number | string\r\n): number | undefined => {\r\n if (isValidNumber(x)) {\r\n const xString = String(Number(x));\r\n if (xString === 'Infinity') {\r\n return 0;\r\n }\r\n const indexOfE = xString.indexOf('e');\r\n if (indexOfE >= 0) {\r\n return 0;\r\n }\r\n const indexOfDecimalPoint = xString.indexOf('.');\r\n if (indexOfDecimalPoint < 0) {\r\n return 0;\r\n } else {\r\n return xString.length - indexOfDecimalPoint - 1;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const numberOfWholeDigits = (x: number | string): number | undefined => {\r\n if (isValidNumber(x)) {\r\n let xString = String(Number(x));\r\n if (xString.indexOf('-') === 0) {\r\n xString = xString.slice(1, xString.length);\r\n }\r\n if (xString === 'Infinity') {\r\n return Infinity;\r\n }\r\n if (xString.indexOf('0') === 0) {\r\n xString = xString.slice(1, xString.length);\r\n }\r\n const indexOfE = xString.indexOf('e');\r\n if (indexOfE >= 0) {\r\n return Number(xString.slice(indexOfE + 1, xString.length)) + 1;\r\n }\r\n const indexOfDecimalPoint = xString.indexOf('.');\r\n if (indexOfDecimalPoint < 0) {\r\n return xString.length;\r\n } else {\r\n return indexOfDecimalPoint;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const roundToMultipleOf = (x: number, modulo: number): number => {\r\n const moduloString = String(modulo);\r\n // approximates the result\r\n // prone to inexactitude because of floating point arithmetic\r\n const approximation = Math.round(x / modulo) * modulo;\r\n const approximationString = String(approximation);\r\n // remove useless decimals\r\n const uselessDecimalsInApproximation =\r\n numberOfDecimalDigits(approximationString) -\r\n numberOfDecimalDigits(moduloString);\r\n const resultString = approximationString.slice(\r\n 0,\r\n approximationString.length - uselessDecimalsInApproximation\r\n );\r\n return Number(resultString);\r\n};\r\n\r\n// other functions\r\n\r\nexport const isInitialAndEmpty = (\r\n previousValue: any,\r\n newValue: any\r\n): boolean => {\r\n const isPrevArray = Array.isArray(previousValue);\r\n const isNewArray = Array.isArray(newValue);\r\n return !(\r\n (isPrevArray ? previousValue.length !== 0 : Boolean(previousValue)) ||\r\n (isNewArray ? newValue.length !== 0 : Boolean(newValue))\r\n );\r\n};\r\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { Observable, of } from 'rxjs';\nimport { debounceTime, first, map } from 'rxjs/operators';\nimport {\n DataSource,\n DataSourceItem,\n DecoratedDataSource,\n DecoratedDataSourceItem\n} from '../datasource';\nimport { isInitialAndEmpty } from '../helperFns';\n\nexport const LOST_FOCUS_TIME_WINDOW_MS = 200; // ms\n@Component({\n selector: 'lux-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AutocompleteComponent)\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: forwardRef(() => AutocompleteComponent)\n }\n ]\n})\nexport class AutocompleteComponent\n implements ControlValueAccessor, Validator, OnInit, AfterViewInit\n{\n static idCounter = 0;\n\n @ViewChild('i0', { static: true }) i0: ElementRef;\n @ViewChild('completeDiv', { static: true }) completeDiv: ElementRef;\n\n private _dataSource: DataSource<any, string>;\n private _placeholder: string;\n private _value: any;\n private lostFocusHandled = true;\n private t0 = 0;\n\n showSpinner = false;\n touched = false;\n completionList: DecoratedDataSource = [];\n showCompletion = false;\n focusItem: DataSourceItem<any, string>;\n\n @Output() valueChange = new EventEmitter<any>();\n @Output() dataSourceChange = new EventEmitter<DataSource<any, string>>();\n\n @Input() public inputId: string;\n @Input() public disabled: boolean | null = null;\n @Input() public readonly: boolean | null = null;\n @Input() label = '';\n /** If canAddNewValues, user can type items not present in the data-source. */\n @Input() canAddNewValues = false;\n /** After cleaning the selection should the completion list remain open or closed:\n * false: (default) close on filters, to clean a filter and select all.\n * true: keep open (when the action most likely is to pick another one).\n */\n @Input() keepOpenAfterDelete = false;\n\n @Input()\n get value(): any {\n return this._value;\n }\n set value(v: any) {\n const initialAndEmpty = isInitialAndEmpty(this._value, v);\n this._value = v;\n this.onChange(v);\n this.completeLabel();\n if (!initialAndEmpty) {\n this.valueChange.emit(v);\n }\n }\n @Input()\n get dataSource(): DataSource<any, string> {\n return this._dataSource;\n }\n set dataSource(v: DataSource<any, string>) {\n this._dataSource = v;\n this.dataSourceChange.emit(v);\n }\n @Input() required = false;\n\n @Input()\n set placeholder(v: string) {\n this._placeholder = v;\n }\n get placeholder(): string {\n return this._placeholder ? this._placeholder : '';\n }\n\n @Input() resolveLabelsFunction?: (\n instance: any,\n keys: any[]\n ) => Observable<DataSource<any, string>> = undefined;\n @Input() populateFunction?: (\n instance: any,\n search: string\n ) => Observable<DataSource<any, string>> = undefined;\n @Input() instance: any;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n // ControlValueAccessor Interface\n onChange = (value): void => {};\n onTouched = (): void => {};\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n markAsTouched(): void {\n if (!this.touched && !this.disabled) {\n this.onTouched();\n this.touched = true;\n }\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End ControlValueAccessor Interface\n\n // Validator interface\n registerOnValidatorChange(): void {}\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (\n this.required &&\n (value === '' || value === null || value === undefined)\n ) {\n return { required: { value, reason: 'Required field.' } };\n }\n return null;\n }\n // End of Validator interface\n\n clear(): void {\n this.value = null;\n this.toggleCompletion(this.keepOpenAfterDelete, '');\n }\n\n private completeLabel(): void {\n if (this.value) {\n if (this.dataSource) {\n this.label = findLabelForId(this.dataSource, this.value) || '';\n } else if (this.instance && this.resolveLabelsFunction) {\n this.resolveLabelsFunction(this.instance, [this.value])\n .pipe(debounceTime(1), first())\n .subscribe((data) => {\n this.label = findLabelForId(data, this.value) || '';\n });\n }\n } else {\n this.label = '';\n }\n }\n\n ngOnInit(): void {\n this.inputId = this.inputId\n ? this.inputId\n : `autocompletelist${AutocompleteComponent.idCounter++}`;\n this.completeLabel();\n }\n ngAfterViewInit(): void {\n this.setSameWidth();\n }\n onInputResized(): void {\n this.setSameWidth();\n }\n private setSameWidth(): void {\n const width = this.i0.nativeElement.getBoundingClientRect().width;\n this.completeDiv.nativeElement.style.width = `${width}px`;\n }\n\n onKeydown(event: KeyboardEvent, label: string): void {\n switch (event.key) {\n case 'Tab':\n if (label) {\n this.pickSelectionOrFirstMatch(label);\n }\n this.showCompletion = false;\n break;\n }\n this.markAsTouched();\n }\n onKeypress(event: KeyboardEvent, label: string): void {\n switch (event.key) {\n case 'Intro':\n case 'Enter':\n this.pickSelectionOrFirstMatch(label);\n event.preventDefault();\n break;\n }\n this.markAsTouched();\n }\n onKeyup(event: KeyboardEvent, label: string): void {\n switch (event.key) {\n case 'PageDown':\n this.focusOnNext(5);\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.focusOnNext(1);\n event.preventDefault();\n break;\n case 'PageUp':\n this.focusOnPrevious(5);\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.focusOnPrevious(1);\n event.preventDefault();\n break;\n case 'Escape':\n this.complete(null);\n event.preventDefault();\n break;\n case 'Intro':\n case 'Enter':\n event.preventDefault();\n break;\n default:\n this.showCompletionList(label);\n // event.preventDefault();\n }\n this.markAsTouched();\n }\n private focusOnNext(offset: number): void {\n const list = this.completionList || [];\n const index = list.findIndex(\n (it) => this.focusItem && it.key === this.focusItem.key\n );\n const indexNext =\n -1 && list.length > index + offset ? index + offset : list.length - 1;\n const next = list[indexNext];\n this.focusItem = next;\n this.ensureItemVisible(index);\n }\n private focusOnPrevious(offset: number): void {\n const list = this.completionList || [];\n const index = list.findIndex(\n (it) => this.focusItem && it.key === this.focusItem.key\n );\n const indexPrevious = index !== -1 && index > offset ? index - offset : 0;\n const next = list[indexPrevious];\n this.focusItem = next;\n this.ensureItemVisible(index);\n }\n onLostFocus(label: string): void {\n this.lostFocusHandled = false;\n this.t0 = performance.now();\n // console.log('Init LostFocus');\n setTimeout(() => {\n // needs to postpone actions some milliseconds to verify if\n // lost focus was followed by a list selection -> then cancel\n // if not -> make side effect\n if (!this.lostFocusHandled) {\n // console.log(\n // 'Lost focus 2',\n // this.lostFocusHandled,\n // 'SIDE EFFECT',\n // performance.now() - this.t0,\n // 'label:',\n // label\n // );\n if (label && this.label !== label) {\n this.pickSelectionOrFirstMatch(label);\n } else {\n this.lostFocusHandled = true;\n }\n this.toggleCompletion(false, label);\n } else {\n // do nothing (list selection took place)\n // console.log(\n // 'onlost focus 2',\n // this.lostFocusHandled,\n // 'nothing',\n // performance.now() - this.t0\n // );\n }\n }, LOST_FOCUS_TIME_WINDOW_MS);\n }\n complete(item: DataSourceItem<Record<string, unknown>, string>): void {\n if (!this.lostFocusHandled) {\n this.lostFocusHandled = true; // prevent a previous lostFocus to trigger a side effect\n const ellapsed = performance.now() - this.t0;\n if (ellapsed > LOST_FOCUS_TIME_WINDOW_MS) {\n console.warn(\n 'complete. lostfocus->click timeout of ',\n LOST_FOCUS_TIME_WINDOW_MS,\n 'ms exceed: ',\n performance.now() - this.t0,\n ' ms'\n );\n }\n // console.log(\n // 'complete. set to true. CANCELED side effect',\n // performance.now() - this.t0\n // );\n }\n if (item !== null) {\n this.value = item.key;\n this.label = item.label;\n } else {\n this.value = null;\n this.label = '';\n }\n this.toggleCompletion(false, null);\n this.markAsTouched();\n }\n toggleCompletion(show: boolean, label: string): void {\n if (show && !this.disabled) {\n this.showCompletionList(label);\n } else {\n this.showCompletion = false;\n if (this.canAddNewValues) {\n this.syncCustomValue(this.label);\n return;\n }\n }\n this.cd.markForCheck();\n }\n\n get selectedOption(): string {\n const index = this.completionList.findIndex(\n (i) => i.key === this.focusItem.key\n );\n if (index === -1 || !this.focusItem) {\n return null;\n }\n return `${this.inputId}_${index}`;\n }\n\n private ensureItemVisible(index: number): void {\n const target = this.completeDiv.nativeElement.querySelectorAll('li')[index];\n if (target) {\n target.scrollIntoView({ block: 'center' });\n }\n }\n private syncCustomValue(text: string): void {\n this.value = text;\n this.label = text;\n }\n /** Pick selection based on text filtering (ingnores drowdown state) */\n private pickSelectionOrFirstMatch(text: string): void {\n if (this.canAddNewValues) {\n this.syncCustomValue(text);\n return;\n }\n const focusIndex = this.completionList.findIndex(\n (it) => this.focusItem && it.key === this.focusItem.key\n );\n if (\n this.showCompletion &&\n focusIndex > 0 &&\n this.focusItem &&\n this.focusItem.label\n ) {\n if (text === this.focusItem.label && this.focusItem.key === this.value) {\n // do nothing if value does not change & close dropdow\n this.showCompletion = false;\n return;\n }\n // complete selected using selected item on drowdown\n this.complete(this.focusItem);\n return;\n }\n const source = (text || '').trim();\n if (!source) {\n this.showCompletion = false;\n // select null value\n if (this.value !== null) {\n this.value = null;\n }\n return;\n }\n this.completionList = [];\n this.computeCompletionList(source).subscribe((suggestions) => {\n const candidate =\n suggestions && suggestions.length > 0 ? suggestions[0] : null;\n this.complete(candidate);\n });\n }\n private showCompletionList(text: string): void {\n this.setSameWidth();\n const useSpinner = this.hasExternalDataSource();\n this.spinnerVisibility(useSpinner, true);\n setTimeout(() => {\n // for spinner to be shown\n this.computeCompletionList(text).subscribe({\n next: (cl) => {\n this.completionList = cl;\n this.focusItem = selectElement(this.completionList, text);\n this.showCompletion = true;\n this.spinnerVisibility(useSpinner, false);\n },\n error: () => {\n this.spinnerVisibility(useSpinner, false);\n },\n complete: () => {\n this.spinnerVisibility(useSpinner, false);\n }\n });\n }, 1);\n }\n\n private spinnerVisibility(useSpinner: boolean, value: boolean): void {\n if (useSpinner) {\n this.showSpinner = value;\n }\n }\n private hasExternalDataSource(): boolean {\n return !this.dataSource && !!this.instance && !!this.populateFunction;\n }\n private computeCompletionList(text: string): Observable<DecoratedDataSource> {\n const searchText = (text || '').toLowerCase();\n if (this.dataSource) {\n const ds = (this.dataSource || [])\n .filter((it) => ignoreAccentsInclude(it.label, searchText))\n .sort((a, b) => a.label.localeCompare(b.label));\n return of(decorateDataSource(ds, searchText));\n } else if (this.instance && this.populateFunction) {\n return this.populateFunction(this.instance, searchText).pipe(\n debounceTime(1),\n first(),\n map((ds) => {\n const dsFiltered = ds\n .filter((it) => ignoreAccentsInclude(it.label, searchText))\n .sort((a, b) => a.label.localeCompare(b.label));\n return decorateDataSource(dsFiltered, searchText);\n })\n );\n } else {\n return of([]);\n }\n }\n}\n\n/** Returns true if text includes substring. No accents considered. Ignorecase */\nconst ignoreAccentsInclude = (text: string, substring: string): boolean => {\n text = normalizedString(text).toLowerCase();\n substring = normalizedString(substring).toLowerCase();\n return text.includes(substring);\n};\n\n/** Returns a normalized string with no accents: used for comparison */\nconst normalizedString = (a: string): string =>\n (a || '').normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n\nconst decorateDataSource = (\n dataSource: DataSource<any, string>,\n subString: string\n): DecoratedDataSource => dataSource.map((it) => decorateItem(it, subString));\n\nconst decorateItem = (\n item: DataSourceItem<any, string>,\n tx: string\n): DecoratedDataSourceItem => {\n const index = normalizedString(item.label)\n .toLowerCase()\n .indexOf(normalizedString(tx).toLowerCase());\n const labelPrefix = index === -1 ? item.label : item.label.substr(0, index);\n const labelMatch = index === -1 ? '' : item.label.substr(index, tx.length);\n const labelPostfix = index === -1 ? '' : item.label.substr(index + tx.length);\n const newItem: DecoratedDataSourceItem = {\n ...item,\n labelPrefix,\n labelMatch,\n labelPostfix\n };\n return newItem;\n};\n\nconst findLabelForId = (data: DataSource<any, string>, id: any): string => {\n const found = data.find((it) => it.key === id);\n return found ? found.label : null;\n};\n\nexport const selectElement = (\n completionList: DecoratedDataSource,\n label: string\n): DataSourceItem<any, string> => {\n label = (label || '').toLowerCase();\n if (!completionList || completionList.length === 0) {\n return null;\n }\n if (completionList.length === 1) {\n return completionList[0];\n }\n const found = completionList.find((it) => it.label.toLowerCase() === label);\n return found || completionList[0];\n};\n","/** Language detector based on Navigator preferences */\nexport const languageDetector = (): string => {\n const lang = navigator.language.split('-')[0];\n if (lang === 'es' || lang === 'en') {\n return lang;\n }\n return 'en'; // default\n};\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { AutocompleteComponent } from '../autocomplete/autocomplete.component';\nimport { DataSource } from '../datasource';\nimport { isInitialAndEmpty } from '../helperFns';\nimport { languageDetector } from '../lang';\n\n@Component({\n selector: 'lux-autocomplete-list',\n templateUrl: './autocomplete-list.component.html',\n styleUrls: ['./autocomplete-list.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AutocompleteListComponent)\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: forwardRef(() => AutocompleteListComponent)\n }\n ]\n})\nexport class AutocompleteListComponent\n implements ControlValueAccessor, Validator, OnInit\n{\n static idCounter = 0;\n\n @ViewChild('auto') auto!: AutocompleteListComponent;\n\n literals = {\n en: {\n placeholder: 'new item',\n deleteLabelTemplate: 'Delete <<label>>',\n addMessage: 'Add'\n },\n es: {\n placeholder: 'nuevo elemento',\n deleteLabelTemplate: 'Eliminar <<label>>',\n addMessage: 'Añadir'\n }\n };\n\n public internalDataSource: DataSource<any, string> = [];\n private autoPopulate = false;\n\n private _value: any[] = [];\n @Input()\n set value(val: any[]) {\n if (val === this._value) {\n return;\n }\n const initialAndEmpty = isInitialAndEmpty(this._value, val);\n this._value = val;\n this.ensureLabelsForIds();\n this.populateWith('');\n this.onChange(this._value);\n if (!initialAndEmpty) {\n this.valueChange.emit(this._value);\n }\n }\n get value(): any[] {\n return this._value;\n }\n labels: string[] = [];\n newEntry: any;\n canAdd = false;\n touched = false;\n\n private _lang = languageDetector();\n @Input()\n get lang(): string {\n return this._lang;\n }\n set lang(l: string) {\n if (l === this._lang) {\n return;\n }\n if (Object.keys(this.literals).includes(l)) {\n this._lang = l;\n } else {\n this._lang = 'en';\n }\n }\n\n @Input() inputId: string;\n @Input() dataSource: DataSource<any, any> = [];\n @Input() placeholder?: string;\n @Input() disabled = false;\n @Input() deleteLabelTemplate?: string;\n @Input() addMessage?: string;\n @Input() required = false;\n\n @Input() resolveLabelsFunction?: (\n instance: any,\n ids: any[]\n ) => Observable<DataSource<any, string>> = undefined;\n @Input() populateFunction?: (\n instance: any,\n search: string\n ) => Observable<DataSource<any, string>> = undefined;\n @Input() instance: any;\n\n @Output() valueChange = new EventEmitter<any[]>();\n\n // ControlValueAccessor Interface\n onChange = (value): void => {};\n onTouched = (): void => {};\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n markAsTouched(): void {\n if (!this.touched && !this.disabled) {\n this.onTouched();\n this.touched = true;\n }\n }\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End ControlValueAccessor Interface\n\n // Validator interface\n registerOnValidatorChange(): void {}\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (\n this.required &&\n (value === '' || value === null || value === undefined)\n ) {\n return { required: { value, reason: 'Required field.' } };\n }\n return null;\n }\n // End of Validator interface\n\n ngOnInit(): void {\n this.inputId = this.inputId\n ? this.inputId\n : `autocompletelist${AutocompleteListComponent.idCounter++}`;\n this.autoPopulate =\n !!this.resolveLabelsFunction && !!this.populateFunction && this.instance;\n this.ensureLabelsForIds();\n }\n ensureLabelsForIds(): void {\n if (this.autoPopulate && this.resolveLabelsFunction) {\n this.resolveLabelsFunction(this.instance, this._value)\n .pipe(first())\n .subscribe((data) => {\n const res: string[] = [];\n (this._value || []).map((id) => {\n const found = data.find((it) => it.key === id);\n if (found) {\n res.push(found.label);\n } else {\n res.push('(unset)');\n }\n });\n this.labels = res;\n });\n } else if (this.dataSource) {\n const res: string[] = [];\n (this._value || []).map((id) => {\n const found = this.dataSource.find((it) => it.key === id);\n if (found) {\n res.push(found.label);\n } else {\n res.push('(unset)');\n }\n });\n this.labels = res;\n } else {\n this.labels = this._value.map((it) => (it ? it.toString() : '(unset)'));\n }\n }\n removeAt(index: number): void {\n if (this._value.length > index) {\n const key = this._value.splice(index, 1)[0];\n const label = this.labels.splice(index, 1)[0];\n this.internalDataSource.push({ key, label });\n }\n this.markAsTouched();\n }\n onValueChange(): void {\n this.updateCanAdd();\n }\n onNewEntryChange(event: KeyboardEvent, auto: AutocompleteComponent): void {\n if (event.key === 'Enter' && !!auto.value) {\n this.addNew(auto);\n } else if (event.key === 'Delete' || event.key === 'Backspace') {\n // todo\n } else {\n this.populateWith(auto.label + event.key);\n }\n this.updateCanAdd();\n }\n populateWith(searchText: string): void {\n if (this.autoPopulate && this.populateFunction && this.instance) {\n this.populateFunction(this.instance, searchText)\n .pipe(first())\n .subscribe((data) => {\n this.internalDataSource = data.filter(\n (it) => !(this._value || []).includes(it.key)\n );\n });\n } else if (this.dataSource) {\n this.internalDataSource = this.dataSource.filter(\n (it) => !(this._value || []).includes(it.key)\n );\n }\n }\n updateCanAdd(): void {\n this.canAdd =\n !this.disabled &&\n this.auto &&\n !!this.auto.value && // has value\n !this.value.find((it) => it === this.auto.value); // not already in\n }\n\n addNew(auto: AutocompleteComponent): void {\n this.value.push(auto.value);\n this.ensureLabelsForIds();\n this.newEntry = '';\n this.internalDataSource = this.internalDataSource.filter(\n (it) => !this._value.includes(it.key)\n );\n this.markAsTouched();\n }\n\n getDeleteMessage(label: string): string {\n return (\n this.deleteLabelTemplate ?? this.literals[this.lang].deleteLabelTemplate\n ).replace('<<label>>', label);\n }\n}\n","import {\n Component,\n Input,\n EventEmitter,\n Output,\n OnInit,\n forwardRef,\n ViewChild,\n ElementRef,\n AfterViewInit\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isInitialAndEmpty } from '../helperFns';\nimport { languageDetector } from '../lang';\n\nconst KEY_SPACE = ' ';\n\n@Component({\n selector: 'lux-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => CheckboxComponent)\n }\n ]\n})\nexport class CheckboxComponent\n implements ControlValueAccessor, OnInit, AfterViewInit\n{\n static idCounter = 0;\n\n @ViewChild('ck', { static: false }) ck: ElementRef;\n\n private _lang = languageDetector();\n @Input()\n set lang(l: string) {\n if (l === this._lang) {\n return;\n }\n if (Object.keys(this.literals).includes(l)) {\n this._lang = l;\n } else {\n this._lang = 'en';\n }\n }\n get lang(): string {\n return this._lang;\n }\n private internalValue: boolean;\n @Input()\n get value(): boolean {\n return this.internalValue;\n }\n set value(v: boolean) {\n if (this.internalValue === v) {\n return;\n }\n const initialAndEmpty = isInitialAndEmpty(this.internalValue, v);\n this.internalValue = v;\n this.syncModel();\n this.onChange(v);\n if (!initialAndEmpty) {\n this.valueChange.emit(v);\n }\n }\n\n get tabindexValue(): string {\n return this.disabled ? null : '0';\n }\n\n @Input() label: string = null;\n @Input() name: string = null;\n private _disabled = false;\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(v: boolean) {\n if (v === this._disabled) {\n return;\n }\n this._disabled = v;\n this.syncModel();\n }\n @Input() inputId: string;\n\n literals = {\n en: {\n yesLabel: 'Yes',\n noLabel: 'No'\n },\n es: {\n yesLabel: 'Sí',\n noLabel: 'No'\n }\n };\n touched = false;\n\n @Output() valueChange = new EventEmitter<boolean>();\n\n constructor() {}\n\n // ControlValueAccessor Interface\n onChange = (value): void => {};\n onTouched = (): void => {};\n writeValue(value: any): void {\n this.value = !!value;\n }\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End ControlValueAccessor Interface\n\n ngOnInit(): void {\n this.inputId = this.inputId\n ? this.inputId\n : `${this.name || 'checkbox'}$${CheckboxComponent.idCounter++}`;\n }\n ngAfterViewInit(): void {\n this.syncModel();\n }\n\n clicked(): void {\n if (!this.disabled) {\n this.value = !this.internalValue;\n this.markAsTouched();\n }\n }\n onKey(event: KeyboardEvent): void {\n if (event.key === KEY_SPACE && !this.disabled) {\n this.value = !this.internalValue;\n this.markAsTouched();\n event.preventDefault();\n }\n }\n\n private syncModel(): void {\n if (this.ck) {\n this.ck.nativeElement.checked = this.internalValue;\n }\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ElementRef,\n ViewChild,\n forwardRef\n} from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n ControlValueAccessor,\n AbstractControl,\n ValidationErrors,\n Validator,\n NG_VALIDATORS\n} from '@angular/forms';\nimport {\n addTimezoneOffset,\n hasValue,\n isInitialAndEmpty,\n isValidDate\n} from '../helperFns';\nimport { languageDetector } from '../lang';\n@Component({\n selector: 'lux-datetime',\n templateUrl: './datetime.component.html',\n styleUrls: ['./datetime.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DatetimeComponent)\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: forwardRef(() => DatetimeComponent)\n }\n ]\n})\nexport class DatetimeComponent\n implements OnInit, ControlValueAccessor, Validator\n{\n static idCounter = 0;\n\n @ViewChild('dateInput', { static: true }) dateInput: ElementRef;\n @ViewChild('timeInput', { static: true }) timeInput: ElementRef;\n\n touched = false;\n dirty = false;\n lastErrors: ValidationErrors | null = null;\n\n private _disabled: string | boolean;\n private _required: boolean;\n private _value: string;\n\n public dateValue?: string = undefined;\n public timeValue?: string = undefined;\n\n public userErrors = {\n en: {\n required: 'Required field.',\n min: 'Minimum value is $min.',\n max: 'Maximum value is $max.'\n },\n es: {\n required: 'El campo es obligatorio.',\n min: 'El valor mínimo es $min.',\n max: 'El valor máximo es $max.'\n }\n };\n\n @Input()\n public min?: string = '1900-01-01T00:00:00Z';\n @Input()\n public max?: string = '2100-01-01T00:00:00Z';\n @Input()\n public includeSeconds: boolean = true;\n @Input()\n public localTime: boolean = true;\n\n get className(): string {\n return this.checkClassName();\n }\n\n @Input() lang = languageDetector();\n @Input() public inlineErrors = false;\n @Input() public inputId: string;\n @Input('aria-label') public ariaLabel: string;\n @Input() public readonly: boolean | null = null;\n\n @Input()\n set disabled(v: string | boolean) {\n v = typeof v === 'string' && v !== 'false' ? true : v;\n this._disabled = v;\n }\n get disabled(): string | boolean {\n return this._disabled;\n }\n\n @Input()\n set required(v: boolean) {\n this._required = v;\n }\n get required(): boolean {\n return this._required;\n }\n\n @Input()\n set value(v: string) {\n if (v === this._value) {\n return; // prevent events when there is no changes\n }\n const initialAndEmpty = isInitialAndEmpty(this._value, v);\n const datetime = new Date(v);\n if (!v) {\n this._value = null;\n this.setDateInControl(null);\n this.setTimeInControl(null);\n } else if (!isValidDate(datetime)) {\n this._value = v;\n // we don't set value in control if the value is not valid\n // if we do, the content of the control changes and can erase what the user is typing\n } else {\n this._value = datetime.toISOString(); // YYYY-MM-DDThh:mm:ss.SSSZ\n this.setValueInControl(datetime);\n }\n this.onChange(v);\n if (!initialAndEmpty) {\n this.valueChange.emit(v);\n }\n }\n get value(): string {\n return this._value;\n }\n\n @Output() valueChange = new EventEmitter<any>();\n @Output() keyPress = new EventEmitter<KeyboardEvent>();\n\n onChange = (_value): void => {};\n onTouched = (): void => {};\n\n constructor() {}\n\n // ControlValueAccessor Interface implementation\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End of ControlValueAccessor Interface implementation\n\n private setDateInControl(date: string): void {\n // this.dateInput.nativeElement.value = date;\n this.dateValue = date;\n }\n private setTimeInControl(time: string): void {\n // this.timeInput.nativeElement.value = time;\n this.timeValue = time;\n }\n private setValueInControl(datetime: Date): void {\n const offsetDatetime = this.localTime\n ? addTimezoneOffset(datetime)\n : datetime;\n const offsetDatetimeString = offsetDatetime.toISOString(); // YYYY-MM-DDThh:mm:ss.SSSZ\n this.setDateInControl(offsetDatetimeString.slice(0, 10)); // YYYY-MM-DD\n if (this.includeSeconds) {\n this.setTimeInControl(offsetDatetimeString.slice(11, 19)); // hh:mm:ss\n } else {\n this.setTimeInControl(offsetDatetimeString.slice(11, 16)); // hh:mm\n }\n }\n clear(): void {\n this.setDateInControl(null);\n this.setTimeInControl(null);\n this.value = null;\n }\n\n // Validator interface\n registerOnValidatorChange(): void {}\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n let result: ValidationErrors | null = null;\n\n if (\n this.required &&\n !hasValue(value) &&\n !hasValue(this.dateValue) &&\n !hasValue(this.timeValue)\n ) {\n result = result || {};\n result.required = { value, reason: 'Required field.' };\n }\n if (!hasValue(this.dateValue) && hasValue(this.timeValue)) {\n result = result || {};\n result.existsDate = {\n value,\n reason: 'Date not specified.'\n };\n }\n if (hasValue(this.dateValue) && !hasValue(this.timeValue)) {\n result = result || {};\n result.existsTime = {\n value,\n reason: 'Time not specified.'\n };\n }\n if (\n hasValue(this.min) &&\n hasValue(value) &&\n hasValue(this.dateValue) &&\n hasValue(this.timeValue) &&\n String(value).localeCompare(this.min) === -1\n ) {\n result = result || {};\n result.min = {\n value,\n min: this.min,\n reason: `Value is lower than minimum value: ${this.min}.`\n };\n }\n if (\n hasValue(this.max) &&\n hasValue(value) &&\n hasValue(this.dateValue) &&\n hasValue(this.timeValue) &&\n String(value).localeCompare(this.max) !== -1\n ) {\n result = result || {};\n result.max = {\n value,\n max: this.max,\n reason: `Value is greater than than maximum value: ${this.max}.`\n };\n }\n this.lastErrors = result;\n return result;\n }\n // End of Validator interface\n\n ngOnInit(): void {\n this.inputId = this.inputId\n ? this.inputId\n : `datetime$${DatetimeComponent.idCounter++}`;\n this.setPatterns();\n }\n\n onLostFocus(): void {\n this.markAsTouched();\n }\n onKeyPress(event: KeyboardEvent): void {\n this.keyPress.emit(event);\n }\n\n onEventDatetime(newDate: string, newTime: string): void {\n if (this.disabled || this.readonly) {\n return;\n }\n const newValue = '' + newDate + ' ' + newTime;\n if (!newValue) {\n this.value = null;\n } else {\n const datetime = new Date(newValue);\n if (isValidDate(datetime)) {\n let datetimeString;\n if (this.localTime) {\n datetimeString = datetime.toISOString(); // YYYY-MM-DDThh:mm:ss.SSSZ\n } else {\n datetimeString = addTimezoneOffset(datetime).toISOString(); // YYYY-MM-DDThh:mm:ss.SSSZ\n }\n if (this.includeSeconds) {\n this.value = datetimeString.slice(0, 19) + 'Z'; // YYYY-MM-DDThh:mm:ssZ\n } else {\n this.value = datetimeString.slice(0, 16) + 'Z'; // YYYY-MM-DDThh:mmZ\n }\n } else {\n this.value = newValue;\n }\n }\n }\n\n checkClassName(): string {\n return this.disabled\n ? this.readonly\n ? 'disabled readonly'\n : 'disabled'\n : this.readonly\n ? 'readonly'\n : '';\n }\n\n setPatterns(): void {\n this.min = this.min || '1900-01-01';\n this.max = this.max || '2100-01-01';\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * A service that holds the functionality for advanced handling of regular expressions\n */\n@Injectable({ providedIn: 'root' })\nexport class RegexpService {\n constructor() {}\n\n private removeOuterRoundBrackets(regularExpressionString: string): string {\n while (\n regularExpressionString[0] === '(' &&\n regularExpressionString[regularExpressionString.length - 1] === ')'\n ) {\n regularExpressionString = regularExpressionString.slice(\n 1,\n regularExpressionString.length - 1\n );\n }\n return regularExpressionString;\n }\n\n private isQuantifier(quantifier: string): boolean {\n switch (quantifier) {\n case '{':\n case '?':\n case '+':\n case '*':\n return true;\n }\n return false;\n }\n\n private parseMinimalAmountOfQuantifier(quantifier: string): number {\n switch (quantifier[0]) {\n case '?':\n case '*':\n return 0;\n case '+':\n return 1;\n case '{':\n for (let index = 1; index < quantifier.length; ++index) {\n if (quantifier[index] < '0' || quantifier[index] > '9') {\n return Number(quantifier.slice(1, index));\n }\n }\n }\n return 0;\n }\n\n private sliceRegexByOr(regularExpressionString: string): string[] {\n const result = [];\n let slicedRegex = '';\n let lastSliceIndex = 0;\n let roundBracketCount = 0;\n let squareBracketCount = 0;\n let curlyBracketCount = 0;\n let index = 0;\n for (; index < regularExpressionString.length; ++index) {\n switch (regularExpressionString[index]) {\n case '\\\\':\n // escape sequence; skip the next character\n ++index;\n break;\n case '(':\n roundBracketCount += 1;\n break;\n case ')':\n roundBracketCount -= 1;\n break;\n case '[':\n squareBracketCount += 1;\n break;\n case ']':\n squareBracketCount -= 1;\n break;\n case '{':\n curlyBracketCount += 1;\n break;\n case '}':\n curlyBracketCount -= 1;\n break;\n case '|':\n if (\n roundBracketCount === 0 &&\n squareBracketCount === 0 &&\n curlyBracketCount === 0\n ) {\n slicedRegex = this.removeOuterRoundBrackets(\n regularExpressionString.slice(lastSliceIndex, index)\n );\n result.push(slicedRegex);\n lastSliceIndex = index + 1;\n }\n break;\n }\n }\n slicedRegex = this.removeOuterRoundBrackets(\n regularExpressionString.slice(lastSliceIndex, index)\n );\n result.push(slicedRegex);\n return result;\n }\n\n private sliceRegexByThen(regularExpressionString: string): string[][] {\n // the actual result\n const resultStart = [];\n // the remainder of the regex in each case\n const resultRemainder = [];\n let roundBracketCount = 0;\n let squareBracketCount = 0;\n let curlyBracketCount = 0;\n for (let index = 0; index < regularExpressionString.length; ++index) {\n switch (regularExpressionString[index]) {\n case '\\\\':\n // escape sequence; skip the next character\n ++index;\n break;\n case '(':\n roundBracketCount += 1;\n break;\n case ')':\n roundBracketCount -= 1;\n break;\n case '[':\n squareBracketCount += 1;\n break;\n case ']':\n squareBracketCount -= 1;\n break;\n case '{':\n curlyBracketCount += 1;\n break;\n case '}':\n curlyBracketCount -= 1;\n break;\n }\n if (\n roundBracketCount === 0 &&\n squareBracketCount === 0 &&\n curlyBracketCount === 0\n ) {\n if (!this.isQuantifier(regularExpressionString[index + 1])) {\n resultStart.push(regularExpressionString.slice(0, index + 1));\n resultRemainder.push(regularExpressionString.slice(index + 1));\n } else {\n // let minimalAmountOfRepeats = parseMinimalAmountOfQuantifier(regularExpressionString.slice(index + 1));\n // TODO\n }\n }\n }\n return [resultStart, resultRemainder];\n }\n\n suggestion(beginning: string, regularExpressionString: string): string {\n if (new RegExp(regularExpressionString).test(beginning)) {\n // TODO: RETURN AN EMPTY STRING\n return 'YA ES IGUAL, NO HAY MÁS QUE SUGERIR';\n }\n const regexOptions = this.sliceRegexByOr(regularExpressionString);\n if (regexOptions.length > 1) {\n for (\n let regexOptionIndex = 0;\n regexOptionIndex < regexOptions.length;\n ++regexOptionIndex\n ) {\n const regexParts = this.sliceRegexByThen(\n regexOptions[regexOptionIndex]\n );\n const regexPartsStarts = regexParts[0];\n const regexPartsRemainders = regexParts[1];\n // for each option, test if the first part of the regex matches\n // if it doesn't, continue\n // if it does, keep checking until what part it matches\n if (!new RegExp(regexPartsStarts[0]).test(beginning)) {\n // if there are no more options\n if (regexOptionIndex === regexOptions.length - 1) {\n // we return the first option, but we could return any option\n\n // TODO: RETURN ANY TEXT THAT MATCHES regexOptions[0]\n return regexOptions[0];\n }\n } else {\n for (\n let regexPartIndex = 1;\n regexPartIndex < regexPartsStarts.length;\n ++regexPartIndex\n ) {\n if (!new RegExp(regexPartsStarts[regexPartIndex]).test(beginning)) {\n // TODO: RETURN ANY TEXT THAT MATCHES regexPartsRemainders[regexPartIndex - 1]\n return regexPartsRemainders[regexPartIndex - 1];\n }\n }\n }\n }\n } else if (regexOptions.length === 1) {\n const regexParts = this.sliceRegexByThen(regexOptions[0]);\n const regexPartsStarts = regexParts[0];\n const regexPartsRemainders = regexParts[1];\n if (!new RegExp(regexPartsStarts[0]).test(beginning)) {\n // TODO: RETURN ANY TEXT THAT MATCHES regularExpressionString\n return regularExpressionString;\n } else {\n for (\n let regexPartIndex = 1;\n regexPartIndex < regexPartsStarts.length;\n ++regexPartIndex\n ) {\n if (!new RegExp(regexPartsStarts[regexPartIndex]).test(beginning)) {\n // TODO: RETURN ANY TEXT THAT MATCHES regexPartsRemainders[regexPartIndex - 1]\n return regexPartsRemainders[regexPartIndex - 1];\n }\n }\n }\n }\n // TODO: RETURN AN EMPTY STRING\n return 'NO DEBERÍA SER POSIBLE';\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ElementRef,\n ViewChild,\n forwardRef\n} from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n ControlValueAccessor,\n AbstractControl,\n ValidationErrors,\n Validator,\n NG_VALIDATORS\n} from '@angular/forms';\nimport {\n hasValue,\n isInitialAndEmpty,\n isValidEmail,\n isValidNumber,\n normalizeDate\n} from '../helperFns';\nimport { languageDetector } from '../lang';\nimport { RegexpService } from './regexp.service';\n@Component({\n selector: 'lux-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => InputComponent)\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: forwardRef(() => InputComponent)\n }\n ]\n})\nexport class InputComponent implements OnInit, ControlValueAccessor, Validator {\n static idCounter = 0;\n\n @ViewChild('input', { static: false }) input: ElementRef;\n @ViewChild('textarea', { static: false }) textarea: ElementRef;\n\n touched = false;\n dirty = false;\n lastErrors: ValidationErrors | null = null;\n\n private _disabled: string | boolean;\n private _value: any = '';\n private _type: string;\n private _placeholder: string;\n private _pattern?: string = undefined;\n private _regexp?: RegExp = undefined;\n private _currency: string;\n private _required: boolean;\n\n public userErrors = {\n en: {\n required: 'Required field.',\n min: 'Minimum value is $min.',\n max: 'Maximum value is $max.',\n email: 'Format should match example@example.com.'\n },\n es: {\n required: 'El campo es obligatorio.',\n min: 'El valor mínimo es $min.',\n max: 'El valor máximo es $max.',\n email: 'El campo debe tener un formato como ejemplo@ejemplo.com.'\n }\n };\n\n public domain: string;\n @Input()\n public rows?: number | string;\n @Input()\n public cols?: number | string;\n @Input()\n public step?: number;\n @Input()\n public min?: number | string;\n @Input()\n public max?: number | string;\n\n get className(): string {\n return this.checkClassName();\n }\n\n @Input() lang = languageDetector();\n @Input() public inlineErrors = false;\n @Input() public inputId: string;\n @Input('aria-label') public ariaLabel: string;\n @Input() public readonly: boolean | null = null;\n\n @Input()\n set disabled(v: string | boolean) {\n v = typeof v === 'string' ? true : v;\n this._disabled = v;\n }\n get disabled(): string | boolean {\n return this._disabled;\n }\n\n @Input()\n set pattern(p: string | undefined) {\n this._pattern = p;\n if (p === undefined) {\n this._regexp = undefined;\n } else {\n try {\n this._regexp = new RegExp(p);\n } catch (e) {\n this._pattern = undefined;\n this._regexp = undefined;\n }\n }\n }\n get pattern(): string | undefined {\n return this._pattern;\n }\n\n @Input()\n set currency(v: string) {\n this._currency = v.toUpperCase();\n }\n get currency(): string {\n return this._currency;\n }\n\n @Input()\n set placeholder(v: string) {\n this._placeholder = v;\n }\n get placeholder(): string {\n return this._placeholder ? this._placeholder : '';\n }\n\n @Input()\n set required(v: boolean) {\n this._required = v;\n }\n get required(): boolean {\n return this._required;\n }\n\n @Input()\n set type(v: string) {\n this._type = v.toLowerCase();\n this.domain = v.toLowerCase();\n this.checkType(v);\n }\n get type(): string {\n return this._type ? this._type : 'text';\n }\n\n @Input()\n set value(v: any) {\n v = v === undefined ? null : v;\n if (v === this._value) {\n return; // prevent events when there is no changes\n }\n const initialAndEmpty = isInitialAndEmpty(this._value, v);\n if (this.type === 'date') {\n v = normalizeDate(v);\n }\n\n this._value = v;\n this.onChange(v);\n if (!initialAndEmpty) {\n this.valueChange.emit(v);\n }\n }\n get value(): any {\n if (this.isPercentage() || this.isPermillage() || this.isNumber()) {\n const numVal = parseFloat(this._value);\n if (!Number.isNaN(numVal)) {\n return numVal;\n }\n }\n return this._value;\n }\n @Output() valueChange = new EventEmitter<any>();\n @Output() keyPress = new EventEmitter<KeyboardEvent>();\n\n onChange = (value): void => {};\n onTouched = (): void => {};\n\n constructor(public regexpService: RegexpService) {}\n\n // ControlValueAccessor Interface implementation\n writeValue(value: any): void {\n this.value = value;\n this.setValueInControl(value);\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End of ControlValueAccessor Interface implementation\n\n private setValueInControl(v: any): void {\n if (this.domain === 'date') {\n v = normalizeDate(v);\n }\n if (this.input) {\n this.input.nativeElement.value = v;\n }\n if (this.textarea) {\n this.textarea.nativeElement.value = v;\n }\n }\n\n // Validator interface\n registerOnValidatorChange(): void {}\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n let result: ValidationErrors | null = null;\n\n if (this.required && !hasValue(value)) {\n result = result || {};\n result.required = { value, reason: 'Required field.' };\n }\n if (this._regexp && hasValue(value) && !this._regexp.test(value)) {\n result = result || {};\n result.pattern = {\n value,\n reason: `Value must follow the pattern: ${this._pattern}`\n };\n }\n if (this.type === 'email' && hasValue(value) && !isValidEmail(value)) {\n result = result || {};\n result.email = { value, reason: 'Invalid email.' };\n }\n if (this.type === 'number' && hasValue(value) && !isValidNumber(value)) {\n result = result || {};\n result.numeric = { value, reason: 'Invalid number.' };\n }\n if (\n this.type === 'date' ||\n this.type === 'time' ||\n this.type === 'timestamp'\n ) {\n if (\n typeof this.min === 'string' &&\n hasValue(value) &&\n String(value).localeCompare(this.min) === -1\n ) {\n result = result || {};\n result.min = {\n value,\n min: this.min,\n reason: `Value is lower than minimum value: ${this.min}.`\n };\n }\n if (\n typeof this.max === 'string' &&\n hasValue(value) &&\n String(value).localeCompare(this.max) !== -1\n ) {\n result = result || {};\n result.max = {\n value,\n max: this.max,\n reason: `Value is greater than than maximum value: ${this.max}.`\n };\n }\n }\n\n if (\n this.type === 'percentage' ||\n this.type === 'permillage' ||\n this.type === 'number' ||\n this.type === 'currency'\n ) {\n if (hasValue(this.min) && hasValue(value) && value < +this.min) {\n result = result || {};\n result.min = {\n value,\n min: this.min,\n reason: `Value is lower than minimum value: ${this.min}.`\n };\n }\n if (hasValue(this.max) && hasValue(value) && value > +this.max) {\n result = result || {};\n result.max = {\n value,\n max: this.max,\n reason: `Value is greater than than maximum value: ${this.max}.`\n };\n }\n }\n this.lastErrors = result;\n return result;\n }\n // End of Validator interface\n\n ngOnInit(): void {\n this.inputId = this.inputId\n ? this.inputId\n : `${this.type}$${InputComponent.idCounter++}`;\n }\n onLostFocus(): void {\n this.markAsTouched();\n }\n onKeyUp(newValue: string): void {\n this.value = newValue;\n }\n onChangeValue(newValue: string): void {\n this.value = newValue;\n this.markAsTouched();\n }\n onKeyPress(event: KeyboardEvent): void {\n this.keyPress.emit(event);\n }\n\n isNumber(): boolean {\n return this.type === 'number';\n }\n isPercentage(): boolean {\n return this.type === 'percentage';\n }\n isPermillage(): boolean {\n return this.type === 'permillage';\n }\n hasPrefix(): boolean {\n return this.currency === 'USD';\n }\n hasPostfix(): boolean {\n return (\n this.currency === 'EUR' || this.isPercentage() || this.isPermillage()\n );\n }\n\n checkClassName(): string {\n return this.disabled\n ? this.readonly\n ? 'disabled readonly'\n : 'disabled'\n : this.readonly\n ? 'readonly'\n : '';\n }\n\n checkType(type: string): void {\n switch (type) {\n case 'email':\n this.setEmailPatterns();\n break;\n case 'date':\n this.setDatePatterns();\n break;\n case 'time':\n this.setTimePatterns();\n break;\n case 'password':\n this.setPasswordPatterns();\n break;\n case 'number':\n this.setNumberPatterns();\n break;\n case 'currency':\n this.setCurrencyPatterns();\n break;\n case 'percentage':\n this.setPercentagePatterns();\n break;\n case 'permillage':\n this.setPermillagePatterns();\n break;\n default:\n break;\n }\n }\n\n setEmailPatterns(): void {}\n\n setDatePatterns(): void {\n this.min = this.min || '1900-01-01';\n this.max = this.max || '2100-01-01';\n }\n\n setTimePatterns(): void {}\n\n setPasswordPatterns(): void {}\n\n setNumberPatterns(): void {\n this.domain = 'number';\n this.placeholder = '0';\n }\n\n setCurrencyPatterns(): void {\n this.domain = 'number';\n this.step = this.step || 0.1;\n this.min = this.min || 0.0;\n this.max = this.max || 10000.0;\n this.value = 0.0;\n }\n\n setPercentagePatterns(): void {\n this.domain = 'number';\n this.step = this.step || 0.01;\n this.min = this.min || 0.0;\n this.max = this.max || 100.0;\n this.placeholder = '0.00';\n }\n\n setPermillagePatterns(): void {\n this.domain = 'number';\n this.step = this.step || 0.01;\n this.min = this.min || 0.0;\n this.max = this.max || 1000.0;\n this.placeholder = '0.00';\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n OnInit,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, Observable, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/** Filter component to query for objects. */\n@Component({\n selector: 'lux-filter',\n templateUrl: './filter.component.html',\n styleUrls: ['./filter.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => FilterComponent)\n }\n ]\n})\nexport class FilterComponent\n implements ControlValueAccessor, OnInit, OnDestroy\n{\n static idCounter = 0;\n\n private touched = false;\n private _searchValue = '';\n\n @Input() disabled = false;\n /** id for the input. If left blank, it is autogenerated */\n @Input() inputId: string;\n /** Placeholder default text. */\n @Input() placeholder = '';\n /** Search value introduced by the user. */\n @Input()\n get searchValue(): string {\n return this._searchValue;\n }\n set searchValue(v: string) {\n v = (v || '').toString();\n if (v === this._searchValue) {\n return;\n }\n this.onChange(v);\n this._searchValue = v;\n }\n /** Search on type: (default true) Auto-search when user types in. */\n @Input() searchOnType = true;\n /** Custom aria label in case of not using a label */\n @Input('aria-label') ariaLabel: string;\n\n private debounceValue = 300; // 300 ms\n /** Debounce time in milliseconds. (defaults to 300 ms) */\n @Input()\n set debounce(val: number) {\n this.debounceValue = val;\n this.recreateObservable();\n }\n get debounce(): number {\n return this.debounceValue;\n }\n\n /** Search value changed by user. */\n @Output() searchValueChange = new EventEmitter<string>();\n\n searchValue$: Observable<string>;\n\n private subject = new Subject<string>();\n private sub: Subscription;\n\n constructor() {\n this.recreateObservable();\n }\n\n // ControlValueAccessor Interface\n onChange = (value): void => {};\n onTouched = (): void => {};\n writeValue(value: any): void {\n this.searchValue = (value || '').toString();\n }\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End ControlValueAccessor Interface\n\n ngOnInit(): void {\n this.inputId = this.inputId\n ? this.inputId\n : `filter$${FilterComponent.idCounter++}`;\n }\n ngOnDestroy(): void {\n this.freeSubscriptions();\n }\n clear(): void {\n this.searchValue = '';\n this.search();\n }\n search(): void {\n this.searchValueChange.emit(this.searchValue);\n }\n keyup(event: KeyboardEvent, newValue: string): void {\n this.markAsTouched();\n this.searchValue = newValue;\n if (event.key === 'Enter') {\n this.searchNow(this.searchValue);\n }\n if (this.searchOnType) {\n this.addEvent();\n }\n }\n onInputValueChange(newValue: string): void {\n this.markAsTouched();\n this.searchValue = newValue;\n }\n\n private recreateObservable(): void {\n this.searchValue$ = this.subject\n .asObservable()\n .pipe(debounceTime(this.debounce));\n\n this.freeSubscriptions();\n this.sub = this.searchValue$.subscribe((value) => {\n this.searchValueChange.emit(value);\n });\n }\n private freeSubscriptions(): void {\n if (this.sub) {\n this.sub.unsubscribe();\n this.sub = null;\n }\n }\n private searchNow(value: string): void {\n this.searchValueChange.emit(value);\n }\n private addEvent(): void {\n this.subject.next(this.searchValue);\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { LuxModalWindowComponent } from './modal-window';\nimport { ContentRef } from './util';\nimport { LuxModalBackdropComponent } from './modal-backdrop';\n\nexport class ActiveModal {\n close(result?: any): void {}\n dismiss(reason?: any): void {}\n}\n\nexport class ModalRef {\n private _resolve: (result?: any) => void;\n private _reject: (reason?: any) => void;\n\n /**\n * The instance of a component used for the modal content.\n *\n * When a `TemplateRef` is used as the content, will return `undefined`.\n */\n get componentInstance(): any {\n if (this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n\n /**\n * The promise that is resolved when the modal is closed and rejected when the modal is dismissed.\n */\n result: Promise<any>;\n\n constructor(\n private _windowCmptRef: ComponentRef<LuxModalWindowComponent>,\n private _contentRef: ContentRef,\n private _backdropCmptRef?: ComponentRef<LuxModalBackdropComponent>,\n private _beforeDismiss?: () => any\n ) {\n _windowCmptRef.instance.dismissEvent.subscribe((reason: any) => {\n this.dismiss(reason);\n });\n\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => {});\n }\n\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result?: any): void {\n if (this._windowCmptRef) {\n if (this._resolve) {\n this._resolve(result);\n }\n this._removeModalElements();\n }\n }\n\n private _dismiss(reason?: any): void {\n if (this._reject) {\n this._reject(reason);\n }\n this._removeModalElements();\n }\n\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason?: any): void {\n if (this._windowCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n } else {\n const dismiss = this._beforeDismiss();\n if (dismiss && dismiss.then) {\n dismiss.then(\n (result) => {\n if (result !== false) {\n this._dismiss(reason);\n }\n },\n () => {}\n );\n } else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n\n private _removeModalElements(): void {\n const windowNativeEl = this._windowCmptRef.location.nativeElement;\n windowNativeEl.parentNode.removeChild(windowNativeEl);\n this._windowCmptRef.destroy();\n\n if (this._backdropCmptRef) {\n const backdropNativeEl = this._backdropCmptRef.location.nativeElement;\n backdropNativeEl.parentNode.removeChild(backdropNativeEl);\n this._backdropCmptRef.destroy();\n }\n\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n\n this._windowCmptRef = null;\n this._backdropCmptRef = null;\n this._contentRef = null;\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { ViewRef, ComponentRef } from '@angular/core';\nimport { fromEvent, Observable } from 'rxjs';\nimport { filter, map, takeUntil, withLatestFrom } from 'rxjs/operators';\n\nexport const FOCUS = 'focus';\n\nexport enum Key {\n Tab = 9,\n Enter = 13,\n Escape = 27,\n Space = 32,\n PageUp = 33,\n PageDown = 34,\n End = 35,\n Home = 36,\n ArrowLeft = 37,\n ArrowUp = 38,\n ArrowRight = 39,\n ArrowDown = 40\n}\n\nexport const isDefined = (value: any): boolean =>\n value !== undefined && value !== null;\n\nexport class ContentRef {\n constructor(\n public nodes: any[],\n public viewRef?: ViewRef,\n public componentRef?: ComponentRef<any>\n ) {}\n}\n\nconst FOCUSABLE_ELEMENTS_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled]):not([type=\"hidden\"])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[contenteditable]',\n '[tabindex]:not([tabindex=\"-1\"])'\n].join(', ');\n\n/**\n * Returns first and last focusable elements inside of a given element based on specific CSS selector\n */\nexport const getFocusableBoundaryElements = (\n element: HTMLElement\n): HTMLElement[] => {\n const list: HTMLElement[] = Array.from(\n element.querySelectorAll(\n FOCUSABLE_ELEMENTS_SELECTOR\n ) as NodeListOf<HTMLElement>\n ).filter((el) => el.tabIndex !== -1);\n return [list[0], list[list.length - 1]];\n};\n\n/**\n * Function that enforces browser focus to be trapped inside a DOM element.\n *\n * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element\n *\n * @param element The element around which focus will be trapped inside\n * @param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners\n * and free internal resources\n * @param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to\n * false)\n */\nexport const focusTrap = (\n element: HTMLElement,\n stopFocusTrap$: Observable<any>,\n refocusOnClick = false\n): void => {\n // last focused element\n const lastFocusedElement$ = fromEvent<FocusEvent>(element, 'focusin').pipe(\n takeUntil(stopFocusTrap$),\n map((e) => e.target)\n );\n\n // 'tab' / 'shift+tab' stream\n fromEvent<KeyboardEvent>(element, 'keydown')\n .pipe(\n takeUntil(stopFocusTrap$),\n /* eslint-disable import/no-deprecated */\n filter((e) => e.which === Key.Tab),\n /* eslint-enable import/no-deprecated */\n withLatestFrom(lastFocusedElement$)\n )\n .subscribe(([tabEvent, focusedElement]) => {\n const [first, last] = getFocusableBoundaryElements(element);\n\n if (\n (focusedElement === first || focusedElement === element) &&\n tabEvent.shiftKey\n ) {\n last.focus();\n tabEvent.preventDefault();\n }\n\n if (focusedElement === last && !tabEvent.shiftKey) {\n first.focus();\n tabEvent.preventDefault();\n }\n });\n\n // inside click\n if (refocusOnClick) {\n fromEvent(element, 'click')\n .pipe(\n takeUntil(stopFocusTrap$),\n withLatestFrom(lastFocusedElement$),\n map((arr) => arr[1] as HTMLElement)\n )\n .subscribe((lastFocusedElement) => lastFocusedElement.focus());\n }\n};\n","export enum ModalDismissReasons {\n BackdropClick,\n Esc\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n HostBinding,\n HostListener\n} from '@angular/core';\n\nimport { getFocusableBoundaryElements, FOCUS } from './util';\nimport { ModalDismissReasons } from './modal-dismiss-reasons';\n\n@Component({\n selector: 'lux-modal-window',\n template: `\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\"><ng-content></ng-content></div>\n </div>\n `\n})\nexport class LuxModalWindowComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n private _elWithFocus: Element; // element that is focused prior to modal opening\n\n @Input() ariaDescribedBy: string;\n @Input() ariaLabelledBy: string;\n @Input() backdrop: boolean | string = false;\n @Input() keyboard = true;\n @Input() windowClass: string;\n\n @Output() dismissEvent = new EventEmitter();\n\n @HostBinding('class') get class(): string {\n return `modal ${this.windowClass || ''}`;\n }\n @HostBinding('attr.role') role = 'dialog';\n @HostBinding('tabindex') tabindex = '-1';\n @HostBinding('attr.aria-modal') ariamodal = true;\n @HostBinding('attr.aria-labelledby') get hostAriaLabelledBy(): string {\n return this.ariaLabelledBy;\n }\n @HostBinding('attr.aria-describedby') get hostAriaDescribedBy(): string {\n return this.ariaDescribedBy;\n }\n @HostListener('click', ['$event.target']) backdropClick(\n btn: HTMLElement\n ): void {\n if (this.backdrop === true && this._elRef.nativeElement === btn) {\n this.dismiss(ModalDismissReasons.BackdropClick);\n }\n }\n @HostListener('keyup.esc', ['$event']) escKey(event): void {\n if (this.keyboard && !event.defaultPrevented) {\n this.dismiss(ModalDismissReasons.Esc);\n }\n }\n\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _elRef: ElementRef<HTMLElement>\n ) {}\n\n dismiss(reason): void {\n this.dismissEvent.emit(reason);\n }\n\n ngOnInit(): void {\n this._elWithFocus = this._document.activeElement;\n }\n\n ngAfterViewInit(): void {\n if (!this._elRef.nativeElement.contains(document.activeElement)) {\n const firstFocusable = getFocusableBoundaryElements(\n this._elRef.nativeElement\n )[0];\n\n const elementToFocus = firstFocusable || this._elRef.nativeElement;\n elementToFocus.focus();\n }\n }\n\n ngOnDestroy(): void {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n\n let elementToFocus;\n if (elWithFocus && elWithFocus[FOCUS] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n } else {\n elementToFocus = body;\n }\n elementToFocus.focus();\n this._elWithFocus = null;\n }\n}\n","import {Component, Input, HostBinding} from '@angular/core';\n\n@Component({\n selector: 'lux-modal-backdrop',\n template: ''\n})\nexport class LuxModalBackdropComponent {\n @Input() backdropClass: string;\n\n @HostBinding('class') class = 'modal-backdrop fade show';\n @HostBinding('style') style = 'z-index: 1050';\n}\n","import { Injectable } from '@angular/core';\n\nexport interface LuxModalOptions {\n ariaDescribedBy?: string;\n ariaLabelledBy?: string;\n backdrop?: boolean;\n keyboard?: boolean;\n windowClass?: string;\n backdropClass?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LuxModalConfig implements LuxModalOptions {\n backdrop = true;\n}\n","import {\n Injectable,\n ApplicationRef,\n ComponentFactoryResolver,\n TemplateRef,\n ComponentRef,\n Inject,\n Injector,\n RendererFactory2\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { ActiveModal, ModalRef } from './modal-ref';\nimport { ContentRef, focusTrap, isDefined } from './util';\nimport { LuxModalWindowComponent } from './modal-window';\nimport { Subject } from 'rxjs';\nimport { LuxModalBackdropComponent } from './modal-backdrop';\nimport { LuxModalOptions, LuxModalConfig } from './modal-config';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalStack {\n private _activeWindowCmptHasChanged = new Subject();\n private _modalRefs: ModalRef[] = [];\n private _windowCmpts: ComponentRef<LuxModalWindowComponent>[] = [];\n private _ariaHiddenValues: Map<Element, string> = new Map();\n private _backdropAttributes = ['backdropClass'];\n private _windowAttributes = [\n 'ariaLabelledBy',\n 'backdrop',\n 'centered',\n 'keyboard',\n 'scrollable',\n 'size',\n 'windowClass'\n ];\n\n constructor(\n private _applicationRef: ApplicationRef,\n @Inject(DOCUMENT) private _document: any,\n private _injector: Injector,\n private _rendererFactory: RendererFactory2,\n private modalConfig: LuxModalConfig\n ) {\n this._activeWindowCmptHasChanged.subscribe(() => {\n if (this._windowCmpts.length) {\n const activeWindowCmpt =\n this._windowCmpts[this._windowCmpts.length - 1];\n focusTrap(\n activeWindowCmpt.location.nativeElement,\n this._activeWindowCmptHasChanged\n );\n this._revertAriaHidden();\n this._setAriaHidden(activeWindowCmpt.location.nativeElement);\n }\n });\n }\n\n open(\n moduleCFR: ComponentFactoryResolver,\n content: any,\n options: LuxModalOptions\n ): ModalRef {\n const config = Object.assign({}, this.modalConfig, options);\n const containerEl = this._document.body;\n const renderer = this._rendererFactory.createRenderer(null, null);\n const removeBodyClass = (): void => {\n if (!this._modalRefs.length) {\n renderer.removeClass(this._document.body, 'modal-open');\n this._revertAriaHidden();\n }\n };\n const activeModal = new ActiveModal();\n const contentRef = this.getContentRef(moduleCFR, content, activeModal);\n const backdropCmptRef: ComponentRef<LuxModalBackdropComponent> =\n config.backdrop ? this._attachBackdrop(moduleCFR, containerEl) : null;\n const windowCmptRef: ComponentRef<LuxModalWindowComponent> =\n this._attachWindowComponent(moduleCFR, containerEl, contentRef);\n const modalRef: ModalRef = new ModalRef(\n windowCmptRef,\n contentRef,\n backdropCmptRef\n );\n this._registerModalRef(modalRef);\n this._registerWindowCmpt(windowCmptRef);\n modalRef.result.then(removeBodyClass, removeBodyClass);\n activeModal.close = (result: any): void => {\n modalRef.close(result);\n };\n activeModal.dismiss = (reason: any): void => {\n modalRef.dismiss(reason);\n };\n\n this._applyWindowOptions(windowCmptRef.instance, config);\n if (this._modalRefs.length === 1) {\n renderer.addClass(this._document.body, 'modal-open');\n }\n if (backdropCmptRef && backdropCmptRef.instance) {\n this._applyBackgroundOptions(backdropCmptRef.instance, config);\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n windowCmptRef.changeDetectorRef.detectChanges();\n\n return modalRef;\n }\n\n private _applyWindowOptions(\n windowInstance: LuxModalWindowComponent,\n config: LuxModalOptions\n ): void {\n this._windowAttributes.forEach((optionName: string) => {\n if (isDefined(config[optionName])) {\n windowInstance[optionName] = config[optionName];\n }\n });\n }\n\n private _applyBackgroundOptions(\n backgroudInstance: LuxModalBackdropComponent,\n config: LuxModalOptions\n ): void {\n this._backdropAttributes.forEach((optionName: string) => {\n if (isDefined(config[optionName])) {\n backgroudInstance[optionName] = config[optionName];\n }\n });\n }\n\n private _revertAriaHidden(): void {\n this._ariaHiddenValues.forEach((value, element) => {\n if (value) {\n element.setAttribute('aria-hidden', value);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n this._ariaHiddenValues.clear();\n }\n\n private getContentRef(\n moduleCFR: ComponentFactoryResolver,\n content: any,\n activeModal: ActiveModal\n ): ContentRef {\n if (content instanceof TemplateRef) {\n return this.createFromTemplateRef(content, activeModal);\n }\n }\n\n private createFromTemplateRef(\n content: TemplateRef<any>,\n activeModal: ActiveModal\n ): ContentRef {\n const context = {\n $implicit: activeModal,\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n close(result): void {\n activeModal.close(result);\n },\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n dismiss(reason): void {\n activeModal.dismiss(reason);\n }\n };\n const viewRef = content.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n private _attachBackdrop(\n moduleCFR: ComponentFactoryResolver,\n containerEl: any\n ): ComponentRef<LuxModalBackdropComponent> {\n const backdropFactory = moduleCFR.resolveComponentFactory(\n LuxModalBackdropComponent\n );\n const backdropCmptRef = backdropFactory.create(this._injector);\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n\n private _attachWindowComponent(\n moduleCFR: ComponentFactoryResolver,\n containerEl: any,\n contentRef: any\n ): ComponentRef<LuxModalWindowComponent> {\n const windowFactory = moduleCFR.resolveComponentFactory(\n LuxModalWindowComponent\n );\n const windowCmptRef = windowFactory.create(\n this._injector,\n contentRef.nodes\n );\n this._applicationRef.attachView(windowCmptRef.hostView);\n containerEl.appendChild(windowCmptRef.location.nativeElement);\n return windowCmptRef;\n }\n\n private _registerModalRef(modalRef: ModalRef): void {\n const unregisterModalRef = (): void => {\n const index = this._modalRefs.indexOf(modalRef);\n if (index > -1) {\n this._modalRefs.splice(index, 1);\n }\n };\n this._modalRefs.push(modalRef);\n modalRef.result.then(unregisterModalRef, unregisterModalRef);\n }\n\n private _registerWindowCmpt(\n windowCmpt: ComponentRef<LuxModalWindowComponent>\n ): void {\n this._windowCmpts.push(windowCmpt);\n this._activeWindowCmptHasChanged.next();\n\n windowCmpt.onDestroy(() => {\n const index = this._windowCmpts.indexOf(windowCmpt);\n if (index > -1) {\n this._windowCmpts.splice(index, 1);\n this._activeWindowCmptHasChanged.next();\n }\n });\n }\n\n private _setAriaHidden(element: Element): void {\n const parent = element.parentElement;\n if (parent && element !== this._document.body) {\n Array.from(parent.children).forEach((sibling) => {\n if (sibling !== element && sibling.nodeName !== 'SCRIPT') {\n this._ariaHiddenValues.set(\n sibling,\n sibling.getAttribute('aria-hidden')\n );\n sibling.setAttribute('aria-hidden', 'true');\n }\n });\n this._setAriaHidden(parent);\n }\n }\n}\n","import {\n Injectable,\n ComponentFactoryResolver,\n TemplateRef,\n} from '@angular/core';\nimport { ModalStack } from './modal-stack';\nimport { ModalRef } from './modal-ref';\nimport { LuxModalOptions } from './modal-config';\n\n/**\n * A service that it allow open an close modal components\n */\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n constructor(\n private modalStack: ModalStack,\n private moduleCFR: ComponentFactoryResolver\n ) {}\n\n /**Open a modal component\n * @param content TemplateRef\n */\n open(content: TemplateRef<any>, options: LuxModalOptions = {}): ModalRef {\n return this.modalStack.open(this.moduleCFR, content, options);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DataSource } from '../datasource';\nimport { Observable, of, Subject } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n map,\n switchMap\n} from 'rxjs/operators';\nimport { GeoPoint } from '../map/geopoint';\n\ninterface SearchResult {\n place_id: number;\n lat: number;\n lon: number;\n display_name: string;\n icon: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class GeolocationService {\n private debouncePeriodMs = 300; // ms\n private cacheSize = 20;\n private lastQueriesWithResults = new Map<string, SearchResult[]>();\n private lastQueriesLru: string[] = [];\n private currentSearch$: Subject<string>;\n private currentQuery$: Observable<SearchResult[]>;\n\n constructor(private http: HttpClient) {\n this.currentSearch$ = new Subject<string>();\n\n const typed$ = this.currentSearch$\n .asObservable()\n .pipe(distinctUntilChanged());\n\n this.currentQuery$ = typed$.pipe(\n debounceTime(this.debouncePeriodMs),\n\n switchMap((currentQuery) => {\n const data = this.getFromCache(currentQuery);\n if (data !== undefined) {\n return of(data);\n }\n // Nominatim search documentation:\n // https://nominatim.org/release-docs/develop/api/Search/\n const url =\n 'https://nominatim.openstreetmap.org/search?format=json&limit=20&q=' +\n encodeURIComponent(currentQuery);\n const headers = {\n 'Content-Type': 'application/json'\n };\n this.addToCache(currentQuery, []);\n\n return this.http.get(url, { headers }).pipe(\n map((response) => {\n const searchResults = response as unknown as SearchResult[];\n const uniqueResults = distinct(searchResults);\n return this.addToCache(currentQuery, uniqueResults);\n })\n );\n })\n );\n }\n\n searchGeolocation(query: string): Observable<SearchResult[]> {\n this.currentSearch$.next(query);\n return this.currentQuery$;\n }\n\n getLabels(\n instance: GeolocationService,\n keys: GeoPoint[]\n ): Observable<DataSource<GeoPoint, string>> {\n const searchResults = instance.lastQueriesWithResults\n .get(instance.getLatestQuery())\n .filter((searchResult) => samePosition(searchResult, keys));\n return of(\n searchResults.map((searchResult) => {\n const key: GeoPoint = {\n type: 'Point',\n coordinates: [searchResult.lon, searchResult.lat]\n };\n return {\n key,\n label: searchResult.display_name\n };\n })\n );\n }\n\n getData(\n instance: GeolocationService,\n search: string\n ): Observable<DataSource<GeoPoint, string>> {\n return instance.searchGeolocation(search).pipe(\n map((searchResults) =>\n searchResults.map((searchResult) => {\n const key: GeoPoint = {\n type: 'Point',\n coordinates: [searchResult.lon, searchResult.lat]\n };\n const label = searchResult.display_name;\n return { key, label };\n })\n )\n );\n }\n\n // Cache implemementation ---\n private getFromCache(query: string): SearchResult[] {\n if (this.lastQueriesWithResults.has(query)) {\n return this.lastQueriesWithResults.get(query);\n }\n return undefined;\n }\n private addToCache(query: string, data: SearchResult[]): SearchResult[] {\n if (this.lastQueriesWithResults.keys.length >= this.cacheSize) {\n const deletedQuery = this.lastQueriesLru[0];\n this.revomeFromCache(deletedQuery);\n }\n this.lastQueriesWithResults.set(query, data);\n this.lastQueriesLru.push(query);\n return data;\n }\n private revomeFromCache(query: string): void {\n this.lastQueriesWithResults.delete(query);\n const index = this.lastQueriesLru.findIndex((it) => it === query);\n this.lastQueriesLru.splice(index, 1);\n }\n private getLatestQuery(): string | null {\n return this.lastQueriesLru.length\n ? this.lastQueriesLru[this.lastQueriesLru.length - 1]\n : null;\n }\n // End cache implemementation ---\n}\n\nconst samePosition = (\n searchResult: SearchResult,\n keys: GeoPoint[]\n): boolean => {\n let found = false;\n keys.forEach((item) => {\n if (\n searchResult.lon === item.coordinates[0] &&\n searchResult.lat === item.coordinates[1]\n ) {\n found = true;\n }\n });\n return found;\n};\n\nconst distinct = (data: SearchResult[]): SearchResult[] => {\n const unique: { [key: string]: number } = {};\n return data.filter((r) => {\n if (unique[r.display_name]) {\n return false;\n }\n unique[r.display_name] = 1;\n return true;\n });\n};\n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors\n} from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { DataSource } from '../datasource';\nimport {\n exists,\n hasValue,\n isInitialAndEmpty,\n isValidNumber,\n roundToMultipleOf\n} from '../helperFns';\nimport { languageDetector } from '../lang';\nimport { GeoPoint } from '../map/geopoint';\nimport { ModalService } from '../modal/modal.service';\nimport { GeolocationService } from './geolocation.service';\n\n@Component({\n selector: 'lux-geolocation',\n templateUrl: './geolocation.component.html',\n styleUrls: ['./geolocation.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => GeolocationComponent)\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: forwardRef(() => GeolocationComponent)\n }\n ]\n})\nexport class GeolocationComponent implements OnInit {\n static idCounter = 0;\n\n @ViewChild('latitude', { static: true }) latitude: ElementRef;\n @ViewChild('longitude', { static: true }) longitude: ElementRef;\n @ViewChild('map', { static: false }) map?: ElementRef;\n\n touched = false;\n dirty = false;\n lastErrors: ValidationErrors | null = null;\n\n private _disabled: string | boolean;\n private _required: boolean;\n private _value: any;\n\n latitudeValue?: number = undefined;\n longitudeValue?: number = undefined;\n\n isValidNumber = isValidNumber;\n\n i18n = {\n en: {\n lat: 'latitude',\n lon: 'longitude',\n selectLocation: 'Select location',\n location: 'Location',\n selectAction: 'Select',\n cancelAction: 'Cancel',\n closeAction: 'Close',\n typeToSearch: 'type to search',\n cardinalPoints: {\n north: 'N',\n south: 'S',\n east: 'E',\n west: 'W'\n },\n userErrors: {\n required: 'Required field.',\n minLatitude: 'Minimum latitude is $minLatitude.',\n maxLatitude: 'Maximum latitude is $maxLatitude.',\n minLongitude: 'Minimum longitude is $minLongitude.',\n maxLongitude: 'Maximum longitude is $maxLongitude.'\n }\n },\n es: {\n lat: 'latitud',\n lon: 'longitud',\n selectLocation: 'Seleccione ubicación',\n location: 'Ubicación',\n selectAction: 'Seleccionar',\n cancelAction: 'Cancelar',\n closeAction: 'Cerrar',\n typeToSearch: 'escribe para buscar',\n cardinalPoints: {\n north: 'N',\n south: 'S',\n east: 'E',\n west: 'O'\n },\n userErrors: {\n required: 'El campo es obligatorio.',\n minLatitude: 'La latitud mínima es $minLatitude.',\n maxLatitude: 'La latitud máxima es $maxLatitude.',\n minLongitude: 'La longitud mínima es $minLongitude.',\n maxLongitude: 'La longitud máxima es $maxLongitude.'\n }\n }\n };\n\n @Input()\n public minLatitude: number;\n @Input()\n public maxLatitude: number;\n @Input()\n public minLongitude: number;\n @Input()\n public maxLongitude: number;\n @Input()\n public step: number;\n @Input()\n public zoom: number;\n\n get className(): string {\n return this.checkClassName();\n }\n\n @Input() lang = languageDetector();\n @Input() public inlineErrors = false;\n @Input() public inputId: string;\n @Input('aria-label') public ariaLabel: string;\n @Input() public readonly: boolean | null = null;\n\n @Input()\n set disabled(v: string | boolean) {\n v = typeof v === 'string' && v !== 'false' ? true : v;\n this._disabled = v;\n }\n get disabled(): string | boolean {\n return this._disabled;\n }\n\n @Input()\n set required(v: boolean) {\n this._required = v;\n }\n get required(): boolean {\n return this._required;\n }\n\n @Input()\n set value(v: GeoPoint) {\n if (v === this._value) {\n return; // prevent events when there is no changes\n }\n const initialAndEmpty = isInitialAndEmpty(this._value, v);\n if (\n v &&\n v.coordinates &&\n v.coordinates.length === 2 &&\n exists(v.coordinates[0] && exists(v.coordinates[1]))\n ) {\n this._value = v;\n this.setLatitudeInControl(v.coordinates[1]);\n this.setLongitudeInControl(v.coordinates[0]);\n } else if (!v) {\n this._value = null;\n this.setLatitudeInControl(null);\n this.setLongitudeInControl(null);\n } else {\n this._value = v;\n // we don't set value in control if the value is not valid\n // if we do, the content of the control changes and can erase what the user is typing\n }\n this.onChange(v);\n if (!initialAndEmpty) {\n this.valueChange.emit(v);\n }\n }\n get value(): GeoPoint {\n return this._value;\n }\n\n @Output() valueChange = new EventEmitter<GeoPoint>();\n @Output() keyPress = new EventEmitter<KeyboardEvent>();\n\n onChange = (value: any): void => {};\n onTouched = (): void => {};\n\n constructor(\n private modalService: ModalService,\n public locationService: GeolocationService\n ) {}\n\n // ControlValueAccessor Interface implementation\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End of ControlValueAccessor Interface implementation\n\n private setLatitudeInControl(latitude: number): void {\n // this.latitude.nativeElement.value = latitude;\n this.latitudeValue = latitude;\n }\n private setLongitudeInControl(longitude: number): void {\n // this.longitude.nativeElement.value = longitude;\n this.longitudeValue = longitude;\n }\n clear(): void {\n this.setLatitudeInControl(null);\n this.setLongitudeInControl(null);\n this.value = null;\n }\n\n // Validator interface\n registerOnValidatorChange(): void {}\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n let result: ValidationErrors | null = null;\n\n if (\n this.required &&\n !hasValue(value) &&\n !exists(this.latitudeValue) &&\n !exists(this.longitudeValue)\n ) {\n result = result || {};\n result.required = { value, reason: 'Required field.' };\n }\n if (!exists(this.latitudeValue) && exists(this.longitudeValue)) {\n result = result || {};\n result.existsLatitude = {\n value,\n reason: 'Latitude not specified.'\n };\n }\n if (exists(this.latitudeValue) && !exists(this.longitudeValue)) {\n result = result || {};\n result.existsLongitude = {\n value,\n reason: 'Longitude not specified.'\n };\n }\n if (exists(this.minLatitude) && this.latitudeValue < this.minLatitude) {\n result = result || {};\n result.minLatitude = {\n value,\n min: this.minLatitude,\n reason: `Latitude is lower than minimum value: ${this.minLatitude}.`\n };\n }\n if (exists(this.maxLatitude) && this.latitudeValue > this.maxLatitude) {\n result = result || {};\n result.maxLatitude = {\n value,\n max: this.maxLatitude,\n reason: `Latitude is higher than maximum value: ${this.maxLatitude}.`\n };\n }\n if (exists(this.minLongitude) && this.longitudeValue < this.minLongitude) {\n result = result || {};\n result.minLongitude = {\n value,\n min: this.minLongitude,\n reason: `Longitude is lower than minimum value: ${this.minLongitude}.`\n };\n }\n if (exists(this.maxLongitude) && this.longitudeValue > this.maxLongitude) {\n result = result || {};\n result.maxLongitude = {\n value,\n max: this.maxLongitude,\n reason: `Longitude is higher than maximum value: ${this.maxLongitude}.`\n };\n }\n this.lastErrors = result;\n return result;\n }\n // End of Validator interface\n\n ngOnInit(): void {\n this.inputId = this.inputId\n ? this.inputId\n : `geolocation$${GeolocationComponent.idCounter++}`;\n this.setPatterns();\n }\n\n roundToStepAndUpdateLatitudeAndLongitude(\n newLatitudeAndLongitude: number[]\n ): void {\n const newLatitude = roundToMultipleOf(\n newLatitudeAndLongitude[1],\n this.step\n );\n const newLongitude = roundToMultipleOf(\n newLatitudeAndLongitude[0],\n this.step\n );\n if (this.disabled || this.readonly) {\n return;\n }\n if (!exists(newLatitudeAndLongitude)) {\n this.value = null;\n }\n this.value = {\n type: 'Point',\n coordinates: [newLongitude, newLatitude]\n };\n }\n\n onLostFocus(): void {\n this.markAsTouched();\n }\n onEventLatitude(newLatitude: string): void {\n if (this.disabled || this.readonly) {\n return;\n }\n const newLatitudeValue = isValidNumber(newLatitude) ? +newLatitude : null;\n if (\n !(exists(this.value) && exists(this.value.coordinates[0])) &&\n !exists(newLatitudeValue)\n ) {\n this.value = null;\n } else {\n this.value = {\n type: 'Point',\n coordinates: [\n this.value ? this.value.coordinates[0] : undefined,\n newLatitudeValue\n ]\n };\n }\n this.markAsTouched();\n }\n onEventLongitude(newLongitude: string): void {\n if (this.disabled || this.readonly) {\n return;\n }\n const newLongitudeValue = isValidNumber(newLongitude)\n ? +newLongitude\n : null;\n if (\n !exists(newLongitudeValue) &&\n !(exists(this.value) && exists(this._value.coordinates[1]))\n ) {\n this.value = null;\n } else {\n this.value = {\n type: 'Point',\n coordinates: [\n newLongitudeValue,\n this.value ? this.value.coordinates[1] : undefined\n ]\n };\n }\n this.markAsTouched();\n }\n onKeyPress(event: KeyboardEvent): void {\n this.keyPress.emit(event);\n }\n\n checkClassName(): string {\n return this.disabled\n ? this.readonly\n ? 'disabled readonly'\n : 'disabled'\n : this.readonly\n ? 'readonly'\n : '';\n }\n\n openModalMap(modal: TemplateRef<any>): void {\n this.modalService.open(modal).result.then(\n (result) => {\n if (result !== 'cancel') {\n this.roundToStepAndUpdateLatitudeAndLongitude(result);\n }\n },\n (_) => {}\n );\n }\n\n onSearchLocationChanged(newValue: GeoPoint, map: any): void {\n map.markerPoint = newValue;\n map.center = map.markerPoint;\n }\n\n get mapTitle(): string {\n return this._disabled || !!this.readonly\n ? this.i18n[this.lang].location\n : this.i18n[this.lang].selectLocation;\n }\n\n get self(): GeolocationComponent {\n return this;\n }\n\n getLabels(\n instance: GeolocationComponent,\n keys: GeoPoint[]\n ): Observable<DataSource<GeoPoint, string>> {\n return instance.locationService.getLabels(instance.locationService, keys);\n }\n\n getData(\n instance: GeolocationComponent,\n search: string\n ): Observable<DataSource<GeoPoint, string>> {\n return instance.locationService.getData(instance.locationService, search);\n }\n\n setPatterns(): void {\n this.step = this.step || 0.00001; // 0.00001 degrees = 1.11 meters\n this.zoom = this.zoom || 18; // (360/2^18) degrees ~ 0.00137 degrees ~ 153 meters\n this.minLatitude = this.minLatitude || -90;\n this.maxLatitude = this.maxLatitude || +90;\n this.minLongitude = this.minLongitude || -180;\n this.maxLongitude = this.maxLongitude || +180;\n }\n}\n","export enum Placement {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right'\n}\nexport type PlacementValue = 'left' | 'right' | 'top' | 'bottom';\n","import { Component, Input } from '@angular/core';\nimport { LuxTooltipContext } from './tooltip-context';\n\n/**\n * Default Tooltip Component\n */\n@Component({\n template: `\n <span class=\"lux-tooltip\" style=\"transition: opacity 200ms\">{{context.message}}</span>\n `\n})\nexport class TooltipComponent {\n\n @Input() context: LuxTooltipContext;\n\n constructor() { }\n\n}\n","import { ViewRef, ComponentRef } from '@angular/core';\n\nexport class TooltipContentRef {\n constructor(public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {}\n}\n","import {\n Injectable,\n Injector,\n ComponentRef,\n ComponentFactoryResolver,\n ApplicationRef,\n EmbeddedViewRef,\n ElementRef,\n TemplateRef\n} from '@angular/core';\n\nimport { PlacementValue, Placement } from './placement';\nimport { LuxTooltipContext } from './tooltip-context';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipContentRef } from './tooltop-content';\n\n@Injectable()\nexport class TooltipService {\n constructor(\n private _injector: Injector,\n private _crf: ComponentFactoryResolver,\n private _applicationRef: ApplicationRef\n ) {}\n\n appendComponentToBody(\n content: any,\n elHost: ElementRef,\n placement: PlacementValue\n ): TooltipContentRef {\n const tooltipContentRef = this.getTooltipContentRef(content);\n if (tooltipContentRef) {\n let domElem = (tooltipContentRef.viewRef as EmbeddedViewRef<any>)\n .rootNodes[0];\n document.body.appendChild(domElem);\n if (tooltipContentRef.componentRef) {\n tooltipContentRef.componentRef.changeDetectorRef.detectChanges();\n }\n domElem = this.setStyle(domElem, placement);\n domElem = this.setPosition(domElem, elHost, placement);\n return tooltipContentRef;\n }\n return null;\n }\n\n removeComponentFromBody(tooltipContentRef: TooltipContentRef): void {\n this._applicationRef.detachView(tooltipContentRef.viewRef);\n if (tooltipContentRef.componentRef) {\n tooltipContentRef.componentRef.destroy();\n }\n }\n\n private getTooltipContentRef(content: any): TooltipContentRef {\n if (!content) {\n // nothing to show\n } else if (content instanceof TemplateRef) {\n return this.createFromTemplateRef(content);\n } else if (typeof content === 'string') {\n return this.createFromComponent(TooltipComponent, { message: content });\n } else {\n return this.createFromComponent(content);\n }\n }\n\n private createFromTemplateRef(content: TemplateRef<any>): TooltipContentRef {\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n return new TooltipContentRef(viewRef);\n }\n\n private createFromComponent(\n component: any,\n context?: LuxTooltipContext\n ): TooltipContentRef {\n const componentRef: ComponentRef<any> = this._crf\n .resolveComponentFactory(component)\n .create(this._injector);\n if (context) {\n componentRef.instance.context = context;\n }\n this._applicationRef.attachView(componentRef.hostView);\n return new TooltipContentRef(componentRef.hostView, componentRef);\n }\n\n private setStyle(\n domElem: HTMLElement,\n placement: PlacementValue\n ): HTMLElement {\n domElem.style.position = 'absolute';\n domElem.style.minWidth = 'min-content';\n domElem.style.minHeight = 'min-content';\n const tooltipElement = this.getTooltipElementFromHTMLElemnt(domElem);\n placement =\n placement !== undefined\n ? (placement.toLocaleLowerCase() as PlacementValue)\n : 'top'; // 'Top' is the default value of placement\n tooltipElement.classList.add(`lux-tooltip-${placement}`);\n tooltipElement.classList.add('lux-tooltip-show');\n return domElem;\n }\n\n private getTooltipElementFromHTMLElemnt(domElem: HTMLElement): any {\n const elementsArray = Array.from(domElem.classList).filter(\n (className) => className === 'lux-tooltip'\n );\n if (elementsArray.length !== 0) {\n return domElem;\n } else if (domElem.hasChildNodes()) {\n const childrenArray = Array.from(domElem.children).filter(\n (child) =>\n this.getTooltipElementFromHTMLElemnt(child as HTMLElement) !== null\n );\n if (childrenArray.length !== 0) {\n return this.getTooltipElementFromHTMLElemnt(\n childrenArray[0] as HTMLElement\n );\n } else {\n return null;\n }\n } else {\n return null;\n }\n }\n\n private setPosition(\n domElem: HTMLElement,\n elHost: ElementRef,\n placement: PlacementValue\n ): HTMLElement {\n const hostPos = elHost.nativeElement.getBoundingClientRect();\n const tooltipPos = domElem.getBoundingClientRect();\n const scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop ||\n 0;\n let top = 0;\n let left = 0;\n const offset = 10;\n\n switch (placement) {\n case Placement.Bottom:\n top = hostPos.bottom + offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n break;\n case Placement.Left:\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - offset;\n break;\n case Placement.Right:\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + offset;\n break;\n case Placement.Top:\n default:\n top = hostPos.top - tooltipPos.height - offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n break;\n }\n top = Math.max(0, top);\n left = Math.max(0, left);\n domElem.style.top = `${top + scrollPos}px`;\n domElem.style.left = `${left}px`;\n return domElem;\n }\n}\n","import { HostListener, Input, Directive, ElementRef } from '@angular/core';\n\nimport { TooltipService } from './tooltip.service';\nimport { PlacementValue } from './placement';\nimport { TooltipContentRef } from './tooltop-content';\n\n/**\n * Tooltip directive\n */\n@Directive({\n selector: '[luxTooltip]'\n})\nexport class LuxTooltipDirective {\n /** Tooltip title */\n @Input() luxTooltip: any;\n\n /** Component, TemplateRef or String */\n @Input() content: any;\n\n /** Placement */\n @Input() placement: PlacementValue;\n\n tooltipRef: TooltipContentRef;\n\n constructor(\n private elHost: ElementRef,\n private tooltipService: TooltipService\n ) {}\n\n @HostListener('mouseenter') onMouseEnter(): void {\n if (!this.tooltipRef) {\n this.tooltipRef = this.show(this.content, this.elHost, this.placement);\n }\n }\n\n @HostListener('mouseleave') onMouseLeave(): void {\n if (this.tooltipRef) {\n this.remove(this.tooltipRef);\n this.tooltipRef = null;\n }\n }\n\n @HostListener('click') onClick(): void {\n if (this.tooltipRef) {\n this.remove(this.tooltipRef);\n this.tooltipRef = null;\n }\n }\n\n show(\n component: any,\n elHost: ElementRef,\n placement: PlacementValue\n ): TooltipContentRef {\n return this.tooltipService.appendComponentToBody(\n component,\n elHost,\n placement\n );\n }\n\n remove(tooltipRef: TooltipContentRef): void {\n this.tooltipService.removeComponentFromBody(tooltipRef);\n }\n}\n","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\nimport {\n Router,\n NavigationEnd,\n ActivatedRoute,\n ActivatedRouteSnapshot\n} from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\nexport interface BreadcrumbItem {\n label: string;\n url: string;\n}\n@Component({\n selector: 'lux-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss']\n})\nexport class LuxBreadcrumbComponent implements OnInit, OnDestroy {\n public breadcrumbs: BreadcrumbItem[];\n private subs: Subscription[] = [];\n public imagePath = '../assets/img/arrow-forward.svg';\n\n constructor(private route: Router, private activedRoute: ActivatedRoute) {}\n\n ngOnInit(): void {\n this.subs.push(\n this.route.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe((_) => {\n this.breadcrumbs = [];\n this.addBreadcrumbs(this.activedRoute.snapshot.root, true, null);\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subs.forEach((s) => s.unsubscribe());\n this.subs = [];\n }\n\n private addBreadcrumbs(\n activedRouteSnapshot: ActivatedRouteSnapshot,\n isRoot: boolean,\n urlPrefix: string\n ): void {\n const routeConfig = activedRouteSnapshot.routeConfig;\n let url = urlPrefix || '';\n url += routeConfig ? '/' + this.getUrl(activedRouteSnapshot) : '';\n const label = routeConfig\n ? this.getLabel(activedRouteSnapshot)\n : isRoot\n ? 'Home'\n : '';\n if (label && url !== '/') {\n const breadcrumb = { label, url };\n this.breadcrumbs.push(breadcrumb);\n }\n if (activedRouteSnapshot.children.length) {\n this.addBreadcrumbs(activedRouteSnapshot.children[0], false, url);\n }\n }\n\n private getUrl(activedRouteSnapshot: ActivatedRouteSnapshot): string {\n if (!activedRouteSnapshot.url[0]) {\n return '';\n }\n const id = activedRouteSnapshot.params.id;\n return id\n ? `${activedRouteSnapshot.url[0]}/${id}`\n : activedRouteSnapshot.routeConfig.path || '';\n }\n\n private getLabel(activedRouteSnapshot: ActivatedRouteSnapshot): string {\n const routeConfig = activedRouteSnapshot.routeConfig;\n if (!routeConfig) {\n return null;\n }\n if (activedRouteSnapshot.data && activedRouteSnapshot.data.title) {\n const data = activedRouteSnapshot.data;\n if (data.objectTitle) {\n return `${data.title} ${data.objectTitle}`;\n } else {\n return data.title;\n }\n }\n return activedRouteSnapshot.params.id || routeConfig.path;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { from, Observable, of } from 'rxjs';\n\nlet openLayersIsInstalled = false;\n\n@Injectable({ providedIn: 'root' })\nexport class OpenLayerLoaderService {\n load(): Observable<boolean> {\n if ((window as any).ol) {\n return of(true);\n }\n\n const openLayerJsUrl = 'https://openlayers.org/en/v5.3.0/build/ol.js';\n const openLayerCssUrl = 'https://openlayers.org/en/v5.3.0/css/ol.css';\n\n if (!openLayersIsInstalled) {\n openLayersIsInstalled = true; // only try to install it once\n loadCss(openLayerCssUrl, () => {});\n return from(\n new Promise<boolean>((resolve, _) => {\n loadScript(openLayerJsUrl, () => resolve(true));\n })\n );\n }\n return of(true);\n }\n}\n\n/** Dynamically load a script from url and return a callback */\nconst loadScript = (url: string, callback: () => void): void => {\n const script: any = document.createElement('script');\n script.type = 'text/javascript';\n\n if (script.readyState) {\n // for old IE\n script.onreadystatechange = (): void => {\n if (script.readyState === 'loaded' || script.readyState === 'complete') {\n script.onreadystatechange = null;\n callback();\n }\n };\n } else {\n // Others browsers\n script.onload = (): void => {\n callback();\n };\n }\n script.src = url;\n document.getElementsByTagName('head')[0].appendChild(script);\n};\n\n/** Dynamically load css from url and return a callback */\nconst loadCss = (url: string, callback: () => void): void => {\n const link: any = document.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n link.type = 'text/javascript';\n link.href = url;\n link.onload = (): void => {\n callback();\n };\n document.getElementsByTagName('head')[0].appendChild(link);\n};\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n AfterViewInit\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { OpenLayerLoaderService } from '../geolocation/openlayer-loader.service';\n\nimport { GeoPoint } from './geopoint';\n\n// @dynamic\ndeclare const ol: any;\n\n@Component({\n selector: 'lux-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss']\n})\nexport class MapComponent implements OnInit, AfterViewInit {\n static idCounter = 0;\n\n private loaded$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n private _map: any;\n\n @Input() mapId;\n\n _zoom: number;\n @Input()\n set zoom(zoom: number) {\n if (!isNaN(zoom)) {\n this._zoom = zoom;\n if (this._map) {\n this._map.getView().setZoom(zoom);\n }\n }\n }\n get zoom(): number {\n return this._zoom;\n }\n\n _center: GeoPoint;\n @Input()\n set center(center: GeoPoint) {\n if (center && center.coordinates && center.coordinates.length === 2) {\n this._center = center;\n if (this._map) {\n this._map.getView().setCenter(ol.proj.fromLonLat(center.coordinates));\n }\n }\n }\n get center(): GeoPoint {\n return this._center;\n }\n\n _readonly: boolean;\n @Input()\n set readonly(readonly: boolean) {\n if (!readonly) {\n if (this._map) {\n this._map.on('click', (args: any) => {\n // args.coordinate is in EPSG:3857 (meters), we transform it into EPSG:4326 (degrees)\n const coordinates = ol.proj.toLonLat(args.coordinate);\n // alternatively: const lonLat = ol.proj.transform(args.coordinate,'EPSG:3857','EPSG:4326');\n this.addMarkerAtCoordinates(coordinates);\n });\n this._map.on('pointermove', (event: any) => {\n const pixel = this._map.getEventPixel(event.originalEvent);\n const hit = this._map.hasFeatureAtPixel(pixel);\n this._map.getViewport().style.cursor = hit ? 'move' : 'grab';\n });\n }\n } else {\n if (this._map) {\n this._map.on('click', (args: any) => {});\n this._map.on('pointermove', (event: any) => {});\n this._map.getViewport().style.cursor = 'grab';\n }\n }\n this._readonly = readonly;\n // reset marker coordinates so marker interactions can be created or recreated accordingly\n // to the changes to readonly\n this.markerCoordinates = this.markerCoordinates;\n }\n get readonly(): boolean {\n return this._readonly;\n }\n\n private _marker: any;\n private _markerInteraction: any;\n private _markerCoordinates: number[];\n @Input()\n private set markerCoordinates(markerCoordinates: number[]) {\n if (markerCoordinates && markerCoordinates.length === 2) {\n this._markerCoordinates = markerCoordinates;\n if (this._map) {\n this.addMarkerAtCoordinates(markerCoordinates);\n }\n } else {\n this._markerCoordinates = undefined;\n if (this._map) {\n this.removeMarker();\n }\n }\n }\n private get markerCoordinates(): number[] {\n return this._markerCoordinates;\n }\n @Input()\n set markerPoint(markerPoint: GeoPoint) {\n if (\n !markerPoint ||\n !(markerPoint.coordinates && markerPoint.coordinates.length === 2)\n ) {\n this.markerCoordinates = undefined;\n } else {\n this.markerCoordinates = [\n +markerPoint.coordinates[0],\n +markerPoint.coordinates[1]\n ];\n }\n this.valueChange.emit(markerPoint);\n }\n get markerPoint(): GeoPoint {\n return {\n type: 'Point',\n coordinates: this.markerCoordinates\n };\n }\n @Output() valueChange = new EventEmitter<GeoPoint>();\n\n private _markerSource: any;\n private _markerStyle: any;\n\n constructor(olLoader: OpenLayerLoaderService) {\n olLoader.load().subscribe((_) => {\n // Initialize\n this._markerSource = new ol.source.Vector();\n this._markerStyle = new ol.style.Style({\n image: new ol.style.Icon({\n anchor: [0.5, 1],\n scale: 0.25,\n src: '/assets/img/marker.png'\n })\n });\n this.loaded$.next(true);\n });\n }\n\n ngOnInit(): void {\n this.mapId = this.mapId ? this.mapId : 'map' + MapComponent.idCounter++;\n }\n\n ngAfterViewInit(): void {\n this.loaded$.subscribe((loaded) => {\n if (loaded) {\n this.initMap();\n }\n });\n }\n private initMap(): void {\n this._map = new ol.Map({\n target: this.mapId,\n controls: ol.control.defaults({ attribution: false }),\n layers: [\n new ol.layer.Tile({\n source: new ol.source.OSM()\n }),\n new ol.layer.Vector({\n source: this._markerSource,\n style: this._markerStyle\n })\n ],\n view: new ol.View({\n center: ol.proj.fromLonLat(\n this.center !== undefined ? this.center.coordinates : [0, 0]\n ),\n zoom: this.zoom\n })\n });\n\n if (this.center === undefined || this.center === null) {\n // if the center is not set, we set its default value\n if ('geolocation' in navigator) {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n this.center = {\n type: 'Point',\n coordinates: [position.coords.longitude, position.coords.latitude]\n };\n },\n (error) => {\n this.center = {\n type: 'Point',\n coordinates: [0, 0]\n };\n }\n );\n } else {\n this.center = {\n type: 'Point',\n coordinates: [0, 0]\n };\n }\n } else {\n // the center needs the map to be properly set, so if it was set before the map was initialized,\n // we set the center again to perform necessary adjustements\n this.center = this.center;\n }\n\n if (this.zoom === undefined || this.zoom === null) {\n // if the zoom is not set, we set its default value\n this.zoom = 18;\n } else {\n // the zoom needs the map to be properly set, so if it was set before the map was initialized,\n // we set the zoom again to perform necessary adjustements\n this.zoom = this.zoom;\n }\n\n if (this.readonly === undefined || this.readonly === null) {\n // if readonly is not set, we set its default value\n this.readonly = false;\n } else {\n // readonly needs the map to be properly set, so if it was set before the map was initialized,\n // we set readonly again to perform necessary adjustements\n this.readonly = this.readonly;\n }\n\n if (\n this.markerCoordinates !== undefined &&\n this.markerCoordinates !== null\n ) {\n // the marker coordinates need the map to be properly set, so if they were set before the map was initialized,\n // we set the marker coordinates again to perform necessary adjustements\n this.markerCoordinates = this.markerCoordinates;\n }\n }\n\n private addMarkerAtCoordinates(coordinates: number[]): void {\n if (coordinates && coordinates.length === 2) {\n if (this._marker !== undefined) {\n this.removeMarker();\n }\n this._marker = new ol.Feature({\n geometry: new ol.geom.Point(\n // [lon, lat] is in EPSG:4326 (degrees), we transform it into EPSG:3857 (meters)\n ol.proj.transform(coordinates, 'EPSG:4326', 'EPSG:3857')\n )\n });\n this._markerSource.addFeature(this._marker);\n this._markerCoordinates = this.getMarkerCoordinates();\n\n if (!this.readonly) {\n const dragInteraction = new ol.interaction.Modify({\n features: new ol.Collection([this._marker]),\n style: this._markerStyle,\n pixelTolerance: 50,\n hitDetection: true\n });\n this._markerInteraction = dragInteraction;\n this._map.addInteraction(dragInteraction);\n }\n\n this._marker.on(\n 'change',\n () => {\n this._markerCoordinates = this.getMarkerCoordinates();\n },\n this._marker\n );\n }\n }\n\n private removeMarker(): void {\n if (this._marker !== undefined) {\n this._markerSource.removeFeature(this._marker);\n this._marker = undefined;\n }\n if (this._markerInteraction !== undefined) {\n this._map.getInteractions().pop();\n this._markerInteraction = undefined;\n }\n }\n\n private getMarkerCoordinates(): number[] | null {\n if (this._marker === undefined || this._marker == null) {\n return this._marker;\n }\n const coordinates = this._marker.getGeometry().getCoordinates();\n // coordinates is in EPSG:3857 (meters), we transform it into EPSG:4326 (degrees)\n return ol.proj.transform(coordinates, 'EPSG:3857', 'EPSG:4326');\n }\n\n onResize(): void {\n if (this._map) {\n this._map.updateSize();\n }\n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { languageDetector } from '../lang';\r\nimport { PaginationInfo } from './pagination';\r\n\r\n@Component({\r\n selector: 'lux-pagination',\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./pagination.component.scss']\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n literals = {\r\n en: {\r\n first: 'First',\r\n previous: 'Previous',\r\n next: 'Next',\r\n last: 'Last'\r\n },\r\n es: {\r\n first: 'Primero',\r\n previous: 'Anterior',\r\n next: 'Siguiente',\r\n last: 'Último'\r\n }\r\n };\r\n\r\n public first: string;\r\n public previous: string;\r\n public next: string;\r\n public last: string;\r\n\r\n public showPagination = false;\r\n public hidePrevious = false;\r\n public lastPage = false;\r\n public totalPages = 0;\r\n public displayNextEllipsis = false;\r\n public displayPreviousEllipsis = false;\r\n\r\n public pages: number[] = [];\r\n\r\n @Output() goToPage = new EventEmitter<number>();\r\n @Output() pageSizeChange = new EventEmitter<number>();\r\n\r\n /** Current page, total items and items to show per page */\r\n private paginationInfoValue: PaginationInfo;\r\n\r\n private _lang: string;\r\n @Input()\r\n set lang(l: string) {\r\n if (l === this._lang) {\r\n return;\r\n }\r\n if (Object.keys(this.literals).includes(l)) {\r\n this._lang = l;\r\n } else {\r\n this._lang = 'en';\r\n }\r\n this.loadLanguage();\r\n }\r\n get lang(): string {\r\n return this._lang;\r\n }\r\n\r\n @Input()\r\n set paginationInfo(value: PaginationInfo) {\r\n this.paginationInfoValue = value;\r\n this.syncState();\r\n }\r\n get paginationInfo(): PaginationInfo {\r\n return this.paginationInfoValue;\r\n }\r\n\r\n constructor() {\r\n this.lang = languageDetector();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.calculatePages();\r\n }\r\n\r\n pageSizeChanged(pageSize: number): void {\r\n this.paginationInfo.pageSize = pageSize;\r\n this.syncState();\r\n this.pageSizeChange.emit(pageSize);\r\n }\r\n\r\n onPage(n: number): void {\r\n this.goToPage.emit(n);\r\n }\r\n\r\n onFirst(): void {\r\n this.goToPage.emit(0);\r\n }\r\n\r\n onLast(): void {\r\n this.goToPage.emit(this.totalPages - 1);\r\n }\r\n onNext(): void {\r\n const page = (this.paginationInfo.page || 0) + 1;\r\n this.goToPage.emit(page);\r\n }\r\n onPrevious(): void {\r\n const page = (this.paginationInfo.page || 0) - 1;\r\n this.goToPage.emit(page);\r\n }\r\n\r\n private syncState(): void {\r\n this.pages = this.calculatePages();\r\n\r\n this.showPagination =\r\n this.paginationInfo.total > this.paginationInfo.pageSize;\r\n this.hidePrevious = this.paginationInfo.page === 0;\r\n this.lastPage =\r\n this.paginationInfo.pageSize * (this.paginationInfo.page + 1) >=\r\n this.paginationInfo.total;\r\n this.totalPages =\r\n Math.ceil(this.paginationInfo.total / this.paginationInfo.pageSize) || 0;\r\n this.displayNextEllipsis = !this.pages.includes(this.totalPages - 1);\r\n this.displayPreviousEllipsis = !this.pages.includes(0);\r\n }\r\n\r\n private calculatePages(): number[] {\r\n const totalPages =\r\n Math.ceil(this.paginationInfo.total / this.paginationInfo.pageSize) - 1; // 0-index\r\n const p = this.paginationInfo.page || 0;\r\n const pagesToShow = this.paginationInfo.pagesToShow;\r\n const pages: number[] = [];\r\n pages.push(p);\r\n const times = pagesToShow - 1;\r\n for (let i = 0; i < times; i++) {\r\n if (pages.length < pagesToShow) {\r\n if (Math.min(...pages) > 0) {\r\n pages.unshift(Math.min(...pages) - 1);\r\n }\r\n }\r\n if (pages.length < pagesToShow) {\r\n if (Math.max(...pages) < totalPages) {\r\n pages.push(Math.max(...pages) + 1);\r\n }\r\n }\r\n }\r\n pages.sort((a, b) => a - b);\r\n return pages;\r\n }\r\n\r\n private loadLanguage(): void {\r\n const l = this.literals[this.lang];\r\n this.first = l.first;\r\n this.previous = l.previous;\r\n this.next = l.next;\r\n this.last = l.last;\r\n }\r\n}\r\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { isInitialAndEmpty } from '../helperFns';\n\nexport interface RadioItem {\n name?: string;\n label: string;\n value: any;\n}\n\n@Component({\n selector: 'lux-radiogroup',\n templateUrl: './radiogroup.component.html',\n styleUrls: ['./radiogroup.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => RadiogroupComponent)\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: forwardRef(() => RadiogroupComponent)\n }\n ]\n})\nexport class RadiogroupComponent implements ControlValueAccessor, Validator {\n private touched = false;\n\n @Input() name = 'radiogroup1';\n @Input() public disabled: boolean | null = false;\n @Input() public readonly: boolean | null = false;\n @Input() public required: boolean | null = false;\n\n @Input()\n set items(col: RadioItem[]) {\n this._items = (col || []).map((it, index) =>\n this.ensureHasUniqueName(it, index)\n );\n this.itemsChange.emit(col);\n }\n get items(): RadioItem[] {\n return this._items;\n }\n @Output() itemsChange = new EventEmitter<RadioItem[]>();\n\n @Input()\n set value(v: any) {\n if (v === this._value) {\n return;\n }\n const initialAndEmpty = isInitialAndEmpty(this._value, v);\n this._value = v;\n this.onChange(v);\n if (!initialAndEmpty) {\n this.valueChange.emit(v);\n }\n }\n get value(): any {\n return this._value;\n }\n @Output() valueChange = new EventEmitter<any>();\n\n private _value: any = undefined;\n private _items: RadioItem[] = [];\n\n constructor() {}\n\n // ControlValueAccessor Interface\n onChange = (value): void => {};\n onTouched = (): void => {};\n writeValue(value: any): void {\n this.value = value;\n }\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End ControlValueAccessor Interface\n\n // Validator interface\n registerOnValidatorChange(): void {}\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (\n this.required &&\n (value === '' || value === null || value === undefined)\n ) {\n return { required: { value, reason: 'Required field.' } };\n }\n return null;\n }\n // End of Validator interface\n\n setValue(event: MouseEvent, item: RadioItem): void {\n if (!this.disabled && !this.readonly) {\n this.value = item.value;\n this.markAsTouched();\n }\n event.preventDefault();\n }\n ensureHasUniqueName(item: RadioItem, index: number): RadioItem {\n if (!item.name) {\n item.name = `${this.name}_${index}`;\n }\n return item;\n }\n}\n","import {\n Component,\n Input,\n EventEmitter,\n Output,\n forwardRef\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\n\nlet sequencer = 0;\n\n@Component({\n selector: 'lux-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => SelectComponent)\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: forwardRef(() => SelectComponent)\n }\n ]\n})\nexport class SelectComponent implements ControlValueAccessor, Validator {\n @Input() id = 'stringList' + sequencer++;\n @Input() disabled = false;\n @Input() required = false;\n /** Allow multiple elements */\n @Input() multiple = true;\n @Input() value: string[] = [];\n @Output() valueChange = new EventEmitter<string[]>();\n @Input() placeholder = 'Add new';\n /** If set, check there is no duplicates in the data. */\n @Input() unique = true;\n /** Validation function for new items. Returns error or null if valid */\n @Input() validateItem: (item: string) => string = (_) => null;\n\n newEntry = '';\n error = null;\n isValidNewEntry = false;\n\n private touched = false;\n\n constructor() {}\n\n // ControlValueAccessor Interface\n onChange = (value): void => {};\n onTouched = (): void => {};\n writeValue(value: any): void {\n this.value = value;\n }\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n // End ControlValueAccessor Interface\n\n // Validator interface\n registerOnValidatorChange(): void {}\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (\n this.required &&\n (value === '' || value === null || value === undefined)\n ) {\n return { required: { value, reason: 'Required field.' } };\n }\n return null;\n }\n // End of Validator interface\n\n get canAdd(): boolean {\n return this.multiple || this.value.length === 0;\n }\n add(val: string): void {\n this.value.push(val);\n this.newEntry = '';\n this.markAsTouched();\n this.valueChange.emit(this.value);\n }\n remove(index: number): void {\n if (this.value.length > index) {\n this.value.splice(index, 1);\n this.markAsTouched();\n this.valueChange.emit(this.value);\n }\n }\n onKeyPress(event: KeyboardEvent): void {\n if (event.key === 'Enter' && !this.error && this.newEntry !== '') {\n // Add on pressing Enter/Return\n this.markAsTouched();\n this.add(this.newEntry);\n }\n }\n onChangeNewEntry(newValue: string): void {\n this.markAsTouched();\n if (!newValue) {\n this.isValidNewEntry = false;\n this.error = null;\n return;\n }\n if (this.unique) {\n const found = (this.value || []).find((it) => it === newValue);\n this.isValidNewEntry = !found;\n this.error = found\n ? `Value '${newValue}' is already in. Cannot add duplicates.`\n : null;\n if (!this.isValidNewEntry) {\n return;\n }\n }\n this.error = this.validateItem(newValue);\n this.isValidNewEntry = !this.error;\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[luxVoiceRecognition]'\n})\nexport class VoiceRecognitionDirective implements OnInit {\n @Input() language: string;\n // See API at: https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition\n private recognition: any;\n private isRecognizing = false;\n private mic: any;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n const speechRecognition = (window as any).webkitSpeechRecognition;\n if (speechRecognition) {\n this.recognition = new speechRecognition();\n }\n }\n\n ngOnInit(): void {\n if (this.recognition) {\n // API is available\n this.recognition.lang = this.language || window.navigator.language;\n this.recognition.interimResults = false;\n this.recognition.maxAlternatives = 1;\n\n // Add mic icon\n this.mic = document.createElement('div');\n this.mic.setAttribute('class', 'lux-microphone');\n\n const parent = this.el.nativeElement.parentElement;\n parent.appendChild(this.mic);\n\n // Add event handlers\n this.mic.onclick = (): void => this.microphoneClick();\n this.recognition.onresult = (event): void => this.onRecognized(event);\n }\n }\n\n microphoneClick(): void {\n if (this.isRecognizing) {\n // stop\n this.isRecognizing = false;\n this.renderer.removeClass(this.mic, 'lux-recording');\n this.recognition.abort();\n } else {\n // start\n this.el.nativeElement.value = getRecordingMessage(this.language);\n this.isRecognizing = true;\n this.renderer.addClass(this.mic, 'lux-recording');\n this.recognition.start();\n }\n }\n onRecognized(event: any): void {\n const recognizedText = event.results[0][0].transcript;\n this.isRecognizing = false;\n this.el.nativeElement.value = recognizedText;\n this.renderer.removeClass(this.mic, 'lux-recording');\n }\n}\n\nconst getRecordingMessage = (lang: string): string => {\n switch (lang.toLowerCase()) {\n case 'es':\n case 'es-es':\n return 'Grabando...';\n case 'en':\n case 'en-uk':\n case 'en-us':\n default:\n return 'Recording...';\n }\n};\n","\nimport { isPlatformBrowser } from '@angular/common';\n\nimport { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID } from '@angular/core';\n\n/* Create a new injection token for injecting the window into a component. */\nexport const WINDOW = new InjectionToken('WindowToken');\n\n/* Define abstract class for obtaining reference to the global window object. */\nexport abstract class WindowRef {\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n get nativeWindow(): Window | Object {\n throw new Error('Not implemented.');\n }\n\n}\n\n/* Define class that implements the abstract class and returns the native window object. */\nexport class BrowserWindowRef extends WindowRef {\n\n constructor() {\n super();\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n get nativeWindow(): Window | Object {\n return window;\n }\n\n}\n\n/* Create an factory function that returns the native window object. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const windowFactory = (browserWindowRef: BrowserWindowRef, platformId: Object): Window | Object => {\n if (isPlatformBrowser(platformId)) {\n return browserWindowRef.nativeWindow;\n }\n return new Object();\n};\n\n/* Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class. */\nconst browserWindowProvider: ClassProvider = {\n provide: WindowRef,\n useClass: BrowserWindowRef\n};\n\n/* Create an injectable provider that uses the windowFactory function for returning the native window object. */\nconst windowProvider: FactoryProvider = {\n provide: WINDOW,\n useFactory: windowFactory,\n deps: [ WindowRef, PLATFORM_ID ]\n};\n\n/* Create an array of providers. */\nexport const WINDOW_PROVIDERS = [\n browserWindowProvider,\n windowProvider\n];\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { AngularResizedEventModule } from 'angular-resize-event';\nimport { AutocompleteComponent } from './autocomplete/autocomplete.component';\nimport { AutocompleteListComponent } from './autocomplete-list/autocomplete-list.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { DatetimeComponent } from './datetime/datetime.component';\nimport { InputComponent } from './input/input.component';\nimport { FilterComponent } from './filter/filter.component';\nimport { GeolocationComponent } from './geolocation/geolocation.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { LuxTooltipDirective } from './tooltip/tooltip.directive';\nimport { LuxBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { LuxModalWindowComponent } from './modal/modal-window';\nimport { LuxModalBackdropComponent } from './modal/modal-backdrop';\nimport { MapComponent } from './map/map.component';\nimport { ModalService } from './modal/modal.service';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { RadiogroupComponent } from './radiogroup/radiogroup.component';\nimport { SelectComponent } from './select/select.component';\nimport { TooltipComponent } from './tooltip/tooltip.component';\nimport { TooltipService } from './tooltip/tooltip.service';\nimport { VoiceRecognitionDirective } from './voice-recognition/voice-recognition.directive';\nimport { WINDOW_PROVIDERS } from './window/window.service';\n\n@NgModule({\n declarations: [\n AutocompleteComponent,\n AutocompleteListComponent,\n FilterComponent,\n CheckboxComponent,\n DatetimeComponent,\n InputComponent,\n GeolocationComponent,\n LuxTooltipDirective,\n LuxModalWindowComponent,\n LuxModalBackdropComponent,\n LuxBreadcrumbComponent,\n MapComponent,\n SelectComponent,\n TooltipComponent,\n PaginationComponent,\n RadiogroupComponent,\n VoiceRecognitionDirective\n ],\n entryComponents: [\n LuxModalWindowComponent,\n LuxModalBackdropComponent,\n TooltipComponent\n ],\n providers: [ModalService, TooltipService, WINDOW_PROVIDERS],\n imports: [\n AngularResizedEventModule,\n FormsModule,\n HttpClientModule,\n ReactiveFormsModule,\n RouterModule,\n CommonModule\n ],\n exports: [\n AutocompleteComponent,\n AutocompleteListComponent,\n FilterComponent,\n CheckboxComponent,\n DatetimeComponent,\n InputComponent,\n GeolocationComponent,\n LuxTooltipDirective,\n LuxBreadcrumbComponent,\n LuxBreadcrumbComponent,\n MapComponent,\n SelectComponent,\n PaginationComponent,\n RadiogroupComponent,\n VoiceRecognitionDirective\n ]\n})\nexport class LuxModule {}\n","/*\n * Public API Surface of lux\n */\n\nexport { LuxModule } from './lib/lux.module';\nexport {\n DataSource,\n DataSourceItem,\n DecoratedDataSource,\n DecoratedDataSourceItem\n} from './lib/datasource';\nexport { AutocompleteComponent } from './lib/autocomplete/autocomplete.component';\nexport { AutocompleteListComponent } from './lib/autocomplete-list/autocomplete-list.component';\nexport {\n LuxBreadcrumbComponent,\n BreadcrumbItem\n} from './lib/breadcrumb/breadcrumb.component';\nexport { CheckboxComponent } from './lib/checkbox/checkbox.component';\nexport { FilterComponent } from './lib/filter/filter.component';\nexport { InputComponent } from './lib/input/input.component';\nexport { PaginationComponent } from './lib/pagination/pagination.component';\nexport { LuxTooltipDirective } from './lib/tooltip/tooltip.directive';\nexport { ModalService } from './lib/modal/modal.service';\nexport {\n RadioItem,\n RadiogroupComponent\n} from './lib/radiogroup/radiogroup.component';\nexport { ModalRef } from './lib/modal/modal-ref';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {DatetimeComponent as ɵa} from './lib/datetime/datetime.component';\nexport {GeolocationComponent as ɵc} from './lib/geolocation/geolocation.component';\nexport {GeolocationService as ɵf} from './lib/geolocation/geolocation.service';\nexport {OpenLayerLoaderService as ɵk} from './lib/geolocation/openlayer-loader.service';\nexport {RegexpService as ɵb} from './lib/input/regexp.service';\nexport {MapComponent as ɵj} from './lib/map/map.component';\nexport {LuxModalBackdropComponent as ɵi} from './lib/modal/modal-backdrop';\nexport {LuxModalConfig as ɵe} from './lib/modal/modal-config';\nexport {ModalStack as ɵd} from './lib/modal/modal-stack';\nexport {LuxModalWindowComponent as ɵh} from './lib/modal/modal-window';\nexport {ContentRef as ɵt} from './lib/modal/util';\nexport {SelectComponent as ɵl} from './lib/select/select.component';\nexport {TooltipComponent as ɵm} from './lib/tooltip/tooltip.component';\nexport {TooltipService as ɵg} from './lib/tooltip/tooltip.service';\nexport {VoiceRecognitionDirective as ɵn} from './lib/voice-recognition/voice-recognition.directive';\nexport {BrowserWindowRef as ɵq,WINDOW as ɵo,WINDOW_PROVIDERS as ɵs,WindowRef as ɵp,windowFactory as ɵr} from './lib/window/window.service';"],"names":["EventEmitter","debounceTime","first","of","map","Component","NG_VALUE_ACCESSOR","forwardRef","NG_VALIDATORS","ChangeDetectorRef","ViewChild","Output","Input","Injectable","Subject","fromEvent","takeUntil","filter","withLatestFrom","Inject","DOCUMENT","ElementRef","HostBinding","HostListener","TemplateRef","ApplicationRef","Injector","RendererFactory2","ComponentFactoryResolver","distinctUntilChanged","switchMap","HttpClient","Directive","NavigationEnd","Router","ActivatedRoute","from","BehaviorSubject","Renderer2","InjectionToken","isPlatformBrowser","PLATFORM_ID","NgModule","AngularResizedEventModule","FormsModule","HttpClientModule","ReactiveFormsModule","RouterModule","CommonModule"],"mappings":"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"}
|