@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.
- package/esm2022/lib/autocomplete/autocomplete.component.mjs +488 -0
- package/esm2022/lib/autocomplete-list/autocomplete-list.component.mjs +259 -0
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +78 -0
- package/esm2022/lib/checkbox/checkbox.component.mjs +156 -0
- package/esm2022/lib/datetime/datetime.component.mjs +312 -0
- package/esm2022/lib/filter/filter.component.mjs +158 -0
- package/esm2022/lib/geolocation/geolocation.component.mjs +423 -0
- package/esm2022/lib/geolocation/geolocation.service.mjs +123 -0
- package/{esm2020 → esm2022}/lib/geolocation/openlayer-loader.service.mjs +4 -4
- package/esm2022/lib/helperFns.mjs +118 -0
- package/esm2022/lib/input/input.component.mjs +469 -0
- package/{esm2020 → esm2022}/lib/input/regexp.service.mjs +4 -4
- package/esm2022/lib/lux.module.mjs +119 -0
- package/esm2022/lib/map/map.component.mjs +275 -0
- package/esm2022/lib/modal/modal-backdrop.mjs +25 -0
- package/esm2022/lib/modal/modal-config.mjs +12 -0
- package/esm2022/lib/modal/modal-ref.mjs +101 -0
- package/esm2022/lib/modal/modal-stack.mjs +182 -0
- package/esm2022/lib/modal/modal-window.mjs +125 -0
- package/esm2022/lib/modal/modal.service.mjs +28 -0
- package/esm2022/lib/modal/util.mjs +82 -0
- package/esm2022/lib/pagination/pagination.component.mjs +144 -0
- package/esm2022/lib/radiogroup/radiogroup.component.mjs +129 -0
- package/esm2022/lib/select/select.component.mjs +148 -0
- package/esm2022/lib/tooltip/tooltip.component.mjs +24 -0
- package/esm2022/lib/tooltip/tooltip.directive.mjs +69 -0
- package/esm2022/lib/tooltip/tooltip.service.mjs +137 -0
- package/esm2022/lib/tooltip/tooltop-content.mjs +9 -0
- package/esm2022/lib/voice-recognition/voice-recognition.directive.mjs +79 -0
- package/{fesm2020 → fesm2022}/metadev-lux.mjs +671 -554
- package/fesm2022/metadev-lux.mjs.map +1 -0
- package/lib/autocomplete/autocomplete.component.d.ts +1 -1
- package/lib/autocomplete-list/autocomplete-list.component.d.ts +1 -1
- package/lib/checkbox/checkbox.component.d.ts +1 -1
- package/lib/datetime/datetime.component.d.ts +1 -1
- package/lib/filter/filter.component.d.ts +1 -1
- package/lib/geolocation/geolocation.component.d.ts +1 -1
- package/lib/input/input.component.d.ts +1 -1
- package/lib/map/map.component.d.ts +2 -2
- package/lib/modal/modal-backdrop.d.ts +1 -1
- package/lib/modal/modal-stack.d.ts +1 -1
- package/lib/modal/modal-window.d.ts +1 -1
- package/lib/modal/util.d.ts +1 -1
- package/lib/pagination/pagination.component.d.ts +1 -1
- package/lib/radiogroup/radiogroup.component.d.ts +1 -1
- package/lib/select/select.component.d.ts +1 -1
- package/lib/tooltip/tooltip.component.d.ts +1 -1
- package/lib/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/voice-recognition/voice-recognition.directive.d.ts +1 -1
- package/package.json +7 -13
- package/esm2020/lib/autocomplete/autocomplete.component.mjs +0 -479
- package/esm2020/lib/autocomplete-list/autocomplete-list.component.mjs +0 -254
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -75
- package/esm2020/lib/checkbox/checkbox.component.mjs +0 -154
- package/esm2020/lib/datetime/datetime.component.mjs +0 -306
- package/esm2020/lib/filter/filter.component.mjs +0 -152
- package/esm2020/lib/geolocation/geolocation.component.mjs +0 -407
- package/esm2020/lib/geolocation/geolocation.service.mjs +0 -120
- package/esm2020/lib/helperFns.mjs +0 -117
- package/esm2020/lib/input/input.component.mjs +0 -452
- package/esm2020/lib/lux.module.mjs +0 -124
- package/esm2020/lib/map/map.component.mjs +0 -264
- package/esm2020/lib/modal/modal-backdrop.mjs +0 -26
- package/esm2020/lib/modal/modal-config.mjs +0 -14
- package/esm2020/lib/modal/modal-ref.mjs +0 -91
- package/esm2020/lib/modal/modal-stack.mjs +0 -179
- package/esm2020/lib/modal/modal-window.mjs +0 -119
- package/esm2020/lib/modal/modal.service.mjs +0 -26
- package/esm2020/lib/modal/util.mjs +0 -83
- package/esm2020/lib/pagination/pagination.component.mjs +0 -137
- package/esm2020/lib/radiogroup/radiogroup.component.mjs +0 -130
- package/esm2020/lib/select/select.component.mjs +0 -149
- package/esm2020/lib/tooltip/tooltip.component.mjs +0 -23
- package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -60
- package/esm2020/lib/tooltip/tooltip.service.mjs +0 -134
- package/esm2020/lib/tooltip/tooltop-content.mjs +0 -7
- package/esm2020/lib/voice-recognition/voice-recognition.directive.mjs +0 -73
- package/fesm2015/metadev-lux.mjs +0 -4347
- package/fesm2015/metadev-lux.mjs.map +0 -1
- package/fesm2020/metadev-lux.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/datasource.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/lang.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/map/geopoint.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modal/modal-dismiss-reasons.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pagination/pagination.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tooltip/placement.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tooltip/tooltip-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/window/window.service.mjs +0 -0
- /package/{esm2020 → esm2022}/metadev-lux.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, forwardRef, Component, ViewChild, Output, Input,
|
|
2
|
+
import { EventEmitter, forwardRef, Component, ViewChild, Output, Input, HostBinding, Injectable, Inject, HostListener, TemplateRef, Directive, InjectionToken, PLATFORM_ID, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
4
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
import { debounceTime, first, map, filter, takeUntil, withLatestFrom, distinctUntilChanged, switchMap } from 'rxjs/operators';
|
|
@@ -11,6 +11,7 @@ import { NavigationEnd, RouterModule } from '@angular/router';
|
|
|
11
11
|
import * as i1$3 from '@angular/common/http';
|
|
12
12
|
import { HttpClientModule } from '@angular/common/http';
|
|
13
13
|
|
|
14
|
+
/* eslint-disable no-useless-escape */
|
|
14
15
|
// undefined and null functions
|
|
15
16
|
const exists = (value) => value !== null && value !== undefined;
|
|
16
17
|
const hasValue = (value) => exists(value) && (typeof value === 'string' ? !isEmptyString(value) : true);
|
|
@@ -139,6 +140,33 @@ const languageDetector = () => {
|
|
|
139
140
|
|
|
140
141
|
const LOST_FOCUS_TIME_WINDOW_MS = 200; // ms
|
|
141
142
|
class AutocompleteComponent {
|
|
143
|
+
cd;
|
|
144
|
+
static idCounter = 0;
|
|
145
|
+
i0;
|
|
146
|
+
completeDiv;
|
|
147
|
+
_dataSource;
|
|
148
|
+
_placeholder;
|
|
149
|
+
_value;
|
|
150
|
+
lostFocusHandled = true;
|
|
151
|
+
t0 = 0;
|
|
152
|
+
showSpinner = false;
|
|
153
|
+
touched = false;
|
|
154
|
+
completionList = [];
|
|
155
|
+
showCompletion = false;
|
|
156
|
+
focusItem;
|
|
157
|
+
valueChange = new EventEmitter();
|
|
158
|
+
dataSourceChange = new EventEmitter();
|
|
159
|
+
inputId;
|
|
160
|
+
disabled = null;
|
|
161
|
+
readonly = null;
|
|
162
|
+
label = '';
|
|
163
|
+
/** If canAddNewValues, user can type items not present in the data-source. */
|
|
164
|
+
canAddNewValues = false;
|
|
165
|
+
/** After cleaning the selection should the completion list remain open or closed:
|
|
166
|
+
* false: (default) close on filters, to clean a filter and select all.
|
|
167
|
+
* true: keep open (when the action most likely is to pick another one).
|
|
168
|
+
*/
|
|
169
|
+
keepOpenAfterDelete = false;
|
|
142
170
|
get value() {
|
|
143
171
|
return this._value;
|
|
144
172
|
}
|
|
@@ -158,39 +186,22 @@ class AutocompleteComponent {
|
|
|
158
186
|
this._dataSource = v;
|
|
159
187
|
this.dataSourceChange.emit(v);
|
|
160
188
|
}
|
|
189
|
+
required = false;
|
|
161
190
|
set placeholder(v) {
|
|
162
191
|
this._placeholder = v;
|
|
163
192
|
}
|
|
164
193
|
get placeholder() {
|
|
165
194
|
return this._placeholder ? this._placeholder : '';
|
|
166
195
|
}
|
|
196
|
+
resolveLabelsFunction = undefined;
|
|
197
|
+
populateFunction = undefined;
|
|
198
|
+
instance;
|
|
167
199
|
constructor(cd) {
|
|
168
200
|
this.cd = cd;
|
|
169
|
-
this.lostFocusHandled = true;
|
|
170
|
-
this.t0 = 0;
|
|
171
|
-
this.showSpinner = false;
|
|
172
|
-
this.touched = false;
|
|
173
|
-
this.completionList = [];
|
|
174
|
-
this.showCompletion = false;
|
|
175
|
-
this.valueChange = new EventEmitter();
|
|
176
|
-
this.dataSourceChange = new EventEmitter();
|
|
177
|
-
this.disabled = null;
|
|
178
|
-
this.readonly = null;
|
|
179
|
-
this.label = '';
|
|
180
|
-
/** If canAddNewValues, user can type items not present in the data-source. */
|
|
181
|
-
this.canAddNewValues = false;
|
|
182
|
-
/** After cleaning the selection should the completion list remain open or closed:
|
|
183
|
-
* false: (default) close on filters, to clean a filter and select all.
|
|
184
|
-
* true: keep open (when the action most likely is to pick another one).
|
|
185
|
-
*/
|
|
186
|
-
this.keepOpenAfterDelete = false;
|
|
187
|
-
this.required = false;
|
|
188
|
-
this.resolveLabelsFunction = undefined;
|
|
189
|
-
this.populateFunction = undefined;
|
|
190
|
-
// ControlValueAccessor Interface
|
|
191
|
-
this.onChange = (value) => { };
|
|
192
|
-
this.onTouched = () => { };
|
|
193
201
|
}
|
|
202
|
+
// ControlValueAccessor Interface
|
|
203
|
+
onChange = (value) => { };
|
|
204
|
+
onTouched = () => { };
|
|
194
205
|
writeValue(value) {
|
|
195
206
|
this.value = value;
|
|
196
207
|
}
|
|
@@ -502,22 +513,21 @@ class AutocompleteComponent {
|
|
|
502
513
|
return of([]);
|
|
503
514
|
}
|
|
504
515
|
}
|
|
516
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
517
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: AutocompleteComponent, selector: "lux-autocomplete", inputs: { inputId: "inputId", disabled: "disabled", readonly: "readonly", label: "label", canAddNewValues: "canAddNewValues", keepOpenAfterDelete: "keepOpenAfterDelete", value: "value", dataSource: "dataSource", required: "required", placeholder: "placeholder", resolveLabelsFunction: "resolveLabelsFunction", populateFunction: "populateFunction", instance: "instance" }, outputs: { valueChange: "valueChange", dataSourceChange: "dataSourceChange" }, providers: [
|
|
518
|
+
{
|
|
519
|
+
provide: NG_VALUE_ACCESSOR,
|
|
520
|
+
multi: true,
|
|
521
|
+
useExisting: forwardRef(() => AutocompleteComponent)
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
provide: NG_VALIDATORS,
|
|
525
|
+
multi: true,
|
|
526
|
+
useExisting: forwardRef(() => AutocompleteComponent)
|
|
527
|
+
}
|
|
528
|
+
], viewQueries: [{ propertyName: "i0", first: true, predicate: ["i0"], descendants: true, static: true }, { propertyName: "completeDiv", first: true, predicate: ["completeDiv"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"lux-autocomplete\" (blur)=\"toggleCompletion(false, i0.value)\">\n <div class=\"lux-autocomplete-box\">\n <input\n #i0\n [id]=\"inputId\"\n [(ngModel)]=\"label\"\n [placeholder]=\"placeholder\"\n [attr.disabled]=\"disabled || null\"\n [attr.readonly]=\"readonly || null\"\n (keydown)=\"onKeydown($event, i0.value)\"\n (keypress)=\"onKeypress($event, i0.value)\"\n (keyup)=\"onKeyup($event, i0.value)\"\n (blur)=\"onLostFocus(i0.value)\"\n (focus)=\"toggleCompletion(true, i0.value)\"\n (click)=\"toggleCompletion(true, i0.value)\"\n (resized)=\"onInputResized()\"\n (window:resize)=\"onInputResized()\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"showCompletion\"\n aria-haspopup=\"true\"\n attr.aria-owns=\"{{ inputId + '_list' }}\"\n [attr.aria-activedescendant]=\"selectedOption\"\n />\n <div *ngIf=\"canAddNewValues\" class=\"icon-suggestions\"></div>\n <div *ngIf=\"showSpinner; else noLoading\" class=\"icon-spinner\"></div>\n <ng-template #noLoading>\n <button\n *ngIf=\"!disabled && i0.value && !showCompletion; else dropdown\"\n type=\"button\"\n class=\"icon-clear\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n ></button>\n <ng-template #dropdown>\n <div\n class=\"icon-dropdown\"\n (click)=\"toggleCompletion(!showCompletion, i0.value)\"\n ></div>\n </ng-template>\n </ng-template>\n </div>\n <div\n #completeDiv\n [class.showCompletion]=\"showCompletion\"\n class=\"lux-completion-list\"\n id=\"{{ inputId + '_list' }}\"\n >\n <ul>\n <li\n *ngFor=\"let item of completionList; let index = index\"\n id=\"{{ inputId + '_' + index }}\"\n class=\"lux-completion-item\"\n [class.selected]=\"focusItem && item.key === focusItem.key\"\n (click)=\"complete(item)\"\n [attr.aria-label]=\"item.label\"\n >\n <span class=\"preserve-white-space\">{{ item.labelPrefix }}</span>\n <span class=\"preserve-white-space bold\">{{ item.labelMatch }}</span>\n <span class=\"preserve-white-space\">{{ item.labelPostfix }}</span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.lux-autocomplete .lux-autocomplete-box{display:grid;grid-template-columns:1fr max-content}.lux-autocomplete input{padding:var(--lux-autocomplete-input-padding, .1rem 1.5rem .1rem .5rem);text-overflow:ellipsis;grid-row:1;grid-column-start:1;grid-column-end:3}.lux-autocomplete .icon-suggestions{grid-row:1;grid-column:2;width:1.5rem;border:none;background-color:transparent;background:url(/assets/img/suggestions.svg) no-repeat center;background-size:.5rem .5rem;z-index:1;position:relative;left:-1rem}.lux-autocomplete .icon-clear{grid-row:1;grid-column:2;width:var(--lux-autocomplete-icon-width, 1.5rem);border:none;background-color:transparent;background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-autocomplete .icon-dropdown{grid-row:1;grid-column:2;width:var(--lux-autocomplete-icon-width, 1.5rem);height:var(--lux-autocomplete-icon-height, 1.3rem);border:none;background-color:transparent;background:var(--lux-autocomplete-icon-dropdown, url(/assets/img/drop-down-arrow.svg) no-repeat center);background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-autocomplete .icon-spinner{grid-row:1;grid-column:2;width:1.5rem;border:none;background-color:transparent;background:url(/assets/img/spinner.svg) no-repeat center;background-size:1.2rem 1.2rem;z-index:1}.lux-completion-list{visibility:collapse;position:absolute;border:1px solid #ccc;margin:0rem;padding:0rem;max-height:10rem;overflow:auto;z-index:2}.lux-completion-list ul{list-style:none;margin:0rem;padding:0rem}.showCompletion{visibility:visible}.lux-completion-item{background-color:#fff;color:#000;padding:.1rem .5rem;cursor:pointer}.selected{background-color:#2e2eac;color:#fff}.disabled{background-color:#f0f0f0;color:#444}.disabled .selected{background-color:#9898ec;color:#fff}.bold{font-weight:700}.preserve-white-space{white-space:pre}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
505
529
|
}
|
|
506
|
-
|
|
507
|
-
AutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
508
|
-
AutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AutocompleteComponent, selector: "lux-autocomplete", inputs: { inputId: "inputId", disabled: "disabled", readonly: "readonly", label: "label", canAddNewValues: "canAddNewValues", keepOpenAfterDelete: "keepOpenAfterDelete", value: "value", dataSource: "dataSource", required: "required", placeholder: "placeholder", resolveLabelsFunction: "resolveLabelsFunction", populateFunction: "populateFunction", instance: "instance" }, outputs: { valueChange: "valueChange", dataSourceChange: "dataSourceChange" }, providers: [
|
|
509
|
-
{
|
|
510
|
-
provide: NG_VALUE_ACCESSOR,
|
|
511
|
-
multi: true,
|
|
512
|
-
useExisting: forwardRef(() => AutocompleteComponent)
|
|
513
|
-
},
|
|
514
|
-
{
|
|
515
|
-
provide: NG_VALIDATORS,
|
|
516
|
-
multi: true,
|
|
517
|
-
useExisting: forwardRef(() => AutocompleteComponent)
|
|
518
|
-
}
|
|
519
|
-
], viewQueries: [{ propertyName: "i0", first: true, predicate: ["i0"], descendants: true, static: true }, { propertyName: "completeDiv", first: true, predicate: ["completeDiv"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"lux-autocomplete\" (blur)=\"toggleCompletion(false, i0.value)\">\n <div class=\"lux-autocomplete-box\">\n <input\n #i0\n [id]=\"inputId\"\n [(ngModel)]=\"label\"\n [placeholder]=\"placeholder\"\n [attr.disabled]=\"disabled || null\"\n [attr.readonly]=\"readonly || null\"\n (keydown)=\"onKeydown($event, i0.value)\"\n (keypress)=\"onKeypress($event, i0.value)\"\n (keyup)=\"onKeyup($event, i0.value)\"\n (blur)=\"onLostFocus(i0.value)\"\n (focus)=\"toggleCompletion(true, i0.value)\"\n (click)=\"toggleCompletion(true, i0.value)\"\n (resized)=\"onInputResized()\"\n (window:resize)=\"onInputResized()\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"showCompletion\"\n aria-haspopup=\"true\"\n attr.aria-owns=\"{{ inputId + '_list' }}\"\n [attr.aria-activedescendant]=\"selectedOption\"\n />\n <div *ngIf=\"canAddNewValues\" class=\"icon-suggestions\"></div>\n <div *ngIf=\"showSpinner; else noLoading\" class=\"icon-spinner\"></div>\n <ng-template #noLoading>\n <button\n *ngIf=\"!disabled && i0.value && !showCompletion; else dropdown\"\n type=\"button\"\n class=\"icon-clear\"\n aria-label=\"Clear\"\n (click)=\"clear()\"\n ></button>\n <ng-template #dropdown>\n <div\n class=\"icon-dropdown\"\n (click)=\"toggleCompletion(!showCompletion, i0.value)\"\n ></div>\n </ng-template>\n </ng-template>\n </div>\n <div\n #completeDiv\n [class.showCompletion]=\"showCompletion\"\n class=\"lux-completion-list\"\n id=\"{{ inputId + '_list' }}\"\n >\n <ul>\n <li\n *ngFor=\"let item of completionList; let index = index\"\n id=\"{{ inputId + '_' + index }}\"\n class=\"lux-completion-item\"\n [class.selected]=\"focusItem && item.key === focusItem.key\"\n (click)=\"complete(item)\"\n [attr.aria-label]=\"item.label\"\n >\n <span class=\"preserve-white-space\">{{ item.labelPrefix }}</span>\n <span class=\"preserve-white-space bold\">{{ item.labelMatch }}</span>\n <span class=\"preserve-white-space\">{{ item.labelPostfix }}</span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.lux-autocomplete .lux-autocomplete-box{display:grid;grid-template-columns:1fr max-content}.lux-autocomplete input{padding:var(--lux-autocomplete-input-padding, .1rem 1.5rem .1rem .5rem);text-overflow:ellipsis;grid-row:1;grid-column-start:1;grid-column-end:3}.lux-autocomplete .icon-suggestions{grid-row:1;grid-column:2;width:1.5rem;border:none;background-color:transparent;background:url(/assets/img/suggestions.svg) no-repeat center;background-size:.5rem .5rem;z-index:1;position:relative;left:-1rem}.lux-autocomplete .icon-clear{grid-row:1;grid-column:2;width:var(--lux-autocomplete-icon-width, 1.5rem);border:none;background-color:transparent;background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-autocomplete .icon-dropdown{grid-row:1;grid-column:2;width:var(--lux-autocomplete-icon-width, 1.5rem);height:var(--lux-autocomplete-icon-height, 1.3rem);border:none;background-color:transparent;background:var(--lux-autocomplete-icon-dropdown, url(/assets/img/drop-down-arrow.svg) no-repeat center);background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-autocomplete .icon-spinner{grid-row:1;grid-column:2;width:1.5rem;border:none;background-color:transparent;background:url(/assets/img/spinner.svg) no-repeat center;background-size:1.2rem 1.2rem;z-index:1}.lux-completion-list{visibility:collapse;position:absolute;border:1px solid #ccc;margin:0rem;padding:0rem;max-height:10rem;overflow:auto;z-index:2}.lux-completion-list ul{list-style:none;margin:0rem;padding:0rem}.showCompletion{visibility:visible}.lux-completion-item{background-color:#fff;color:#000;padding:.1rem .5rem;cursor:pointer}.selected{background-color:#2e2eac;color:#fff}.disabled{background-color:#f0f0f0;color:#444}.disabled .selected{background-color:#9898ec;color:#fff}.bold{font-weight:700}.preserve-white-space{white-space:pre}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
530
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
521
531
|
type: Component,
|
|
522
532
|
args: [{ selector: 'lux-autocomplete', providers: [
|
|
523
533
|
{
|
|
@@ -609,36 +619,23 @@ const selectElement = (completionList, label) => {
|
|
|
609
619
|
};
|
|
610
620
|
|
|
611
621
|
class AutocompleteListComponent {
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
}
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
this.canAdd = false;
|
|
630
|
-
this.touched = false;
|
|
631
|
-
this._lang = languageDetector();
|
|
632
|
-
this.dataSource = [];
|
|
633
|
-
this.disabled = false;
|
|
634
|
-
this.required = false;
|
|
635
|
-
this.resolveLabelsFunction = undefined;
|
|
636
|
-
this.populateFunction = undefined;
|
|
637
|
-
this.valueChange = new EventEmitter();
|
|
638
|
-
// ControlValueAccessor Interface
|
|
639
|
-
this.onChange = (value) => { };
|
|
640
|
-
this.onTouched = () => { };
|
|
641
|
-
}
|
|
622
|
+
static idCounter = 0;
|
|
623
|
+
auto;
|
|
624
|
+
literals = {
|
|
625
|
+
en: {
|
|
626
|
+
placeholder: 'new item',
|
|
627
|
+
deleteLabelTemplate: 'Delete <<label>>',
|
|
628
|
+
addMessage: 'Add'
|
|
629
|
+
},
|
|
630
|
+
es: {
|
|
631
|
+
placeholder: 'nuevo elemento',
|
|
632
|
+
deleteLabelTemplate: 'Eliminar <<label>>',
|
|
633
|
+
addMessage: 'Añadir'
|
|
634
|
+
}
|
|
635
|
+
};
|
|
636
|
+
internalDataSource = [];
|
|
637
|
+
autoPopulate = false;
|
|
638
|
+
_value = [];
|
|
642
639
|
set value(val) {
|
|
643
640
|
if (val === this._value) {
|
|
644
641
|
return;
|
|
@@ -655,6 +652,11 @@ class AutocompleteListComponent {
|
|
|
655
652
|
get value() {
|
|
656
653
|
return this._value;
|
|
657
654
|
}
|
|
655
|
+
labels = [];
|
|
656
|
+
newEntry;
|
|
657
|
+
canAdd = false;
|
|
658
|
+
touched = false;
|
|
659
|
+
_lang = languageDetector();
|
|
658
660
|
get lang() {
|
|
659
661
|
return this._lang;
|
|
660
662
|
}
|
|
@@ -669,6 +671,20 @@ class AutocompleteListComponent {
|
|
|
669
671
|
this._lang = 'en';
|
|
670
672
|
}
|
|
671
673
|
}
|
|
674
|
+
inputId;
|
|
675
|
+
dataSource = [];
|
|
676
|
+
placeholder;
|
|
677
|
+
disabled = false;
|
|
678
|
+
deleteLabelTemplate;
|
|
679
|
+
addMessage;
|
|
680
|
+
required = false;
|
|
681
|
+
resolveLabelsFunction = undefined;
|
|
682
|
+
populateFunction = undefined;
|
|
683
|
+
instance;
|
|
684
|
+
valueChange = new EventEmitter();
|
|
685
|
+
// ControlValueAccessor Interface
|
|
686
|
+
onChange = (value) => { };
|
|
687
|
+
onTouched = () => { };
|
|
672
688
|
writeValue(value) {
|
|
673
689
|
this.value = value;
|
|
674
690
|
}
|
|
@@ -794,22 +810,21 @@ class AutocompleteListComponent {
|
|
|
794
810
|
getDeleteMessage(label) {
|
|
795
811
|
return (this.deleteLabelTemplate ?? this.literals[this.lang].deleteLabelTemplate).replace('<<label>>', label);
|
|
796
812
|
}
|
|
813
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AutocompleteListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
814
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: AutocompleteListComponent, selector: "lux-autocomplete-list", inputs: { value: "value", lang: "lang", inputId: "inputId", dataSource: "dataSource", placeholder: "placeholder", disabled: "disabled", deleteLabelTemplate: "deleteLabelTemplate", addMessage: "addMessage", required: "required", resolveLabelsFunction: "resolveLabelsFunction", populateFunction: "populateFunction", instance: "instance" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
815
|
+
{
|
|
816
|
+
provide: NG_VALUE_ACCESSOR,
|
|
817
|
+
multi: true,
|
|
818
|
+
useExisting: forwardRef(() => AutocompleteListComponent)
|
|
819
|
+
},
|
|
820
|
+
{
|
|
821
|
+
provide: NG_VALIDATORS,
|
|
822
|
+
multi: true,
|
|
823
|
+
useExisting: forwardRef(() => AutocompleteListComponent)
|
|
824
|
+
}
|
|
825
|
+
], viewQueries: [{ propertyName: "auto", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div [id]=\"inputId\">\n <ul>\n <li *ngFor=\"let label of labels; let index = index\">\n <span>{{ label }}</span>\n <button\n *ngIf=\"!disabled\"\n class=\"remove-item\"\n (click)=\"removeAt(index)\"\n attr.aria-label=\"{{ getDeleteMessage(label) }}\"\n ></button>\n </li>\n </ul>\n <div *ngIf=\"!disabled\" class=\"new-entry\">\n <lux-autocomplete\n #auto\n [dataSource]=\"internalDataSource\"\n [placeholder]=\"placeholder ?? literals[lang].placeholder\"\n [(value)]=\"newEntry\"\n (valueChange)=\"onValueChange()\"\n (keypress)=\"onNewEntryChange($event, auto)\"\n >\n </lux-autocomplete>\n <button\n *ngIf=\"canAdd\"\n type=\"button\"\n class=\"add-item\"\n aria-label=\"addMessage ?? literals[lang].addMessage\"\n (click)=\"addNew(auto)\"\n ></button>\n </div>\n</div>\n", styles: [".new-entry{margin-left:1.5rem;display:grid;grid-template-columns:max-content max-content}.new-entry lux-autocomplete{grid-column:1;grid-row:1}.new-entry .add-item{grid-column:2;grid-row:1;border:none;background:var(--lux-autocomplete-list-add-icon, url(/assets/img/create.png) no-repeat .2rem .2rem);background-size:var(--lux-autocomplete-list-add-icon-size, 1.1rem);height:var(--lux-autocomplete-list-add-icon-height, 1.4rem);width:var(--lux-autocomplete-list-add-icon-width, 1.4rem)}.remove-item{margin-left:.5rem;border:none;background:var(--lux-autocomplete-list-remove-icon, url(/assets/img/delete.svg) no-repeat .2rem .1rem);height:var(--lux-autocomplete-list-remove-icon-height, 1.2rem);width:var(--lux-autocomplete-list-remove-icon-width, 1.3rem);position:relative;top:var(--lux-autocomplete-list-remove-icon-top, .2rem);background-size:var(--lux-autocomplete-list-remove-icon-size, 1rem 1rem)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AutocompleteComponent, selector: "lux-autocomplete", inputs: ["inputId", "disabled", "readonly", "label", "canAddNewValues", "keepOpenAfterDelete", "value", "dataSource", "required", "placeholder", "resolveLabelsFunction", "populateFunction", "instance"], outputs: ["valueChange", "dataSourceChange"] }] });
|
|
797
826
|
}
|
|
798
|
-
|
|
799
|
-
AutocompleteListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AutocompleteListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
800
|
-
AutocompleteListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AutocompleteListComponent, selector: "lux-autocomplete-list", inputs: { value: "value", lang: "lang", inputId: "inputId", dataSource: "dataSource", placeholder: "placeholder", disabled: "disabled", deleteLabelTemplate: "deleteLabelTemplate", addMessage: "addMessage", required: "required", resolveLabelsFunction: "resolveLabelsFunction", populateFunction: "populateFunction", instance: "instance" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
801
|
-
{
|
|
802
|
-
provide: NG_VALUE_ACCESSOR,
|
|
803
|
-
multi: true,
|
|
804
|
-
useExisting: forwardRef(() => AutocompleteListComponent)
|
|
805
|
-
},
|
|
806
|
-
{
|
|
807
|
-
provide: NG_VALIDATORS,
|
|
808
|
-
multi: true,
|
|
809
|
-
useExisting: forwardRef(() => AutocompleteListComponent)
|
|
810
|
-
}
|
|
811
|
-
], viewQueries: [{ propertyName: "auto", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div [id]=\"inputId\">\n <ul>\n <li *ngFor=\"let label of labels; let index = index\">\n <span>{{ label }}</span>\n <button\n *ngIf=\"!disabled\"\n class=\"remove-item\"\n (click)=\"removeAt(index)\"\n attr.aria-label=\"{{ getDeleteMessage(label) }}\"\n ></button>\n </li>\n </ul>\n <div *ngIf=\"!disabled\" class=\"new-entry\">\n <lux-autocomplete\n #auto\n [dataSource]=\"internalDataSource\"\n [placeholder]=\"placeholder ?? literals[lang].placeholder\"\n [(value)]=\"newEntry\"\n (valueChange)=\"onValueChange()\"\n (keypress)=\"onNewEntryChange($event, auto)\"\n >\n </lux-autocomplete>\n <button\n *ngIf=\"canAdd\"\n type=\"button\"\n class=\"add-item\"\n aria-label=\"addMessage ?? literals[lang].addMessage\"\n (click)=\"addNew(auto)\"\n ></button>\n </div>\n</div>\n", styles: [".new-entry{margin-left:1.5rem;display:grid;grid-template-columns:max-content max-content}.new-entry lux-autocomplete{grid-column:1;grid-row:1}.new-entry .add-item{grid-column:2;grid-row:1;border:none;background:var(--lux-autocomplete-list-add-icon, url(/assets/img/create.png) no-repeat .2rem .2rem);background-size:var(--lux-autocomplete-list-add-icon-size, 1.1rem);height:var(--lux-autocomplete-list-add-icon-height, 1.4rem);width:var(--lux-autocomplete-list-add-icon-width, 1.4rem)}.remove-item{margin-left:.5rem;border:none;background:var(--lux-autocomplete-list-remove-icon, url(/assets/img/delete.svg) no-repeat .2rem .1rem);height:var(--lux-autocomplete-list-remove-icon-height, 1.2rem);width:var(--lux-autocomplete-list-remove-icon-width, 1.3rem);position:relative;top:var(--lux-autocomplete-list-remove-icon-top, .2rem);background-size:var(--lux-autocomplete-list-remove-icon-size, 1rem 1rem)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AutocompleteComponent, selector: "lux-autocomplete", inputs: ["inputId", "disabled", "readonly", "label", "canAddNewValues", "keepOpenAfterDelete", "value", "dataSource", "required", "placeholder", "resolveLabelsFunction", "populateFunction", "instance"], outputs: ["valueChange", "dataSourceChange"] }] });
|
|
812
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AutocompleteListComponent, decorators: [{
|
|
827
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AutocompleteListComponent, decorators: [{
|
|
813
828
|
type: Component,
|
|
814
829
|
args: [{ selector: 'lux-autocomplete-list', providers: [
|
|
815
830
|
{
|
|
@@ -855,11 +870,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
855
870
|
}] } });
|
|
856
871
|
|
|
857
872
|
class LuxBreadcrumbComponent {
|
|
873
|
+
route;
|
|
874
|
+
activedRoute;
|
|
875
|
+
breadcrumbs;
|
|
876
|
+
subs = [];
|
|
877
|
+
imagePath = '../assets/img/arrow-forward.svg';
|
|
858
878
|
constructor(route, activedRoute) {
|
|
859
879
|
this.route = route;
|
|
860
880
|
this.activedRoute = activedRoute;
|
|
861
|
-
this.subs = [];
|
|
862
|
-
this.imagePath = '../assets/img/arrow-forward.svg';
|
|
863
881
|
}
|
|
864
882
|
ngOnInit() {
|
|
865
883
|
this.subs.push(this.route.events
|
|
@@ -915,16 +933,19 @@ class LuxBreadcrumbComponent {
|
|
|
915
933
|
}
|
|
916
934
|
return activedRouteSnapshot.params.id || routeConfig.path;
|
|
917
935
|
}
|
|
936
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxBreadcrumbComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
937
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: LuxBreadcrumbComponent, selector: "lux-breadcrumb", ngImport: i0, template: "<ul class=\"lux-breadcrumb\">\n <li *ngFor=\"let breadcrumb of breadcrumbs; last as isLast; first as isFirst\"\n class=\"lux-breadcrumb-item\">\n <a [class.first]=\"isFirst\" routerLink=\"{{ breadcrumb.url }}\">{{ breadcrumb.label }}</a>\n <div *ngIf=\"!isLast\" class=\"lux-breadcrumb-separator\"></div>\n </li>\n</ul>\n", styles: [".lux-breadcrumb{padding:10px 12px;list-style:none;list-style-type:none}.lux-breadcrumb li{display:inline;font-size:.8em}.lux-breadcrumb li a.first{font-weight:700}.lux-breadcrumb li+li:before{padding:8px;color:#000}.lux-breadcrumb li a,ol.lux-breadcrumb li a:hover{text-decoration:underline}.lux-breadcrumb a{cursor:hand}.lux-breadcrumb-separator{color:red;position:relative;top:5px;height:16px;padding:0 8px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E %3Cpath d%3D%22M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z%22%2F%3E%3C%2Fsvg%3E\");background-repeat:no-repeat;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
918
938
|
}
|
|
919
|
-
|
|
920
|
-
LuxBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: LuxBreadcrumbComponent, selector: "lux-breadcrumb", ngImport: i0, template: "<ul class=\"lux-breadcrumb\">\n <li *ngFor=\"let breadcrumb of breadcrumbs; last as isLast; first as isFirst\"\n class=\"lux-breadcrumb-item\">\n <a [class.first]=\"isFirst\" routerLink=\"{{ breadcrumb.url }}\">{{ breadcrumb.label }}</a>\n <div *ngIf=\"!isLast\" class=\"lux-breadcrumb-separator\"></div>\n </li>\n</ul>\n", styles: [".lux-breadcrumb{padding:10px 12px;list-style:none;list-style-type:none}.lux-breadcrumb li{display:inline;font-size:.8em}.lux-breadcrumb li a.first{font-weight:700}.lux-breadcrumb li+li:before{padding:8px;color:#000}.lux-breadcrumb li a,ol.lux-breadcrumb li a:hover{text-decoration:underline}.lux-breadcrumb a{cursor:hand}.lux-breadcrumb-separator{color:red;position:relative;top:5px;height:16px;padding:0 8px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E %3Cpath d%3D%22M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z%22%2F%3E%3C%2Fsvg%3E\");background-repeat:no-repeat;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
921
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxBreadcrumbComponent, decorators: [{
|
|
939
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxBreadcrumbComponent, decorators: [{
|
|
922
940
|
type: Component,
|
|
923
941
|
args: [{ selector: 'lux-breadcrumb', template: "<ul class=\"lux-breadcrumb\">\n <li *ngFor=\"let breadcrumb of breadcrumbs; last as isLast; first as isFirst\"\n class=\"lux-breadcrumb-item\">\n <a [class.first]=\"isFirst\" routerLink=\"{{ breadcrumb.url }}\">{{ breadcrumb.label }}</a>\n <div *ngIf=\"!isLast\" class=\"lux-breadcrumb-separator\"></div>\n </li>\n</ul>\n", styles: [".lux-breadcrumb{padding:10px 12px;list-style:none;list-style-type:none}.lux-breadcrumb li{display:inline;font-size:.8em}.lux-breadcrumb li a.first{font-weight:700}.lux-breadcrumb li+li:before{padding:8px;color:#000}.lux-breadcrumb li a,ol.lux-breadcrumb li a:hover{text-decoration:underline}.lux-breadcrumb a{cursor:hand}.lux-breadcrumb-separator{color:red;position:relative;top:5px;height:16px;padding:0 8px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E %3Cpath d%3D%22M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z%22%2F%3E%3C%2Fsvg%3E\");background-repeat:no-repeat;display:inline-block}\n"] }]
|
|
924
942
|
}], ctorParameters: function () { return [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }]; } });
|
|
925
943
|
|
|
926
944
|
const KEY_SPACE = ' ';
|
|
927
945
|
class CheckboxComponent {
|
|
946
|
+
static idCounter = 0;
|
|
947
|
+
ck;
|
|
948
|
+
_lang = languageDetector();
|
|
928
949
|
set lang(l) {
|
|
929
950
|
if (l === this._lang) {
|
|
930
951
|
return;
|
|
@@ -939,6 +960,7 @@ class CheckboxComponent {
|
|
|
939
960
|
get lang() {
|
|
940
961
|
return this._lang;
|
|
941
962
|
}
|
|
963
|
+
internalValue;
|
|
942
964
|
get value() {
|
|
943
965
|
return this.internalValue;
|
|
944
966
|
}
|
|
@@ -957,6 +979,9 @@ class CheckboxComponent {
|
|
|
957
979
|
get tabindexValue() {
|
|
958
980
|
return this.disabled ? null : '0';
|
|
959
981
|
}
|
|
982
|
+
label = null;
|
|
983
|
+
name = null;
|
|
984
|
+
_disabled = false;
|
|
960
985
|
get disabled() {
|
|
961
986
|
return this._disabled;
|
|
962
987
|
}
|
|
@@ -967,27 +992,23 @@ class CheckboxComponent {
|
|
|
967
992
|
this._disabled = v;
|
|
968
993
|
this.syncModel();
|
|
969
994
|
}
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
// ControlValueAccessor Interface
|
|
988
|
-
this.onChange = (value) => { };
|
|
989
|
-
this.onTouched = () => { };
|
|
990
|
-
}
|
|
995
|
+
inputId;
|
|
996
|
+
literals = {
|
|
997
|
+
en: {
|
|
998
|
+
yesLabel: 'Yes',
|
|
999
|
+
noLabel: 'No'
|
|
1000
|
+
},
|
|
1001
|
+
es: {
|
|
1002
|
+
yesLabel: 'Sí',
|
|
1003
|
+
noLabel: 'No'
|
|
1004
|
+
}
|
|
1005
|
+
};
|
|
1006
|
+
touched = false;
|
|
1007
|
+
valueChange = new EventEmitter();
|
|
1008
|
+
constructor() { }
|
|
1009
|
+
// ControlValueAccessor Interface
|
|
1010
|
+
onChange = (value) => { };
|
|
1011
|
+
onTouched = () => { };
|
|
991
1012
|
writeValue(value) {
|
|
992
1013
|
this.value = !!value;
|
|
993
1014
|
}
|
|
@@ -1033,17 +1054,16 @@ class CheckboxComponent {
|
|
|
1033
1054
|
this.ck.nativeElement.checked = this.internalValue;
|
|
1034
1055
|
}
|
|
1035
1056
|
}
|
|
1057
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1058
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: CheckboxComponent, selector: "lux-checkbox", inputs: { lang: "lang", value: "value", label: "label", name: "name", disabled: "disabled", inputId: "inputId" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
1059
|
+
{
|
|
1060
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1061
|
+
multi: true,
|
|
1062
|
+
useExisting: forwardRef(() => CheckboxComponent)
|
|
1063
|
+
}
|
|
1064
|
+
], viewQueries: [{ propertyName: "ck", first: true, predicate: ["ck"], descendants: true }], ngImport: i0, template: "<div class=\"switch\">\n <div>\n <label *ngIf=\"label\" [for]=\"inputId\">{{ label }}</label>\n </div>\n <div *ngIf=\"!disabled\" class=\"switch-item\" (click)=\"clicked()\">\n <input #ck [name]=\"name\" type=\"checkbox\" [id]=\"inputId\" />\n <div\n class=\"slider round\"\n [class.on]=\"value\"\n [class.disabled]=\"disabled\"\n [tabindex]=\"tabindexValue\"\n (keyup)=\"onKey($event)\"\n ></div>\n </div>\n <div>\n <span class=\"checkbox-label\" *ngIf=\"value\">{{\n literals[lang].yesLabel\n }}</span>\n <span class=\"checkbox-label\" *ngIf=\"!value\">{{\n literals[lang].noLabel\n }}</span>\n </div>\n</div>\n", styles: [".switch{display:flex;flex-flow:row wrap;align-items:center}label{padding-right:1.1rem}.switch-item{padding-right:.5em}.slider.round{border-radius:.7rem;width:3.1rem;height:1.4rem}.slider.round:before{border-radius:50%}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;position:relative;top:-.7rem;background-color:#ccc;transition:.4s}.slider.on{background-color:#2196f3}.slider:before{position:absolute;content:\"\";height:1rem;width:1rem;left:.2rem;bottom:.2rem;background-color:#fff;transition:.4s}.slider.on:before{transform:translate(26px)}input:focus+.slider{box-shadow:0 0 1px #2196f3}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1036
1065
|
}
|
|
1037
|
-
|
|
1038
|
-
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1039
|
-
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CheckboxComponent, selector: "lux-checkbox", inputs: { lang: "lang", value: "value", label: "label", name: "name", disabled: "disabled", inputId: "inputId" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
1040
|
-
{
|
|
1041
|
-
provide: NG_VALUE_ACCESSOR,
|
|
1042
|
-
multi: true,
|
|
1043
|
-
useExisting: forwardRef(() => CheckboxComponent)
|
|
1044
|
-
}
|
|
1045
|
-
], viewQueries: [{ propertyName: "ck", first: true, predicate: ["ck"], descendants: true }], ngImport: i0, template: "<div class=\"switch\">\n <div>\n <label *ngIf=\"label\" [for]=\"inputId\">{{ label }}</label>\n </div>\n <div *ngIf=\"!disabled\" class=\"switch-item\" (click)=\"clicked()\">\n <input #ck [name]=\"name\" type=\"checkbox\" [id]=\"inputId\" />\n <div\n class=\"slider round\"\n [class.on]=\"value\"\n [class.disabled]=\"disabled\"\n [tabindex]=\"tabindexValue\"\n (keyup)=\"onKey($event)\"\n ></div>\n </div>\n <div>\n <span class=\"checkbox-label\" *ngIf=\"value\">{{\n literals[lang].yesLabel\n }}</span>\n <span class=\"checkbox-label\" *ngIf=\"!value\">{{\n literals[lang].noLabel\n }}</span>\n </div>\n</div>\n", styles: [".switch{display:flex;flex-flow:row wrap;align-items:center}label{padding-right:1.1rem}.switch-item{padding-right:.5em}.slider.round{border-radius:.7rem;width:3.1rem;height:1.4rem}.slider.round:before{border-radius:50%}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;position:relative;top:-.7rem;background-color:#ccc;transition:.4s}.slider.on{background-color:#2196f3}.slider:before{position:absolute;content:\"\";height:1rem;width:1rem;left:.2rem;bottom:.2rem;background-color:#fff;transition:.4s}.slider.on:before{transform:translate(26px)}input:focus+.slider{box-shadow:0 0 1px #2196f3}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1046
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
1066
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
1047
1067
|
type: Component,
|
|
1048
1068
|
args: [{ selector: 'lux-checkbox', providers: [
|
|
1049
1069
|
{
|
|
@@ -1072,9 +1092,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1072
1092
|
}] } });
|
|
1073
1093
|
|
|
1074
1094
|
class DatetimeComponent {
|
|
1095
|
+
static idCounter = 0;
|
|
1096
|
+
dateInput;
|
|
1097
|
+
timeInput;
|
|
1098
|
+
touched = false;
|
|
1099
|
+
dirty = false;
|
|
1100
|
+
lastErrors = null;
|
|
1101
|
+
_disabled;
|
|
1102
|
+
_required;
|
|
1103
|
+
_value;
|
|
1104
|
+
dateValue = undefined;
|
|
1105
|
+
timeValue = undefined;
|
|
1106
|
+
userErrors = {
|
|
1107
|
+
en: {
|
|
1108
|
+
required: 'Required field.',
|
|
1109
|
+
min: 'Minimum value is $min.',
|
|
1110
|
+
max: 'Maximum value is $max.'
|
|
1111
|
+
},
|
|
1112
|
+
es: {
|
|
1113
|
+
required: 'El campo es obligatorio.',
|
|
1114
|
+
min: 'El valor mínimo es $min.',
|
|
1115
|
+
max: 'El valor máximo es $max.'
|
|
1116
|
+
}
|
|
1117
|
+
};
|
|
1118
|
+
min = '1900-01-01T00:00:00Z';
|
|
1119
|
+
max = '2100-01-01T00:00:00Z';
|
|
1120
|
+
includeSeconds = true;
|
|
1121
|
+
localTime = true;
|
|
1075
1122
|
get className() {
|
|
1076
1123
|
return this.checkClassName();
|
|
1077
1124
|
}
|
|
1125
|
+
lang = languageDetector();
|
|
1126
|
+
inlineErrors = false;
|
|
1127
|
+
inputId;
|
|
1128
|
+
ariaLabel;
|
|
1129
|
+
readonly = null;
|
|
1078
1130
|
set disabled(v) {
|
|
1079
1131
|
v = typeof v === 'string' && v !== 'false' ? true : v;
|
|
1080
1132
|
this._disabled = v;
|
|
@@ -1116,36 +1168,11 @@ class DatetimeComponent {
|
|
|
1116
1168
|
get value() {
|
|
1117
1169
|
return this._value;
|
|
1118
1170
|
}
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
this.timeValue = undefined;
|
|
1125
|
-
this.userErrors = {
|
|
1126
|
-
en: {
|
|
1127
|
-
required: 'Required field.',
|
|
1128
|
-
min: 'Minimum value is $min.',
|
|
1129
|
-
max: 'Maximum value is $max.'
|
|
1130
|
-
},
|
|
1131
|
-
es: {
|
|
1132
|
-
required: 'El campo es obligatorio.',
|
|
1133
|
-
min: 'El valor mínimo es $min.',
|
|
1134
|
-
max: 'El valor máximo es $max.'
|
|
1135
|
-
}
|
|
1136
|
-
};
|
|
1137
|
-
this.min = '1900-01-01T00:00:00Z';
|
|
1138
|
-
this.max = '2100-01-01T00:00:00Z';
|
|
1139
|
-
this.includeSeconds = true;
|
|
1140
|
-
this.localTime = true;
|
|
1141
|
-
this.lang = languageDetector();
|
|
1142
|
-
this.inlineErrors = false;
|
|
1143
|
-
this.readonly = null;
|
|
1144
|
-
this.valueChange = new EventEmitter();
|
|
1145
|
-
this.keyPress = new EventEmitter();
|
|
1146
|
-
this.onChange = (_value) => { };
|
|
1147
|
-
this.onTouched = () => { };
|
|
1148
|
-
}
|
|
1171
|
+
valueChange = new EventEmitter();
|
|
1172
|
+
keyPress = new EventEmitter();
|
|
1173
|
+
onChange = (_value) => { };
|
|
1174
|
+
onTouched = () => { };
|
|
1175
|
+
constructor() { }
|
|
1149
1176
|
// ControlValueAccessor Interface implementation
|
|
1150
1177
|
writeValue(value) {
|
|
1151
1178
|
this.value = value;
|
|
@@ -1304,22 +1331,21 @@ class DatetimeComponent {
|
|
|
1304
1331
|
this.min = this.min || '1900-01-01';
|
|
1305
1332
|
this.max = this.max || '2100-01-01';
|
|
1306
1333
|
}
|
|
1334
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DatetimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1335
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: DatetimeComponent, selector: "lux-datetime", inputs: { min: "min", max: "max", includeSeconds: "includeSeconds", localTime: "localTime", lang: "lang", inlineErrors: "inlineErrors", inputId: "inputId", ariaLabel: ["aria-label", "ariaLabel"], readonly: "readonly", disabled: "disabled", required: "required", value: "value" }, outputs: { valueChange: "valueChange", keyPress: "keyPress" }, providers: [
|
|
1336
|
+
{
|
|
1337
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1338
|
+
multi: true,
|
|
1339
|
+
useExisting: forwardRef(() => DatetimeComponent)
|
|
1340
|
+
},
|
|
1341
|
+
{
|
|
1342
|
+
provide: NG_VALIDATORS,
|
|
1343
|
+
multi: true,
|
|
1344
|
+
useExisting: forwardRef(() => DatetimeComponent)
|
|
1345
|
+
}
|
|
1346
|
+
], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true, static: true }, { propertyName: "timeInput", first: true, predicate: ["timeInput"], descendants: true, static: true }], ngImport: i0, template: "<input\n #dateInput\n class=\"rounded-left prefix\"\n [ngClass]=\"className\"\n type=\"date\"\n [id]=\"inputId + '$date'\"\n [(ngModel)]=\"dateValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [placeholder]=\"\"\n (keyup)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (change)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<input\n #timeInput\n [class]=\"(disabled || readonly || !isClearable()) && localTime ? 'rounded-right' : ''\"\n [ngClass]=\"className\"\n type=\"time\"\n [id]=\"inputId + '$time'\"\n [(ngModel)]=\"timeValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [placeholder]=\"\"\n [step]=\"includeSeconds ? 1 : 60\"\n (keyup)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (change)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<ng-container\n *ngIf=\"!localTime\"\n>\n <div\n [class]=\"disabled || readonly || !isClearable() ? 'rounded-right postfix symbol' : 'postfix symbol'\"\n [ngClass]=\"className\"\n >\n <span>{{ localTime ? '' : 'UTC' }}</span>\n </div>\n</ng-container>\n<button\n #clearButton\n *ngIf=\"!disabled && !readonly && isClearable()\"\n type=\"button\"\n class=\"rounded-right postfix bordered icon-clear\"\n [id]=\"inputId + '$clear'\"\n (click)=\"clear()\"\n aria-label=\"clear\"\n></button>\n\n<div *ngIf=\"inlineErrors && lastErrors && (dirty || touched)\" class=\"alert\">\n <div *ngIf=\"lastErrors.required\">\n {{ userErrors[lang].required }}\n </div>\n <div *ngIf=\"lastErrors.min\">\n {{ userErrors[lang].min.replace('$min', lastErrors.min.min) }}\n </div>\n <div *ngIf=\"lastErrors.max\">\n {{ userErrors[lang].max.replace('$max', lastErrors.max.max) }}\n </div>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}:host{display:flex;align-items:stretch}.readonly{border:none}.readonly:focus{border:none;outline:none}.disabled{background-color:var(--lux-disabled-color, #f1f1f1);border-color:var(--lux-disabled-border-color, #6d6d6d)}.icon-clear{grid-row:1;grid-column:2;width:var(--lux-autocomplete-icon-width, 1.5rem);background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1307
1347
|
}
|
|
1308
|
-
|
|
1309
|
-
DatetimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatetimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1310
|
-
DatetimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: DatetimeComponent, selector: "lux-datetime", inputs: { min: "min", max: "max", includeSeconds: "includeSeconds", localTime: "localTime", lang: "lang", inlineErrors: "inlineErrors", inputId: "inputId", ariaLabel: ["aria-label", "ariaLabel"], readonly: "readonly", disabled: "disabled", required: "required", value: "value" }, outputs: { valueChange: "valueChange", keyPress: "keyPress" }, providers: [
|
|
1311
|
-
{
|
|
1312
|
-
provide: NG_VALUE_ACCESSOR,
|
|
1313
|
-
multi: true,
|
|
1314
|
-
useExisting: forwardRef(() => DatetimeComponent)
|
|
1315
|
-
},
|
|
1316
|
-
{
|
|
1317
|
-
provide: NG_VALIDATORS,
|
|
1318
|
-
multi: true,
|
|
1319
|
-
useExisting: forwardRef(() => DatetimeComponent)
|
|
1320
|
-
}
|
|
1321
|
-
], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true, static: true }, { propertyName: "timeInput", first: true, predicate: ["timeInput"], descendants: true, static: true }], ngImport: i0, template: "<input\n #dateInput\n class=\"rounded-left prefix\"\n [ngClass]=\"className\"\n type=\"date\"\n [id]=\"inputId + '$date'\"\n [(ngModel)]=\"dateValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [placeholder]=\"\"\n (keyup)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (change)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<input\n #timeInput\n [class]=\"(disabled || readonly || !isClearable()) && localTime ? 'rounded-right' : ''\"\n [ngClass]=\"className\"\n type=\"time\"\n [id]=\"inputId + '$time'\"\n [(ngModel)]=\"timeValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [placeholder]=\"\"\n [step]=\"includeSeconds ? 1 : 60\"\n (keyup)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (change)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<ng-container\n *ngIf=\"!localTime\"\n>\n <div\n [class]=\"disabled || readonly || !isClearable() ? 'rounded-right postfix symbol' : 'postfix symbol'\"\n [ngClass]=\"className\"\n >\n <span>{{ localTime ? '' : 'UTC' }}</span>\n </div>\n</ng-container>\n<button\n #clearButton\n *ngIf=\"!disabled && !readonly && isClearable()\"\n type=\"button\"\n class=\"rounded-right postfix bordered icon-clear\"\n [id]=\"inputId + '$clear'\"\n (click)=\"clear()\"\n aria-label=\"clear\"\n></button>\n\n<div *ngIf=\"inlineErrors && lastErrors && (dirty || touched)\" class=\"alert\">\n <div *ngIf=\"lastErrors.required\">\n {{ userErrors[lang].required }}\n </div>\n <div *ngIf=\"lastErrors.min\">\n {{ userErrors[lang].min.replace('$min', lastErrors.min.min) }}\n </div>\n <div *ngIf=\"lastErrors.max\">\n {{ userErrors[lang].max.replace('$max', lastErrors.max.max) }}\n </div>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}:host{display:flex;align-items:stretch}.readonly{border:none}.readonly:focus{border:none;outline:none}.disabled{background-color:var(--lux-disabled-color, #f1f1f1);border-color:var(--lux-disabled-border-color, #6d6d6d)}.icon-clear{grid-row:1;grid-column:2;width:var(--lux-autocomplete-icon-width, 1.5rem);background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1322
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatetimeComponent, decorators: [{
|
|
1348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: DatetimeComponent, decorators: [{
|
|
1323
1349
|
type: Component,
|
|
1324
1350
|
args: [{ selector: 'lux-datetime', providers: [
|
|
1325
1351
|
{
|
|
@@ -1372,6 +1398,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1372
1398
|
|
|
1373
1399
|
/** Filter component to query for objects. */
|
|
1374
1400
|
class FilterComponent {
|
|
1401
|
+
static idCounter = 0;
|
|
1402
|
+
touched = false;
|
|
1403
|
+
_searchValue = '';
|
|
1404
|
+
disabled = false;
|
|
1405
|
+
/** id for the input. If left blank, it is autogenerated */
|
|
1406
|
+
inputId;
|
|
1407
|
+
/** Placeholder default text. */
|
|
1408
|
+
placeholder = '';
|
|
1375
1409
|
/** Search value introduced by the user. */
|
|
1376
1410
|
get searchValue() {
|
|
1377
1411
|
return this._searchValue;
|
|
@@ -1384,6 +1418,11 @@ class FilterComponent {
|
|
|
1384
1418
|
this.onChange(v);
|
|
1385
1419
|
this._searchValue = v;
|
|
1386
1420
|
}
|
|
1421
|
+
/** Search on type: (default true) Auto-search when user types in. */
|
|
1422
|
+
searchOnType = true;
|
|
1423
|
+
/** Custom aria label in case of not using a label */
|
|
1424
|
+
ariaLabel;
|
|
1425
|
+
debounceValue = 300; // 300 ms
|
|
1387
1426
|
/** Debounce time in milliseconds. (defaults to 300 ms) */
|
|
1388
1427
|
set debounce(val) {
|
|
1389
1428
|
this.debounceValue = val;
|
|
@@ -1392,23 +1431,17 @@ class FilterComponent {
|
|
|
1392
1431
|
get debounce() {
|
|
1393
1432
|
return this.debounceValue;
|
|
1394
1433
|
}
|
|
1434
|
+
/** Search value changed by user. */
|
|
1435
|
+
searchValueChange = new EventEmitter();
|
|
1436
|
+
searchValue$;
|
|
1437
|
+
subject = new Subject();
|
|
1438
|
+
sub;
|
|
1395
1439
|
constructor() {
|
|
1396
|
-
this.touched = false;
|
|
1397
|
-
this._searchValue = '';
|
|
1398
|
-
this.disabled = false;
|
|
1399
|
-
/** Placeholder default text. */
|
|
1400
|
-
this.placeholder = '';
|
|
1401
|
-
/** Search on type: (default true) Auto-search when user types in. */
|
|
1402
|
-
this.searchOnType = true;
|
|
1403
|
-
this.debounceValue = 300; // 300 ms
|
|
1404
|
-
/** Search value changed by user. */
|
|
1405
|
-
this.searchValueChange = new EventEmitter();
|
|
1406
|
-
this.subject = new Subject();
|
|
1407
|
-
// ControlValueAccessor Interface
|
|
1408
|
-
this.onChange = (value) => { };
|
|
1409
|
-
this.onTouched = () => { };
|
|
1410
1440
|
this.recreateObservable();
|
|
1411
1441
|
}
|
|
1442
|
+
// ControlValueAccessor Interface
|
|
1443
|
+
onChange = (value) => { };
|
|
1444
|
+
onTouched = () => { };
|
|
1412
1445
|
writeValue(value) {
|
|
1413
1446
|
this.searchValue = (value || '').toString();
|
|
1414
1447
|
}
|
|
@@ -1478,17 +1511,16 @@ class FilterComponent {
|
|
|
1478
1511
|
addEvent() {
|
|
1479
1512
|
this.subject.next(this.searchValue);
|
|
1480
1513
|
}
|
|
1514
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1515
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: FilterComponent, selector: "lux-filter", inputs: { disabled: "disabled", inputId: "inputId", placeholder: "placeholder", searchValue: "searchValue", searchOnType: "searchOnType", ariaLabel: ["aria-label", "ariaLabel"], debounce: "debounce" }, outputs: { searchValueChange: "searchValueChange" }, providers: [
|
|
1516
|
+
{
|
|
1517
|
+
provide: NG_VALUE_ACCESSOR,
|
|
1518
|
+
multi: true,
|
|
1519
|
+
useExisting: forwardRef(() => FilterComponent)
|
|
1520
|
+
}
|
|
1521
|
+
], ngImport: i0, template: "<div class=\"filter\">\n <input\n #i0\n type=\"text\"\n [attr.aria-label]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [disabled]=\"disabled\"\n [value]=\"searchValue\"\n (valueChange)=\"onInputValueChange(i0.value)\"\n (keyup)=\"keyup($event, i0.value)\"\n />\n\n <button\n [class.hide]=\"!searchValue\"\n aria-label=\"Clear\"\n class=\"clear-indicator icon icon-clear\"\n type=\"button\"\n (click)=\"clear()\"\n ></button>\n <i *ngIf=\"1 || searchOnType\" class=\"search-indicator icon icon-search\"></i>\n <button\n class=\"btn-search\"\n *ngIf=\"!searchOnType\"\n type=\"button\"\n [disabled]=\"disabled\"\n (click)=\"search()\"\n >\n Search\n </button>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.filter{display:grid;grid-template-columns:auto 1.5rem 1.5rem .5rem auto}.filter input{grid-row:1;grid-column-start:1;grid-column-end:4}.filter .hide{visibility:collapse}.filter .clear-indicator{grid-row:1;grid-column:2;border:none}.filter .search-indicator{grid-row:1;grid-column:3}.filter .btn-search{grid-row:1;grid-column:5}.filter .icon-search{background:var(--lux-filter-icon-search, url(/assets/img/filter-search.png) no-repeat center);background-size:var(--lux-filter-icon-bg-size, 1rem);background-position:center;width:var(--lux-filter-icon-width, 1rem)}.filter .icon-clear{background:var(--lux-filter-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:var(--lux-filter-icon-bg-size, 1rem);background-position:center}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1481
1522
|
}
|
|
1482
|
-
|
|
1483
|
-
FilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1484
|
-
FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: FilterComponent, selector: "lux-filter", inputs: { disabled: "disabled", inputId: "inputId", placeholder: "placeholder", searchValue: "searchValue", searchOnType: "searchOnType", ariaLabel: ["aria-label", "ariaLabel"], debounce: "debounce" }, outputs: { searchValueChange: "searchValueChange" }, providers: [
|
|
1485
|
-
{
|
|
1486
|
-
provide: NG_VALUE_ACCESSOR,
|
|
1487
|
-
multi: true,
|
|
1488
|
-
useExisting: forwardRef(() => FilterComponent)
|
|
1489
|
-
}
|
|
1490
|
-
], ngImport: i0, template: "<div class=\"filter\">\n <input\n #i0\n type=\"text\"\n [attr.aria-label]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [id]=\"inputId\"\n [disabled]=\"disabled\"\n [value]=\"searchValue\"\n (valueChange)=\"onInputValueChange(i0.value)\"\n (keyup)=\"keyup($event, i0.value)\"\n />\n\n <button\n [class.hide]=\"!searchValue\"\n aria-label=\"Clear\"\n class=\"clear-indicator icon icon-clear\"\n type=\"button\"\n (click)=\"clear()\"\n ></button>\n <i *ngIf=\"1 || searchOnType\" class=\"search-indicator icon icon-search\"></i>\n <button\n class=\"btn-search\"\n *ngIf=\"!searchOnType\"\n type=\"button\"\n [disabled]=\"disabled\"\n (click)=\"search()\"\n >\n Search\n </button>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.filter{display:grid;grid-template-columns:auto 1.5rem 1.5rem .5rem auto}.filter input{grid-row:1;grid-column-start:1;grid-column-end:4}.filter .hide{visibility:collapse}.filter .clear-indicator{grid-row:1;grid-column:2;border:none}.filter .search-indicator{grid-row:1;grid-column:3}.filter .btn-search{grid-row:1;grid-column:5}.filter .icon-search{background:var(--lux-filter-icon-search, url(/assets/img/filter-search.png) no-repeat center);background-size:var(--lux-filter-icon-bg-size, 1rem);background-position:center;width:var(--lux-filter-icon-width, 1rem)}.filter .icon-clear{background:var(--lux-filter-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:var(--lux-filter-icon-bg-size, 1rem);background-position:center}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1491
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FilterComponent, decorators: [{
|
|
1523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: FilterComponent, decorators: [{
|
|
1492
1524
|
type: Component,
|
|
1493
1525
|
args: [{ selector: 'lux-filter', providers: [
|
|
1494
1526
|
{
|
|
@@ -1516,11 +1548,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1516
1548
|
type: Output
|
|
1517
1549
|
}] } });
|
|
1518
1550
|
|
|
1551
|
+
class LuxModalBackdropComponent {
|
|
1552
|
+
backdropClass;
|
|
1553
|
+
class = 'modal-backdrop fade show';
|
|
1554
|
+
style = 'z-index: 1050';
|
|
1555
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModalBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1556
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: LuxModalBackdropComponent, selector: "lux-modal-backdrop", inputs: { backdropClass: "backdropClass" }, host: { properties: { "class": "this.class", "style": "this.style" } }, ngImport: i0, template: '', isInline: true });
|
|
1557
|
+
}
|
|
1558
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModalBackdropComponent, decorators: [{
|
|
1559
|
+
type: Component,
|
|
1560
|
+
args: [{
|
|
1561
|
+
selector: 'lux-modal-backdrop',
|
|
1562
|
+
template: ''
|
|
1563
|
+
}]
|
|
1564
|
+
}], propDecorators: { backdropClass: [{
|
|
1565
|
+
type: Input
|
|
1566
|
+
}], class: [{
|
|
1567
|
+
type: HostBinding,
|
|
1568
|
+
args: ['class']
|
|
1569
|
+
}], style: [{
|
|
1570
|
+
type: HostBinding,
|
|
1571
|
+
args: ['style']
|
|
1572
|
+
}] } });
|
|
1573
|
+
|
|
1574
|
+
class LuxModalConfig {
|
|
1575
|
+
backdrop = true;
|
|
1576
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModalConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1577
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModalConfig, providedIn: 'root' });
|
|
1578
|
+
}
|
|
1579
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModalConfig, decorators: [{
|
|
1580
|
+
type: Injectable,
|
|
1581
|
+
args: [{ providedIn: 'root' }]
|
|
1582
|
+
}] });
|
|
1583
|
+
|
|
1519
1584
|
class ActiveModal {
|
|
1520
1585
|
close(result) { }
|
|
1521
1586
|
dismiss(reason) { }
|
|
1522
1587
|
}
|
|
1523
1588
|
class ModalRef {
|
|
1589
|
+
_windowCmptRef;
|
|
1590
|
+
_contentRef;
|
|
1591
|
+
_backdropCmptRef;
|
|
1592
|
+
_beforeDismiss;
|
|
1593
|
+
_resolve;
|
|
1594
|
+
_reject;
|
|
1524
1595
|
/**
|
|
1525
1596
|
* The instance of a component used for the modal content.
|
|
1526
1597
|
*
|
|
@@ -1531,6 +1602,10 @@ class ModalRef {
|
|
|
1531
1602
|
return this._contentRef.componentRef.instance;
|
|
1532
1603
|
}
|
|
1533
1604
|
}
|
|
1605
|
+
/**
|
|
1606
|
+
* The promise that is resolved when the modal is closed and rejected when the modal is dismissed.
|
|
1607
|
+
*/
|
|
1608
|
+
result;
|
|
1534
1609
|
constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {
|
|
1535
1610
|
this._windowCmptRef = _windowCmptRef;
|
|
1536
1611
|
this._contentRef = _contentRef;
|
|
@@ -1625,6 +1700,9 @@ var Key;
|
|
|
1625
1700
|
})(Key || (Key = {}));
|
|
1626
1701
|
const isDefined = (value) => value !== undefined && value !== null;
|
|
1627
1702
|
class ContentRef {
|
|
1703
|
+
nodes;
|
|
1704
|
+
viewRef;
|
|
1705
|
+
componentRef;
|
|
1628
1706
|
constructor(nodes, viewRef, componentRef) {
|
|
1629
1707
|
this.nodes = nodes;
|
|
1630
1708
|
this.viewRef = viewRef;
|
|
@@ -1663,11 +1741,7 @@ const focusTrap = (element, stopFocusTrap$, refocusOnClick = false) => {
|
|
|
1663
1741
|
const lastFocusedElement$ = fromEvent(element, 'focusin').pipe(takeUntil(stopFocusTrap$), map((e) => e.target));
|
|
1664
1742
|
// 'tab' / 'shift+tab' stream
|
|
1665
1743
|
fromEvent(element, 'keydown')
|
|
1666
|
-
.pipe(takeUntil(stopFocusTrap$),
|
|
1667
|
-
/* eslint-disable import/no-deprecated */
|
|
1668
|
-
filter((e) => e.which === Key.Tab),
|
|
1669
|
-
/* eslint-enable import/no-deprecated */
|
|
1670
|
-
withLatestFrom(lastFocusedElement$))
|
|
1744
|
+
.pipe(takeUntil(stopFocusTrap$), filter((e) => e.which === Key.Tab), withLatestFrom(lastFocusedElement$))
|
|
1671
1745
|
.subscribe(([tabEvent, focusedElement]) => {
|
|
1672
1746
|
const [first, last] = getFocusableBoundaryElements(element);
|
|
1673
1747
|
if ((focusedElement === first || focusedElement === element) &&
|
|
@@ -1695,9 +1769,21 @@ var ModalDismissReasons;
|
|
|
1695
1769
|
})(ModalDismissReasons || (ModalDismissReasons = {}));
|
|
1696
1770
|
|
|
1697
1771
|
class LuxModalWindowComponent {
|
|
1772
|
+
_document;
|
|
1773
|
+
_elRef;
|
|
1774
|
+
_elWithFocus; // element that is focused prior to modal opening
|
|
1775
|
+
ariaDescribedBy;
|
|
1776
|
+
ariaLabelledBy;
|
|
1777
|
+
backdrop = false;
|
|
1778
|
+
keyboard = true;
|
|
1779
|
+
windowClass;
|
|
1780
|
+
dismissEvent = new EventEmitter();
|
|
1698
1781
|
get class() {
|
|
1699
1782
|
return `modal ${this.windowClass || ''}`;
|
|
1700
1783
|
}
|
|
1784
|
+
role = 'dialog';
|
|
1785
|
+
tabindex = '-1';
|
|
1786
|
+
ariamodal = true;
|
|
1701
1787
|
get hostAriaLabelledBy() {
|
|
1702
1788
|
return this.ariaLabelledBy;
|
|
1703
1789
|
}
|
|
@@ -1717,12 +1803,6 @@ class LuxModalWindowComponent {
|
|
|
1717
1803
|
constructor(_document, _elRef) {
|
|
1718
1804
|
this._document = _document;
|
|
1719
1805
|
this._elRef = _elRef;
|
|
1720
|
-
this.backdrop = false;
|
|
1721
|
-
this.keyboard = true;
|
|
1722
|
-
this.dismissEvent = new EventEmitter();
|
|
1723
|
-
this.role = 'dialog';
|
|
1724
|
-
this.tabindex = '-1';
|
|
1725
|
-
this.ariamodal = true;
|
|
1726
1806
|
}
|
|
1727
1807
|
dismiss(reason) {
|
|
1728
1808
|
this.dismissEvent.emit(reason);
|
|
@@ -1750,14 +1830,14 @@ class LuxModalWindowComponent {
|
|
|
1750
1830
|
elementToFocus.focus();
|
|
1751
1831
|
this._elWithFocus = null;
|
|
1752
1832
|
}
|
|
1753
|
-
}
|
|
1754
|
-
|
|
1755
|
-
LuxModalWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: LuxModalWindowComponent, selector: "lux-modal-window", inputs: { ariaDescribedBy: "ariaDescribedBy", ariaLabelledBy: "ariaLabelledBy", backdrop: "backdrop", keyboard: "keyboard", windowClass: "windowClass" }, outputs: { dismissEvent: "dismissEvent" }, host: { listeners: { "click": "backdropClick($event.target)", "keyup.esc": "escKey($event)" }, properties: { "class": "this.class", "attr.role": "this.role", "tabindex": "this.tabindex", "attr.aria-modal": "this.ariamodal", "attr.aria-labelledby": "this.hostAriaLabelledBy", "attr.aria-describedby": "this.hostAriaDescribedBy" } }, ngImport: i0, template: `
|
|
1833
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModalWindowComponent, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1834
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: LuxModalWindowComponent, selector: "lux-modal-window", inputs: { ariaDescribedBy: "ariaDescribedBy", ariaLabelledBy: "ariaLabelledBy", backdrop: "backdrop", keyboard: "keyboard", windowClass: "windowClass" }, outputs: { dismissEvent: "dismissEvent" }, host: { listeners: { "click": "backdropClick($event.target)", "keyup.esc": "escKey($event)" }, properties: { "class": "this.class", "attr.role": "this.role", "tabindex": "this.tabindex", "attr.aria-modal": "this.ariamodal", "attr.aria-labelledby": "this.hostAriaLabelledBy", "attr.aria-describedby": "this.hostAriaDescribedBy" } }, ngImport: i0, template: `
|
|
1756
1835
|
<div class="modal-dialog" role="document">
|
|
1757
1836
|
<div class="modal-content"><ng-content></ng-content></div>
|
|
1758
1837
|
</div>
|
|
1759
1838
|
`, isInline: true });
|
|
1760
|
-
|
|
1839
|
+
}
|
|
1840
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModalWindowComponent, decorators: [{
|
|
1761
1841
|
type: Component,
|
|
1762
1842
|
args: [{
|
|
1763
1843
|
selector: 'lux-modal-window',
|
|
@@ -1808,63 +1888,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1808
1888
|
args: ['keyup.esc', ['$event']]
|
|
1809
1889
|
}] } });
|
|
1810
1890
|
|
|
1811
|
-
class LuxModalBackdropComponent {
|
|
1812
|
-
constructor() {
|
|
1813
|
-
this.class = 'modal-backdrop fade show';
|
|
1814
|
-
this.style = 'z-index: 1050';
|
|
1815
|
-
}
|
|
1816
|
-
}
|
|
1817
|
-
LuxModalBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxModalBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1818
|
-
LuxModalBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: LuxModalBackdropComponent, selector: "lux-modal-backdrop", inputs: { backdropClass: "backdropClass" }, host: { properties: { "class": "this.class", "style": "this.style" } }, ngImport: i0, template: '', isInline: true });
|
|
1819
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxModalBackdropComponent, decorators: [{
|
|
1820
|
-
type: Component,
|
|
1821
|
-
args: [{
|
|
1822
|
-
selector: 'lux-modal-backdrop',
|
|
1823
|
-
template: ''
|
|
1824
|
-
}]
|
|
1825
|
-
}], propDecorators: { backdropClass: [{
|
|
1826
|
-
type: Input
|
|
1827
|
-
}], class: [{
|
|
1828
|
-
type: HostBinding,
|
|
1829
|
-
args: ['class']
|
|
1830
|
-
}], style: [{
|
|
1831
|
-
type: HostBinding,
|
|
1832
|
-
args: ['style']
|
|
1833
|
-
}] } });
|
|
1834
|
-
|
|
1835
|
-
class LuxModalConfig {
|
|
1836
|
-
constructor() {
|
|
1837
|
-
this.backdrop = true;
|
|
1838
|
-
}
|
|
1839
|
-
}
|
|
1840
|
-
LuxModalConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxModalConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1841
|
-
LuxModalConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxModalConfig, providedIn: 'root' });
|
|
1842
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxModalConfig, decorators: [{
|
|
1843
|
-
type: Injectable,
|
|
1844
|
-
args: [{ providedIn: 'root' }]
|
|
1845
|
-
}] });
|
|
1846
|
-
|
|
1847
1891
|
class ModalStack {
|
|
1892
|
+
_applicationRef;
|
|
1893
|
+
_document;
|
|
1894
|
+
_injector;
|
|
1895
|
+
_rendererFactory;
|
|
1896
|
+
modalConfig;
|
|
1897
|
+
_activeWindowCmptHasChanged = new Subject();
|
|
1898
|
+
_modalRefs = [];
|
|
1899
|
+
_windowCmpts = [];
|
|
1900
|
+
_ariaHiddenValues = new Map();
|
|
1901
|
+
_backdropAttributes = ['backdropClass'];
|
|
1902
|
+
_windowAttributes = [
|
|
1903
|
+
'ariaLabelledBy',
|
|
1904
|
+
'backdrop',
|
|
1905
|
+
'centered',
|
|
1906
|
+
'keyboard',
|
|
1907
|
+
'scrollable',
|
|
1908
|
+
'size',
|
|
1909
|
+
'windowClass'
|
|
1910
|
+
];
|
|
1848
1911
|
constructor(_applicationRef, _document, _injector, _rendererFactory, modalConfig) {
|
|
1849
1912
|
this._applicationRef = _applicationRef;
|
|
1850
1913
|
this._document = _document;
|
|
1851
1914
|
this._injector = _injector;
|
|
1852
1915
|
this._rendererFactory = _rendererFactory;
|
|
1853
1916
|
this.modalConfig = modalConfig;
|
|
1854
|
-
this._activeWindowCmptHasChanged = new Subject();
|
|
1855
|
-
this._modalRefs = [];
|
|
1856
|
-
this._windowCmpts = [];
|
|
1857
|
-
this._ariaHiddenValues = new Map();
|
|
1858
|
-
this._backdropAttributes = ['backdropClass'];
|
|
1859
|
-
this._windowAttributes = [
|
|
1860
|
-
'ariaLabelledBy',
|
|
1861
|
-
'backdrop',
|
|
1862
|
-
'centered',
|
|
1863
|
-
'keyboard',
|
|
1864
|
-
'scrollable',
|
|
1865
|
-
'size',
|
|
1866
|
-
'windowClass'
|
|
1867
|
-
];
|
|
1868
1917
|
this._activeWindowCmptHasChanged.subscribe(() => {
|
|
1869
1918
|
if (this._windowCmpts.length) {
|
|
1870
1919
|
const activeWindowCmpt = this._windowCmpts[this._windowCmpts.length - 1];
|
|
@@ -1942,11 +1991,9 @@ class ModalStack {
|
|
|
1942
1991
|
createFromTemplateRef(content, activeModal) {
|
|
1943
1992
|
const context = {
|
|
1944
1993
|
$implicit: activeModal,
|
|
1945
|
-
// eslint-disable-next-line prefer-arrow/prefer-arrow-functions
|
|
1946
1994
|
close(result) {
|
|
1947
1995
|
activeModal.close(result);
|
|
1948
1996
|
},
|
|
1949
|
-
// eslint-disable-next-line prefer-arrow/prefer-arrow-functions
|
|
1950
1997
|
dismiss(reason) {
|
|
1951
1998
|
activeModal.dismiss(reason);
|
|
1952
1999
|
}
|
|
@@ -2002,10 +2049,10 @@ class ModalStack {
|
|
|
2002
2049
|
this._setAriaHidden(parent);
|
|
2003
2050
|
}
|
|
2004
2051
|
}
|
|
2052
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ModalStack, deps: [{ token: i0.ApplicationRef }, { token: DOCUMENT }, { token: i0.Injector }, { token: i0.RendererFactory2 }, { token: LuxModalConfig }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2053
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ModalStack, providedIn: 'root' });
|
|
2005
2054
|
}
|
|
2006
|
-
|
|
2007
|
-
ModalStack.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ModalStack, providedIn: 'root' });
|
|
2008
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ModalStack, decorators: [{
|
|
2055
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ModalStack, decorators: [{
|
|
2009
2056
|
type: Injectable,
|
|
2010
2057
|
args: [{ providedIn: 'root' }]
|
|
2011
2058
|
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: undefined, decorators: [{
|
|
@@ -2017,6 +2064,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
2017
2064
|
* A service that it allow open an close modal components
|
|
2018
2065
|
*/
|
|
2019
2066
|
class ModalService {
|
|
2067
|
+
modalStack;
|
|
2068
|
+
moduleCFR;
|
|
2020
2069
|
constructor(modalStack, moduleCFR) {
|
|
2021
2070
|
this.modalStack = modalStack;
|
|
2022
2071
|
this.moduleCFR = moduleCFR;
|
|
@@ -2027,21 +2076,24 @@ class ModalService {
|
|
|
2027
2076
|
open(content, options = {}) {
|
|
2028
2077
|
return this.modalStack.open(this.moduleCFR, content, options);
|
|
2029
2078
|
}
|
|
2079
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ModalService, deps: [{ token: ModalStack }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2080
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
2030
2081
|
}
|
|
2031
|
-
|
|
2032
|
-
ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
2033
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ModalService, decorators: [{
|
|
2082
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ModalService, decorators: [{
|
|
2034
2083
|
type: Injectable,
|
|
2035
2084
|
args: [{ providedIn: 'root' }]
|
|
2036
2085
|
}], ctorParameters: function () { return [{ type: ModalStack }, { type: i0.ComponentFactoryResolver }]; } });
|
|
2037
2086
|
|
|
2038
2087
|
class GeolocationService {
|
|
2088
|
+
http;
|
|
2089
|
+
debouncePeriodMs = 300; // ms
|
|
2090
|
+
cacheSize = 20;
|
|
2091
|
+
lastQueriesWithResults = new Map();
|
|
2092
|
+
lastQueriesLru = [];
|
|
2093
|
+
currentSearch$;
|
|
2094
|
+
currentQuery$;
|
|
2039
2095
|
constructor(http) {
|
|
2040
2096
|
this.http = http;
|
|
2041
|
-
this.debouncePeriodMs = 300; // ms
|
|
2042
|
-
this.cacheSize = 20;
|
|
2043
|
-
this.lastQueriesWithResults = new Map();
|
|
2044
|
-
this.lastQueriesLru = [];
|
|
2045
2097
|
this.currentSearch$ = new Subject();
|
|
2046
2098
|
const typed$ = this.currentSearch$
|
|
2047
2099
|
.asObservable()
|
|
@@ -2121,10 +2173,10 @@ class GeolocationService {
|
|
|
2121
2173
|
? this.lastQueriesLru[this.lastQueriesLru.length - 1]
|
|
2122
2174
|
: null;
|
|
2123
2175
|
}
|
|
2176
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GeolocationService, deps: [{ token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2177
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GeolocationService, providedIn: 'root' });
|
|
2124
2178
|
}
|
|
2125
|
-
|
|
2126
|
-
GeolocationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: GeolocationService, providedIn: 'root' });
|
|
2127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: GeolocationService, decorators: [{
|
|
2179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GeolocationService, decorators: [{
|
|
2128
2180
|
type: Injectable,
|
|
2129
2181
|
args: [{ providedIn: 'root' }]
|
|
2130
2182
|
}], ctorParameters: function () { return [{ type: i1$3.HttpClient }]; } });
|
|
@@ -2166,10 +2218,10 @@ class OpenLayerLoaderService {
|
|
|
2166
2218
|
}
|
|
2167
2219
|
return of(true);
|
|
2168
2220
|
}
|
|
2221
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: OpenLayerLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2222
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: OpenLayerLoaderService, providedIn: 'root' });
|
|
2169
2223
|
}
|
|
2170
|
-
|
|
2171
|
-
OpenLayerLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: OpenLayerLoaderService, providedIn: 'root' });
|
|
2172
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: OpenLayerLoaderService, decorators: [{
|
|
2224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: OpenLayerLoaderService, decorators: [{
|
|
2173
2225
|
type: Injectable,
|
|
2174
2226
|
args: [{ providedIn: 'root' }]
|
|
2175
2227
|
}] });
|
|
@@ -2208,7 +2260,13 @@ const loadCss = (url, callback) => {
|
|
|
2208
2260
|
document.getElementsByTagName('head')[0].appendChild(link);
|
|
2209
2261
|
};
|
|
2210
2262
|
|
|
2263
|
+
/* eslint-disable no-self-assign */
|
|
2211
2264
|
class MapComponent {
|
|
2265
|
+
static idCounter = 0;
|
|
2266
|
+
loaded$ = new BehaviorSubject(false);
|
|
2267
|
+
_map;
|
|
2268
|
+
mapId;
|
|
2269
|
+
_zoom;
|
|
2212
2270
|
set zoom(zoom) {
|
|
2213
2271
|
if (!isNaN(zoom)) {
|
|
2214
2272
|
this._zoom = zoom;
|
|
@@ -2220,6 +2278,7 @@ class MapComponent {
|
|
|
2220
2278
|
get zoom() {
|
|
2221
2279
|
return this._zoom;
|
|
2222
2280
|
}
|
|
2281
|
+
_center;
|
|
2223
2282
|
set center(center) {
|
|
2224
2283
|
if (center && center.coordinates && center.coordinates.length === 2) {
|
|
2225
2284
|
this._center = center;
|
|
@@ -2231,6 +2290,7 @@ class MapComponent {
|
|
|
2231
2290
|
get center() {
|
|
2232
2291
|
return this._center;
|
|
2233
2292
|
}
|
|
2293
|
+
_readonly;
|
|
2234
2294
|
set readonly(readonly) {
|
|
2235
2295
|
if (!readonly) {
|
|
2236
2296
|
if (this._map) {
|
|
@@ -2262,6 +2322,9 @@ class MapComponent {
|
|
|
2262
2322
|
get readonly() {
|
|
2263
2323
|
return this._readonly;
|
|
2264
2324
|
}
|
|
2325
|
+
_marker;
|
|
2326
|
+
_markerInteraction;
|
|
2327
|
+
_markerCoordinates;
|
|
2265
2328
|
set markerCoordinates(markerCoordinates) {
|
|
2266
2329
|
if (markerCoordinates && markerCoordinates.length === 2) {
|
|
2267
2330
|
this._markerCoordinates = markerCoordinates;
|
|
@@ -2298,9 +2361,10 @@ class MapComponent {
|
|
|
2298
2361
|
coordinates: this.markerCoordinates
|
|
2299
2362
|
};
|
|
2300
2363
|
}
|
|
2364
|
+
valueChange = new EventEmitter();
|
|
2365
|
+
_markerSource;
|
|
2366
|
+
_markerStyle;
|
|
2301
2367
|
constructor(olLoader) {
|
|
2302
|
-
this.loaded$ = new BehaviorSubject(false);
|
|
2303
|
-
this.valueChange = new EventEmitter();
|
|
2304
2368
|
olLoader.load().subscribe((_) => {
|
|
2305
2369
|
// Initialize
|
|
2306
2370
|
this._markerSource = new ol.source.Vector();
|
|
@@ -2444,11 +2508,10 @@ class MapComponent {
|
|
|
2444
2508
|
this._map.updateSize();
|
|
2445
2509
|
}
|
|
2446
2510
|
}
|
|
2511
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MapComponent, deps: [{ token: OpenLayerLoaderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2512
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: MapComponent, selector: "lux-map", inputs: { mapId: "mapId", zoom: "zoom", center: "center", readonly: "readonly", markerCoordinates: "markerCoordinates", markerPoint: "markerPoint" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [id]=\"mapId\" class=\"map\" (resized)=\"onResize()\"></div>\n", styles: [".map{min-height:100px;height:100%;min-width:160px;width:100%}\n"] });
|
|
2447
2513
|
}
|
|
2448
|
-
|
|
2449
|
-
MapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: MapComponent, deps: [{ token: OpenLayerLoaderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2450
|
-
MapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: MapComponent, selector: "lux-map", inputs: { mapId: "mapId", zoom: "zoom", center: "center", readonly: "readonly", markerCoordinates: "markerCoordinates", markerPoint: "markerPoint" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div [id]=\"mapId\" class=\"map\" (resized)=\"onResize()\"></div>\n", styles: [".map{min-height:100px;height:100%;min-width:160px;width:100%}\n"] });
|
|
2451
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: MapComponent, decorators: [{
|
|
2514
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MapComponent, decorators: [{
|
|
2452
2515
|
type: Component,
|
|
2453
2516
|
args: [{ selector: 'lux-map', template: "<div [id]=\"mapId\" class=\"map\" (resized)=\"onResize()\"></div>\n", styles: [".map{min-height:100px;height:100%;min-width:160px;width:100%}\n"] }]
|
|
2454
2517
|
}], ctorParameters: function () { return [{ type: OpenLayerLoaderService }]; }, propDecorators: { mapId: [{
|
|
@@ -2468,9 +2531,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
2468
2531
|
}] } });
|
|
2469
2532
|
|
|
2470
2533
|
class GeolocationComponent {
|
|
2534
|
+
modalService;
|
|
2535
|
+
locationService;
|
|
2536
|
+
static idCounter = 0;
|
|
2537
|
+
latitude;
|
|
2538
|
+
longitude;
|
|
2539
|
+
map;
|
|
2540
|
+
touched = false;
|
|
2541
|
+
dirty = false;
|
|
2542
|
+
lastErrors = null;
|
|
2543
|
+
_disabled;
|
|
2544
|
+
_required;
|
|
2545
|
+
_value;
|
|
2546
|
+
latitudeValue = undefined;
|
|
2547
|
+
longitudeValue = undefined;
|
|
2548
|
+
isValidNumber = isValidNumber;
|
|
2549
|
+
i18n = {
|
|
2550
|
+
en: {
|
|
2551
|
+
lat: 'latitude',
|
|
2552
|
+
lon: 'longitude',
|
|
2553
|
+
selectLocation: 'Select location',
|
|
2554
|
+
location: 'Location',
|
|
2555
|
+
selectAction: 'Select',
|
|
2556
|
+
cancelAction: 'Cancel',
|
|
2557
|
+
closeAction: 'Close',
|
|
2558
|
+
typeToSearch: 'type to search',
|
|
2559
|
+
cardinalPoints: {
|
|
2560
|
+
north: 'N',
|
|
2561
|
+
south: 'S',
|
|
2562
|
+
east: 'E',
|
|
2563
|
+
west: 'W'
|
|
2564
|
+
},
|
|
2565
|
+
userErrors: {
|
|
2566
|
+
required: 'Required field.',
|
|
2567
|
+
minLatitude: 'Minimum latitude is $minLatitude.',
|
|
2568
|
+
maxLatitude: 'Maximum latitude is $maxLatitude.',
|
|
2569
|
+
minLongitude: 'Minimum longitude is $minLongitude.',
|
|
2570
|
+
maxLongitude: 'Maximum longitude is $maxLongitude.'
|
|
2571
|
+
}
|
|
2572
|
+
},
|
|
2573
|
+
es: {
|
|
2574
|
+
lat: 'latitud',
|
|
2575
|
+
lon: 'longitud',
|
|
2576
|
+
selectLocation: 'Seleccione ubicación',
|
|
2577
|
+
location: 'Ubicación',
|
|
2578
|
+
selectAction: 'Seleccionar',
|
|
2579
|
+
cancelAction: 'Cancelar',
|
|
2580
|
+
closeAction: 'Cerrar',
|
|
2581
|
+
typeToSearch: 'escribe para buscar',
|
|
2582
|
+
cardinalPoints: {
|
|
2583
|
+
north: 'N',
|
|
2584
|
+
south: 'S',
|
|
2585
|
+
east: 'E',
|
|
2586
|
+
west: 'O'
|
|
2587
|
+
},
|
|
2588
|
+
userErrors: {
|
|
2589
|
+
required: 'El campo es obligatorio.',
|
|
2590
|
+
minLatitude: 'La latitud mínima es $minLatitude.',
|
|
2591
|
+
maxLatitude: 'La latitud máxima es $maxLatitude.',
|
|
2592
|
+
minLongitude: 'La longitud mínima es $minLongitude.',
|
|
2593
|
+
maxLongitude: 'La longitud máxima es $maxLongitude.'
|
|
2594
|
+
}
|
|
2595
|
+
}
|
|
2596
|
+
};
|
|
2597
|
+
minLatitude;
|
|
2598
|
+
maxLatitude;
|
|
2599
|
+
minLongitude;
|
|
2600
|
+
maxLongitude;
|
|
2601
|
+
step;
|
|
2602
|
+
zoom;
|
|
2471
2603
|
get className() {
|
|
2472
2604
|
return this.checkClassName();
|
|
2473
2605
|
}
|
|
2606
|
+
lang = languageDetector();
|
|
2607
|
+
inlineErrors = false;
|
|
2608
|
+
inputId;
|
|
2609
|
+
ariaLabel;
|
|
2610
|
+
readonly = null;
|
|
2474
2611
|
set disabled(v) {
|
|
2475
2612
|
v = typeof v === 'string' && v !== 'false' ? true : v;
|
|
2476
2613
|
this._disabled = v;
|
|
@@ -2515,70 +2652,13 @@ class GeolocationComponent {
|
|
|
2515
2652
|
get value() {
|
|
2516
2653
|
return this._value;
|
|
2517
2654
|
}
|
|
2655
|
+
valueChange = new EventEmitter();
|
|
2656
|
+
keyPress = new EventEmitter();
|
|
2657
|
+
onChange = (value) => { };
|
|
2658
|
+
onTouched = () => { };
|
|
2518
2659
|
constructor(modalService, locationService) {
|
|
2519
2660
|
this.modalService = modalService;
|
|
2520
2661
|
this.locationService = locationService;
|
|
2521
|
-
this.touched = false;
|
|
2522
|
-
this.dirty = false;
|
|
2523
|
-
this.lastErrors = null;
|
|
2524
|
-
this.latitudeValue = undefined;
|
|
2525
|
-
this.longitudeValue = undefined;
|
|
2526
|
-
this.isValidNumber = isValidNumber;
|
|
2527
|
-
this.i18n = {
|
|
2528
|
-
en: {
|
|
2529
|
-
lat: 'latitude',
|
|
2530
|
-
lon: 'longitude',
|
|
2531
|
-
selectLocation: 'Select location',
|
|
2532
|
-
location: 'Location',
|
|
2533
|
-
selectAction: 'Select',
|
|
2534
|
-
cancelAction: 'Cancel',
|
|
2535
|
-
closeAction: 'Close',
|
|
2536
|
-
typeToSearch: 'type to search',
|
|
2537
|
-
cardinalPoints: {
|
|
2538
|
-
north: 'N',
|
|
2539
|
-
south: 'S',
|
|
2540
|
-
east: 'E',
|
|
2541
|
-
west: 'W'
|
|
2542
|
-
},
|
|
2543
|
-
userErrors: {
|
|
2544
|
-
required: 'Required field.',
|
|
2545
|
-
minLatitude: 'Minimum latitude is $minLatitude.',
|
|
2546
|
-
maxLatitude: 'Maximum latitude is $maxLatitude.',
|
|
2547
|
-
minLongitude: 'Minimum longitude is $minLongitude.',
|
|
2548
|
-
maxLongitude: 'Maximum longitude is $maxLongitude.'
|
|
2549
|
-
}
|
|
2550
|
-
},
|
|
2551
|
-
es: {
|
|
2552
|
-
lat: 'latitud',
|
|
2553
|
-
lon: 'longitud',
|
|
2554
|
-
selectLocation: 'Seleccione ubicación',
|
|
2555
|
-
location: 'Ubicación',
|
|
2556
|
-
selectAction: 'Seleccionar',
|
|
2557
|
-
cancelAction: 'Cancelar',
|
|
2558
|
-
closeAction: 'Cerrar',
|
|
2559
|
-
typeToSearch: 'escribe para buscar',
|
|
2560
|
-
cardinalPoints: {
|
|
2561
|
-
north: 'N',
|
|
2562
|
-
south: 'S',
|
|
2563
|
-
east: 'E',
|
|
2564
|
-
west: 'O'
|
|
2565
|
-
},
|
|
2566
|
-
userErrors: {
|
|
2567
|
-
required: 'El campo es obligatorio.',
|
|
2568
|
-
minLatitude: 'La latitud mínima es $minLatitude.',
|
|
2569
|
-
maxLatitude: 'La latitud máxima es $maxLatitude.',
|
|
2570
|
-
minLongitude: 'La longitud mínima es $minLongitude.',
|
|
2571
|
-
maxLongitude: 'La longitud máxima es $maxLongitude.'
|
|
2572
|
-
}
|
|
2573
|
-
}
|
|
2574
|
-
};
|
|
2575
|
-
this.lang = languageDetector();
|
|
2576
|
-
this.inlineErrors = false;
|
|
2577
|
-
this.readonly = null;
|
|
2578
|
-
this.valueChange = new EventEmitter();
|
|
2579
|
-
this.keyPress = new EventEmitter();
|
|
2580
|
-
this.onChange = (value) => { };
|
|
2581
|
-
this.onTouched = () => { };
|
|
2582
2662
|
}
|
|
2583
2663
|
// ControlValueAccessor Interface implementation
|
|
2584
2664
|
writeValue(value) {
|
|
@@ -2788,22 +2868,21 @@ class GeolocationComponent {
|
|
|
2788
2868
|
this.minLongitude = this.minLongitude || -180;
|
|
2789
2869
|
this.maxLongitude = this.maxLongitude || +180;
|
|
2790
2870
|
}
|
|
2871
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GeolocationComponent, deps: [{ token: ModalService }, { token: GeolocationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2872
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: GeolocationComponent, selector: "lux-geolocation", inputs: { minLatitude: "minLatitude", maxLatitude: "maxLatitude", minLongitude: "minLongitude", maxLongitude: "maxLongitude", step: "step", zoom: "zoom", lang: "lang", inlineErrors: "inlineErrors", inputId: "inputId", ariaLabel: ["aria-label", "ariaLabel"], readonly: "readonly", disabled: "disabled", required: "required", value: "value" }, outputs: { valueChange: "valueChange", keyPress: "keyPress" }, providers: [
|
|
2873
|
+
{
|
|
2874
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2875
|
+
multi: true,
|
|
2876
|
+
useExisting: forwardRef(() => GeolocationComponent)
|
|
2877
|
+
},
|
|
2878
|
+
{
|
|
2879
|
+
provide: NG_VALIDATORS,
|
|
2880
|
+
multi: true,
|
|
2881
|
+
useExisting: forwardRef(() => GeolocationComponent)
|
|
2882
|
+
}
|
|
2883
|
+
], viewQueries: [{ propertyName: "latitude", first: true, predicate: ["latitude"], descendants: true, static: true }, { propertyName: "longitude", first: true, predicate: ["longitude"], descendants: true, static: true }, { propertyName: "map", first: true, predicate: ["map"], descendants: true }], ngImport: i0, template: "<input\n #latitude\n class=\"rounded-left prefix\"\n [ngClass]=\"className\"\n type=\"number\"\n [id]=\"inputId + '$latitude'\"\n [(ngModel)]=\"latitudeValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [attr.min]=\"\n minLatitude !== undefined && minLatitude !== null\n ? minLatitude.toString()\n : undefined\n \"\n [attr.max]=\"\n maxLatitude !== undefined && maxLatitude !== null\n ? maxLatitude.toString()\n : undefined\n \"\n [attr.step]=\"\n step !== undefined && step !== null ? step.toString() : undefined\n \"\n [placeholder]=\"i18n[lang].lat\"\n (keyup)=\"onEventLatitude(latitude.value)\"\n (change)=\"onEventLatitude(latitude.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<div\n class=\"infix symbol monospace clickable\"\n [ngClass]=\"className\"\n (click)=\"openModalMap(modalMap)\">\n <span *ngIf=\"isValidNumber(latitudeValue) && latitudeValue >= 0\">{{\n i18n[lang].cardinalPoints.north\n }}</span>\n <span *ngIf=\"isValidNumber(latitudeValue) && latitudeValue < 0\">{{\n i18n[lang].cardinalPoints.south\n }}</span>\n <span *ngIf=\"!isValidNumber(latitudeValue)\">-</span>\n</div>\n<input\n #longitude\n class=\"prefix\"\n [ngClass]=\"className\"\n type=\"number\"\n [id]=\"inputId + '$longitude'\"\n [(ngModel)]=\"longitudeValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [attr.min]=\"\n minLongitude !== undefined && minLongitude !== null\n ? minLongitude.toString()\n : undefined\n \"\n [attr.max]=\"\n maxLongitude !== undefined && maxLongitude !== null\n ? maxLongitude.toString()\n : undefined\n \"\n [attr.step]=\"\n step !== undefined && step !== null ? step.toString() : undefined\n \"\n [placeholder]=\"i18n[lang].lon\"\n (keyup)=\"onEventLongitude(longitude.value)\"\n (change)=\"onEventLongitude(longitude.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<div\n class=\"infix symbol monospace clickable\"\n [ngClass]=\"className\"\n (click)=\"openModalMap(modalMap)\"\n>\n <span *ngIf=\"isValidNumber(longitudeValue) && longitudeValue >= 0\">{{\n i18n[lang].cardinalPoints.east\n }}</span>\n <span *ngIf=\"isValidNumber(longitudeValue) && longitudeValue < 0\">{{\n i18n[lang].cardinalPoints.west\n }}</span>\n <span *ngIf=\"!isValidNumber(longitudeValue)\">-</span>\n</div>\n<div\n [class]=\"\n disabled || readonly || !isClearable()\n ? 'clickable rounded-right postfix symbol'\n : 'clickable postfix symbol'\n \"\n [ngClass]=\"className\"\n (click)=\"openModalMap(modalMap)\"\n>\n <span class=\"icon-globe\"></span>\n</div>\n<button\n #clearButton\n *ngIf=\"!disabled && !readonly && isClearable()\"\n class=\"rounded-right postfix bordered icon icon-clear\"\n [id]=\"inputId + '$clear'\"\n type=\"button\"\n (click)=\"clear()\"\n aria-label=\"clear\"\n></button>\n\n<div *ngIf=\"inlineErrors && lastErrors && (dirty || touched)\" class=\"alert\">\n <div *ngIf=\"lastErrors.required\">\n {{ i18n[lang].userErrors.required }}\n </div>\n <div *ngIf=\"lastErrors.minLatitude\">\n {{\n i18n[lang].userErrors.minLatitude.replace(\n '$minLatitude',\n lastErrors.minLatitude.min\n )\n }}\n </div>\n <div *ngIf=\"lastErrors.maxLatitude\">\n {{\n i18n[lang].userErrors.maxLatitude.replace(\n '$maxLatitude',\n lastErrors.maxLatitude.max\n )\n }}\n </div>\n <div *ngIf=\"lastErrors.minLongitude\">\n {{\n i18n[lang].userErrors.minLongitude.replace(\n '$minLongitude',\n lastErrors.minLongitude.min\n )\n }}\n </div>\n <div *ngIf=\"lastErrors.maxLongitude\">\n {{\n i18n[lang].userErrors.maxLongitude.replace(\n '$maxLongitude',\n lastErrors.maxLongitude.max\n )\n }}\n </div>\n</div>\n\n<ng-template #modalMap let-modal>\n <div class=\"lux-modal-header\">\n <h4 class=\"modal-title default-font\" id=\"modal-basic-title\">{{ mapTitle }}</h4>\n <button\n type=\"button\"\n class=\"close\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss('Cross click')\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n </button>\n </div>\n <div class=\"lux-modal-body content\">\n <lux-autocomplete\n #searchBar\n [attr.aria-label]=\"i18n[lang].typeToSearch\"\n [placeholder]=\"i18n[lang].typeToSearch\"\n *ngIf=\"!disabled && !readonly\"\n [instance]=\"self\"\n [resolveLabelsFunction]=\"getLabels\"\n [populateFunction]=\"getData\"\n (valueChange)=\"onSearchLocationChanged(searchBar.value, map)\"\n ></lux-autocomplete>\n <div class=\"map-container\">\n <lux-map\n #map\n [center]=\"value\"\n [markerPoint]=\"value\"\n [zoom]=\"zoom\"\n [readonly]=\"readonly === true || disabled === true ? true : false\"\n ></lux-map>\n </div>\n </div>\n <div class=\"lux-modal-footer\">\n <button\n *ngIf=\"disabled || readonly\"\n type=\"button\"\n class=\"btn btn-cancel\"\n (click)=\"modal.close('cancel')\"\n >\n {{ i18n[lang].closeAction }}\n </button>\n <button\n *ngIf=\"!disabled && !readonly\"\n type=\"button\"\n class=\"btn btn-cancel\"\n (click)=\"modal.close('cancel')\"\n >\n {{ i18n[lang].cancelAction }}\n </button>\n <button\n *ngIf=\"!disabled && !readonly\"\n type=\"button\"\n class=\"btn btn-select\"\n (click)=\"modal.close(map.markerPoint.coordinates)\"\n >\n {{ i18n[lang].selectAction }}\n </button>\n </div>\n</ng-template>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}:host{display:flex;align-items:stretch}.btn-select{color:#fff;background-color:#4242d1;margin-left:2rem}.btn-cancel{color:#fff;background-color:#c22929}.readonly{border:none}.readonly:focus{border:none;outline:none}.disabled{background-color:var(--lux-disabled-color, #f1f1f1);border-color:var(--lux-disabled-border-color, #6d6d6d)}.icon,.icon-clear,.icon-globe{display:inline-block;background-size:1rem 1rem;background-position:center;background-repeat:no-repeat;min-width:1rem;min-height:1rem;width:var(--lux-autocomplete-icon-width, 1.5rem);z-index:1}.clickable{cursor:pointer}.icon-globe{background:var(--lux-autocomplete-icon-globe, url(/assets/img/globe.svg) no-repeat center);background-size:1rem;height:100%}.icon-clear{width:var(--lux-autocomplete-icon-width, 1.5rem);background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-modal-body{padding:0}.map-container{height:var(--lux-geolocation-map-height, 45vh);width:var(--lux-geolocation-map-width, 90vw);max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AutocompleteComponent, selector: "lux-autocomplete", inputs: ["inputId", "disabled", "readonly", "label", "canAddNewValues", "keepOpenAfterDelete", "value", "dataSource", "required", "placeholder", "resolveLabelsFunction", "populateFunction", "instance"], outputs: ["valueChange", "dataSourceChange"] }, { kind: "component", type: MapComponent, selector: "lux-map", inputs: ["mapId", "zoom", "center", "readonly", "markerCoordinates", "markerPoint"], outputs: ["valueChange"] }] });
|
|
2791
2884
|
}
|
|
2792
|
-
|
|
2793
|
-
GeolocationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: GeolocationComponent, deps: [{ token: ModalService }, { token: GeolocationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2794
|
-
GeolocationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: GeolocationComponent, selector: "lux-geolocation", inputs: { minLatitude: "minLatitude", maxLatitude: "maxLatitude", minLongitude: "minLongitude", maxLongitude: "maxLongitude", step: "step", zoom: "zoom", lang: "lang", inlineErrors: "inlineErrors", inputId: "inputId", ariaLabel: ["aria-label", "ariaLabel"], readonly: "readonly", disabled: "disabled", required: "required", value: "value" }, outputs: { valueChange: "valueChange", keyPress: "keyPress" }, providers: [
|
|
2795
|
-
{
|
|
2796
|
-
provide: NG_VALUE_ACCESSOR,
|
|
2797
|
-
multi: true,
|
|
2798
|
-
useExisting: forwardRef(() => GeolocationComponent)
|
|
2799
|
-
},
|
|
2800
|
-
{
|
|
2801
|
-
provide: NG_VALIDATORS,
|
|
2802
|
-
multi: true,
|
|
2803
|
-
useExisting: forwardRef(() => GeolocationComponent)
|
|
2804
|
-
}
|
|
2805
|
-
], viewQueries: [{ propertyName: "latitude", first: true, predicate: ["latitude"], descendants: true, static: true }, { propertyName: "longitude", first: true, predicate: ["longitude"], descendants: true, static: true }, { propertyName: "map", first: true, predicate: ["map"], descendants: true }], ngImport: i0, template: "<input\n #latitude\n class=\"rounded-left prefix\"\n [ngClass]=\"className\"\n type=\"number\"\n [id]=\"inputId + '$latitude'\"\n [(ngModel)]=\"latitudeValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [attr.min]=\"\n minLatitude !== undefined && minLatitude !== null\n ? minLatitude.toString()\n : undefined\n \"\n [attr.max]=\"\n maxLatitude !== undefined && maxLatitude !== null\n ? maxLatitude.toString()\n : undefined\n \"\n [attr.step]=\"\n step !== undefined && step !== null ? step.toString() : undefined\n \"\n [placeholder]=\"i18n[lang].lat\"\n (keyup)=\"onEventLatitude(latitude.value)\"\n (change)=\"onEventLatitude(latitude.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<div\n class=\"infix symbol monospace clickable\"\n [ngClass]=\"className\"\n (click)=\"openModalMap(modalMap)\">\n <span *ngIf=\"isValidNumber(latitudeValue) && latitudeValue >= 0\">{{\n i18n[lang].cardinalPoints.north\n }}</span>\n <span *ngIf=\"isValidNumber(latitudeValue) && latitudeValue < 0\">{{\n i18n[lang].cardinalPoints.south\n }}</span>\n <span *ngIf=\"!isValidNumber(latitudeValue)\">-</span>\n</div>\n<input\n #longitude\n class=\"prefix\"\n [ngClass]=\"className\"\n type=\"number\"\n [id]=\"inputId + '$longitude'\"\n [(ngModel)]=\"longitudeValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [attr.min]=\"\n minLongitude !== undefined && minLongitude !== null\n ? minLongitude.toString()\n : undefined\n \"\n [attr.max]=\"\n maxLongitude !== undefined && maxLongitude !== null\n ? maxLongitude.toString()\n : undefined\n \"\n [attr.step]=\"\n step !== undefined && step !== null ? step.toString() : undefined\n \"\n [placeholder]=\"i18n[lang].lon\"\n (keyup)=\"onEventLongitude(longitude.value)\"\n (change)=\"onEventLongitude(longitude.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<div\n class=\"infix symbol monospace clickable\"\n [ngClass]=\"className\"\n (click)=\"openModalMap(modalMap)\"\n>\n <span *ngIf=\"isValidNumber(longitudeValue) && longitudeValue >= 0\">{{\n i18n[lang].cardinalPoints.east\n }}</span>\n <span *ngIf=\"isValidNumber(longitudeValue) && longitudeValue < 0\">{{\n i18n[lang].cardinalPoints.west\n }}</span>\n <span *ngIf=\"!isValidNumber(longitudeValue)\">-</span>\n</div>\n<div\n [class]=\"\n disabled || readonly || !isClearable()\n ? 'clickable rounded-right postfix symbol'\n : 'clickable postfix symbol'\n \"\n [ngClass]=\"className\"\n (click)=\"openModalMap(modalMap)\"\n>\n <span class=\"icon-globe\"></span>\n</div>\n<button\n #clearButton\n *ngIf=\"!disabled && !readonly && isClearable()\"\n class=\"rounded-right postfix bordered icon icon-clear\"\n [id]=\"inputId + '$clear'\"\n type=\"button\"\n (click)=\"clear()\"\n aria-label=\"clear\"\n></button>\n\n<div *ngIf=\"inlineErrors && lastErrors && (dirty || touched)\" class=\"alert\">\n <div *ngIf=\"lastErrors.required\">\n {{ i18n[lang].userErrors.required }}\n </div>\n <div *ngIf=\"lastErrors.minLatitude\">\n {{\n i18n[lang].userErrors.minLatitude.replace(\n '$minLatitude',\n lastErrors.minLatitude.min\n )\n }}\n </div>\n <div *ngIf=\"lastErrors.maxLatitude\">\n {{\n i18n[lang].userErrors.maxLatitude.replace(\n '$maxLatitude',\n lastErrors.maxLatitude.max\n )\n }}\n </div>\n <div *ngIf=\"lastErrors.minLongitude\">\n {{\n i18n[lang].userErrors.minLongitude.replace(\n '$minLongitude',\n lastErrors.minLongitude.min\n )\n }}\n </div>\n <div *ngIf=\"lastErrors.maxLongitude\">\n {{\n i18n[lang].userErrors.maxLongitude.replace(\n '$maxLongitude',\n lastErrors.maxLongitude.max\n )\n }}\n </div>\n</div>\n\n<ng-template #modalMap let-modal>\n <div class=\"lux-modal-header\">\n <h4 class=\"modal-title default-font\" id=\"modal-basic-title\">{{ mapTitle }}</h4>\n <button\n type=\"button\"\n class=\"close\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss('Cross click')\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n </button>\n </div>\n <div class=\"lux-modal-body content\">\n <lux-autocomplete\n #searchBar\n [attr.aria-label]=\"i18n[lang].typeToSearch\"\n [placeholder]=\"i18n[lang].typeToSearch\"\n *ngIf=\"!disabled && !readonly\"\n [instance]=\"self\"\n [resolveLabelsFunction]=\"getLabels\"\n [populateFunction]=\"getData\"\n (valueChange)=\"onSearchLocationChanged(searchBar.value, map)\"\n ></lux-autocomplete>\n <div class=\"map-container\">\n <lux-map\n #map\n [center]=\"value\"\n [markerPoint]=\"value\"\n [zoom]=\"zoom\"\n [readonly]=\"readonly === true || disabled === true ? true : false\"\n ></lux-map>\n </div>\n </div>\n <div class=\"lux-modal-footer\">\n <button\n *ngIf=\"disabled || readonly\"\n type=\"button\"\n class=\"btn btn-cancel\"\n (click)=\"modal.close('cancel')\"\n >\n {{ i18n[lang].closeAction }}\n </button>\n <button\n *ngIf=\"!disabled && !readonly\"\n type=\"button\"\n class=\"btn btn-cancel\"\n (click)=\"modal.close('cancel')\"\n >\n {{ i18n[lang].cancelAction }}\n </button>\n <button\n *ngIf=\"!disabled && !readonly\"\n type=\"button\"\n class=\"btn btn-select\"\n (click)=\"modal.close(map.markerPoint.coordinates)\"\n >\n {{ i18n[lang].selectAction }}\n </button>\n </div>\n</ng-template>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}:host{display:flex;align-items:stretch}.btn-select{color:#fff;background-color:#4242d1;margin-left:2rem}.btn-cancel{color:#fff;background-color:#c22929}.readonly{border:none}.readonly:focus{border:none;outline:none}.disabled{background-color:var(--lux-disabled-color, #f1f1f1);border-color:var(--lux-disabled-border-color, #6d6d6d)}.icon,.icon-clear,.icon-globe{display:inline-block;background-size:1rem 1rem;background-position:center;background-repeat:no-repeat;min-width:1rem;min-height:1rem;width:var(--lux-autocomplete-icon-width, 1.5rem);z-index:1}.clickable{cursor:pointer}.icon-globe{background:var(--lux-autocomplete-icon-globe, url(/assets/img/globe.svg) no-repeat center);background-size:1rem;height:100%}.icon-clear{width:var(--lux-autocomplete-icon-width, 1.5rem);background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-modal-body{padding:0}.map-container{height:var(--lux-geolocation-map-height, 45vh);width:var(--lux-geolocation-map-width, 90vw);max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AutocompleteComponent, selector: "lux-autocomplete", inputs: ["inputId", "disabled", "readonly", "label", "canAddNewValues", "keepOpenAfterDelete", "value", "dataSource", "required", "placeholder", "resolveLabelsFunction", "populateFunction", "instance"], outputs: ["valueChange", "dataSourceChange"] }, { kind: "component", type: MapComponent, selector: "lux-map", inputs: ["mapId", "zoom", "center", "readonly", "markerCoordinates", "markerPoint"], outputs: ["valueChange"] }] });
|
|
2806
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: GeolocationComponent, decorators: [{
|
|
2885
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GeolocationComponent, decorators: [{
|
|
2807
2886
|
type: Component,
|
|
2808
2887
|
args: [{ selector: 'lux-geolocation', providers: [
|
|
2809
2888
|
{
|
|
@@ -3046,21 +3125,66 @@ class RegexpService {
|
|
|
3046
3125
|
// TODO: RETURN AN EMPTY STRING
|
|
3047
3126
|
return 'NO DEBERÍA SER POSIBLE';
|
|
3048
3127
|
}
|
|
3128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RegexpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3129
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RegexpService, providedIn: 'root' });
|
|
3049
3130
|
}
|
|
3050
|
-
|
|
3051
|
-
RegexpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: RegexpService, providedIn: 'root' });
|
|
3052
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: RegexpService, decorators: [{
|
|
3131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RegexpService, decorators: [{
|
|
3053
3132
|
type: Injectable,
|
|
3054
3133
|
args: [{ providedIn: 'root' }]
|
|
3055
3134
|
}], ctorParameters: function () { return []; } });
|
|
3056
3135
|
|
|
3057
3136
|
class InputComponent {
|
|
3137
|
+
regexpService;
|
|
3138
|
+
static idCounter = 0;
|
|
3139
|
+
input;
|
|
3140
|
+
textarea;
|
|
3141
|
+
colorpicker;
|
|
3142
|
+
touched = false;
|
|
3143
|
+
dirty = false;
|
|
3144
|
+
lastErrors = null;
|
|
3145
|
+
_disabled;
|
|
3146
|
+
_value = '';
|
|
3147
|
+
_type;
|
|
3148
|
+
_placeholder;
|
|
3149
|
+
_pattern = undefined;
|
|
3150
|
+
_regexp = undefined;
|
|
3151
|
+
_currency;
|
|
3152
|
+
_required;
|
|
3153
|
+
userErrors = {
|
|
3154
|
+
en: {
|
|
3155
|
+
required: 'Required field.',
|
|
3156
|
+
min: 'Minimum value is $min.',
|
|
3157
|
+
max: 'Maximum value is $max.',
|
|
3158
|
+
email: 'Format should match example@example.com.',
|
|
3159
|
+
url: 'Format should match https://example.com.',
|
|
3160
|
+
color: 'Format should match #XXXXXX.'
|
|
3161
|
+
},
|
|
3162
|
+
es: {
|
|
3163
|
+
required: 'El campo es obligatorio.',
|
|
3164
|
+
min: 'El valor mínimo es $min.',
|
|
3165
|
+
max: 'El valor máximo es $max.',
|
|
3166
|
+
email: 'El campo debe tener un formato como ejemplo@ejemplo.com.',
|
|
3167
|
+
url: 'El campo debe tener un formato como https://ejemplo.com.',
|
|
3168
|
+
color: 'El campo debe tener un formato como #XXXXXX.'
|
|
3169
|
+
}
|
|
3170
|
+
};
|
|
3171
|
+
domain;
|
|
3172
|
+
rows;
|
|
3173
|
+
cols;
|
|
3174
|
+
step;
|
|
3175
|
+
min;
|
|
3176
|
+
max;
|
|
3058
3177
|
get className() {
|
|
3059
3178
|
return this.checkClassName();
|
|
3060
3179
|
}
|
|
3061
3180
|
get color() {
|
|
3062
3181
|
return this.checkColor();
|
|
3063
3182
|
}
|
|
3183
|
+
lang = languageDetector();
|
|
3184
|
+
inlineErrors = false;
|
|
3185
|
+
inputId;
|
|
3186
|
+
ariaLabel;
|
|
3187
|
+
readonly = null;
|
|
3064
3188
|
set disabled(v) {
|
|
3065
3189
|
v = typeof v === 'string' ? true : v;
|
|
3066
3190
|
this._disabled = v;
|
|
@@ -3136,39 +3260,12 @@ class InputComponent {
|
|
|
3136
3260
|
}
|
|
3137
3261
|
return this._value;
|
|
3138
3262
|
}
|
|
3263
|
+
valueChange = new EventEmitter();
|
|
3264
|
+
keyPress = new EventEmitter();
|
|
3265
|
+
onChange = (value) => { };
|
|
3266
|
+
onTouched = () => { };
|
|
3139
3267
|
constructor(regexpService) {
|
|
3140
3268
|
this.regexpService = regexpService;
|
|
3141
|
-
this.touched = false;
|
|
3142
|
-
this.dirty = false;
|
|
3143
|
-
this.lastErrors = null;
|
|
3144
|
-
this._value = '';
|
|
3145
|
-
this._pattern = undefined;
|
|
3146
|
-
this._regexp = undefined;
|
|
3147
|
-
this.userErrors = {
|
|
3148
|
-
en: {
|
|
3149
|
-
required: 'Required field.',
|
|
3150
|
-
min: 'Minimum value is $min.',
|
|
3151
|
-
max: 'Maximum value is $max.',
|
|
3152
|
-
email: 'Format should match example@example.com.',
|
|
3153
|
-
url: 'Format should match https://example.com.',
|
|
3154
|
-
color: 'Format should match #XXXXXX.'
|
|
3155
|
-
},
|
|
3156
|
-
es: {
|
|
3157
|
-
required: 'El campo es obligatorio.',
|
|
3158
|
-
min: 'El valor mínimo es $min.',
|
|
3159
|
-
max: 'El valor máximo es $max.',
|
|
3160
|
-
email: 'El campo debe tener un formato como ejemplo@ejemplo.com.',
|
|
3161
|
-
url: 'El campo debe tener un formato como https://ejemplo.com.',
|
|
3162
|
-
color: 'El campo debe tener un formato como #XXXXXX.'
|
|
3163
|
-
}
|
|
3164
|
-
};
|
|
3165
|
-
this.lang = languageDetector();
|
|
3166
|
-
this.inlineErrors = false;
|
|
3167
|
-
this.readonly = null;
|
|
3168
|
-
this.valueChange = new EventEmitter();
|
|
3169
|
-
this.keyPress = new EventEmitter();
|
|
3170
|
-
this.onChange = (value) => { };
|
|
3171
|
-
this.onTouched = () => { };
|
|
3172
3269
|
}
|
|
3173
3270
|
// ControlValueAccessor Interface implementation
|
|
3174
3271
|
writeValue(value) {
|
|
@@ -3419,22 +3516,21 @@ class InputComponent {
|
|
|
3419
3516
|
this.max = this.max || 1000.0;
|
|
3420
3517
|
this.placeholder = '0.00';
|
|
3421
3518
|
}
|
|
3519
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputComponent, deps: [{ token: RegexpService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3520
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: InputComponent, selector: "lux-input", inputs: { rows: "rows", cols: "cols", step: "step", min: "min", max: "max", lang: "lang", inlineErrors: "inlineErrors", inputId: "inputId", ariaLabel: ["aria-label", "ariaLabel"], readonly: "readonly", disabled: "disabled", pattern: "pattern", currency: "currency", placeholder: "placeholder", required: "required", type: "type", value: "value" }, outputs: { valueChange: "valueChange", keyPress: "keyPress" }, providers: [
|
|
3521
|
+
{
|
|
3522
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3523
|
+
multi: true,
|
|
3524
|
+
useExisting: forwardRef(() => InputComponent)
|
|
3525
|
+
},
|
|
3526
|
+
{
|
|
3527
|
+
provide: NG_VALIDATORS,
|
|
3528
|
+
multi: true,
|
|
3529
|
+
useExisting: forwardRef(() => InputComponent)
|
|
3530
|
+
}
|
|
3531
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }, { propertyName: "colorpicker", first: true, predicate: ["colorpicker"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"currency && currency === 'USD'\" class=\"prefix rounded-left symbol\" [ngClass]=\"className\">\n <span>$</span>\n</div>\n<input\n #input\n *ngIf=\"type !== 'textarea'\"\n [class]=\"hasPrefix() ? (hasPostfix() ? 'infix' : 'postfix rounded-right') : (hasPostfix() ? 'prefix rounded-left' : 'rounded')\"\n [ngClass]=\"className\"\n placement=\"top\"\n [id]=\"inputId\"\n [type]=\"domain\"\n [attr.value]=\"value\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [attr.min]=\"min?.toString() || undefined\"\n [attr.max]=\"max?.toString() || undefined\"\n [attr.step]=\"step?.toString() || undefined\"\n [attr.pattern]=\"pattern || undefined\"\n [placeholder]=\"placeholder\"\n (keyup)=\"onKeyUp(input.value)\"\n (change)=\"onChangeValue(input.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<textarea\n #textarea\n *ngIf=\"type === 'textarea'\"\n class=\"rounded\"\n [ngClass]=\"className\"\n placement=\"top\"\n [id]=\"inputId\"\n [attr.value]=\"value\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [attr.cols]=\"cols?.toString() || undefined\"\n [attr.rows]=\"rows?.toString() || undefined\"\n [placeholder]=\"placeholder\"\n (keyup)=\"onKeyUp(textarea.value)\"\n (change)=\"onChangeValue(textarea.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n></textarea>\n<div *ngIf=\"currency && currency === 'EUR'\" class=\"postfix rounded-right symbol\" [ngClass]=\"className\">\n <span>\u20AC</span>\n</div>\n<div *ngIf=\"isPercentage()\" class=\"postfix rounded-right symbol\" [ngClass]=\"className\">\n <span>%</span>\n</div>\n<div *ngIf=\"isPermillage()\" class=\"postfix rounded-right symbol\" [ngClass]=\"className\">\n <span>\u2030</span>\n</div>\n<div *ngIf=\"isUrl() && !!value\" class=\"postfix rounded-right symbol clickable\" [ngClass]=\"className\">\n <a href=\"{{ value }}\" target=\"_blank\">\n <span class=\"icon-external\"></span>\n </a>\n</div>\n<div *ngIf=\"isColor()\" class=\"postfix rounded-right bordered transparency\" [ngClass]=\"className\">\n <div class=\"rounded-right full-space\" [ngStyle]=\"{'background-color': color}\">\n <input\n #colorpicker\n class=\"minimal-space clickable invisible rounded-right full-space\"\n [id]=\"inputId + '$colorpicker'\"\n type=\"color\"\n [attr.value]=\"value\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n (change)=\"onColorPicked(colorpicker.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n />\n </div>\n</div>\n\n<div *ngIf=\"inlineErrors && lastErrors && (dirty || touched)\" class=\"alert\">\n <div *ngIf=\"lastErrors.required\">\n {{ userErrors[this.lang].required }}\n </div>\n <div *ngIf=\"lastErrors.email\">{{ userErrors[this.lang].email }}</div>\n <div *ngIf=\"lastErrors.url\">{{ userErrors[this.lang].url }}</div>\n <div *ngIf=\"lastErrors.min\">\n {{ userErrors[this.lang].min.replace('$min', lastErrors.min.min) }}\n </div>\n <div *ngIf=\"lastErrors.max\">\n {{ userErrors[this.lang].max.replace('$max', lastErrors.max.max) }}\n </div>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}:host{display:flex;align-items:stretch;min-height:1.5rem}input[type=color]{min-height:100%;height:0}.readonly{border:none}.readonly:focus{border:none;outline:none}.disabled{background-color:var(--lux-disabled-color, #f1f1f1);border-color:var(--lux-disabled-border-color, #6d6d6d)}.clickable{cursor:pointer}.full-space{width:100%;height:100%;margin:0;border:0;padding:0}.minimal-space,.icon,.icon-external{min-width:1rem;min-height:1rem}.icon,.icon-external{display:inline-block;background-size:1rem 1rem;background-position:center;background-repeat:no-repeat;width:var(--lux-autocomplete-icon-width, 1.5rem);z-index:1}.icon-external{background:var(--lux-input-icon-external, url(/assets/img/external.svg) no-repeat center);background-size:1rem;background-position-y:.1rem;height:100%}.invisible{opacity:0}.transparency{background-image:conic-gradient(white 0deg 90deg,lightgray 90deg 180deg,white 180deg 270deg,lightgray 270deg 360deg)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
3422
3532
|
}
|
|
3423
|
-
|
|
3424
|
-
InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InputComponent, deps: [{ token: RegexpService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3425
|
-
InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InputComponent, selector: "lux-input", inputs: { rows: "rows", cols: "cols", step: "step", min: "min", max: "max", lang: "lang", inlineErrors: "inlineErrors", inputId: "inputId", ariaLabel: ["aria-label", "ariaLabel"], readonly: "readonly", disabled: "disabled", pattern: "pattern", currency: "currency", placeholder: "placeholder", required: "required", type: "type", value: "value" }, outputs: { valueChange: "valueChange", keyPress: "keyPress" }, providers: [
|
|
3426
|
-
{
|
|
3427
|
-
provide: NG_VALUE_ACCESSOR,
|
|
3428
|
-
multi: true,
|
|
3429
|
-
useExisting: forwardRef(() => InputComponent)
|
|
3430
|
-
},
|
|
3431
|
-
{
|
|
3432
|
-
provide: NG_VALIDATORS,
|
|
3433
|
-
multi: true,
|
|
3434
|
-
useExisting: forwardRef(() => InputComponent)
|
|
3435
|
-
}
|
|
3436
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }, { propertyName: "colorpicker", first: true, predicate: ["colorpicker"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"currency && currency === 'USD'\" class=\"prefix rounded-left symbol\" [ngClass]=\"className\">\n <span>$</span>\n</div>\n<input\n #input\n *ngIf=\"type !== 'textarea'\"\n [class]=\"hasPrefix() ? (hasPostfix() ? 'infix' : 'postfix rounded-right') : (hasPostfix() ? 'prefix rounded-left' : 'rounded')\"\n [ngClass]=\"className\"\n placement=\"top\"\n [id]=\"inputId\"\n [type]=\"domain\"\n [attr.value]=\"value\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [attr.min]=\"min?.toString() || undefined\"\n [attr.max]=\"max?.toString() || undefined\"\n [attr.step]=\"step?.toString() || undefined\"\n [attr.pattern]=\"pattern || undefined\"\n [placeholder]=\"placeholder\"\n (keyup)=\"onKeyUp(input.value)\"\n (change)=\"onChangeValue(input.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<textarea\n #textarea\n *ngIf=\"type === 'textarea'\"\n class=\"rounded\"\n [ngClass]=\"className\"\n placement=\"top\"\n [id]=\"inputId\"\n [attr.value]=\"value\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [attr.cols]=\"cols?.toString() || undefined\"\n [attr.rows]=\"rows?.toString() || undefined\"\n [placeholder]=\"placeholder\"\n (keyup)=\"onKeyUp(textarea.value)\"\n (change)=\"onChangeValue(textarea.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n></textarea>\n<div *ngIf=\"currency && currency === 'EUR'\" class=\"postfix rounded-right symbol\" [ngClass]=\"className\">\n <span>\u20AC</span>\n</div>\n<div *ngIf=\"isPercentage()\" class=\"postfix rounded-right symbol\" [ngClass]=\"className\">\n <span>%</span>\n</div>\n<div *ngIf=\"isPermillage()\" class=\"postfix rounded-right symbol\" [ngClass]=\"className\">\n <span>\u2030</span>\n</div>\n<div *ngIf=\"isUrl() && !!value\" class=\"postfix rounded-right symbol clickable\" [ngClass]=\"className\">\n <a href=\"{{ value }}\" target=\"_blank\">\n <span class=\"icon-external\"></span>\n </a>\n</div>\n<div *ngIf=\"isColor()\" class=\"postfix rounded-right bordered transparency\" [ngClass]=\"className\">\n <div class=\"rounded-right full-space\" [ngStyle]=\"{'background-color': color}\">\n <input\n #colorpicker\n class=\"minimal-space clickable invisible rounded-right full-space\"\n [id]=\"inputId + '$colorpicker'\"\n type=\"color\"\n [attr.value]=\"value\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n (change)=\"onColorPicked(colorpicker.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n />\n </div>\n</div>\n\n<div *ngIf=\"inlineErrors && lastErrors && (dirty || touched)\" class=\"alert\">\n <div *ngIf=\"lastErrors.required\">\n {{ userErrors[this.lang].required }}\n </div>\n <div *ngIf=\"lastErrors.email\">{{ userErrors[this.lang].email }}</div>\n <div *ngIf=\"lastErrors.url\">{{ userErrors[this.lang].url }}</div>\n <div *ngIf=\"lastErrors.min\">\n {{ userErrors[this.lang].min.replace('$min', lastErrors.min.min) }}\n </div>\n <div *ngIf=\"lastErrors.max\">\n {{ userErrors[this.lang].max.replace('$max', lastErrors.max.max) }}\n </div>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}:host{display:flex;align-items:stretch;min-height:1.5rem}input[type=color]{min-height:100%;height:0}.readonly{border:none}.readonly:focus{border:none;outline:none}.disabled{background-color:var(--lux-disabled-color, #f1f1f1);border-color:var(--lux-disabled-border-color, #6d6d6d)}.clickable{cursor:pointer}.full-space{width:100%;height:100%;margin:0;border:0;padding:0}.minimal-space,.icon,.icon-external{min-width:1rem;min-height:1rem}.icon,.icon-external{display:inline-block;background-size:1rem 1rem;background-position:center;background-repeat:no-repeat;width:var(--lux-autocomplete-icon-width, 1.5rem);z-index:1}.icon-external{background:var(--lux-input-icon-external, url(/assets/img/external.svg) no-repeat center);background-size:1rem;background-position-y:.1rem;height:100%}.invisible{opacity:0}.transparency{background-image:conic-gradient(white 0deg 90deg,lightgray 90deg 180deg,white 180deg 270deg,lightgray 270deg 360deg)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
3437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InputComponent, decorators: [{
|
|
3533
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputComponent, decorators: [{
|
|
3438
3534
|
type: Component,
|
|
3439
3535
|
args: [{ selector: 'lux-input', providers: [
|
|
3440
3536
|
{
|
|
@@ -3510,13 +3606,14 @@ var Placement;
|
|
|
3510
3606
|
* Default Tooltip Component
|
|
3511
3607
|
*/
|
|
3512
3608
|
class TooltipComponent {
|
|
3609
|
+
context;
|
|
3513
3610
|
constructor() { }
|
|
3514
|
-
}
|
|
3515
|
-
|
|
3516
|
-
TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: TooltipComponent, selector: "ng-component", inputs: { context: "context" }, ngImport: i0, template: `
|
|
3611
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3612
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TooltipComponent, selector: "ng-component", inputs: { context: "context" }, ngImport: i0, template: `
|
|
3517
3613
|
<span class="lux-tooltip" style="transition: opacity 200ms">{{context.message}}</span>
|
|
3518
3614
|
`, isInline: true });
|
|
3519
|
-
|
|
3615
|
+
}
|
|
3616
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
3520
3617
|
type: Component,
|
|
3521
3618
|
args: [{
|
|
3522
3619
|
template: `
|
|
@@ -3528,6 +3625,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
3528
3625
|
}] } });
|
|
3529
3626
|
|
|
3530
3627
|
class TooltipContentRef {
|
|
3628
|
+
viewRef;
|
|
3629
|
+
componentRef;
|
|
3531
3630
|
constructor(viewRef, componentRef) {
|
|
3532
3631
|
this.viewRef = viewRef;
|
|
3533
3632
|
this.componentRef = componentRef;
|
|
@@ -3535,6 +3634,9 @@ class TooltipContentRef {
|
|
|
3535
3634
|
}
|
|
3536
3635
|
|
|
3537
3636
|
class TooltipService {
|
|
3637
|
+
_injector;
|
|
3638
|
+
_crf;
|
|
3639
|
+
_applicationRef;
|
|
3538
3640
|
constructor(_injector, _crf, _applicationRef) {
|
|
3539
3641
|
this._injector = _injector;
|
|
3540
3642
|
this._crf = _crf;
|
|
@@ -3656,10 +3758,10 @@ class TooltipService {
|
|
|
3656
3758
|
domElem.style.left = `${left}px`;
|
|
3657
3759
|
return domElem;
|
|
3658
3760
|
}
|
|
3761
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TooltipService, deps: [{ token: i0.Injector }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3762
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TooltipService });
|
|
3659
3763
|
}
|
|
3660
|
-
|
|
3661
|
-
TooltipService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TooltipService });
|
|
3662
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TooltipService, decorators: [{
|
|
3764
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TooltipService, decorators: [{
|
|
3663
3765
|
type: Injectable
|
|
3664
3766
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }]; } });
|
|
3665
3767
|
|
|
@@ -3667,6 +3769,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
3667
3769
|
* Tooltip directive
|
|
3668
3770
|
*/
|
|
3669
3771
|
class LuxTooltipDirective {
|
|
3772
|
+
elHost;
|
|
3773
|
+
tooltipService;
|
|
3774
|
+
/** Tooltip title */
|
|
3775
|
+
luxTooltip;
|
|
3776
|
+
/** Component, TemplateRef or String */
|
|
3777
|
+
content;
|
|
3778
|
+
/** Placement */
|
|
3779
|
+
placement;
|
|
3780
|
+
tooltipRef;
|
|
3670
3781
|
constructor(elHost, tooltipService) {
|
|
3671
3782
|
this.elHost = elHost;
|
|
3672
3783
|
this.tooltipService = tooltipService;
|
|
@@ -3694,10 +3805,10 @@ class LuxTooltipDirective {
|
|
|
3694
3805
|
remove(tooltipRef) {
|
|
3695
3806
|
this.tooltipService.removeComponentFromBody(tooltipRef);
|
|
3696
3807
|
}
|
|
3808
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxTooltipDirective, deps: [{ token: i0.ElementRef }, { token: TooltipService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3809
|
+
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 });
|
|
3697
3810
|
}
|
|
3698
|
-
|
|
3699
|
-
LuxTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: LuxTooltipDirective, selector: "[luxTooltip]", inputs: { luxTooltip: "luxTooltip", content: "content", placement: "placement" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "click": "onClick()" } }, ngImport: i0 });
|
|
3700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxTooltipDirective, decorators: [{
|
|
3811
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxTooltipDirective, decorators: [{
|
|
3701
3812
|
type: Directive,
|
|
3702
3813
|
args: [{
|
|
3703
3814
|
selector: '[luxTooltip]'
|
|
@@ -3720,6 +3831,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
3720
3831
|
}] } });
|
|
3721
3832
|
|
|
3722
3833
|
class PaginationComponent {
|
|
3834
|
+
literals = {
|
|
3835
|
+
en: {
|
|
3836
|
+
first: 'First',
|
|
3837
|
+
previous: 'Previous',
|
|
3838
|
+
next: 'Next',
|
|
3839
|
+
last: 'Last'
|
|
3840
|
+
},
|
|
3841
|
+
es: {
|
|
3842
|
+
first: 'Primero',
|
|
3843
|
+
previous: 'Anterior',
|
|
3844
|
+
next: 'Siguiente',
|
|
3845
|
+
last: 'Último'
|
|
3846
|
+
}
|
|
3847
|
+
};
|
|
3848
|
+
first;
|
|
3849
|
+
previous;
|
|
3850
|
+
next;
|
|
3851
|
+
last;
|
|
3852
|
+
showPagination = false;
|
|
3853
|
+
hidePrevious = false;
|
|
3854
|
+
lastPage = false;
|
|
3855
|
+
totalPages = 0;
|
|
3856
|
+
displayNextEllipsis = false;
|
|
3857
|
+
displayPreviousEllipsis = false;
|
|
3858
|
+
pages = [];
|
|
3859
|
+
goToPage = new EventEmitter();
|
|
3860
|
+
pageSizeChange = new EventEmitter();
|
|
3861
|
+
/** Current page, total items and items to show per page */
|
|
3862
|
+
paginationInfoValue;
|
|
3863
|
+
_lang;
|
|
3723
3864
|
set lang(l) {
|
|
3724
3865
|
if (l === this._lang) {
|
|
3725
3866
|
return;
|
|
@@ -3743,29 +3884,6 @@ class PaginationComponent {
|
|
|
3743
3884
|
return this.paginationInfoValue;
|
|
3744
3885
|
}
|
|
3745
3886
|
constructor() {
|
|
3746
|
-
this.literals = {
|
|
3747
|
-
en: {
|
|
3748
|
-
first: 'First',
|
|
3749
|
-
previous: 'Previous',
|
|
3750
|
-
next: 'Next',
|
|
3751
|
-
last: 'Last'
|
|
3752
|
-
},
|
|
3753
|
-
es: {
|
|
3754
|
-
first: 'Primero',
|
|
3755
|
-
previous: 'Anterior',
|
|
3756
|
-
next: 'Siguiente',
|
|
3757
|
-
last: 'Último'
|
|
3758
|
-
}
|
|
3759
|
-
};
|
|
3760
|
-
this.showPagination = false;
|
|
3761
|
-
this.hidePrevious = false;
|
|
3762
|
-
this.lastPage = false;
|
|
3763
|
-
this.totalPages = 0;
|
|
3764
|
-
this.displayNextEllipsis = false;
|
|
3765
|
-
this.displayPreviousEllipsis = false;
|
|
3766
|
-
this.pages = [];
|
|
3767
|
-
this.goToPage = new EventEmitter();
|
|
3768
|
-
this.pageSizeChange = new EventEmitter();
|
|
3769
3887
|
this.lang = languageDetector();
|
|
3770
3888
|
}
|
|
3771
3889
|
ngOnInit() {
|
|
@@ -3835,10 +3953,10 @@ class PaginationComponent {
|
|
|
3835
3953
|
this.next = l.next;
|
|
3836
3954
|
this.last = l.last;
|
|
3837
3955
|
}
|
|
3956
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3957
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: PaginationComponent, selector: "lux-pagination", inputs: { lang: "lang", paginationInfo: "paginationInfo" }, outputs: { goToPage: "goToPage", pageSizeChange: "pageSizeChange" }, ngImport: i0, template: "<div class=\"lux-pagination\" *ngIf=\"showPagination\">\n <ng-container *ngIf=\"!hidePrevious\">\n <a\n luxTooltip\n [content]=\"first\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onFirst()\"\n [ngClass]=\"{\n enabledFirstLast: !hidePrevious\n }\"\n class=\"button-pagination icon arrow-left-end\"\n ></a>\n <a\n luxTooltip\n [content]=\"previous\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onPrevious()\"\n [ngClass]=\"{\n enabledFirstLast: !hidePrevious\n }\"\n class=\"button-pagination icon arrow-left\"\n ></a>\n </ng-container>\n\n <span class=\"ellipsis\" *ngIf=\"displayPreviousEllipsis\">...</span>\n\n <ng-container *ngFor=\"let pageNum of pages\">\n <a\n placement=\"top\"\n delay=\"500\"\n [ngClass]=\"{\n disabled: pageNum === paginationInfo.page,\n enabled: pageNum !== paginationInfo.page\n }\"\n class=\"button-pagination\"\n (click)=\"onPage(pageNum)\"\n >{{ pageNum + 1 }}</a\n >\n </ng-container>\n\n <span class=\"ellipsis\" *ngIf=\"displayNextEllipsis\">...</span>\n\n <ng-container *ngIf=\"!lastPage\">\n <a\n luxTooltip\n [content]=\"next\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onNext()\"\n [ngClass]=\"{\n enabledFirstLast: !lastPage\n }\"\n class=\"button-pagination icon arrow-right\"\n ></a>\n <a\n luxTooltip\n [content]=\"last\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onLast()\"\n [ngClass]=\"{\n enabledFirstLast: !lastPage\n }\"\n class=\"button-pagination icon arrow-right-end\"\n ></a>\n </ng-container>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.lux-pagination{display:flex;flex-direction:row;margin:2% 0;width:100%;background:white;align-items:center}.disabled{cursor:not-allowed;border:var(--lux-pagination-disabled-border, 1px solid #325c81);border-radius:var(--lux-pagination-disabled-border-radius, 10%);padding:1%;margin:0 .7%;color:var(--lux-pagination-disabled-color, white);background-color:var(--lux-pagination-disabled-background-color, #325c81);text-decoration:none;pointer-events:none}.enabled{border:var(--lux-pagination-enabled-border, 1px solid rgb(207, 207, 207));border-radius:var(--lux-pagination-enabled-border-radius, 10%);padding:1%;margin:0 .7%;color:var(--lux-pagination-enabled-color, #325c81);width:min-content;cursor:pointer}.enabledFirstLast{border:1px solid rgb(207,207,207);border-radius:10%;padding:1%;color:#325c81;margin:0 .7%;width:min-content;cursor:pointer}.ellipsis{margin:0rem .5rem;padding:0rem;color:#325c81;width:min-content}.button-pagination{width:var(--lux-pagination-button-width, 1em);height:var(--lux-pagination-button-height, 1.2em);font-size:var(--lux-pagination-font-size, 80%);text-align:center}.icon{background-size:1.3em 1.4em;background-position:center;background-repeat:no-repeat}.arrow-right{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.4em}.arrow-left{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");transform:rotate(180deg);background-position:.4em}.arrow-right-end{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_3%22 points%3D%2241.8%2C45.7 30.4%2C44.3 50.8%2C24 30.4%2C3.7 41.8%2C2.3 63.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.1em}.arrow-left-end{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_3%22 points%3D%2241.8%2C45.7 30.4%2C44.3 50.8%2C24 30.4%2C3.7 41.8%2C2.3 63.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.1em;transform:rotate(180deg)}@media only screen and (min-width: 300px) and (max-width: 500px){.arrow-right,.arrow-left{background-position:.2em}.arrow-right-end,.arrow-left-end{background-position:0em}}@media only screen and (min-width: 500px) and (max-width: 850px){.arrow-right,.arrow-left{background-position:.3em}.arrow-right-end,.arrow-left-end{background-position:0em}}@media only screen and (min-width: 900px){.arrow-right,.arrow-left{background-position:.2em}.arrow-right-end,.arrow-left-end{background-position:0em}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LuxTooltipDirective, selector: "[luxTooltip]", inputs: ["luxTooltip", "content", "placement"] }] });
|
|
3838
3958
|
}
|
|
3839
|
-
|
|
3840
|
-
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: PaginationComponent, selector: "lux-pagination", inputs: { lang: "lang", paginationInfo: "paginationInfo" }, outputs: { goToPage: "goToPage", pageSizeChange: "pageSizeChange" }, ngImport: i0, template: "<div class=\"lux-pagination\" *ngIf=\"showPagination\">\n <ng-container *ngIf=\"!hidePrevious\">\n <a\n luxTooltip\n [content]=\"first\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onFirst()\"\n [ngClass]=\"{\n enabledFirstLast: !hidePrevious\n }\"\n class=\"button-pagination icon arrow-left-end\"\n ></a>\n <a\n luxTooltip\n [content]=\"previous\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onPrevious()\"\n [ngClass]=\"{\n enabledFirstLast: !hidePrevious\n }\"\n class=\"button-pagination icon arrow-left\"\n ></a>\n </ng-container>\n\n <span class=\"ellipsis\" *ngIf=\"displayPreviousEllipsis\">...</span>\n\n <ng-container *ngFor=\"let pageNum of pages\">\n <a\n placement=\"top\"\n delay=\"500\"\n [ngClass]=\"{\n disabled: pageNum === paginationInfo.page,\n enabled: pageNum !== paginationInfo.page\n }\"\n class=\"button-pagination\"\n (click)=\"onPage(pageNum)\"\n >{{ pageNum + 1 }}</a\n >\n </ng-container>\n\n <span class=\"ellipsis\" *ngIf=\"displayNextEllipsis\">...</span>\n\n <ng-container *ngIf=\"!lastPage\">\n <a\n luxTooltip\n [content]=\"next\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onNext()\"\n [ngClass]=\"{\n enabledFirstLast: !lastPage\n }\"\n class=\"button-pagination icon arrow-right\"\n ></a>\n <a\n luxTooltip\n [content]=\"last\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onLast()\"\n [ngClass]=\"{\n enabledFirstLast: !lastPage\n }\"\n class=\"button-pagination icon arrow-right-end\"\n ></a>\n </ng-container>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.lux-pagination{display:flex;flex-direction:row;margin:2% 0;width:100%;background:white;align-items:center}.disabled{cursor:not-allowed;border:var(--lux-pagination-disabled-border, 1px solid #325c81);border-radius:var(--lux-pagination-disabled-border-radius, 10%);padding:1%;margin:0 .7%;color:var(--lux-pagination-disabled-color, white);background-color:var(--lux-pagination-disabled-background-color, #325c81);text-decoration:none;pointer-events:none}.enabled{border:var(--lux-pagination-enabled-border, 1px solid rgb(207, 207, 207));border-radius:var(--lux-pagination-enabled-border-radius, 10%);padding:1%;margin:0 .7%;color:var(--lux-pagination-enabled-color, #325c81);width:min-content;cursor:pointer}.enabledFirstLast{border:1px solid rgb(207,207,207);border-radius:10%;padding:1%;color:#325c81;margin:0 .7%;width:min-content;cursor:pointer}.ellipsis{margin:0rem .5rem;padding:0rem;color:#325c81;width:min-content}.button-pagination{width:var(--lux-pagination-button-width, 1em);height:var(--lux-pagination-button-height, 1.2em);font-size:var(--lux-pagination-font-size, 80%);text-align:center}.icon{background-size:1.3em 1.4em;background-position:center;background-repeat:no-repeat}.arrow-right{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.4em}.arrow-left{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");transform:rotate(180deg);background-position:.4em}.arrow-right-end{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_3%22 points%3D%2241.8%2C45.7 30.4%2C44.3 50.8%2C24 30.4%2C3.7 41.8%2C2.3 63.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.1em}.arrow-left-end{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_3%22 points%3D%2241.8%2C45.7 30.4%2C44.3 50.8%2C24 30.4%2C3.7 41.8%2C2.3 63.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.1em;transform:rotate(180deg)}@media only screen and (min-width: 300px) and (max-width: 500px){.arrow-right,.arrow-left{background-position:.2em}.arrow-right-end,.arrow-left-end{background-position:0em}}@media only screen and (min-width: 500px) and (max-width: 850px){.arrow-right,.arrow-left{background-position:.3em}.arrow-right-end,.arrow-left-end{background-position:0em}}@media only screen and (min-width: 900px){.arrow-right,.arrow-left{background-position:.2em}.arrow-right-end,.arrow-left-end{background-position:0em}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LuxTooltipDirective, selector: "[luxTooltip]", inputs: ["luxTooltip", "content", "placement"] }] });
|
|
3841
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
3959
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
3842
3960
|
type: Component,
|
|
3843
3961
|
args: [{ selector: 'lux-pagination', template: "<div class=\"lux-pagination\" *ngIf=\"showPagination\">\n <ng-container *ngIf=\"!hidePrevious\">\n <a\n luxTooltip\n [content]=\"first\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onFirst()\"\n [ngClass]=\"{\n enabledFirstLast: !hidePrevious\n }\"\n class=\"button-pagination icon arrow-left-end\"\n ></a>\n <a\n luxTooltip\n [content]=\"previous\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onPrevious()\"\n [ngClass]=\"{\n enabledFirstLast: !hidePrevious\n }\"\n class=\"button-pagination icon arrow-left\"\n ></a>\n </ng-container>\n\n <span class=\"ellipsis\" *ngIf=\"displayPreviousEllipsis\">...</span>\n\n <ng-container *ngFor=\"let pageNum of pages\">\n <a\n placement=\"top\"\n delay=\"500\"\n [ngClass]=\"{\n disabled: pageNum === paginationInfo.page,\n enabled: pageNum !== paginationInfo.page\n }\"\n class=\"button-pagination\"\n (click)=\"onPage(pageNum)\"\n >{{ pageNum + 1 }}</a\n >\n </ng-container>\n\n <span class=\"ellipsis\" *ngIf=\"displayNextEllipsis\">...</span>\n\n <ng-container *ngIf=\"!lastPage\">\n <a\n luxTooltip\n [content]=\"next\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onNext()\"\n [ngClass]=\"{\n enabledFirstLast: !lastPage\n }\"\n class=\"button-pagination icon arrow-right\"\n ></a>\n <a\n luxTooltip\n [content]=\"last\"\n placement=\"top\"\n delay=\"500\"\n (click)=\"onLast()\"\n [ngClass]=\"{\n enabledFirstLast: !lastPage\n }\"\n class=\"button-pagination icon arrow-right-end\"\n ></a>\n </ng-container>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.lux-pagination{display:flex;flex-direction:row;margin:2% 0;width:100%;background:white;align-items:center}.disabled{cursor:not-allowed;border:var(--lux-pagination-disabled-border, 1px solid #325c81);border-radius:var(--lux-pagination-disabled-border-radius, 10%);padding:1%;margin:0 .7%;color:var(--lux-pagination-disabled-color, white);background-color:var(--lux-pagination-disabled-background-color, #325c81);text-decoration:none;pointer-events:none}.enabled{border:var(--lux-pagination-enabled-border, 1px solid rgb(207, 207, 207));border-radius:var(--lux-pagination-enabled-border-radius, 10%);padding:1%;margin:0 .7%;color:var(--lux-pagination-enabled-color, #325c81);width:min-content;cursor:pointer}.enabledFirstLast{border:1px solid rgb(207,207,207);border-radius:10%;padding:1%;color:#325c81;margin:0 .7%;width:min-content;cursor:pointer}.ellipsis{margin:0rem .5rem;padding:0rem;color:#325c81;width:min-content}.button-pagination{width:var(--lux-pagination-button-width, 1em);height:var(--lux-pagination-button-height, 1.2em);font-size:var(--lux-pagination-font-size, 80%);text-align:center}.icon{background-size:1.3em 1.4em;background-position:center;background-repeat:no-repeat}.arrow-right{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.4em}.arrow-left{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");transform:rotate(180deg);background-position:.4em}.arrow-right-end{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_3%22 points%3D%2241.8%2C45.7 30.4%2C44.3 50.8%2C24 30.4%2C3.7 41.8%2C2.3 63.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.1em}.arrow-left-end{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2268%22 height%3D%2248%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cg%3E %3Ctitle%3Ebackground%3C%2Ftitle%3E %3Crect fill%3D%22none%22 id%3D%22canvas_background%22 height%3D%22402%22 width%3D%221082%22 y%3D%22-1%22 x%3D%22-1%22%2F%3E %3C%2Fg%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_2%22 points%3D%2221.8%2C45.7 10.4%2C44.3 30.8%2C24 10.4%2C3.7 21.8%2C2.3 43.5%2C24 %22%2F%3E %3Cpolygon fill%3D%22%23325C81%22 id%3D%22svg_3%22 points%3D%2241.8%2C45.7 30.4%2C44.3 50.8%2C24 30.4%2C3.7 41.8%2C2.3 63.5%2C24 %22%2F%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-position:.1em;transform:rotate(180deg)}@media only screen and (min-width: 300px) and (max-width: 500px){.arrow-right,.arrow-left{background-position:.2em}.arrow-right-end,.arrow-left-end{background-position:0em}}@media only screen and (min-width: 500px) and (max-width: 850px){.arrow-right,.arrow-left{background-position:.3em}.arrow-right-end,.arrow-left-end{background-position:0em}}@media only screen and (min-width: 900px){.arrow-right,.arrow-left{background-position:.2em}.arrow-right-end,.arrow-left-end{background-position:0em}}\n"] }]
|
|
3844
3962
|
}], ctorParameters: function () { return []; }, propDecorators: { goToPage: [{
|
|
@@ -3852,6 +3970,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
3852
3970
|
}] } });
|
|
3853
3971
|
|
|
3854
3972
|
class RadiogroupComponent {
|
|
3973
|
+
touched = false;
|
|
3974
|
+
name = 'radiogroup1';
|
|
3975
|
+
disabled = false;
|
|
3976
|
+
readonly = false;
|
|
3977
|
+
required = false;
|
|
3855
3978
|
set items(col) {
|
|
3856
3979
|
this._items = (col || []).map((it, index) => this.ensureHasUniqueName(it, index));
|
|
3857
3980
|
this.itemsChange.emit(col);
|
|
@@ -3859,6 +3982,7 @@ class RadiogroupComponent {
|
|
|
3859
3982
|
get items() {
|
|
3860
3983
|
return this._items;
|
|
3861
3984
|
}
|
|
3985
|
+
itemsChange = new EventEmitter();
|
|
3862
3986
|
set value(v) {
|
|
3863
3987
|
if (v === this._value) {
|
|
3864
3988
|
return;
|
|
@@ -3873,20 +3997,13 @@ class RadiogroupComponent {
|
|
|
3873
3997
|
get value() {
|
|
3874
3998
|
return this._value;
|
|
3875
3999
|
}
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
this.valueChange = new EventEmitter();
|
|
3884
|
-
this._value = undefined;
|
|
3885
|
-
this._items = [];
|
|
3886
|
-
// ControlValueAccessor Interface
|
|
3887
|
-
this.onChange = (value) => { };
|
|
3888
|
-
this.onTouched = () => { };
|
|
3889
|
-
}
|
|
4000
|
+
valueChange = new EventEmitter();
|
|
4001
|
+
_value = undefined;
|
|
4002
|
+
_items = [];
|
|
4003
|
+
constructor() { }
|
|
4004
|
+
// ControlValueAccessor Interface
|
|
4005
|
+
onChange = (value) => { };
|
|
4006
|
+
onTouched = () => { };
|
|
3890
4007
|
writeValue(value) {
|
|
3891
4008
|
this.value = value;
|
|
3892
4009
|
}
|
|
@@ -3930,21 +4047,21 @@ class RadiogroupComponent {
|
|
|
3930
4047
|
}
|
|
3931
4048
|
return item;
|
|
3932
4049
|
}
|
|
4050
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RadiogroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4051
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: RadiogroupComponent, selector: "lux-radiogroup", inputs: { name: "name", disabled: "disabled", readonly: "readonly", required: "required", items: "items", value: "value" }, outputs: { itemsChange: "itemsChange", valueChange: "valueChange" }, providers: [
|
|
4052
|
+
{
|
|
4053
|
+
provide: NG_VALUE_ACCESSOR,
|
|
4054
|
+
multi: true,
|
|
4055
|
+
useExisting: forwardRef(() => RadiogroupComponent)
|
|
4056
|
+
},
|
|
4057
|
+
{
|
|
4058
|
+
provide: NG_VALIDATORS,
|
|
4059
|
+
multi: true,
|
|
4060
|
+
useExisting: forwardRef(() => RadiogroupComponent)
|
|
4061
|
+
}
|
|
4062
|
+
], ngImport: i0, template: "<div class=\"radiogroup\"\n [class.disabled]=\"disabled || readonly\"\n >\n <ng-container *ngFor=\"let item of items; let first=first; let last=last\">\n <div [class.radio-start]=\"first\"\n [class.radio-end]=\"last\"\n class=\"radio-item\"\n [class.selected]=\"item.value === value\"\n (click)=\"setValue($event, item)\"\n >\n <input [id]=\"item.name\"\n type=\"radio\"\n [name]=\"name\"\n [attr.disabled]=\"disabled || null\"\n [attr.readonly]=\"readonly || null\"\n [value]=\"item.value\">\n <label [for]=\"item.name\"\n class=\"unselectable\"\n >{{ item.label }}</label>\n </div>\n</ng-container>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.radiogroup{display:flex}.radio-item{border-radius:0;border:1px solid #ccc;padding:var(--lux-radiogroup-padding, 0rem .5rem)}.radio-item input{display:none}.radio-item label{color:var(--lux-radiogroup-color, initial);font-size:var(--lux-radiogroup-font-size, initial);margin-top:.3rem;margin-bottom:.3rem}.radio-item.selected{background-color:var(--lux-radiogroup-selected-background-color, rgb(46, 46, 172))}.radio-item.selected label{font-size:var(--lux-radiogroup-font-size, initial);color:var(--lux-radiogroup-selected-color, white)}.radio-start{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.radio-end{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.disabled .radio-item{background-color:#f0f0f0;color:#444}.disabled .selected{font-size:var(--lux-radiogroup-selected-disabled-font-size, initial);color:var(--lux-radiogroup-selected-disabled-color, white);background-color:var(--lux-radiogroup-selected-disabled-background-color, rgb(152, 152, 236))}.unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
3933
4063
|
}
|
|
3934
|
-
|
|
3935
|
-
RadiogroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: RadiogroupComponent, selector: "lux-radiogroup", inputs: { name: "name", disabled: "disabled", readonly: "readonly", required: "required", items: "items", value: "value" }, outputs: { itemsChange: "itemsChange", valueChange: "valueChange" }, providers: [
|
|
3936
|
-
{
|
|
3937
|
-
provide: NG_VALUE_ACCESSOR,
|
|
3938
|
-
multi: true,
|
|
3939
|
-
useExisting: forwardRef(() => RadiogroupComponent)
|
|
3940
|
-
},
|
|
3941
|
-
{
|
|
3942
|
-
provide: NG_VALIDATORS,
|
|
3943
|
-
multi: true,
|
|
3944
|
-
useExisting: forwardRef(() => RadiogroupComponent)
|
|
3945
|
-
}
|
|
3946
|
-
], ngImport: i0, template: "<div class=\"radiogroup\"\n [class.disabled]=\"disabled || readonly\"\n >\n <ng-container *ngFor=\"let item of items; let first=first; let last=last\">\n <div [class.radio-start]=\"first\"\n [class.radio-end]=\"last\"\n class=\"radio-item\"\n [class.selected]=\"item.value === value\"\n (click)=\"setValue($event, item)\"\n >\n <input [id]=\"item.name\"\n type=\"radio\"\n [name]=\"name\"\n [attr.disabled]=\"disabled || null\"\n [attr.readonly]=\"readonly || null\"\n [value]=\"item.value\">\n <label [for]=\"item.name\"\n class=\"unselectable\"\n >{{ item.label }}</label>\n </div>\n</ng-container>\n</div>\n", styles: [":focus{z-index:1}input,select,textarea{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057);margin:var(--lux-input-margin, 0rem);padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:var(--lux-alert-background, #fe2e2e);color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0rem .5rem;margin-bottom:0;font-weight:400;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:var(--lux-symbol-background, default);font-size:var(--lux-symbol-font-size, 1rem)}.bordered,.symbol{border:var(--lux-input-border, 1px solid) var(--lux-input-border-color, #495057)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:var(--lux-border-radius, .25rem)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none;display:flex;align-items:center}.monospace{font-family:monospace}.default-font{color:var(--lux-font-color, black)}.radiogroup{display:flex}.radio-item{border-radius:0;border:1px solid #ccc;padding:var(--lux-radiogroup-padding, 0rem .5rem)}.radio-item input{display:none}.radio-item label{color:var(--lux-radiogroup-color, initial);font-size:var(--lux-radiogroup-font-size, initial);margin-top:.3rem;margin-bottom:.3rem}.radio-item.selected{background-color:var(--lux-radiogroup-selected-background-color, rgb(46, 46, 172))}.radio-item.selected label{font-size:var(--lux-radiogroup-font-size, initial);color:var(--lux-radiogroup-selected-color, white)}.radio-start{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.radio-end{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.disabled .radio-item{background-color:#f0f0f0;color:#444}.disabled .selected{font-size:var(--lux-radiogroup-selected-disabled-font-size, initial);color:var(--lux-radiogroup-selected-disabled-color, white);background-color:var(--lux-radiogroup-selected-disabled-background-color, rgb(152, 152, 236))}.unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
3947
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: RadiogroupComponent, decorators: [{
|
|
4064
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: RadiogroupComponent, decorators: [{
|
|
3948
4065
|
type: Component,
|
|
3949
4066
|
args: [{ selector: 'lux-radiogroup', providers: [
|
|
3950
4067
|
{
|
|
@@ -3978,27 +4095,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
3978
4095
|
|
|
3979
4096
|
let sequencer = 0;
|
|
3980
4097
|
class SelectComponent {
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
}
|
|
4098
|
+
id = 'stringList' + sequencer++;
|
|
4099
|
+
disabled = false;
|
|
4100
|
+
required = false;
|
|
4101
|
+
/** Allow multiple elements */
|
|
4102
|
+
multiple = true;
|
|
4103
|
+
value = [];
|
|
4104
|
+
valueChange = new EventEmitter();
|
|
4105
|
+
placeholder = 'Add new';
|
|
4106
|
+
/** If set, check there is no duplicates in the data. */
|
|
4107
|
+
unique = true;
|
|
4108
|
+
/** Validation function for new items. Returns error or null if valid */
|
|
4109
|
+
validateItem = (_) => null;
|
|
4110
|
+
newEntry = '';
|
|
4111
|
+
error = null;
|
|
4112
|
+
isValidNewEntry = false;
|
|
4113
|
+
touched = false;
|
|
4114
|
+
constructor() { }
|
|
4115
|
+
// ControlValueAccessor Interface
|
|
4116
|
+
onChange = (value) => { };
|
|
4117
|
+
onTouched = () => { };
|
|
4002
4118
|
writeValue(value) {
|
|
4003
4119
|
this.value = value;
|
|
4004
4120
|
}
|
|
@@ -4072,21 +4188,21 @@ class SelectComponent {
|
|
|
4072
4188
|
this.error = this.validateItem(newValue);
|
|
4073
4189
|
this.isValidNewEntry = !this.error;
|
|
4074
4190
|
}
|
|
4191
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4192
|
+
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: [
|
|
4193
|
+
{
|
|
4194
|
+
provide: NG_VALUE_ACCESSOR,
|
|
4195
|
+
multi: true,
|
|
4196
|
+
useExisting: forwardRef(() => SelectComponent)
|
|
4197
|
+
},
|
|
4198
|
+
{
|
|
4199
|
+
provide: NG_VALIDATORS,
|
|
4200
|
+
multi: true,
|
|
4201
|
+
useExisting: forwardRef(() => SelectComponent)
|
|
4202
|
+
}
|
|
4203
|
+
], 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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: 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"] }] });
|
|
4075
4204
|
}
|
|
4076
|
-
|
|
4077
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.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: [
|
|
4078
|
-
{
|
|
4079
|
-
provide: NG_VALUE_ACCESSOR,
|
|
4080
|
-
multi: true,
|
|
4081
|
-
useExisting: forwardRef(() => SelectComponent)
|
|
4082
|
-
},
|
|
4083
|
-
{
|
|
4084
|
-
provide: NG_VALIDATORS,
|
|
4085
|
-
multi: true,
|
|
4086
|
-
useExisting: forwardRef(() => SelectComponent)
|
|
4087
|
-
}
|
|
4088
|
-
], 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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: 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"] }] });
|
|
4089
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: SelectComponent, decorators: [{
|
|
4205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: SelectComponent, decorators: [{
|
|
4090
4206
|
type: Component,
|
|
4091
4207
|
args: [{ selector: 'lux-select', providers: [
|
|
4092
4208
|
{
|
|
@@ -4121,10 +4237,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
4121
4237
|
}] } });
|
|
4122
4238
|
|
|
4123
4239
|
class VoiceRecognitionDirective {
|
|
4240
|
+
el;
|
|
4241
|
+
renderer;
|
|
4242
|
+
language;
|
|
4243
|
+
// See API at: https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition
|
|
4244
|
+
recognition;
|
|
4245
|
+
isRecognizing = false;
|
|
4246
|
+
mic;
|
|
4124
4247
|
constructor(el, renderer) {
|
|
4125
4248
|
this.el = el;
|
|
4126
4249
|
this.renderer = renderer;
|
|
4127
|
-
this.isRecognizing = false;
|
|
4128
4250
|
const speechRecognition = window.webkitSpeechRecognition;
|
|
4129
4251
|
if (speechRecognition) {
|
|
4130
4252
|
this.recognition = new speechRecognition();
|
|
@@ -4167,10 +4289,10 @@ class VoiceRecognitionDirective {
|
|
|
4167
4289
|
this.el.nativeElement.value = recognizedText;
|
|
4168
4290
|
this.renderer.removeClass(this.mic, 'lux-recording');
|
|
4169
4291
|
}
|
|
4292
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: VoiceRecognitionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4293
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: VoiceRecognitionDirective, selector: "[luxVoiceRecognition]", inputs: { language: "language" }, ngImport: i0 });
|
|
4170
4294
|
}
|
|
4171
|
-
|
|
4172
|
-
VoiceRecognitionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: VoiceRecognitionDirective, selector: "[luxVoiceRecognition]", inputs: { language: "language" }, ngImport: i0 });
|
|
4173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: VoiceRecognitionDirective, decorators: [{
|
|
4295
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: VoiceRecognitionDirective, decorators: [{
|
|
4174
4296
|
type: Directive,
|
|
4175
4297
|
args: [{
|
|
4176
4298
|
selector: '[luxVoiceRecognition]'
|
|
@@ -4236,49 +4358,49 @@ const WINDOW_PROVIDERS = [
|
|
|
4236
4358
|
];
|
|
4237
4359
|
|
|
4238
4360
|
class LuxModule {
|
|
4361
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4362
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: LuxModule, declarations: [AutocompleteComponent,
|
|
4363
|
+
AutocompleteListComponent,
|
|
4364
|
+
FilterComponent,
|
|
4365
|
+
CheckboxComponent,
|
|
4366
|
+
DatetimeComponent,
|
|
4367
|
+
InputComponent,
|
|
4368
|
+
GeolocationComponent,
|
|
4369
|
+
LuxTooltipDirective,
|
|
4370
|
+
LuxModalWindowComponent,
|
|
4371
|
+
LuxModalBackdropComponent,
|
|
4372
|
+
LuxBreadcrumbComponent,
|
|
4373
|
+
MapComponent,
|
|
4374
|
+
SelectComponent,
|
|
4375
|
+
TooltipComponent,
|
|
4376
|
+
PaginationComponent,
|
|
4377
|
+
RadiogroupComponent,
|
|
4378
|
+
VoiceRecognitionDirective], imports: [FormsModule,
|
|
4379
|
+
HttpClientModule,
|
|
4380
|
+
ReactiveFormsModule,
|
|
4381
|
+
RouterModule,
|
|
4382
|
+
CommonModule], exports: [AutocompleteComponent,
|
|
4383
|
+
AutocompleteListComponent,
|
|
4384
|
+
FilterComponent,
|
|
4385
|
+
CheckboxComponent,
|
|
4386
|
+
DatetimeComponent,
|
|
4387
|
+
InputComponent,
|
|
4388
|
+
GeolocationComponent,
|
|
4389
|
+
LuxTooltipDirective,
|
|
4390
|
+
LuxBreadcrumbComponent,
|
|
4391
|
+
LuxBreadcrumbComponent,
|
|
4392
|
+
MapComponent,
|
|
4393
|
+
SelectComponent,
|
|
4394
|
+
PaginationComponent,
|
|
4395
|
+
RadiogroupComponent,
|
|
4396
|
+
VoiceRecognitionDirective] });
|
|
4397
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModule, providers: [ModalService, TooltipService, WINDOW_PROVIDERS], imports: [FormsModule,
|
|
4398
|
+
HttpClientModule,
|
|
4399
|
+
ReactiveFormsModule,
|
|
4400
|
+
RouterModule,
|
|
4401
|
+
CommonModule] });
|
|
4239
4402
|
}
|
|
4240
|
-
|
|
4241
|
-
LuxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: LuxModule, declarations: [AutocompleteComponent,
|
|
4242
|
-
AutocompleteListComponent,
|
|
4243
|
-
FilterComponent,
|
|
4244
|
-
CheckboxComponent,
|
|
4245
|
-
DatetimeComponent,
|
|
4246
|
-
InputComponent,
|
|
4247
|
-
GeolocationComponent,
|
|
4248
|
-
LuxTooltipDirective,
|
|
4249
|
-
LuxModalWindowComponent,
|
|
4250
|
-
LuxModalBackdropComponent,
|
|
4251
|
-
LuxBreadcrumbComponent,
|
|
4252
|
-
MapComponent,
|
|
4253
|
-
SelectComponent,
|
|
4254
|
-
TooltipComponent,
|
|
4255
|
-
PaginationComponent,
|
|
4256
|
-
RadiogroupComponent,
|
|
4257
|
-
VoiceRecognitionDirective], imports: [FormsModule,
|
|
4258
|
-
HttpClientModule,
|
|
4259
|
-
ReactiveFormsModule,
|
|
4260
|
-
RouterModule,
|
|
4261
|
-
CommonModule], exports: [AutocompleteComponent,
|
|
4262
|
-
AutocompleteListComponent,
|
|
4263
|
-
FilterComponent,
|
|
4264
|
-
CheckboxComponent,
|
|
4265
|
-
DatetimeComponent,
|
|
4266
|
-
InputComponent,
|
|
4267
|
-
GeolocationComponent,
|
|
4268
|
-
LuxTooltipDirective,
|
|
4269
|
-
LuxBreadcrumbComponent,
|
|
4270
|
-
LuxBreadcrumbComponent,
|
|
4271
|
-
MapComponent,
|
|
4272
|
-
SelectComponent,
|
|
4273
|
-
PaginationComponent,
|
|
4274
|
-
RadiogroupComponent,
|
|
4275
|
-
VoiceRecognitionDirective] });
|
|
4276
|
-
LuxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxModule, providers: [ModalService, TooltipService, WINDOW_PROVIDERS], imports: [FormsModule,
|
|
4277
|
-
HttpClientModule,
|
|
4278
|
-
ReactiveFormsModule,
|
|
4279
|
-
RouterModule,
|
|
4280
|
-
CommonModule] });
|
|
4281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxModule, decorators: [{
|
|
4403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LuxModule, decorators: [{
|
|
4282
4404
|
type: NgModule,
|
|
4283
4405
|
args: [{
|
|
4284
4406
|
declarations: [
|
|
@@ -4300,11 +4422,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
4300
4422
|
RadiogroupComponent,
|
|
4301
4423
|
VoiceRecognitionDirective
|
|
4302
4424
|
],
|
|
4303
|
-
entryComponents: [
|
|
4304
|
-
LuxModalWindowComponent,
|
|
4305
|
-
LuxModalBackdropComponent,
|
|
4306
|
-
TooltipComponent
|
|
4307
|
-
],
|
|
4308
4425
|
providers: [ModalService, TooltipService, WINDOW_PROVIDERS],
|
|
4309
4426
|
imports: [
|
|
4310
4427
|
FormsModule,
|