@metadev/lux 0.27.0 → 0.29.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 (83) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm2022/lib/autocomplete/autocomplete.component.mjs +488 -488
  4. package/esm2022/lib/autocomplete-list/autocomplete-list.component.mjs +259 -259
  5. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +78 -78
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +156 -156
  7. package/esm2022/lib/datasource.mjs +1 -1
  8. package/esm2022/lib/datetime/datetime.component.mjs +312 -312
  9. package/esm2022/lib/filter/filter.component.mjs +158 -158
  10. package/esm2022/lib/geolocation/geolocation.component.mjs +423 -423
  11. package/esm2022/lib/geolocation/geolocation.service.mjs +123 -123
  12. package/esm2022/lib/geolocation/openlayer-loader.service.mjs +62 -62
  13. package/esm2022/lib/helperFns.mjs +118 -118
  14. package/esm2022/lib/input/input.component.mjs +469 -469
  15. package/esm2022/lib/input/regexp.service.mjs +195 -195
  16. package/esm2022/lib/lang.mjs +9 -9
  17. package/esm2022/lib/lux.module.mjs +118 -118
  18. package/esm2022/lib/map/geopoint.mjs +1 -1
  19. package/esm2022/lib/map/map.component.mjs +275 -275
  20. package/esm2022/lib/modal/modal-backdrop.mjs +24 -24
  21. package/esm2022/lib/modal/modal-config.mjs +11 -11
  22. package/esm2022/lib/modal/modal-dismiss-reasons.mjs +5 -5
  23. package/esm2022/lib/modal/modal-ref.mjs +101 -101
  24. package/esm2022/lib/modal/modal-stack.mjs +182 -182
  25. package/esm2022/lib/modal/modal-window.mjs +118 -118
  26. package/esm2022/lib/modal/modal.service.mjs +27 -27
  27. package/esm2022/lib/modal/util.mjs +82 -82
  28. package/esm2022/lib/pagination/pagination.component.mjs +144 -144
  29. package/esm2022/lib/pagination/pagination.mjs +1 -1
  30. package/esm2022/lib/radiogroup/radiogroup.component.mjs +129 -129
  31. package/esm2022/lib/select/select.component.mjs +148 -148
  32. package/esm2022/lib/tooltip/placement.mjs +7 -7
  33. package/esm2022/lib/tooltip/tooltip-context.mjs +1 -1
  34. package/esm2022/lib/tooltip/tooltip.component.mjs +21 -21
  35. package/esm2022/lib/tooltip/tooltip.directive.mjs +69 -69
  36. package/esm2022/lib/tooltip/tooltip.service.mjs +137 -137
  37. package/esm2022/lib/tooltip/tooltop-content.mjs +8 -8
  38. package/esm2022/lib/voice-recognition/voice-recognition.directive.mjs +79 -79
  39. package/esm2022/lib/window/window.service.mjs +46 -46
  40. package/esm2022/metadev-lux.mjs +4 -4
  41. package/esm2022/public-api.mjs +20 -20
  42. package/fesm2022/metadev-lux.mjs +4372 -4372
  43. package/fesm2022/metadev-lux.mjs.map +1 -1
  44. package/index.d.ts +5 -5
  45. package/lib/autocomplete/autocomplete.component.d.ts +81 -81
  46. package/lib/autocomplete-list/autocomplete-list.component.d.ts +65 -65
  47. package/lib/breadcrumb/breadcrumb.component.d.ts +22 -22
  48. package/lib/checkbox/checkbox.component.d.ts +47 -47
  49. package/lib/datasource.d.ts +13 -13
  50. package/lib/datetime/datetime.component.d.ts +69 -69
  51. package/lib/filter/filter.component.d.ts +51 -51
  52. package/lib/geolocation/geolocation.component.d.ts +123 -123
  53. package/lib/geolocation/geolocation.service.d.ts +32 -32
  54. package/lib/geolocation/openlayer-loader.service.d.ts +7 -7
  55. package/lib/helperFns.d.ts +15 -15
  56. package/lib/input/input.component.d.ts +108 -108
  57. package/lib/input/regexp.service.d.ts +15 -15
  58. package/lib/lang.d.ts +2 -2
  59. package/lib/lux.module.d.ts +27 -27
  60. package/lib/map/geopoint.d.ts +7 -7
  61. package/lib/map/map.component.d.ts +39 -39
  62. package/lib/modal/modal-backdrop.d.ts +8 -8
  63. package/lib/modal/modal-config.d.ts +14 -14
  64. package/lib/modal/modal-dismiss-reasons.d.ts +4 -4
  65. package/lib/modal/modal-ref.d.ts +41 -41
  66. package/lib/modal/modal-stack.d.ts +31 -31
  67. package/lib/modal/modal-window.d.ts +28 -28
  68. package/lib/modal/modal.service.d.ts +19 -19
  69. package/lib/modal/util.d.ts +40 -40
  70. package/lib/pagination/pagination.component.d.ts +52 -52
  71. package/lib/pagination/pagination.d.ts +10 -10
  72. package/lib/radiogroup/radiogroup.component.d.ts +37 -37
  73. package/lib/select/select.component.d.ts +38 -38
  74. package/lib/tooltip/placement.d.ts +7 -7
  75. package/lib/tooltip/tooltip-context.d.ts +3 -3
  76. package/lib/tooltip/tooltip.component.d.ts +11 -11
  77. package/lib/tooltip/tooltip.directive.d.ts +27 -27
  78. package/lib/tooltip/tooltip.service.d.ts +20 -20
  79. package/lib/tooltip/tooltop-content.d.ts +6 -6
  80. package/lib/voice-recognition/voice-recognition.directive.d.ts +16 -16
  81. package/lib/window/window.service.d.ts +11 -11
  82. package/package.json +3 -4
  83. package/public-api.d.ts +18 -18
@@ -1,148 +1,148 @@
1
- import { Component, Input, EventEmitter, Output, forwardRef } from '@angular/core';
2
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "../input/input.component";
6
- let sequencer = 0;
7
- export class SelectComponent {
8
- id = 'stringList' + sequencer++;
9
- disabled = false;
10
- required = false;
11
- /** Allow multiple elements */
12
- multiple = true;
13
- value = [];
14
- valueChange = new EventEmitter();
15
- placeholder = 'Add new';
16
- /** If set, check there is no duplicates in the data. */
17
- unique = true;
18
- /** Validation function for new items. Returns error or null if valid */
19
- validateItem = (_) => null;
20
- newEntry = '';
21
- error = null;
22
- isValidNewEntry = false;
23
- touched = false;
24
- constructor() { }
25
- // ControlValueAccessor Interface
26
- onChange = (value) => { };
27
- onTouched = () => { };
28
- writeValue(value) {
29
- this.value = value;
30
- }
31
- registerOnChange(onChange) {
32
- this.onChange = onChange;
33
- }
34
- registerOnTouched(onTouched) {
35
- this.onTouched = onTouched;
36
- }
37
- markAsTouched() {
38
- if (!this.touched) {
39
- this.onTouched();
40
- this.touched = true;
41
- }
42
- }
43
- setDisabledState(disabled) {
44
- this.disabled = disabled;
45
- }
46
- // End ControlValueAccessor Interface
47
- // Validator interface
48
- registerOnValidatorChange() { }
49
- validate(control) {
50
- const value = control.value;
51
- if (this.required &&
52
- (value === '' || value === null || value === undefined)) {
53
- return { required: { value, reason: 'Required field.' } };
54
- }
55
- return null;
56
- }
57
- // End of Validator interface
58
- get canAdd() {
59
- return this.multiple || this.value.length === 0;
60
- }
61
- add(val) {
62
- this.value.push(val);
63
- this.newEntry = '';
64
- this.markAsTouched();
65
- this.valueChange.emit(this.value);
66
- }
67
- remove(index) {
68
- if (this.value.length > index) {
69
- this.value.splice(index, 1);
70
- this.markAsTouched();
71
- this.valueChange.emit(this.value);
72
- }
73
- }
74
- onKeyPress(event) {
75
- if (event.key === 'Enter' && !this.error && this.newEntry !== '') {
76
- // Add on pressing Enter/Return
77
- this.markAsTouched();
78
- this.add(this.newEntry);
79
- }
80
- }
81
- onChangeNewEntry(newValue) {
82
- this.markAsTouched();
83
- if (!newValue) {
84
- this.isValidNewEntry = false;
85
- this.error = null;
86
- return;
87
- }
88
- if (this.unique) {
89
- const found = (this.value || []).find((it) => it === newValue);
90
- this.isValidNewEntry = !found;
91
- this.error = found
92
- ? `Value '${newValue}' is already in. Cannot add duplicates.`
93
- : null;
94
- if (!this.isValidNewEntry) {
95
- return;
96
- }
97
- }
98
- this.error = this.validateItem(newValue);
99
- this.isValidNewEntry = !this.error;
100
- }
101
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
102
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: SelectComponent, selector: "lux-select", inputs: { id: "id", disabled: "disabled", required: "required", multiple: "multiple", value: "value", placeholder: "placeholder", unique: "unique", validateItem: "validateItem" }, outputs: { valueChange: "valueChange" }, providers: [
103
- {
104
- provide: NG_VALUE_ACCESSOR,
105
- multi: true,
106
- useExisting: forwardRef(() => SelectComponent)
107
- },
108
- {
109
- provide: NG_VALIDATORS,
110
- multi: true,
111
- useExisting: forwardRef(() => SelectComponent)
112
- }
113
- ], ngImport: i0, template: "<div class=\"lux-select\">\n <ul class=\"list\">\n <li *ngFor=\"let item of value; let i = index\">\n <span>{{ item }}</span>\n <button *ngIf=\"!disabled\"\n class=\"remove\"\n type=\"button\"\n (click)=\"remove(i)\"\n [attr.aria-label]=\"'Remove ' + item\"\n >Remove</button>\n </li>\n </ul>\n <div class=\"add-new-item\" *ngIf=\"!disabled\">\n <lux-input\n id=\"{{ id + 'addNew' }}\"\n type=\"string\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n [(value)]=\"newEntry\"\n (keyPress)=\"onKeyPress($event)\"\n (valueChange)=\"onChangeNewEntry($event)\"\n >\n </lux-input>\n <div *ngIf=\"canAdd\">\n <button *ngIf=\"isValidNewEntry\" type=\"button\" (click)=\"add(newEntry)\">Add</button>\n </div>\n <div class=\"error\">\n {{ error }}\n </div>\n </div>\n</div>\n", styles: [".lux-select{margin-bottom:.5em}.lux-select .list{margin:1em;padding-bottom:.2em;list-style-type:square}.lux-select .list span{margin-bottom:.3em}.remove{margin-left:2em;font-size:.65em;color:#b22222;background:transparent;border:2px solid #BBB}.add-new-item{display:inline-flex;margin-left:2.2em;height:1.6em}.error{margin:.5em 0;color:#b22222}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.InputComponent, selector: "lux-input", inputs: ["rows", "cols", "step", "min", "max", "lang", "inlineErrors", "inputId", "aria-label", "readonly", "disabled", "pattern", "currency", "placeholder", "required", "type", "value"], outputs: ["valueChange", "keyPress"] }] });
114
- }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SelectComponent, decorators: [{
116
- type: Component,
117
- args: [{ selector: 'lux-select', providers: [
118
- {
119
- provide: NG_VALUE_ACCESSOR,
120
- multi: true,
121
- useExisting: forwardRef(() => SelectComponent)
122
- },
123
- {
124
- provide: NG_VALIDATORS,
125
- multi: true,
126
- useExisting: forwardRef(() => SelectComponent)
127
- }
128
- ], template: "<div class=\"lux-select\">\n <ul class=\"list\">\n <li *ngFor=\"let item of value; let i = index\">\n <span>{{ item }}</span>\n <button *ngIf=\"!disabled\"\n class=\"remove\"\n type=\"button\"\n (click)=\"remove(i)\"\n [attr.aria-label]=\"'Remove ' + item\"\n >Remove</button>\n </li>\n </ul>\n <div class=\"add-new-item\" *ngIf=\"!disabled\">\n <lux-input\n id=\"{{ id + 'addNew' }}\"\n type=\"string\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n [(value)]=\"newEntry\"\n (keyPress)=\"onKeyPress($event)\"\n (valueChange)=\"onChangeNewEntry($event)\"\n >\n </lux-input>\n <div *ngIf=\"canAdd\">\n <button *ngIf=\"isValidNewEntry\" type=\"button\" (click)=\"add(newEntry)\">Add</button>\n </div>\n <div class=\"error\">\n {{ error }}\n </div>\n </div>\n</div>\n", styles: [".lux-select{margin-bottom:.5em}.lux-select .list{margin:1em;padding-bottom:.2em;list-style-type:square}.lux-select .list span{margin-bottom:.3em}.remove{margin-left:2em;font-size:.65em;color:#b22222;background:transparent;border:2px solid #BBB}.add-new-item{display:inline-flex;margin-left:2.2em;height:1.6em}.error{margin:.5em 0;color:#b22222}\n"] }]
129
- }], ctorParameters: function () { return []; }, propDecorators: { id: [{
130
- type: Input
131
- }], disabled: [{
132
- type: Input
133
- }], required: [{
134
- type: Input
135
- }], multiple: [{
136
- type: Input
137
- }], value: [{
138
- type: Input
139
- }], valueChange: [{
140
- type: Output
141
- }], placeholder: [{
142
- type: Input
143
- }], unique: [{
144
- type: Input
145
- }], validateItem: [{
146
- type: Input
147
- }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2x1eC9zcmMvbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXhCLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztBQW1CbEIsTUFBTSxPQUFPLGVBQWU7SUFDakIsRUFBRSxHQUFHLFlBQVksR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsOEJBQThCO0lBQ3JCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUNwQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztJQUM1QyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLHdEQUF3RDtJQUMvQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLHdFQUF3RTtJQUMvRCxZQUFZLEdBQTZCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFFOUQsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDYixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRWhCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFeEIsZ0JBQWUsQ0FBQztJQUVoQixpQ0FBaUM7SUFDakMsUUFBUSxHQUFHLENBQUMsS0FBSyxF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QUFnQixDQUFDO3lCQUMvQztxQkFDRjswRUFHUSxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmxldCBzZXF1ZW5jZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsdXgtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KCkgaWQgPSAnc3RyaW5nTGlzdCcgKyBzZXF1ZW5jZXIrKztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgLyoqIEFsbG93IG11bHRpcGxlIGVsZW1lbnRzICovXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gdHJ1ZTtcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZ1tdID0gW107XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ0FkZCBuZXcnO1xuICAvKiogSWYgc2V0LCBjaGVjayB0aGVyZSBpcyBubyBkdXBsaWNhdGVzIGluIHRoZSBkYXRhLiAqL1xuICBASW5wdXQoKSB1bmlxdWUgPSB0cnVlO1xuICAvKiogVmFsaWRhdGlvbiBmdW5jdGlvbiBmb3IgbmV3IGl0ZW1zLiBSZXR1cm5zIGVycm9yIG9yIG51bGwgaWYgdmFsaWQgKi9cbiAgQElucHV0KCkgdmFsaWRhdGVJdGVtOiAoaXRlbTogc3RyaW5nKSA9PiBzdHJpbmcgPSAoXykgPT4gbnVsbDtcblxuICBuZXdFbnRyeSA9ICcnO1xuICBlcnJvciA9IG51bGw7XG4gIGlzVmFsaWROZXdFbnRyeSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBJbnRlcmZhY2VcbiAgb25DaGFuZ2UgPSAodmFsdWUpOiB2b2lkID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG4gIG1hcmtBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG4gIC8vIEVuZCBDb250cm9sVmFsdWVBY2Nlc3NvciBJbnRlcmZhY2VcblxuICAvLyBWYWxpZGF0b3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoKTogdm9pZCB7fVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXF1aXJlZCAmJlxuICAgICAgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHsgdmFsdWUsIHJlYXNvbjogJ1JlcXVpcmVkIGZpZWxkLicgfSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBFbmQgb2YgVmFsaWRhdG9yIGludGVyZmFjZVxuXG4gIGdldCBjYW5BZGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgfHwgdGhpcy52YWx1ZS5sZW5ndGggPT09IDA7XG4gIH1cbiAgYWRkKHZhbDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZS5wdXNoKHZhbCk7XG4gICAgdGhpcy5uZXdFbnRyeSA9ICcnO1xuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuICByZW1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB0aGlzLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgIXRoaXMuZXJyb3IgJiYgdGhpcy5uZXdFbnRyeSAhPT0gJycpIHtcbiAgICAgIC8vIEFkZCBvbiBwcmVzc2luZyBFbnRlci9SZXR1cm5cbiAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5hZGQodGhpcy5uZXdFbnRyeSk7XG4gICAgfVxuICB9XG4gIG9uQ2hhbmdlTmV3RW50cnkobmV3VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgIGlmICghbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuaXNWYWxpZE5ld0VudHJ5ID0gZmFsc2U7XG4gICAgICB0aGlzLmVycm9yID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudW5pcXVlKSB7XG4gICAgICBjb25zdCBmb3VuZCA9ICh0aGlzLnZhbHVlIHx8IFtdKS5maW5kKChpdCkgPT4gaXQgPT09IG5ld1ZhbHVlKTtcbiAgICAgIHRoaXMuaXNWYWxpZE5ld0VudHJ5ID0gIWZvdW5kO1xuICAgICAgdGhpcy5lcnJvciA9IGZvdW5kXG4gICAgICAgID8gYFZhbHVlICcke25ld1ZhbHVlfScgaXMgYWxyZWFkeSBpbi4gQ2Fubm90IGFkZCBkdXBsaWNhdGVzLmBcbiAgICAgICAgOiBudWxsO1xuICAgICAgaWYgKCF0aGlzLmlzVmFsaWROZXdFbnRyeSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZXJyb3IgPSB0aGlzLnZhbGlkYXRlSXRlbShuZXdWYWx1ZSk7XG4gICAgdGhpcy5pc1ZhbGlkTmV3RW50cnkgPSAhdGhpcy5lcnJvcjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImx1eC1zZWxlY3RcIj5cbiAgPHVsIGNsYXNzPVwibGlzdFwiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPHNwYW4+e3sgaXRlbSB9fTwvc3Bhbj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCIhZGlzYWJsZWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJyZW1vdmVcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKGkpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZSAnICsgaXRlbVwiXG4gICAgICAgICAgICA+UmVtb3ZlPC9idXR0b24+XG4gICAgPC9saT5cbiAgPC91bD5cbiAgPGRpdiBjbGFzcz1cImFkZC1uZXctaXRlbVwiICpuZ0lmPVwiIWRpc2FibGVkXCI+XG4gICAgPGx1eC1pbnB1dFxuICAgICAgaWQ9XCJ7eyBpZCArICdhZGROZXcnIH19XCJcbiAgICAgIHR5cGU9XCJzdHJpbmdcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFsodmFsdWUpXT1cIm5ld0VudHJ5XCJcbiAgICAgIChrZXlQcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hhbmdlTmV3RW50cnkoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvbHV4LWlucHV0PlxuICAgIDxkaXYgKm5nSWY9XCJjYW5BZGRcIj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJpc1ZhbGlkTmV3RW50cnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZChuZXdFbnRyeSlcIj5BZGQ8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3JcIj5cbiAgICAgIHt7IGVycm9yIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
1
+ import { Component, Input, EventEmitter, Output, forwardRef } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../input/input.component";
6
+ let sequencer = 0;
7
+ export class SelectComponent {
8
+ id = 'stringList' + sequencer++;
9
+ disabled = false;
10
+ required = false;
11
+ /** Allow multiple elements */
12
+ multiple = true;
13
+ value = [];
14
+ valueChange = new EventEmitter();
15
+ placeholder = 'Add new';
16
+ /** If set, check there is no duplicates in the data. */
17
+ unique = true;
18
+ /** Validation function for new items. Returns error or null if valid */
19
+ validateItem = (_) => null;
20
+ newEntry = '';
21
+ error = null;
22
+ isValidNewEntry = false;
23
+ touched = false;
24
+ constructor() { }
25
+ // ControlValueAccessor Interface
26
+ onChange = (value) => { };
27
+ onTouched = () => { };
28
+ writeValue(value) {
29
+ this.value = value;
30
+ }
31
+ registerOnChange(onChange) {
32
+ this.onChange = onChange;
33
+ }
34
+ registerOnTouched(onTouched) {
35
+ this.onTouched = onTouched;
36
+ }
37
+ markAsTouched() {
38
+ if (!this.touched) {
39
+ this.onTouched();
40
+ this.touched = true;
41
+ }
42
+ }
43
+ setDisabledState(disabled) {
44
+ this.disabled = disabled;
45
+ }
46
+ // End ControlValueAccessor Interface
47
+ // Validator interface
48
+ registerOnValidatorChange() { }
49
+ validate(control) {
50
+ const value = control.value;
51
+ if (this.required &&
52
+ (value === '' || value === null || value === undefined)) {
53
+ return { required: { value, reason: 'Required field.' } };
54
+ }
55
+ return null;
56
+ }
57
+ // End of Validator interface
58
+ get canAdd() {
59
+ return this.multiple || this.value.length === 0;
60
+ }
61
+ add(val) {
62
+ this.value.push(val);
63
+ this.newEntry = '';
64
+ this.markAsTouched();
65
+ this.valueChange.emit(this.value);
66
+ }
67
+ remove(index) {
68
+ if (this.value.length > index) {
69
+ this.value.splice(index, 1);
70
+ this.markAsTouched();
71
+ this.valueChange.emit(this.value);
72
+ }
73
+ }
74
+ onKeyPress(event) {
75
+ if (event.key === 'Enter' && !this.error && this.newEntry !== '') {
76
+ // Add on pressing Enter/Return
77
+ this.markAsTouched();
78
+ this.add(this.newEntry);
79
+ }
80
+ }
81
+ onChangeNewEntry(newValue) {
82
+ this.markAsTouched();
83
+ if (!newValue) {
84
+ this.isValidNewEntry = false;
85
+ this.error = null;
86
+ return;
87
+ }
88
+ if (this.unique) {
89
+ const found = (this.value || []).find((it) => it === newValue);
90
+ this.isValidNewEntry = !found;
91
+ this.error = found
92
+ ? `Value '${newValue}' is already in. Cannot add duplicates.`
93
+ : null;
94
+ if (!this.isValidNewEntry) {
95
+ return;
96
+ }
97
+ }
98
+ this.error = this.validateItem(newValue);
99
+ this.isValidNewEntry = !this.error;
100
+ }
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
102
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: SelectComponent, selector: "lux-select", inputs: { id: "id", disabled: "disabled", required: "required", multiple: "multiple", value: "value", placeholder: "placeholder", unique: "unique", validateItem: "validateItem" }, outputs: { valueChange: "valueChange" }, providers: [
103
+ {
104
+ provide: NG_VALUE_ACCESSOR,
105
+ multi: true,
106
+ useExisting: forwardRef(() => SelectComponent)
107
+ },
108
+ {
109
+ provide: NG_VALIDATORS,
110
+ multi: true,
111
+ useExisting: forwardRef(() => SelectComponent)
112
+ }
113
+ ], ngImport: i0, template: "<div class=\"lux-select\">\n <ul class=\"list\">\n <li *ngFor=\"let item of value; let i = index\">\n <span>{{ item }}</span>\n <button *ngIf=\"!disabled\"\n class=\"remove\"\n type=\"button\"\n (click)=\"remove(i)\"\n [attr.aria-label]=\"'Remove ' + item\"\n >Remove</button>\n </li>\n </ul>\n <div class=\"add-new-item\" *ngIf=\"!disabled\">\n <lux-input\n id=\"{{ id + 'addNew' }}\"\n type=\"string\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n [(value)]=\"newEntry\"\n (keyPress)=\"onKeyPress($event)\"\n (valueChange)=\"onChangeNewEntry($event)\"\n >\n </lux-input>\n <div *ngIf=\"canAdd\">\n <button *ngIf=\"isValidNewEntry\" type=\"button\" (click)=\"add(newEntry)\">Add</button>\n </div>\n <div class=\"error\">\n {{ error }}\n </div>\n </div>\n</div>\n", styles: [".lux-select{margin-bottom:.5em}.lux-select .list{margin:1em;padding-bottom:.2em;list-style-type:square}.lux-select .list span{margin-bottom:.3em}.remove{margin-left:2em;font-size:.65em;color:#b22222;background:transparent;border:2px solid #BBB}.add-new-item{display:inline-flex;margin-left:2.2em;height:1.6em}.error{margin:.5em 0;color:#b22222}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.InputComponent, selector: "lux-input", inputs: ["rows", "cols", "step", "min", "max", "lang", "inlineErrors", "inputId", "aria-label", "readonly", "disabled", "pattern", "currency", "placeholder", "required", "type", "value"], outputs: ["valueChange", "keyPress"] }] });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SelectComponent, decorators: [{
116
+ type: Component,
117
+ args: [{ selector: 'lux-select', providers: [
118
+ {
119
+ provide: NG_VALUE_ACCESSOR,
120
+ multi: true,
121
+ useExisting: forwardRef(() => SelectComponent)
122
+ },
123
+ {
124
+ provide: NG_VALIDATORS,
125
+ multi: true,
126
+ useExisting: forwardRef(() => SelectComponent)
127
+ }
128
+ ], template: "<div class=\"lux-select\">\n <ul class=\"list\">\n <li *ngFor=\"let item of value; let i = index\">\n <span>{{ item }}</span>\n <button *ngIf=\"!disabled\"\n class=\"remove\"\n type=\"button\"\n (click)=\"remove(i)\"\n [attr.aria-label]=\"'Remove ' + item\"\n >Remove</button>\n </li>\n </ul>\n <div class=\"add-new-item\" *ngIf=\"!disabled\">\n <lux-input\n id=\"{{ id + 'addNew' }}\"\n type=\"string\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n [(value)]=\"newEntry\"\n (keyPress)=\"onKeyPress($event)\"\n (valueChange)=\"onChangeNewEntry($event)\"\n >\n </lux-input>\n <div *ngIf=\"canAdd\">\n <button *ngIf=\"isValidNewEntry\" type=\"button\" (click)=\"add(newEntry)\">Add</button>\n </div>\n <div class=\"error\">\n {{ error }}\n </div>\n </div>\n</div>\n", styles: [".lux-select{margin-bottom:.5em}.lux-select .list{margin:1em;padding-bottom:.2em;list-style-type:square}.lux-select .list span{margin-bottom:.3em}.remove{margin-left:2em;font-size:.65em;color:#b22222;background:transparent;border:2px solid #BBB}.add-new-item{display:inline-flex;margin-left:2.2em;height:1.6em}.error{margin:.5em 0;color:#b22222}\n"] }]
129
+ }], ctorParameters: () => [], propDecorators: { id: [{
130
+ type: Input
131
+ }], disabled: [{
132
+ type: Input
133
+ }], required: [{
134
+ type: Input
135
+ }], multiple: [{
136
+ type: Input
137
+ }], value: [{
138
+ type: Input
139
+ }], valueChange: [{
140
+ type: Output
141
+ }], placeholder: [{
142
+ type: Input
143
+ }], unique: [{
144
+ type: Input
145
+ }], validateItem: [{
146
+ type: Input
147
+ }] } });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2x1eC9zcmMvbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXhCLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztBQW1CbEIsTUFBTSxPQUFPLGVBQWU7SUFDakIsRUFBRSxHQUFHLFlBQVksR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsOEJBQThCO0lBQ3JCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUNwQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztJQUM1QyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLHdEQUF3RDtJQUMvQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLHdFQUF3RTtJQUMvRCxZQUFZLEdBQTZCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFFOUQsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDYixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRWhCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFeEIsZ0JBQWUsQ0FBQztJQUVoQixpQ0FBaUM7SUFDakMsUUFBUSxHQUFHLENBQUMsS0FBSyxF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LEVBQUUsYUFBYTs0QkFDdEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7eUJBQy9DO3FCQUNGO3dEQUdRLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IHNlcXVlbmNlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x1eC1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBASW5wdXQoKSBpZCA9ICdzdHJpbmdMaXN0JyArIHNlcXVlbmNlcisrO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICAvKiogQWxsb3cgbXVsdGlwbGUgZWxlbWVudHMgKi9cbiAgQElucHV0KCkgbXVsdGlwbGUgPSB0cnVlO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nW10gPSBbXTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnQWRkIG5ldyc7XG4gIC8qKiBJZiBzZXQsIGNoZWNrIHRoZXJlIGlzIG5vIGR1cGxpY2F0ZXMgaW4gdGhlIGRhdGEuICovXG4gIEBJbnB1dCgpIHVuaXF1ZSA9IHRydWU7XG4gIC8qKiBWYWxpZGF0aW9uIGZ1bmN0aW9uIGZvciBuZXcgaXRlbXMuIFJldHVybnMgZXJyb3Igb3IgbnVsbCBpZiB2YWxpZCAqL1xuICBASW5wdXQoKSB2YWxpZGF0ZUl0ZW06IChpdGVtOiBzdHJpbmcpID0+IHN0cmluZyA9IChfKSA9PiBudWxsO1xuXG4gIG5ld0VudHJ5ID0gJyc7XG4gIGVycm9yID0gbnVsbDtcbiAgaXNWYWxpZE5ld0VudHJ5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIEludGVyZmFjZVxuICBvbkNoYW5nZSA9ICh2YWx1ZSk6IHZvaWQgPT4ge307XG4gIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cbiAgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICB9XG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gIH1cbiAgLy8gRW5kIENvbnRyb2xWYWx1ZUFjY2Vzc29yIEludGVyZmFjZVxuXG4gIC8vIFZhbGlkYXRvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSgpOiB2b2lkIHt9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAoXG4gICAgICB0aGlzLnJlcXVpcmVkICYmXG4gICAgICAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICByZXR1cm4geyByZXF1aXJlZDogeyB2YWx1ZSwgcmVhc29uOiAnUmVxdWlyZWQgZmllbGQuJyB9IH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIEVuZCBvZiBWYWxpZGF0b3IgaW50ZXJmYWNlXG5cbiAgZ2V0IGNhbkFkZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSB8fCB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuICBhZGQodmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlLnB1c2godmFsKTtcbiAgICB0aGlzLm5ld0VudHJ5ID0gJyc7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG4gIHJlbW92ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHRoaXMudmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiAhdGhpcy5lcnJvciAmJiB0aGlzLm5ld0VudHJ5ICE9PSAnJykge1xuICAgICAgLy8gQWRkIG9uIHByZXNzaW5nIEVudGVyL1JldHVyblxuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmFkZCh0aGlzLm5ld0VudHJ5KTtcbiAgICB9XG4gIH1cbiAgb25DaGFuZ2VOZXdFbnRyeShuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgaWYgKCFuZXdWYWx1ZSkge1xuICAgICAgdGhpcy5pc1ZhbGlkTmV3RW50cnkgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXJyb3IgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy51bmlxdWUpIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gKHRoaXMudmFsdWUgfHwgW10pLmZpbmQoKGl0KSA9PiBpdCA9PT0gbmV3VmFsdWUpO1xuICAgICAgdGhpcy5pc1ZhbGlkTmV3RW50cnkgPSAhZm91bmQ7XG4gICAgICB0aGlzLmVycm9yID0gZm91bmRcbiAgICAgICAgPyBgVmFsdWUgJyR7bmV3VmFsdWV9JyBpcyBhbHJlYWR5IGluLiBDYW5ub3QgYWRkIGR1cGxpY2F0ZXMuYFxuICAgICAgICA6IG51bGw7XG4gICAgICBpZiAoIXRoaXMuaXNWYWxpZE5ld0VudHJ5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lcnJvciA9IHRoaXMudmFsaWRhdGVJdGVtKG5ld1ZhbHVlKTtcbiAgICB0aGlzLmlzVmFsaWROZXdFbnRyeSA9ICF0aGlzLmVycm9yO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibHV4LXNlbGVjdFwiPlxuICA8dWwgY2xhc3M9XCJsaXN0XCI+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZhbHVlOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8c3Bhbj57eyBpdGVtIH19PC9zcGFuPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFkaXNhYmxlZFwiXG4gICAgICAgICAgICBjbGFzcz1cInJlbW92ZVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoaSlcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVtb3ZlICcgKyBpdGVtXCJcbiAgICAgICAgICAgID5SZW1vdmU8L2J1dHRvbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuICA8ZGl2IGNsYXNzPVwiYWRkLW5ldy1pdGVtXCIgKm5nSWY9XCIhZGlzYWJsZWRcIj5cbiAgICA8bHV4LWlucHV0XG4gICAgICBpZD1cInt7IGlkICsgJ2FkZE5ldycgfX1cIlxuICAgICAgdHlwZT1cInN0cmluZ1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgWyh2YWx1ZSldPVwibmV3RW50cnlcIlxuICAgICAgKGtleVByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2VOZXdFbnRyeSgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9sdXgtaW5wdXQ+XG4gICAgPGRpdiAqbmdJZj1cImNhbkFkZFwiPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImlzVmFsaWROZXdFbnRyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWRkKG5ld0VudHJ5KVwiPkFkZDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlcnJvclwiPlxuICAgICAge3sgZXJyb3IgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,8 +1,8 @@
1
- export var Placement;
2
- (function (Placement) {
3
- Placement["Top"] = "top";
4
- Placement["Bottom"] = "bottom";
5
- Placement["Left"] = "left";
6
- Placement["Right"] = "right";
7
- })(Placement || (Placement = {}));
1
+ export var Placement;
2
+ (function (Placement) {
3
+ Placement["Top"] = "top";
4
+ Placement["Bottom"] = "bottom";
5
+ Placement["Left"] = "left";
6
+ Placement["Right"] = "right";
7
+ })(Placement || (Placement = {}));
8
8
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvdG9vbHRpcC9wbGFjZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNuQix3QkFBVyxDQUFBO0lBQ1gsOEJBQWlCLENBQUE7SUFDakIsMEJBQWEsQ0FBQTtJQUNiLDRCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUxXLFNBQVMsS0FBVCxTQUFTLFFBS3BCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUGxhY2VtZW50IHtcbiAgVG9wID0gJ3RvcCcsXG4gIEJvdHRvbSA9ICdib3R0b20nLFxuICBMZWZ0ID0gJ2xlZnQnLFxuICBSaWdodCA9ICdyaWdodCdcbn1cbmV4cG9ydCB0eXBlIFBsYWNlbWVudFZhbHVlID0gJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbSc7XG4iXX0=
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvdG9vbHRpcC90b29sdGlwLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTHV4VG9vbHRpcENvbnRleHQge1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,24 +1,24 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Default Tooltip Component
5
- */
6
- export class TooltipComponent {
7
- context;
8
- constructor() { }
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TooltipComponent, selector: "ng-component", inputs: { context: "context" }, ngImport: i0, template: `
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Default Tooltip Component
5
+ */
6
+ export class TooltipComponent {
7
+ context;
8
+ constructor() { }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: TooltipComponent, selector: "ng-component", inputs: { context: "context" }, ngImport: i0, template: `
11
11
  <span class="lux-tooltip" style="transition: opacity 200ms">{{context.message}}</span>
12
- `, isInline: true });
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TooltipComponent, decorators: [{
15
- type: Component,
16
- args: [{
12
+ `, isInline: true });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TooltipComponent, decorators: [{
15
+ type: Component,
16
+ args: [{
17
17
  template: `
18
18
  <span class="lux-tooltip" style="transition: opacity 200ms">{{context.message}}</span>
19
- `
20
- }]
21
- }], ctorParameters: function () { return []; }, propDecorators: { context: [{
22
- type: Input
23
- }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sdXgvc3JjL2xpYi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdqRDs7R0FFRztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7SUFFaEIsT0FBTyxDQUFvQjtJQUVwQyxnQkFBaUIsQ0FBQzt1R0FKVCxnQkFBZ0I7MkZBQWhCLGdCQUFnQixvRkFKZjs7S0FFVDs7MkZBRVEsZ0JBQWdCO2tCQUw1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRTs7S0FFVDtpQkFDSjswRUFHWSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMdXhUb29sdGlwQ29udGV4dCB9IGZyb20gJy4vdG9vbHRpcC1jb250ZXh0JztcblxuLyoqXG4gKiBEZWZhdWx0IFRvb2x0aXAgQ29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibHV4LXRvb2x0aXBcIiBzdHlsZT1cInRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXNcIj57e2NvbnRleHQubWVzc2FnZX19PC9zcGFuPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKSBjb250ZXh0OiBMdXhUb29sdGlwQ29udGV4dDtcblxuICAgIGNvbnN0cnVjdG9yKCkgIHsgfVxuXG59XG4iXX0=
19
+ `
20
+ }]
21
+ }], ctorParameters: () => [], propDecorators: { context: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sdXgvc3JjL2xpYi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdqRDs7R0FFRztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7SUFFaEIsT0FBTyxDQUFvQjtJQUVwQyxnQkFBaUIsQ0FBQzt1R0FKVCxnQkFBZ0I7MkZBQWhCLGdCQUFnQixvRkFKZjs7S0FFVDs7MkZBRVEsZ0JBQWdCO2tCQUw1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRTs7S0FFVDtpQkFDSjt3REFHWSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMdXhUb29sdGlwQ29udGV4dCB9IGZyb20gJy4vdG9vbHRpcC1jb250ZXh0JztcblxuLyoqXG4gKiBEZWZhdWx0IFRvb2x0aXAgQ29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibHV4LXRvb2x0aXBcIiBzdHlsZT1cInRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXNcIj57e2NvbnRleHQubWVzc2FnZX19PC9zcGFuPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKSBjb250ZXh0OiBMdXhUb29sdGlwQ29udGV4dDtcblxuICAgIGNvbnN0cnVjdG9yKCkgIHsgfVxuXG59XG4iXX0=
@@ -1,69 +1,69 @@
1
- import { HostListener, Input, Directive, ElementRef } from '@angular/core';
2
- import { TooltipService } from './tooltip.service';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./tooltip.service";
5
- /**
6
- * Tooltip directive
7
- */
8
- export class LuxTooltipDirective {
9
- elHost;
10
- tooltipService;
11
- /** Tooltip title */
12
- luxTooltip;
13
- /** Component, TemplateRef or String */
14
- content;
15
- /** Placement */
16
- placement;
17
- tooltipRef;
18
- constructor(elHost, tooltipService) {
19
- this.elHost = elHost;
20
- this.tooltipService = tooltipService;
21
- }
22
- onMouseEnter() {
23
- if (!this.tooltipRef) {
24
- this.tooltipRef = this.show(this.content, this.elHost, this.placement);
25
- }
26
- }
27
- onMouseLeave() {
28
- if (this.tooltipRef) {
29
- this.remove(this.tooltipRef);
30
- this.tooltipRef = null;
31
- }
32
- }
33
- onClick() {
34
- if (this.tooltipRef) {
35
- this.remove(this.tooltipRef);
36
- this.tooltipRef = null;
37
- }
38
- }
39
- show(component, elHost, placement) {
40
- return this.tooltipService.appendComponentToBody(component, elHost, placement);
41
- }
42
- remove(tooltipRef) {
43
- this.tooltipService.removeComponentFromBody(tooltipRef);
44
- }
45
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i1.TooltipService }], target: i0.ɵɵFactoryTarget.Directive });
46
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: LuxTooltipDirective, selector: "[luxTooltip]", inputs: { luxTooltip: "luxTooltip", content: "content", placement: "placement" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "click": "onClick()" } }, ngImport: i0 });
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxTooltipDirective, decorators: [{
49
- type: Directive,
50
- args: [{
51
- selector: '[luxTooltip]'
52
- }]
53
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.TooltipService }]; }, propDecorators: { luxTooltip: [{
54
- type: Input
55
- }], content: [{
56
- type: Input
57
- }], placement: [{
58
- type: Input
59
- }], onMouseEnter: [{
60
- type: HostListener,
61
- args: ['mouseenter']
62
- }], onMouseLeave: [{
63
- type: HostListener,
64
- args: ['mouseleave']
65
- }], onClick: [{
66
- type: HostListener,
67
- args: ['click']
68
- }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sdXgvc3JjL2xpYi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBYXBCO0lBQ0E7SUFiVixvQkFBb0I7SUFDWCxVQUFVLENBQU07SUFFekIsdUNBQXVDO0lBQzlCLE9BQU8sQ0FBTTtJQUV0QixnQkFBZ0I7SUFDUCxTQUFTLENBQWlCO0lBRW5DLFVBQVUsQ0FBb0I7SUFFOUIsWUFDVSxNQUFrQixFQUNsQixjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUNyQyxDQUFDO0lBRXdCLFlBQVk7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBRTJCLFlBQVk7UUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVzQixPQUFPO1FBQzVCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxJQUFJLENBQ0YsU0FBYyxFQUNkLE1BQWtCLEVBQ2xCLFNBQXlCO1FBRXpCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FDOUMsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBNkI7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxDQUFDO3VHQW5EVSxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7OEhBR1UsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFTc0IsWUFBWTtzQkFBdkMsWUFBWTt1QkFBQyxZQUFZO2dCQU1FLFlBQVk7c0JBQXZDLFlBQVk7dUJBQUMsWUFBWTtnQkFPSCxPQUFPO3NCQUE3QixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIb3N0TGlzdGVuZXIsIElucHV0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuL3Rvb2x0aXAuc2VydmljZSc7XG5pbXBvcnQgeyBQbGFjZW1lbnRWYWx1ZSB9IGZyb20gJy4vcGxhY2VtZW50JztcbmltcG9ydCB7IFRvb2x0aXBDb250ZW50UmVmIH0gZnJvbSAnLi90b29sdG9wLWNvbnRlbnQnO1xuXG4vKipcbiAqIFRvb2x0aXAgZGlyZWN0aXZlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsdXhUb29sdGlwXSdcbn0pXG5leHBvcnQgY2xhc3MgTHV4VG9vbHRpcERpcmVjdGl2ZSB7XG4gIC8qKiBUb29sdGlwIHRpdGxlICovXG4gIEBJbnB1dCgpIGx1eFRvb2x0aXA6IGFueTtcblxuICAvKiogQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiBvciBTdHJpbmcgKi9cbiAgQElucHV0KCkgY29udGVudDogYW55O1xuXG4gIC8qKiBQbGFjZW1lbnQgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50OiBQbGFjZW1lbnRWYWx1ZTtcblxuICB0b29sdGlwUmVmOiBUb29sdGlwQ29udGVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsSG9zdDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZVxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcFJlZikge1xuICAgICAgdGhpcy50b29sdGlwUmVmID0gdGhpcy5zaG93KHRoaXMuY29udGVudCwgdGhpcy5lbEhvc3QsIHRoaXMucGxhY2VtZW50KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2x0aXBSZWYpIHtcbiAgICAgIHRoaXMucmVtb3ZlKHRoaXMudG9vbHRpcFJlZik7XG4gICAgICB0aGlzLnRvb2x0aXBSZWYgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b29sdGlwUmVmKSB7XG4gICAgICB0aGlzLnJlbW92ZSh0aGlzLnRvb2x0aXBSZWYpO1xuICAgICAgdGhpcy50b29sdGlwUmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzaG93KFxuICAgIGNvbXBvbmVudDogYW55LFxuICAgIGVsSG9zdDogRWxlbWVudFJlZixcbiAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudFZhbHVlXG4gICk6IFRvb2x0aXBDb250ZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwU2VydmljZS5hcHBlbmRDb21wb25lbnRUb0JvZHkoXG4gICAgICBjb21wb25lbnQsXG4gICAgICBlbEhvc3QsXG4gICAgICBwbGFjZW1lbnRcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlKHRvb2x0aXBSZWY6IFRvb2x0aXBDb250ZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy50b29sdGlwU2VydmljZS5yZW1vdmVDb21wb25lbnRGcm9tQm9keSh0b29sdGlwUmVmKTtcbiAgfVxufVxuIl19
1
+ import { HostListener, Input, Directive, ElementRef } from '@angular/core';
2
+ import { TooltipService } from './tooltip.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./tooltip.service";
5
+ /**
6
+ * Tooltip directive
7
+ */
8
+ export class LuxTooltipDirective {
9
+ elHost;
10
+ tooltipService;
11
+ /** Tooltip title */
12
+ luxTooltip;
13
+ /** Component, TemplateRef or String */
14
+ content;
15
+ /** Placement */
16
+ placement;
17
+ tooltipRef;
18
+ constructor(elHost, tooltipService) {
19
+ this.elHost = elHost;
20
+ this.tooltipService = tooltipService;
21
+ }
22
+ onMouseEnter() {
23
+ if (!this.tooltipRef) {
24
+ this.tooltipRef = this.show(this.content, this.elHost, this.placement);
25
+ }
26
+ }
27
+ onMouseLeave() {
28
+ if (this.tooltipRef) {
29
+ this.remove(this.tooltipRef);
30
+ this.tooltipRef = null;
31
+ }
32
+ }
33
+ onClick() {
34
+ if (this.tooltipRef) {
35
+ this.remove(this.tooltipRef);
36
+ this.tooltipRef = null;
37
+ }
38
+ }
39
+ show(component, elHost, placement) {
40
+ return this.tooltipService.appendComponentToBody(component, elHost, placement);
41
+ }
42
+ remove(tooltipRef) {
43
+ this.tooltipService.removeComponentFromBody(tooltipRef);
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LuxTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i1.TooltipService }], target: i0.ɵɵFactoryTarget.Directive });
46
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: LuxTooltipDirective, selector: "[luxTooltip]", inputs: { luxTooltip: "luxTooltip", content: "content", placement: "placement" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "click": "onClick()" } }, ngImport: i0 });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LuxTooltipDirective, decorators: [{
49
+ type: Directive,
50
+ args: [{
51
+ selector: '[luxTooltip]'
52
+ }]
53
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.TooltipService }], propDecorators: { luxTooltip: [{
54
+ type: Input
55
+ }], content: [{
56
+ type: Input
57
+ }], placement: [{
58
+ type: Input
59
+ }], onMouseEnter: [{
60
+ type: HostListener,
61
+ args: ['mouseenter']
62
+ }], onMouseLeave: [{
63
+ type: HostListener,
64
+ args: ['mouseleave']
65
+ }], onClick: [{
66
+ type: HostListener,
67
+ args: ['click']
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sdXgvc3JjL2xpYi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBYXBCO0lBQ0E7SUFiVixvQkFBb0I7SUFDWCxVQUFVLENBQU07SUFFekIsdUNBQXVDO0lBQzlCLE9BQU8sQ0FBTTtJQUV0QixnQkFBZ0I7SUFDUCxTQUFTLENBQWlCO0lBRW5DLFVBQVUsQ0FBb0I7SUFFOUIsWUFDVSxNQUFrQixFQUNsQixjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUNyQyxDQUFDO0lBRXdCLFlBQVk7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRXNCLE9BQU87UUFDNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQ0YsU0FBYyxFQUNkLE1BQWtCLEVBQ2xCLFNBQXlCO1FBRXpCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FDOUMsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBNkI7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxDQUFDO3VHQW5EVSxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7NEdBR1UsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFTc0IsWUFBWTtzQkFBdkMsWUFBWTt1QkFBQyxZQUFZO2dCQU1FLFlBQVk7c0JBQXZDLFlBQVk7dUJBQUMsWUFBWTtnQkFPSCxPQUFPO3NCQUE3QixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIb3N0TGlzdGVuZXIsIElucHV0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuL3Rvb2x0aXAuc2VydmljZSc7XG5pbXBvcnQgeyBQbGFjZW1lbnRWYWx1ZSB9IGZyb20gJy4vcGxhY2VtZW50JztcbmltcG9ydCB7IFRvb2x0aXBDb250ZW50UmVmIH0gZnJvbSAnLi90b29sdG9wLWNvbnRlbnQnO1xuXG4vKipcbiAqIFRvb2x0aXAgZGlyZWN0aXZlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsdXhUb29sdGlwXSdcbn0pXG5leHBvcnQgY2xhc3MgTHV4VG9vbHRpcERpcmVjdGl2ZSB7XG4gIC8qKiBUb29sdGlwIHRpdGxlICovXG4gIEBJbnB1dCgpIGx1eFRvb2x0aXA6IGFueTtcblxuICAvKiogQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiBvciBTdHJpbmcgKi9cbiAgQElucHV0KCkgY29udGVudDogYW55O1xuXG4gIC8qKiBQbGFjZW1lbnQgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50OiBQbGFjZW1lbnRWYWx1ZTtcblxuICB0b29sdGlwUmVmOiBUb29sdGlwQ29udGVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsSG9zdDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZVxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcFJlZikge1xuICAgICAgdGhpcy50b29sdGlwUmVmID0gdGhpcy5zaG93KHRoaXMuY29udGVudCwgdGhpcy5lbEhvc3QsIHRoaXMucGxhY2VtZW50KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvb2x0aXBSZWYpIHtcbiAgICAgIHRoaXMucmVtb3ZlKHRoaXMudG9vbHRpcFJlZik7XG4gICAgICB0aGlzLnRvb2x0aXBSZWYgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b29sdGlwUmVmKSB7XG4gICAgICB0aGlzLnJlbW92ZSh0aGlzLnRvb2x0aXBSZWYpO1xuICAgICAgdGhpcy50b29sdGlwUmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzaG93KFxuICAgIGNvbXBvbmVudDogYW55LFxuICAgIGVsSG9zdDogRWxlbWVudFJlZixcbiAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudFZhbHVlXG4gICk6IFRvb2x0aXBDb250ZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwU2VydmljZS5hcHBlbmRDb21wb25lbnRUb0JvZHkoXG4gICAgICBjb21wb25lbnQsXG4gICAgICBlbEhvc3QsXG4gICAgICBwbGFjZW1lbnRcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlKHRvb2x0aXBSZWY6IFRvb2x0aXBDb250ZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy50b29sdGlwU2VydmljZS5yZW1vdmVDb21wb25lbnRGcm9tQm9keSh0b29sdGlwUmVmKTtcbiAgfVxufVxuIl19