@metadev/lux 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/esm2022/lib/autocomplete/autocomplete.component.mjs +488 -0
  2. package/esm2022/lib/autocomplete-list/autocomplete-list.component.mjs +259 -0
  3. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +78 -0
  4. package/esm2022/lib/checkbox/checkbox.component.mjs +156 -0
  5. package/esm2022/lib/datetime/datetime.component.mjs +312 -0
  6. package/esm2022/lib/filter/filter.component.mjs +158 -0
  7. package/esm2022/lib/geolocation/geolocation.component.mjs +423 -0
  8. package/esm2022/lib/geolocation/geolocation.service.mjs +123 -0
  9. package/{esm2020 → esm2022}/lib/geolocation/openlayer-loader.service.mjs +4 -4
  10. package/esm2022/lib/helperFns.mjs +118 -0
  11. package/esm2022/lib/input/input.component.mjs +469 -0
  12. package/{esm2020 → esm2022}/lib/input/regexp.service.mjs +4 -4
  13. package/esm2022/lib/lux.module.mjs +119 -0
  14. package/esm2022/lib/map/map.component.mjs +275 -0
  15. package/esm2022/lib/modal/modal-backdrop.mjs +25 -0
  16. package/esm2022/lib/modal/modal-config.mjs +12 -0
  17. package/esm2022/lib/modal/modal-ref.mjs +101 -0
  18. package/esm2022/lib/modal/modal-stack.mjs +182 -0
  19. package/esm2022/lib/modal/modal-window.mjs +125 -0
  20. package/esm2022/lib/modal/modal.service.mjs +28 -0
  21. package/esm2022/lib/modal/util.mjs +82 -0
  22. package/esm2022/lib/pagination/pagination.component.mjs +144 -0
  23. package/esm2022/lib/radiogroup/radiogroup.component.mjs +129 -0
  24. package/esm2022/lib/select/select.component.mjs +148 -0
  25. package/esm2022/lib/tooltip/tooltip.component.mjs +24 -0
  26. package/esm2022/lib/tooltip/tooltip.directive.mjs +69 -0
  27. package/esm2022/lib/tooltip/tooltip.service.mjs +137 -0
  28. package/esm2022/lib/tooltip/tooltop-content.mjs +9 -0
  29. package/esm2022/lib/voice-recognition/voice-recognition.directive.mjs +79 -0
  30. package/{fesm2020 → fesm2022}/metadev-lux.mjs +671 -554
  31. package/fesm2022/metadev-lux.mjs.map +1 -0
  32. package/lib/autocomplete/autocomplete.component.d.ts +1 -1
  33. package/lib/autocomplete-list/autocomplete-list.component.d.ts +1 -1
  34. package/lib/checkbox/checkbox.component.d.ts +1 -1
  35. package/lib/datetime/datetime.component.d.ts +1 -1
  36. package/lib/filter/filter.component.d.ts +1 -1
  37. package/lib/geolocation/geolocation.component.d.ts +1 -1
  38. package/lib/input/input.component.d.ts +1 -1
  39. package/lib/map/map.component.d.ts +2 -2
  40. package/lib/modal/modal-backdrop.d.ts +1 -1
  41. package/lib/modal/modal-stack.d.ts +1 -1
  42. package/lib/modal/modal-window.d.ts +1 -1
  43. package/lib/modal/util.d.ts +1 -1
  44. package/lib/pagination/pagination.component.d.ts +1 -1
  45. package/lib/radiogroup/radiogroup.component.d.ts +1 -1
  46. package/lib/select/select.component.d.ts +1 -1
  47. package/lib/tooltip/tooltip.component.d.ts +1 -1
  48. package/lib/tooltip/tooltip.directive.d.ts +1 -1
  49. package/lib/voice-recognition/voice-recognition.directive.d.ts +1 -1
  50. package/package.json +7 -13
  51. package/esm2020/lib/autocomplete/autocomplete.component.mjs +0 -479
  52. package/esm2020/lib/autocomplete-list/autocomplete-list.component.mjs +0 -254
  53. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -75
  54. package/esm2020/lib/checkbox/checkbox.component.mjs +0 -154
  55. package/esm2020/lib/datetime/datetime.component.mjs +0 -306
  56. package/esm2020/lib/filter/filter.component.mjs +0 -152
  57. package/esm2020/lib/geolocation/geolocation.component.mjs +0 -407
  58. package/esm2020/lib/geolocation/geolocation.service.mjs +0 -120
  59. package/esm2020/lib/helperFns.mjs +0 -117
  60. package/esm2020/lib/input/input.component.mjs +0 -452
  61. package/esm2020/lib/lux.module.mjs +0 -124
  62. package/esm2020/lib/map/map.component.mjs +0 -264
  63. package/esm2020/lib/modal/modal-backdrop.mjs +0 -26
  64. package/esm2020/lib/modal/modal-config.mjs +0 -14
  65. package/esm2020/lib/modal/modal-ref.mjs +0 -91
  66. package/esm2020/lib/modal/modal-stack.mjs +0 -179
  67. package/esm2020/lib/modal/modal-window.mjs +0 -119
  68. package/esm2020/lib/modal/modal.service.mjs +0 -26
  69. package/esm2020/lib/modal/util.mjs +0 -83
  70. package/esm2020/lib/pagination/pagination.component.mjs +0 -137
  71. package/esm2020/lib/radiogroup/radiogroup.component.mjs +0 -130
  72. package/esm2020/lib/select/select.component.mjs +0 -149
  73. package/esm2020/lib/tooltip/tooltip.component.mjs +0 -23
  74. package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -60
  75. package/esm2020/lib/tooltip/tooltip.service.mjs +0 -134
  76. package/esm2020/lib/tooltip/tooltop-content.mjs +0 -7
  77. package/esm2020/lib/voice-recognition/voice-recognition.directive.mjs +0 -73
  78. package/fesm2015/metadev-lux.mjs +0 -4347
  79. package/fesm2015/metadev-lux.mjs.map +0 -1
  80. package/fesm2020/metadev-lux.mjs.map +0 -1
  81. /package/{esm2020 → esm2022}/lib/datasource.mjs +0 -0
  82. /package/{esm2020 → esm2022}/lib/lang.mjs +0 -0
  83. /package/{esm2020 → esm2022}/lib/map/geopoint.mjs +0 -0
  84. /package/{esm2020 → esm2022}/lib/modal/modal-dismiss-reasons.mjs +0 -0
  85. /package/{esm2020 → esm2022}/lib/pagination/pagination.mjs +0 -0
  86. /package/{esm2020 → esm2022}/lib/tooltip/placement.mjs +0 -0
  87. /package/{esm2020 → esm2022}/lib/tooltip/tooltip-context.mjs +0 -0
  88. /package/{esm2020 → esm2022}/lib/window/window.service.mjs +0 -0
  89. /package/{esm2020 → esm2022}/metadev-lux.mjs +0 -0
  90. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,134 +0,0 @@
1
- import { Injectable, Injector, ComponentFactoryResolver, ApplicationRef, TemplateRef } from '@angular/core';
2
- import { Placement } from './placement';
3
- import { TooltipComponent } from './tooltip.component';
4
- import { TooltipContentRef } from './tooltop-content';
5
- import * as i0 from "@angular/core";
6
- export class TooltipService {
7
- constructor(_injector, _crf, _applicationRef) {
8
- this._injector = _injector;
9
- this._crf = _crf;
10
- this._applicationRef = _applicationRef;
11
- }
12
- appendComponentToBody(content, elHost, placement) {
13
- const tooltipContentRef = this.getTooltipContentRef(content);
14
- if (tooltipContentRef) {
15
- let domElem = tooltipContentRef.viewRef
16
- .rootNodes[0];
17
- document.body.appendChild(domElem);
18
- if (tooltipContentRef.componentRef) {
19
- tooltipContentRef.componentRef.changeDetectorRef.detectChanges();
20
- }
21
- domElem = this.setStyle(domElem, placement);
22
- domElem = this.setPosition(domElem, elHost, placement);
23
- return tooltipContentRef;
24
- }
25
- return null;
26
- }
27
- removeComponentFromBody(tooltipContentRef) {
28
- this._applicationRef.detachView(tooltipContentRef.viewRef);
29
- if (tooltipContentRef.componentRef) {
30
- tooltipContentRef.componentRef.destroy();
31
- }
32
- }
33
- getTooltipContentRef(content) {
34
- if (!content) {
35
- // nothing to show
36
- }
37
- else if (content instanceof TemplateRef) {
38
- return this.createFromTemplateRef(content);
39
- }
40
- else if (typeof content === 'string') {
41
- return this.createFromComponent(TooltipComponent, { message: content });
42
- }
43
- else {
44
- return this.createFromComponent(content);
45
- }
46
- }
47
- createFromTemplateRef(content) {
48
- const viewRef = content.createEmbeddedView({});
49
- this._applicationRef.attachView(viewRef);
50
- return new TooltipContentRef(viewRef);
51
- }
52
- createFromComponent(component, context) {
53
- const componentRef = this._crf
54
- .resolveComponentFactory(component)
55
- .create(this._injector);
56
- if (context) {
57
- componentRef.instance.context = context;
58
- }
59
- this._applicationRef.attachView(componentRef.hostView);
60
- return new TooltipContentRef(componentRef.hostView, componentRef);
61
- }
62
- setStyle(domElem, placement) {
63
- domElem.style.position = 'absolute';
64
- domElem.style.minWidth = 'min-content';
65
- domElem.style.minHeight = 'min-content';
66
- const tooltipElement = this.getTooltipElementFromHTMLElemnt(domElem);
67
- placement =
68
- placement !== undefined
69
- ? placement.toLocaleLowerCase()
70
- : 'top'; // 'Top' is the default value of placement
71
- tooltipElement.classList.add(`lux-tooltip-${placement}`);
72
- tooltipElement.classList.add('lux-tooltip-show');
73
- return domElem;
74
- }
75
- getTooltipElementFromHTMLElemnt(domElem) {
76
- const elementsArray = Array.from(domElem.classList).filter((className) => className === 'lux-tooltip');
77
- if (elementsArray.length !== 0) {
78
- return domElem;
79
- }
80
- else if (domElem.hasChildNodes()) {
81
- const childrenArray = Array.from(domElem.children).filter((child) => this.getTooltipElementFromHTMLElemnt(child) !== null);
82
- if (childrenArray.length !== 0) {
83
- return this.getTooltipElementFromHTMLElemnt(childrenArray[0]);
84
- }
85
- else {
86
- return null;
87
- }
88
- }
89
- else {
90
- return null;
91
- }
92
- }
93
- setPosition(domElem, elHost, placement) {
94
- const hostPos = elHost.nativeElement.getBoundingClientRect();
95
- const tooltipPos = domElem.getBoundingClientRect();
96
- const scrollPos = window.pageYOffset ||
97
- document.documentElement.scrollTop ||
98
- document.body.scrollTop ||
99
- 0;
100
- let top = 0;
101
- let left = 0;
102
- const offset = 10;
103
- switch (placement) {
104
- case Placement.Bottom:
105
- top = hostPos.bottom + offset;
106
- left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;
107
- break;
108
- case Placement.Left:
109
- top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;
110
- left = hostPos.left - tooltipPos.width - offset;
111
- break;
112
- case Placement.Right:
113
- top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;
114
- left = hostPos.right + offset;
115
- break;
116
- case Placement.Top:
117
- default:
118
- top = hostPos.top - tooltipPos.height - offset;
119
- left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;
120
- break;
121
- }
122
- top = Math.max(0, top);
123
- left = Math.max(0, left);
124
- domElem.style.top = `${top + scrollPos}px`;
125
- domElem.style.left = `${left}px`;
126
- return domElem;
127
- }
128
- }
129
- TooltipService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TooltipService, deps: [{ token: i0.Injector }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
130
- TooltipService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TooltipService });
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TooltipService, decorators: [{
132
- type: Injectable
133
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }]; } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvdG9vbHRpcC90b29sdGlwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBRVIsd0JBQXdCLEVBQ3hCLGNBQWMsRUFHZCxXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFrQixTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBR3RELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1UsU0FBbUIsRUFDbkIsSUFBOEIsRUFDOUIsZUFBK0I7UUFGL0IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUEwQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7SUFDdEMsQ0FBQztJQUVKLHFCQUFxQixDQUNuQixPQUFZLEVBQ1osTUFBa0IsRUFDbEIsU0FBeUI7UUFFekIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixJQUFJLE9BQU8sR0FBSSxpQkFBaUIsQ0FBQyxPQUFnQztpQkFDOUQsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLElBQUksaUJBQWlCLENBQUMsWUFBWSxFQUFFO2dCQUNsQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDbEU7WUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLFFB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R0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLFNBQVMsSUFBSSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFDakMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7MkdBbEpVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIENvbXBvbmVudFJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBBcHBsaWNhdGlvblJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBFbGVtZW50UmVmLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUGxhY2VtZW50VmFsdWUsIFBsYWNlbWVudCB9IGZyb20gJy4vcGxhY2VtZW50JztcbmltcG9ydCB7IEx1eFRvb2x0aXBDb250ZXh0IH0gZnJvbSAnLi90b29sdGlwLWNvbnRleHQnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcENvbnRlbnRSZWYgfSBmcm9tICcuL3Rvb2x0b3AtY29udGVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUb29sdGlwU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9jcmY6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIF9hcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWZcbiAgKSB7fVxuXG4gIGFwcGVuZENvbXBvbmVudFRvQm9keShcbiAgICBjb250ZW50OiBhbnksXG4gICAgZWxIb3N0OiBFbGVtZW50UmVmLFxuICAgIHBsYWNlbWVudDogUGxhY2VtZW50VmFsdWVcbiAgKTogVG9vbHRpcENvbnRlbnRSZWYge1xuICAgIGNvbnN0IHRvb2x0aXBDb250ZW50UmVmID0gdGhpcy5nZXRUb29sdGlwQ29udGVudFJlZihjb250ZW50KTtcbiAgICBpZiAodG9vbHRpcENvbnRlbnRSZWYpIHtcbiAgICAgIGxldCBkb21FbGVtID0gKHRvb2x0aXBDb250ZW50UmVmLnZpZXdSZWYgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pXG4gICAgICAgIC5yb290Tm9kZXNbMF07XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICAgICAgaWYgKHRvb2x0aXBDb250ZW50UmVmLmNvbXBvbmVudFJlZikge1xuICAgICAgICB0b29sdGlwQ29udGVudFJlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICAgZG9tRWxlbSA9IHRoaXMuc2V0U3R5bGUoZG9tRWxlbSwgcGxhY2VtZW50KTtcbiAgICAgIGRvbUVsZW0gPSB0aGlzLnNldFBvc2l0aW9uKGRvbUVsZW0sIGVsSG9zdCwgcGxhY2VtZW50KTtcbiAgICAgIHJldHVybiB0b29sdGlwQ29udGVudFJlZjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZW1vdmVDb21wb25lbnRGcm9tQm9keSh0b29sdGlwQ29udGVudFJlZjogVG9vbHRpcENvbnRlbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLl9hcHBsaWNhdGlvblJlZi5kZXRhY2hWaWV3KHRvb2x0aXBDb250ZW50UmVmLnZpZXdSZWYpO1xuICAgIGlmICh0b29sdGlwQ29udGVudFJlZi5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRvb2x0aXBDb250ZW50UmVmLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sdGlwQ29udGVudFJlZihjb250ZW50OiBhbnkpOiBUb29sdGlwQ29udGVudFJlZiB7XG4gICAgaWYgKCFjb250ZW50KSB7XG4gICAgICAvLyBub3RoaW5nIHRvIHNob3dcbiAgICB9IGVsc2UgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRnJvbVRlbXBsYXRlUmVmKGNvbnRlbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVGcm9tQ29tcG9uZW50KFRvb2x0aXBDb21wb25lbnQsIHsgbWVzc2FnZTogY29udGVudCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRnJvbUNvbXBvbmVudChjb250ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZyb21UZW1wbGF0ZVJlZihjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+KTogVG9vbHRpcENvbnRlbnRSZWYge1xuICAgIGNvbnN0IHZpZXdSZWYgPSBjb250ZW50LmNyZWF0ZUVtYmVkZGVkVmlldyh7fSk7XG4gICAgdGhpcy5fYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh2aWV3UmVmKTtcbiAgICByZXR1cm4gbmV3IFRvb2x0aXBDb250ZW50UmVmKHZpZXdSZWYpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGcm9tQ29tcG9uZW50KFxuICAgIGNvbXBvbmVudDogYW55LFxuICAgIGNvbnRleHQ/OiBMdXhUb29sdGlwQ29udGV4dFxuICApOiBUb29sdGlwQ29udGVudFJlZiB7XG4gICAgY29uc3QgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IHRoaXMuX2NyZlxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudClcbiAgICAgIC5jcmVhdGUodGhpcy5faW5qZWN0b3IpO1xuICAgIGlmIChjb250ZXh0KSB7XG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgfVxuICAgIHRoaXMuX2FwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICByZXR1cm4gbmV3IFRvb2x0aXBDb250ZW50UmVmKGNvbXBvbmVudFJlZi5ob3N0VmlldywgY29tcG9uZW50UmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3R5bGUoXG4gICAgZG9tRWxlbTogSFRNTEVsZW1lbnQsXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnRWYWx1ZVxuICApOiBIVE1MRWxlbWVudCB7XG4gICAgZG9tRWxlbS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgZG9tRWxlbS5zdHlsZS5taW5XaWR0aCA9ICdtaW4tY29udGVudCc7XG4gICAgZG9tRWxlbS5zdHlsZS5taW5IZWlnaHQgPSAnbWluLWNvbnRlbnQnO1xuICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdGhpcy5nZXRUb29sdGlwRWxlbWVudEZyb21IVE1MRWxlbW50KGRvbUVsZW0pO1xuICAgIHBsYWNlbWVudCA9XG4gICAgICBwbGFjZW1lbnQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IChwbGFjZW1lbnQudG9Mb2NhbGVMb3dlckNhc2UoKSBhcyBQbGFjZW1lbnRWYWx1ZSlcbiAgICAgICAgOiAndG9wJzsgLy8gJ1RvcCcgaXMgdGhlIGRlZmF1bHQgdmFsdWUgb2YgcGxhY2VtZW50XG4gICAgdG9vbHRpcEVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbHV4LXRvb2x0aXAtJHtwbGFjZW1lbnR9YCk7XG4gICAgdG9vbHRpcEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbHV4LXRvb2x0aXAtc2hvdycpO1xuICAgIHJldHVybiBkb21FbGVtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sdGlwRWxlbWVudEZyb21IVE1MRWxlbW50KGRvbUVsZW06IEhUTUxFbGVtZW50KTogYW55IHtcbiAgICBjb25zdCBlbGVtZW50c0FycmF5ID0gQXJyYXkuZnJvbShkb21FbGVtLmNsYXNzTGlzdCkuZmlsdGVyKFxuICAgICAgKGNsYXNzTmFtZSkgPT4gY2xhc3NOYW1lID09PSAnbHV4LXRvb2x0aXAnXG4gICAgKTtcbiAgICBpZiAoZWxlbWVudHNBcnJheS5sZW5ndGggIT09IDApIHtcbiAgICAgIHJldHVybiBkb21FbGVtO1xuICAgIH0gZWxzZSBpZiAoZG9tRWxlbS5oYXNDaGlsZE5vZGVzKCkpIHtcbiAgICAgIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBBcnJheS5mcm9tKGRvbUVsZW0uY2hpbGRyZW4pLmZpbHRlcihcbiAgICAgICAgKGNoaWxkKSA9PlxuICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcEVsZW1lbnRGcm9tSFRNTEVsZW1udChjaGlsZCBhcyBIVE1MRWxlbWVudCkgIT09IG51bGxcbiAgICAgICk7XG4gICAgICBpZiAoY2hpbGRyZW5BcnJheS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9vbHRpcEVsZW1lbnRGcm9tSFRNTEVsZW1udChcbiAgICAgICAgICBjaGlsZHJlbkFycmF5WzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihcbiAgICBkb21FbGVtOiBIVE1MRWxlbWVudCxcbiAgICBlbEhvc3Q6IEVsZW1lbnRSZWYsXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnRWYWx1ZVxuICApOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgaG9zdFBvcyA9IGVsSG9zdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHRvb2x0aXBQb3MgPSBkb21FbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHNjcm9sbFBvcyA9XG4gICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHxcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8XG4gICAgICAwO1xuICAgIGxldCB0b3AgPSAwO1xuICAgIGxldCBsZWZ0ID0gMDtcbiAgICBjb25zdCBvZmZzZXQgPSAxMDtcblxuICAgIHN3aXRjaCAocGxhY2VtZW50KSB7XG4gICAgICBjYXNlIFBsYWNlbWVudC5Cb3R0b206XG4gICAgICAgIHRvcCA9IGhvc3RQb3MuYm90dG9tICsgb2Zmc2V0O1xuICAgICAgICBsZWZ0ID0gaG9zdFBvcy5sZWZ0ICsgKGhvc3RQb3Mud2lkdGggLSB0b29sdGlwUG9zLndpZHRoKSAvIDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQbGFjZW1lbnQuTGVmdDpcbiAgICAgICAgdG9wID0gaG9zdFBvcy50b3AgKyAoaG9zdFBvcy5oZWlnaHQgLSB0b29sdGlwUG9zLmhlaWdodCkgLyAyO1xuICAgICAgICBsZWZ0ID0gaG9zdFBvcy5sZWZ0IC0gdG9vbHRpcFBvcy53aWR0aCAtIG9mZnNldDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBsYWNlbWVudC5SaWdodDpcbiAgICAgICAgdG9wID0gaG9zdFBvcy50b3AgKyAoaG9zdFBvcy5oZWlnaHQgLSB0b29sdGlwUG9zLmhlaWdodCkgLyAyO1xuICAgICAgICBsZWZ0ID0gaG9zdFBvcy5yaWdodCArIG9mZnNldDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBsYWNlbWVudC5Ub3A6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0b3AgPSBob3N0UG9zLnRvcCAtIHRvb2x0aXBQb3MuaGVpZ2h0IC0gb2Zmc2V0O1xuICAgICAgICBsZWZ0ID0gaG9zdFBvcy5sZWZ0ICsgKGhvc3RQb3Mud2lkdGggLSB0b29sdGlwUG9zLndpZHRoKSAvIDI7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0b3AgPSBNYXRoLm1heCgwLCB0b3ApO1xuICAgIGxlZnQgPSBNYXRoLm1heCgwLCBsZWZ0KTtcbiAgICBkb21FbGVtLnN0eWxlLnRvcCA9IGAke3RvcCArIHNjcm9sbFBvc31weGA7XG4gICAgZG9tRWxlbS5zdHlsZS5sZWZ0ID0gYCR7bGVmdH1weGA7XG4gICAgcmV0dXJuIGRvbUVsZW07XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- export class TooltipContentRef {
2
- constructor(viewRef, componentRef) {
3
- this.viewRef = viewRef;
4
- this.componentRef = componentRef;
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRvcC1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvdG9vbHRpcC90b29sdG9wLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUFtQixPQUFpQixFQUFTLFlBQWdDO1FBQTFELFlBQU8sR0FBUCxPQUFPLENBQVU7UUFBUyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7SUFBRyxDQUFDO0NBQ3BGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld1JlZiwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29udGVudFJlZiB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHZpZXdSZWY/OiBWaWV3UmVmLCBwdWJsaWMgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPGFueT4pIHt9XG59XG4iXX0=
@@ -1,73 +0,0 @@
1
- import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class VoiceRecognitionDirective {
4
- constructor(el, renderer) {
5
- this.el = el;
6
- this.renderer = renderer;
7
- this.isRecognizing = false;
8
- const speechRecognition = window.webkitSpeechRecognition;
9
- if (speechRecognition) {
10
- this.recognition = new speechRecognition();
11
- }
12
- }
13
- ngOnInit() {
14
- if (this.recognition) {
15
- // API is available
16
- this.recognition.lang = this.language || window.navigator.language;
17
- this.recognition.interimResults = false;
18
- this.recognition.maxAlternatives = 1;
19
- // Add mic icon
20
- this.mic = document.createElement('div');
21
- this.mic.setAttribute('class', 'lux-microphone');
22
- const parent = this.el.nativeElement.parentElement;
23
- parent.appendChild(this.mic);
24
- // Add event handlers
25
- this.mic.onclick = () => this.microphoneClick();
26
- this.recognition.onresult = (event) => this.onRecognized(event);
27
- }
28
- }
29
- microphoneClick() {
30
- if (this.isRecognizing) {
31
- // stop
32
- this.isRecognizing = false;
33
- this.renderer.removeClass(this.mic, 'lux-recording');
34
- this.recognition.abort();
35
- }
36
- else {
37
- // start
38
- this.el.nativeElement.value = getRecordingMessage(this.language);
39
- this.isRecognizing = true;
40
- this.renderer.addClass(this.mic, 'lux-recording');
41
- this.recognition.start();
42
- }
43
- }
44
- onRecognized(event) {
45
- const recognizedText = event.results[0][0].transcript;
46
- this.isRecognizing = false;
47
- this.el.nativeElement.value = recognizedText;
48
- this.renderer.removeClass(this.mic, 'lux-recording');
49
- }
50
- }
51
- VoiceRecognitionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: VoiceRecognitionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
52
- VoiceRecognitionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: VoiceRecognitionDirective, selector: "[luxVoiceRecognition]", inputs: { language: "language" }, ngImport: i0 });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: VoiceRecognitionDirective, decorators: [{
54
- type: Directive,
55
- args: [{
56
- selector: '[luxVoiceRecognition]'
57
- }]
58
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { language: [{
59
- type: Input
60
- }] } });
61
- const getRecordingMessage = (lang) => {
62
- switch (lang.toLowerCase()) {
63
- case 'es':
64
- case 'es-es':
65
- return 'Grabando...';
66
- case 'en':
67
- case 'en-uk':
68
- case 'en-us':
69
- default:
70
- return 'Recording...';
71
- }
72
- };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9pY2UtcmVjb2duaXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvdm9pY2UtcmVjb2duaXRpb24vdm9pY2UtcmVjb2duaXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS2hGLE1BQU0sT0FBTyx5QkFBeUI7SUFPcEMsWUFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSHZELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSTVCLE1BQU0saUJBQWlCLEdBQUksTUFBYyxDQUFDLHVCQUF1QixDQUFDO1FBQ2xFLElBQUksaUJBQWlCLEVBQUU7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixtQkFBbUI7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUNuRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1lBRXJDLGVBQWU7WUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFFakQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTdCLHFCQUFxQjtZQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkU7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixPQUFPO1lBQ1AsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzFCO2FBQU07WUFDTCxRQUFRO1lBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQVU7UUFDckIsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O3NIQXJEVSx5QkFBeUI7MEdBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7aUJBQ2xDO3lIQUVVLFFBQVE7c0JBQWhCLEtBQUs7O0FBdURSLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUNuRCxRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUMxQixLQUFLLElBQUksQ0FBQztRQUNWLEtBQUssT0FBTztZQUNWLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssSUFBSSxDQUFDO1FBQ1YsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLE9BQU8sQ0FBQztRQUNiO1lBQ0UsT0FBTyxjQUFjLENBQUM7S0FDekI7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbHV4Vm9pY2VSZWNvZ25pdGlvbl0nXG59KVxuZXhwb3J0IGNsYXNzIFZvaWNlUmVjb2duaXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBsYW5ndWFnZTogc3RyaW5nO1xuICAvLyBTZWUgQVBJIGF0OiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU3BlZWNoUmVjb2duaXRpb25cbiAgcHJpdmF0ZSByZWNvZ25pdGlvbjogYW55O1xuICBwcml2YXRlIGlzUmVjb2duaXppbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBtaWM6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBjb25zdCBzcGVlY2hSZWNvZ25pdGlvbiA9ICh3aW5kb3cgYXMgYW55KS53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbjtcbiAgICBpZiAoc3BlZWNoUmVjb2duaXRpb24pIHtcbiAgICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgc3BlZWNoUmVjb2duaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvZ25pdGlvbikge1xuICAgICAgLy8gQVBJIGlzIGF2YWlsYWJsZVxuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5sYW5nID0gdGhpcy5sYW5ndWFnZSB8fCB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyA9IGZhbHNlO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5tYXhBbHRlcm5hdGl2ZXMgPSAxO1xuXG4gICAgICAvLyBBZGQgbWljIGljb25cbiAgICAgIHRoaXMubWljID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLm1pYy5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2x1eC1taWNyb3Bob25lJyk7XG5cbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHRoaXMubWljKTtcblxuICAgICAgLy8gQWRkIGV2ZW50IGhhbmRsZXJzXG4gICAgICB0aGlzLm1pYy5vbmNsaWNrID0gKCk6IHZvaWQgPT4gdGhpcy5taWNyb3Bob25lQ2xpY2soKTtcbiAgICAgIHRoaXMucmVjb2duaXRpb24ub25yZXN1bHQgPSAoZXZlbnQpOiB2b2lkID0+IHRoaXMub25SZWNvZ25pemVkKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBtaWNyb3Bob25lQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNSZWNvZ25pemluZykge1xuICAgICAgLy8gc3RvcFxuICAgICAgdGhpcy5pc1JlY29nbml6aW5nID0gZmFsc2U7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubWljLCAnbHV4LXJlY29yZGluZycpO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5hYm9ydCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBzdGFydFxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gZ2V0UmVjb3JkaW5nTWVzc2FnZSh0aGlzLmxhbmd1YWdlKTtcbiAgICAgIHRoaXMuaXNSZWNvZ25pemluZyA9IHRydWU7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubWljLCAnbHV4LXJlY29yZGluZycpO1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xuICAgIH1cbiAgfVxuICBvblJlY29nbml6ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHJlY29nbml6ZWRUZXh0ID0gZXZlbnQucmVzdWx0c1swXVswXS50cmFuc2NyaXB0O1xuICAgIHRoaXMuaXNSZWNvZ25pemluZyA9IGZhbHNlO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHJlY29nbml6ZWRUZXh0O1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5taWMsICdsdXgtcmVjb3JkaW5nJyk7XG4gIH1cbn1cblxuY29uc3QgZ2V0UmVjb3JkaW5nTWVzc2FnZSA9IChsYW5nOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBzd2l0Y2ggKGxhbmcudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2VzJzpcbiAgICBjYXNlICdlcy1lcyc6XG4gICAgICByZXR1cm4gJ0dyYWJhbmRvLi4uJztcbiAgICBjYXNlICdlbic6XG4gICAgY2FzZSAnZW4tdWsnOlxuICAgIGNhc2UgJ2VuLXVzJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdSZWNvcmRpbmcuLi4nO1xuICB9XG59O1xuIl19