@lucca-front/ng 8.0.0-alpha.3 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/department/lib/select/input/department-select-input.translate.mjs +4 -1
- package/esm2020/option/lib/placeholder/option-placeholder.translate.mjs +5 -1
- package/esm2020/user/lib/select/input/user-select-input.component.mjs +5 -4
- package/esm2020/user/lib/select/me/me-option.directive.mjs +23 -9
- package/esm2020/user/lib/select/searcher/user-searcher.component.mjs +11 -7
- package/fesm2015/lucca-front-ng-department.mjs +3 -0
- package/fesm2015/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-option.mjs +4 -0
- package/fesm2015/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-user.mjs +34 -17
- package/fesm2015/lucca-front-ng-user.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-department.mjs +3 -0
- package/fesm2020/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-option.mjs +4 -0
- package/fesm2020/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-user.mjs +34 -17
- package/fesm2020/lucca-front-ng-user.mjs.map +1 -1
- package/package.json +1 -1
- package/user/lib/select/input/user-select-input.component.d.ts +1 -0
- package/user/lib/select/me/me-option.directive.d.ts +9 -5
- package/user/lib/select/searcher/user-searcher.component.d.ts +2 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, NgModule, Component, ChangeDetectionStrategy, Input, InjectionToken, LOCALE_ID, Injectable, Inject, forwardRef, ElementRef, Optional, SkipSelf, Self, HostBinding, ViewChild, Directive } from '@angular/core';
|
|
2
|
+
import { Pipe, NgModule, Component, ChangeDetectionStrategy, Input, InjectionToken, LOCALE_ID, Injectable, Inject, forwardRef, ElementRef, Optional, SkipSelf, Self, HostBinding, ViewChild, Output, Directive } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2$1 from '@angular/forms';
|
|
6
|
-
import {
|
|
6
|
+
import { FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
7
7
|
import { ALuSelectInputComponent } from '@lucca-front/ng/select';
|
|
8
8
|
import { ALuIntl, ALuOnOpenSubscriber, ALuOnCloseSubscriber, ALuOnScrollBottomSubscriber } from '@lucca-front/ng/core';
|
|
9
9
|
import * as i1$1 from '@angular/cdk/overlay';
|
|
@@ -366,6 +366,12 @@ class LuUserPagedSearcherComponent {
|
|
|
366
366
|
this._page$ = new Subject();
|
|
367
367
|
this._options = [];
|
|
368
368
|
this._service = (hostService || selfService);
|
|
369
|
+
const clue = new FormControl('');
|
|
370
|
+
this.form = new FormGroup({
|
|
371
|
+
clue,
|
|
372
|
+
formerEmployees: new FormControl(false),
|
|
373
|
+
});
|
|
374
|
+
this.clueChange = clue.valueChanges;
|
|
369
375
|
}
|
|
370
376
|
set fields(fields) { this._service.fields = fields; }
|
|
371
377
|
set filters(filters) { this._service.filters = filters; }
|
|
@@ -373,10 +379,6 @@ class LuUserPagedSearcherComponent {
|
|
|
373
379
|
set appInstanceId(appInstanceId) { this._service.appInstanceId = appInstanceId; }
|
|
374
380
|
set operations(operations) { this._service.operations = operations; }
|
|
375
381
|
ngOnInit() {
|
|
376
|
-
this.form = new FormGroup({
|
|
377
|
-
clue: new FormControl(''),
|
|
378
|
-
formerEmployees: new FormControl(false),
|
|
379
|
-
});
|
|
380
382
|
const formValue$ = this.form.valueChanges.pipe(startWith(this.form.value));
|
|
381
383
|
const pager$ = this._page$.pipe(scan(acc => acc + 1, 0), startWith(0));
|
|
382
384
|
const query$ = combineLatest([
|
|
@@ -431,7 +433,7 @@ class LuUserPagedSearcherComponent {
|
|
|
431
433
|
}
|
|
432
434
|
}
|
|
433
435
|
LuUserPagedSearcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LuUserPagedSearcherComponent, deps: [{ token: ALuUserService, optional: true, skipSelf: true }, { token: ALuUserService, self: true }, { token: LuUserSearcherIntl }], target: i0.ɵɵFactoryTarget.Component });
|
|
434
|
-
LuUserPagedSearcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: LuUserPagedSearcherComponent, selector: "lu-user-paged-searcher", inputs: { fields: "fields", filters: "filters", orderBy: "orderBy", appInstanceId: "appInstanceId", operations: "operations", enableFormerEmployees: "enableFormerEmployees" }, host: { properties: { "class.position-fixed": "this.fixed" } }, providers: [
|
|
436
|
+
LuUserPagedSearcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: LuUserPagedSearcherComponent, selector: "lu-user-paged-searcher", inputs: { fields: "fields", filters: "filters", orderBy: "orderBy", appInstanceId: "appInstanceId", operations: "operations", enableFormerEmployees: "enableFormerEmployees" }, outputs: { clueChange: "clueChange" }, host: { properties: { "class.position-fixed": "this.fixed" } }, providers: [
|
|
435
437
|
{
|
|
436
438
|
provide: ALuOptionOperator,
|
|
437
439
|
useExisting: forwardRef(() => LuUserPagedSearcherComponent),
|
|
@@ -520,6 +522,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
|
520
522
|
type: Input
|
|
521
523
|
}], enableFormerEmployees: [{
|
|
522
524
|
type: Input
|
|
525
|
+
}], clueChange: [{
|
|
526
|
+
type: Output
|
|
523
527
|
}] } });
|
|
524
528
|
|
|
525
529
|
class ALuUserHomonymsService {
|
|
@@ -631,17 +635,21 @@ class LuUserMeOptionDirective {
|
|
|
631
635
|
this._vcr = _vcr;
|
|
632
636
|
this._templateRef = _templateRef;
|
|
633
637
|
this.me = undefined;
|
|
634
|
-
this.meDisplayed = false;
|
|
638
|
+
this.meDisplayed$ = new BehaviorSubject(false);
|
|
635
639
|
this._service = (hostService || selfService);
|
|
636
640
|
}
|
|
637
|
-
set inOptions$(in$) {
|
|
638
|
-
this.outOptions$ = in$;
|
|
639
|
-
}
|
|
640
641
|
set luUserMeOptionFields(fields) { this._service.fields = fields; }
|
|
641
642
|
set luUserMeOptionFilters(filters) { this._service.filters = filters; }
|
|
642
643
|
set luUserMeOptionOrderBy(orderBy) { this._service.orderBy = orderBy; }
|
|
643
644
|
set luUserMeOptionAppInstanceId(appInstanceId) { this._service.appInstanceId = appInstanceId; }
|
|
644
645
|
set luUserMeOptionOperations(operations) { this._service.operations = operations; }
|
|
646
|
+
set luUserMeOptionClue(clue) { clue ? this.hideMe() : this.displayMe(); }
|
|
647
|
+
set inOptions$(in$) {
|
|
648
|
+
this.outOptions$ = combineLatest([in$, this.meDisplayed$])
|
|
649
|
+
.pipe(map(([options, meDisplayed]) => meDisplayed
|
|
650
|
+
? options === null || options === void 0 ? void 0 : options.filter(o => { var _a; return o.id !== ((_a = this.me) === null || _a === void 0 ? void 0 : _a.id); })
|
|
651
|
+
: options));
|
|
652
|
+
}
|
|
645
653
|
onOpen() {
|
|
646
654
|
this._service.getMe().subscribe(me => {
|
|
647
655
|
this.me = me;
|
|
@@ -649,14 +657,20 @@ class LuUserMeOptionDirective {
|
|
|
649
657
|
});
|
|
650
658
|
}
|
|
651
659
|
displayMe() {
|
|
652
|
-
if (this.me && !this.meDisplayed) {
|
|
653
|
-
this.meDisplayed
|
|
654
|
-
this._vcr.createEmbeddedView(this._templateRef, { $implicit: this.me });
|
|
660
|
+
if (this.me && !this.meDisplayed$.value) {
|
|
661
|
+
this.meDisplayed$.next(true);
|
|
662
|
+
this._viewRef = this._vcr.createEmbeddedView(this._templateRef, { $implicit: this.me });
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
hideMe() {
|
|
666
|
+
if (this.me && this.meDisplayed$.value && this._viewRef) {
|
|
667
|
+
this.meDisplayed$.next(false);
|
|
668
|
+
this._viewRef.destroy();
|
|
655
669
|
}
|
|
656
670
|
}
|
|
657
671
|
}
|
|
658
672
|
LuUserMeOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LuUserMeOptionDirective, deps: [{ token: ALuUserService, optional: true, skipSelf: true }, { token: ALuUserService, self: true }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
659
|
-
LuUserMeOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: LuUserMeOptionDirective, selector: "[luUserMeOption]", inputs: { luUserMeOptionFields: "luUserMeOptionFields", luUserMeOptionFilters: "luUserMeOptionFilters", luUserMeOptionOrderBy: "luUserMeOptionOrderBy", luUserMeOptionAppInstanceId: "luUserMeOptionAppInstanceId", luUserMeOptionOperations: "luUserMeOptionOperations" }, providers: [
|
|
673
|
+
LuUserMeOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: LuUserMeOptionDirective, selector: "[luUserMeOption]", inputs: { luUserMeOptionFields: "luUserMeOptionFields", luUserMeOptionFilters: "luUserMeOptionFilters", luUserMeOptionOrderBy: "luUserMeOptionOrderBy", luUserMeOptionAppInstanceId: "luUserMeOptionAppInstanceId", luUserMeOptionOperations: "luUserMeOptionOperations", luUserMeOptionClue: "luUserMeOptionClue" }, providers: [
|
|
660
674
|
{
|
|
661
675
|
provide: ALuOptionOperator,
|
|
662
676
|
useExisting: forwardRef(() => LuUserMeOptionDirective),
|
|
@@ -717,6 +731,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
|
717
731
|
type: Input
|
|
718
732
|
}], luUserMeOptionOperations: [{
|
|
719
733
|
type: Input
|
|
734
|
+
}], luUserMeOptionClue: [{
|
|
735
|
+
type: Input
|
|
720
736
|
}] } });
|
|
721
737
|
|
|
722
738
|
/**
|
|
@@ -733,6 +749,7 @@ class LuUserSelectInputComponent extends ALuSelectInputComponent {
|
|
|
733
749
|
this.intl = intl;
|
|
734
750
|
this.searchFormat = LuDisplayFullname.lastfirst;
|
|
735
751
|
this.enableFormerEmployees = false;
|
|
752
|
+
this.clue = '';
|
|
736
753
|
this.byId = (option1, option2) => option1 && option2 && option1.id === option2.id;
|
|
737
754
|
}
|
|
738
755
|
set inputPlaceholder(p) { this._placeholder = p; }
|
|
@@ -744,7 +761,7 @@ LuUserSelectInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
744
761
|
useExisting: forwardRef(() => LuUserSelectInputComponent),
|
|
745
762
|
multi: true,
|
|
746
763
|
},
|
|
747
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container #display></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<lu-input-clearer></lu-input-clearer>\r\n</div>\r\n<ng-template luDisplayer [luDisplayerMultiple]=\"true\" let-values>\r\n\t<span *ngIf=\"multiple && values?.length > 1; else: singleView\"><span class=\"chip mod-unkillable\">{{values.length}}</span> {{intl.users}}</span>\r\n\t<ng-template #singleView>{{(values[0] || values) | luUserDisplay}}</ng-template>\r\n</ng-template>\r\n<lu-option-picker-advanced [option-comparer]=\"byId\">\r\n\t<header class=\"lu-picker-header\">\r\n\t\t<lu-user-paged-searcher\r\n\t\t\t[fields]=\"fields\"\r\n\t\t\t[filters]=\"filters\"\r\n\t\t\t[orderBy]=\"orderBy\"\r\n\t\t\t[appInstanceId]=\"appInstanceId\"\r\n\t\t\t[operations]=\"operations\"\r\n\t\t\t[enableFormerEmployees]=\"enableFormerEmployees\"\r\n\t\t></lu-user-paged-searcher>\r\n\t</header>\r\n\t<lu-user-homonyms></lu-user-homonyms>\r\n\t<lu-option\r\n\t\t*luUserMeOption=\"let user; fields: fields; filters: filters; orderBy: orderBy; appInstanceId: appInstanceId; operations: operations\"\r\n\t\t[value]=\"user\"\r\n\t>\r\n\t\t<div><b>{{intl.me}} {{ user | luUserDisplay: searchFormat }}</b></div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n\r\n\t<lu-option *luForOptions=\"let user\" [value]=\"user\">\r\n\t\t<div>{{ user | luUserDisplay: searchFormat }}</div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n</lu-option-picker-advanced>\r\n", styles: [":host{cursor:pointer;outline:none;padding:0}:host:after{content:\"\\e97c\";font-family:\"Lucca icons\";display:inline-block;vertical-align:text-bottom;font-style:normal;bottom:.5rem;bottom:var(--components-select-input-padding-vertical);color:#485075;color:var(--palettes-primary-color);font-size:1.2rem;line-height:1.4rem;pointer-events:none;position:absolute;right:.5rem;right:var(--components-select-input-padding-horizontal)}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-placeholder{color:#929292;color:var(--components-select-input-placeholder)}.lu-select-value{line-height:1.5rem;line-height:var(--sizes-standard-line-height);min-height:calc(var(--spacings-small) + 1.5rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:.5rem 2.5rem .5rem .5rem;padding:var(--components-select-input-padding-vertical) 2.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all .25s ease;transition:all var(--commons-animations-durations-standard) ease;display:none}.lu-select-placeholder{line-height:1.5rem;line-height:var(--sizes-standard-line-height);min-height:calc(var(--spacings-small) + 1.5rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:.5rem 2.5rem .5rem .5rem;padding:var(--components-select-input-padding-vertical) 2.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all .25s ease;transition:all var(--commons-animations-durations-standard) ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix{position:absolute;bottom:.5rem;right:1.6rem}::ng-deep .lu-select-value .label{padding:.25rem .25rem .5rem .5rem;padding:var(--spacings-smallest) var(--spacings-smaller);margin-left:0}::ng-deep .lu-select-value .chip{background:#485075;background:var(--components-select-chip-background);color:#fff;color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:1.5rem;height:var(--sizes-standard-line-height);line-height:1.5rem;line-height:var(--sizes-standard-line-height);padding:0 .5rem;padding:0 var(--spacings-smaller);margin:0 .25rem .25rem 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-small) .lu-select-value,:host-context(.textfield.mod-small) .lu-select-placeholder{font-size:.875rem;font-size:var(--sizes-small-font-size);line-height:1rem;line-height:var(--sizes-small-line-height);min-height:calc(var(--spacings-small) + 1rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-small-line-height))}:host-context(.textfield.mod-small):after{line-height:1rem;line-height:var(--sizes-small-line-height)}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .label{font-size:.875rem;font-size:var(--sizes-small-font-size);line-height:1rem;line-height:var(--sizes-small-line-height);font-weight:600;margin:0;padding:0;background:transparent}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .chip{height:1rem;height:var(--sizes-small-line-height);line-height:1rem;line-height:var(--sizes-small-line-height)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--spacings-big) 0 0;padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:#96a6c5;color:var(--colors-text-light-color);bottom:var(--spacings-small);bottom:var(--components-select-framed-bottom-padding);right:.5rem;right:var(--spacings-smaller)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{padding:0 calc(var(--spacings-small) * 3) var(--spacings-small) var(--spacings-small);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--spacings-small);bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:1rem 0 0;height:auto;color:#2a3551;color:var(--colors-text-default-color)}:host-context(.textfield.mod-filter) .lu-select-suffix{bottom:.4rem}:host-context(.textfield.mod-material):after{color:#96a6c5;color:var(--colors-text-light-color);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:1rem;right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:1.375rem;right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple).mod-multipleView:not(.mod-singleLine) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple).mod-multipleView:not(.mod-singleLine) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:-.25rem}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:2.5rem}:host-context(.textfield-input.is-error):after{color:#e51a3b;color:var(--palettes-error-color)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:#ffe0e6;color:var(--palettes-error-200)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:#999;color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:#bbb;color:var(--commons-disabled-placeholder)}.lu-select-value{padding-right:2.5rem}.lu-select-additionalInformation{font-size:80%;font-style:italic;margin-top:-.25em}\n"], components: [{ type: i2$2.LuInputClearerComponent, selector: "lu-input-clearer", outputs: ["onClear"], exportAs: ["luClearer"] }, { type: i3.LuOptionPickerAdvancedComponent, selector: "lu-option-picker-advanced", exportAs: ["LuOptionPickerAdvanced"] }, { type: LuUserPagedSearcherComponent, selector: "lu-user-paged-searcher", inputs: ["fields", "filters", "orderBy", "appInstanceId", "operations", "enableFormerEmployees"] }, { type: LuUserHomonymsComponent, selector: "lu-user-homonyms" }, { type: i3.LuOptionItemComponent, selector: "lu-option", inputs: ["selected", "highlighted", "value"], outputs: ["onSelect"] }], directives: [{ type: i2$2.LuInputDisplayerDirective, selector: "[luDisplayer]", inputs: ["luDisplayerMultiple", "multiple"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: LuUserMeOptionDirective, selector: "[luUserMeOption]", inputs: ["luUserMeOptionFields", "luUserMeOptionFilters", "luUserMeOptionOrderBy", "luUserMeOptionAppInstanceId", "luUserMeOptionOperations"] }, { type: i3.LuForOptionsDirective, selector: "[luForOptions]", inputs: ["luForOptionsTrackBy"] }], pipes: { "luUserDisplay": LuUserDisplayPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
764
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container #display></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<lu-input-clearer></lu-input-clearer>\r\n</div>\r\n<ng-template luDisplayer [luDisplayerMultiple]=\"true\" let-values>\r\n\t<span *ngIf=\"multiple && values?.length > 1; else: singleView\"><span class=\"chip mod-unkillable\">{{values.length}}</span> {{intl.users}}</span>\r\n\t<ng-template #singleView>{{(values[0] || values) | luUserDisplay}}</ng-template>\r\n</ng-template>\r\n<lu-option-picker-advanced [option-comparer]=\"byId\">\r\n\t<header class=\"lu-picker-header\">\r\n\t\t<lu-user-paged-searcher\r\n\t\t\t[fields]=\"fields\"\r\n\t\t\t[filters]=\"filters\"\r\n\t\t\t[orderBy]=\"orderBy\"\r\n\t\t\t[appInstanceId]=\"appInstanceId\"\r\n\t\t\t[operations]=\"operations\"\r\n\t\t\t[enableFormerEmployees]=\"enableFormerEmployees\"\r\n\t\t\t(clueChange)=\"clue = $event\"\r\n\t\t></lu-user-paged-searcher>\r\n\t</header>\r\n\t<lu-user-homonyms></lu-user-homonyms>\r\n\t<lu-option\r\n\t\t*luUserMeOption=\"let user; fields: fields; filters: filters; orderBy: orderBy; appInstanceId: appInstanceId; operations: operations; clue: clue\"\r\n\t\t[value]=\"user\"\r\n\t>\r\n\t\t<div><b>{{intl.me}} {{ user | luUserDisplay: searchFormat }}</b></div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n\r\n\t<lu-option *luForOptions=\"let user\" [value]=\"user\">\r\n\t\t<div>{{ user | luUserDisplay: searchFormat }}</div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n</lu-option-picker-advanced>\r\n", styles: [":host{cursor:pointer;outline:none;padding:0}:host:after{content:\"\\e97c\";font-family:\"Lucca icons\";display:inline-block;vertical-align:text-bottom;font-style:normal;bottom:.5rem;bottom:var(--components-select-input-padding-vertical);color:#485075;color:var(--palettes-primary-color);font-size:1.2rem;line-height:1.4rem;pointer-events:none;position:absolute;right:.5rem;right:var(--components-select-input-padding-horizontal)}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-placeholder{color:#929292;color:var(--components-select-input-placeholder)}.lu-select-value{line-height:1.5rem;line-height:var(--sizes-standard-line-height);min-height:calc(var(--spacings-small) + 1.5rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:.5rem 2.5rem .5rem .5rem;padding:var(--components-select-input-padding-vertical) 2.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all .25s ease;transition:all var(--commons-animations-durations-standard) ease;display:none}.lu-select-placeholder{line-height:1.5rem;line-height:var(--sizes-standard-line-height);min-height:calc(var(--spacings-small) + 1.5rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:.5rem 2.5rem .5rem .5rem;padding:var(--components-select-input-padding-vertical) 2.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all .25s ease;transition:all var(--commons-animations-durations-standard) ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix{position:absolute;bottom:.5rem;right:1.6rem}::ng-deep .lu-select-value .label{padding:.25rem .25rem .5rem .5rem;padding:var(--spacings-smallest) var(--spacings-smaller);margin-left:0}::ng-deep .lu-select-value .chip{background:#485075;background:var(--components-select-chip-background);color:#fff;color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:1.5rem;height:var(--sizes-standard-line-height);line-height:1.5rem;line-height:var(--sizes-standard-line-height);padding:0 .5rem;padding:0 var(--spacings-smaller);margin:0 .25rem .25rem 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-small) .lu-select-value,:host-context(.textfield.mod-small) .lu-select-placeholder{font-size:.875rem;font-size:var(--sizes-small-font-size);line-height:1rem;line-height:var(--sizes-small-line-height);min-height:calc(var(--spacings-small) + 1rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-small-line-height))}:host-context(.textfield.mod-small):after{line-height:1rem;line-height:var(--sizes-small-line-height)}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .label{font-size:.875rem;font-size:var(--sizes-small-font-size);line-height:1rem;line-height:var(--sizes-small-line-height);font-weight:600;margin:0;padding:0;background:transparent}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .chip{height:1rem;height:var(--sizes-small-line-height);line-height:1rem;line-height:var(--sizes-small-line-height)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--spacings-big) 0 0;padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:#96a6c5;color:var(--colors-text-light-color);bottom:var(--spacings-small);bottom:var(--components-select-framed-bottom-padding);right:.5rem;right:var(--spacings-smaller)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{padding:0 calc(var(--spacings-small) * 3) var(--spacings-small) var(--spacings-small);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--spacings-small);bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:1rem 0 0;height:auto;color:#2a3551;color:var(--colors-text-default-color)}:host-context(.textfield.mod-filter) .lu-select-suffix{bottom:.4rem}:host-context(.textfield.mod-material):after{color:#96a6c5;color:var(--colors-text-light-color);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:1rem;right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:1.375rem;right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple).mod-multipleView:not(.mod-singleLine) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple).mod-multipleView:not(.mod-singleLine) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:-.25rem}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:2.5rem}:host-context(.textfield-input.is-error):after{color:#e51a3b;color:var(--palettes-error-color)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:#ffe0e6;color:var(--palettes-error-200)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:#999;color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:#bbb;color:var(--commons-disabled-placeholder)}.lu-select-value{padding-right:2.5rem}.lu-select-additionalInformation{font-size:80%;font-style:italic;margin-top:-.25em}\n"], components: [{ type: i2$2.LuInputClearerComponent, selector: "lu-input-clearer", outputs: ["onClear"], exportAs: ["luClearer"] }, { type: i3.LuOptionPickerAdvancedComponent, selector: "lu-option-picker-advanced", exportAs: ["LuOptionPickerAdvanced"] }, { type: LuUserPagedSearcherComponent, selector: "lu-user-paged-searcher", inputs: ["fields", "filters", "orderBy", "appInstanceId", "operations", "enableFormerEmployees"], outputs: ["clueChange"] }, { type: LuUserHomonymsComponent, selector: "lu-user-homonyms" }, { type: i3.LuOptionItemComponent, selector: "lu-option", inputs: ["selected", "highlighted", "value"], outputs: ["onSelect"] }], directives: [{ type: i2$2.LuInputDisplayerDirective, selector: "[luDisplayer]", inputs: ["luDisplayerMultiple", "multiple"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: LuUserMeOptionDirective, selector: "[luUserMeOption]", inputs: ["luUserMeOptionFields", "luUserMeOptionFilters", "luUserMeOptionOrderBy", "luUserMeOptionAppInstanceId", "luUserMeOptionOperations", "luUserMeOptionClue"] }, { type: i3.LuForOptionsDirective, selector: "[luForOptions]", inputs: ["luForOptionsTrackBy"] }], pipes: { "luUserDisplay": LuUserDisplayPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
748
765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: LuUserSelectInputComponent, decorators: [{
|
|
749
766
|
type: Component,
|
|
750
767
|
args: [{ selector: 'lu-user-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -753,7 +770,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
|
753
770
|
useExisting: forwardRef(() => LuUserSelectInputComponent),
|
|
754
771
|
multi: true,
|
|
755
772
|
},
|
|
756
|
-
], template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container #display></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<lu-input-clearer></lu-input-clearer>\r\n</div>\r\n<ng-template luDisplayer [luDisplayerMultiple]=\"true\" let-values>\r\n\t<span *ngIf=\"multiple && values?.length > 1; else: singleView\"><span class=\"chip mod-unkillable\">{{values.length}}</span> {{intl.users}}</span>\r\n\t<ng-template #singleView>{{(values[0] || values) | luUserDisplay}}</ng-template>\r\n</ng-template>\r\n<lu-option-picker-advanced [option-comparer]=\"byId\">\r\n\t<header class=\"lu-picker-header\">\r\n\t\t<lu-user-paged-searcher\r\n\t\t\t[fields]=\"fields\"\r\n\t\t\t[filters]=\"filters\"\r\n\t\t\t[orderBy]=\"orderBy\"\r\n\t\t\t[appInstanceId]=\"appInstanceId\"\r\n\t\t\t[operations]=\"operations\"\r\n\t\t\t[enableFormerEmployees]=\"enableFormerEmployees\"\r\n\t\t></lu-user-paged-searcher>\r\n\t</header>\r\n\t<lu-user-homonyms></lu-user-homonyms>\r\n\t<lu-option\r\n\t\t*luUserMeOption=\"let user; fields: fields; filters: filters; orderBy: orderBy; appInstanceId: appInstanceId; operations: operations\"\r\n\t\t[value]=\"user\"\r\n\t>\r\n\t\t<div><b>{{intl.me}} {{ user | luUserDisplay: searchFormat }}</b></div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n\r\n\t<lu-option *luForOptions=\"let user\" [value]=\"user\">\r\n\t\t<div>{{ user | luUserDisplay: searchFormat }}</div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n</lu-option-picker-advanced>\r\n", styles: [":host{cursor:pointer;outline:none;padding:0}:host:after{content:\"\\e97c\";font-family:\"Lucca icons\";display:inline-block;vertical-align:text-bottom;font-style:normal;bottom:.5rem;bottom:var(--components-select-input-padding-vertical);color:#485075;color:var(--palettes-primary-color);font-size:1.2rem;line-height:1.4rem;pointer-events:none;position:absolute;right:.5rem;right:var(--components-select-input-padding-horizontal)}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-placeholder{color:#929292;color:var(--components-select-input-placeholder)}.lu-select-value{line-height:1.5rem;line-height:var(--sizes-standard-line-height);min-height:calc(var(--spacings-small) + 1.5rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:.5rem 2.5rem .5rem .5rem;padding:var(--components-select-input-padding-vertical) 2.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all .25s ease;transition:all var(--commons-animations-durations-standard) ease;display:none}.lu-select-placeholder{line-height:1.5rem;line-height:var(--sizes-standard-line-height);min-height:calc(var(--spacings-small) + 1.5rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:.5rem 2.5rem .5rem .5rem;padding:var(--components-select-input-padding-vertical) 2.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all .25s ease;transition:all var(--commons-animations-durations-standard) ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix{position:absolute;bottom:.5rem;right:1.6rem}::ng-deep .lu-select-value .label{padding:.25rem .25rem .5rem .5rem;padding:var(--spacings-smallest) var(--spacings-smaller);margin-left:0}::ng-deep .lu-select-value .chip{background:#485075;background:var(--components-select-chip-background);color:#fff;color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:1.5rem;height:var(--sizes-standard-line-height);line-height:1.5rem;line-height:var(--sizes-standard-line-height);padding:0 .5rem;padding:0 var(--spacings-smaller);margin:0 .25rem .25rem 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-small) .lu-select-value,:host-context(.textfield.mod-small) .lu-select-placeholder{font-size:.875rem;font-size:var(--sizes-small-font-size);line-height:1rem;line-height:var(--sizes-small-line-height);min-height:calc(var(--spacings-small) + 1rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-small-line-height))}:host-context(.textfield.mod-small):after{line-height:1rem;line-height:var(--sizes-small-line-height)}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .label{font-size:.875rem;font-size:var(--sizes-small-font-size);line-height:1rem;line-height:var(--sizes-small-line-height);font-weight:600;margin:0;padding:0;background:transparent}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .chip{height:1rem;height:var(--sizes-small-line-height);line-height:1rem;line-height:var(--sizes-small-line-height)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--spacings-big) 0 0;padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:#96a6c5;color:var(--colors-text-light-color);bottom:var(--spacings-small);bottom:var(--components-select-framed-bottom-padding);right:.5rem;right:var(--spacings-smaller)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{padding:0 calc(var(--spacings-small) * 3) var(--spacings-small) var(--spacings-small);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--spacings-small);bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:1rem 0 0;height:auto;color:#2a3551;color:var(--colors-text-default-color)}:host-context(.textfield.mod-filter) .lu-select-suffix{bottom:.4rem}:host-context(.textfield.mod-material):after{color:#96a6c5;color:var(--colors-text-light-color);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:1rem;right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:1.375rem;right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple).mod-multipleView:not(.mod-singleLine) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple).mod-multipleView:not(.mod-singleLine) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:-.25rem}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:2.5rem}:host-context(.textfield-input.is-error):after{color:#e51a3b;color:var(--palettes-error-color)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:#ffe0e6;color:var(--palettes-error-200)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:#999;color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:#bbb;color:var(--commons-disabled-placeholder)}.lu-select-value{padding-right:2.5rem}.lu-select-additionalInformation{font-size:80%;font-style:italic;margin-top:-.25em}\n"] }]
|
|
773
|
+
], template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container #display></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<lu-input-clearer></lu-input-clearer>\r\n</div>\r\n<ng-template luDisplayer [luDisplayerMultiple]=\"true\" let-values>\r\n\t<span *ngIf=\"multiple && values?.length > 1; else: singleView\"><span class=\"chip mod-unkillable\">{{values.length}}</span> {{intl.users}}</span>\r\n\t<ng-template #singleView>{{(values[0] || values) | luUserDisplay}}</ng-template>\r\n</ng-template>\r\n<lu-option-picker-advanced [option-comparer]=\"byId\">\r\n\t<header class=\"lu-picker-header\">\r\n\t\t<lu-user-paged-searcher\r\n\t\t\t[fields]=\"fields\"\r\n\t\t\t[filters]=\"filters\"\r\n\t\t\t[orderBy]=\"orderBy\"\r\n\t\t\t[appInstanceId]=\"appInstanceId\"\r\n\t\t\t[operations]=\"operations\"\r\n\t\t\t[enableFormerEmployees]=\"enableFormerEmployees\"\r\n\t\t\t(clueChange)=\"clue = $event\"\r\n\t\t></lu-user-paged-searcher>\r\n\t</header>\r\n\t<lu-user-homonyms></lu-user-homonyms>\r\n\t<lu-option\r\n\t\t*luUserMeOption=\"let user; fields: fields; filters: filters; orderBy: orderBy; appInstanceId: appInstanceId; operations: operations; clue: clue\"\r\n\t\t[value]=\"user\"\r\n\t>\r\n\t\t<div><b>{{intl.me}} {{ user | luUserDisplay: searchFormat }}</b></div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n\r\n\t<lu-option *luForOptions=\"let user\" [value]=\"user\">\r\n\t\t<div>{{ user | luUserDisplay: searchFormat }}</div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n</lu-option-picker-advanced>\r\n", styles: [":host{cursor:pointer;outline:none;padding:0}:host:after{content:\"\\e97c\";font-family:\"Lucca icons\";display:inline-block;vertical-align:text-bottom;font-style:normal;bottom:.5rem;bottom:var(--components-select-input-padding-vertical);color:#485075;color:var(--palettes-primary-color);font-size:1.2rem;line-height:1.4rem;pointer-events:none;position:absolute;right:.5rem;right:var(--components-select-input-padding-horizontal)}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-placeholder{color:#929292;color:var(--components-select-input-placeholder)}.lu-select-value{line-height:1.5rem;line-height:var(--sizes-standard-line-height);min-height:calc(var(--spacings-small) + 1.5rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:.5rem 2.5rem .5rem .5rem;padding:var(--components-select-input-padding-vertical) 2.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all .25s ease;transition:all var(--commons-animations-durations-standard) ease;display:none}.lu-select-placeholder{line-height:1.5rem;line-height:var(--sizes-standard-line-height);min-height:calc(var(--spacings-small) + 1.5rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:.5rem 2.5rem .5rem .5rem;padding:var(--components-select-input-padding-vertical) 2.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all .25s ease;transition:all var(--commons-animations-durations-standard) ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix{position:absolute;bottom:.5rem;right:1.6rem}::ng-deep .lu-select-value .label{padding:.25rem .25rem .5rem .5rem;padding:var(--spacings-smallest) var(--spacings-smaller);margin-left:0}::ng-deep .lu-select-value .chip{background:#485075;background:var(--components-select-chip-background);color:#fff;color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:1.5rem;height:var(--sizes-standard-line-height);line-height:1.5rem;line-height:var(--sizes-standard-line-height);padding:0 .5rem;padding:0 var(--spacings-smaller);margin:0 .25rem .25rem 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-small) .lu-select-value,:host-context(.textfield.mod-small) .lu-select-placeholder{font-size:.875rem;font-size:var(--sizes-small-font-size);line-height:1rem;line-height:var(--sizes-small-line-height);min-height:calc(var(--spacings-small) + 1rem);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-small-line-height))}:host-context(.textfield.mod-small):after{line-height:1rem;line-height:var(--sizes-small-line-height)}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .label{font-size:.875rem;font-size:var(--sizes-small-font-size);line-height:1rem;line-height:var(--sizes-small-line-height);font-weight:600;margin:0;padding:0;background:transparent}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .chip{height:1rem;height:var(--sizes-small-line-height);line-height:1rem;line-height:var(--sizes-small-line-height)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--spacings-big) 0 0;padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:#96a6c5;color:var(--colors-text-light-color);bottom:var(--spacings-small);bottom:var(--components-select-framed-bottom-padding);right:.5rem;right:var(--spacings-smaller)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{padding:0 calc(var(--spacings-small) * 3) var(--spacings-small) var(--spacings-small);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--spacings-small);bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:1rem 0 0;height:auto;color:#2a3551;color:var(--colors-text-default-color)}:host-context(.textfield.mod-filter) .lu-select-suffix{bottom:.4rem}:host-context(.textfield.mod-material):after{color:#96a6c5;color:var(--colors-text-light-color);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:1rem;right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:1.375rem;right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple).mod-multipleView:not(.mod-singleLine) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple).mod-multipleView:not(.mod-singleLine) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:-.25rem}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:2.5rem}:host-context(.textfield-input.is-error):after{color:#e51a3b;color:var(--palettes-error-color)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:#ffe0e6;color:var(--palettes-error-200)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:#999;color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:#bbb;color:var(--commons-disabled-placeholder)}.lu-select-value{padding-right:2.5rem}.lu-select-additionalInformation{font-size:80%;font-style:italic;margin-top:-.25em}\n"] }]
|
|
757
774
|
}], ctorParameters: function () {
|
|
758
775
|
return [{ type: i0.ChangeDetectorRef }, { type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
759
776
|
type: Inject,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-user.mjs","sources":["../../../packages/ng/user/src/lib/display/display-format.model.ts","../../../packages/ng/user/src/lib/display/user-display.pipe.ts","../../../packages/ng/user/src/lib/display/user-display.module.ts","../../../packages/ng/user/src/lib/picture/user-picture.component.ts","../../../packages/ng/user/src/lib/picture/user-picture.component.html","../../../packages/ng/user/src/lib/picture/user-picture.module.ts","../../../packages/ng/user/src/lib/tile/user-tile.component.ts","../../../packages/ng/user/src/lib/tile/user-tile.component.html","../../../packages/ng/user/src/lib/tile/user-tile.module.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.token.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.intl.ts","../../../packages/ng/user/src/lib/service/user-service.model.ts","../../../packages/ng/user/src/lib/service/user-v3.service.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.token.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.intl.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.component.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.component.html","../../../packages/ng/user/src/lib/select/homonyms/user-homonyms.service.ts","../../../packages/ng/user/src/lib/select/homonyms/user-homonyms.component.ts","../../../packages/ng/user/src/lib/select/me/me-option.directive.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.component.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.component.html","../../../packages/ng/user/src/lib/select/homonyms/user-homonyms.module.ts","../../../packages/ng/user/src/lib/select/me/me-option.module.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.translate.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.module.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.translate.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.module.ts","../../../packages/ng/user/src/lib/select/user-select.module.ts","../../../packages/ng/user/src/lib/user.module.ts","../../../packages/ng/user/src/public-api.ts","../../../packages/ng/user/src/lucca-front-ng-user.ts"],"sourcesContent":["export enum LuDisplayFullname {\r\n\tfirstlast = 'fl',\r\n\tlastfirst = 'lf',\r\n\tfirst = 'f',\r\n\tlast = 'l',\r\n}\r\n\r\nexport enum LuDisplayInitials {\r\n\tfirstlast = 'FL',\r\n\tlastfirst = 'LF',\r\n\tlast = 'L',\r\n\tfirst = 'F',\r\n}\r\n\r\nexport enum LuDisplayHybrid {\r\n\tfirstIlastFull = 'Fl',\r\n\tfirstFulllastI = 'fL',\r\n\tlastIfirstFull = 'Lf',\r\n\tlastFullfirstI = 'lF',\r\n}\r\n\r\nexport type LuDisplayFormat = LuDisplayFullname | LuDisplayInitials | LuDisplayHybrid;\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ILuUser } from '../user.model';\r\nimport {\r\n\tLuDisplayFullname,\r\n\tLuDisplayHybrid,\r\n\tLuDisplayInitials,\r\n\tLuDisplayFormat,\r\n} from './display-format.model';\r\n/**\r\n * Displays a user name according to specified format. Supported formats: f for first name,\r\n * F for first initial, l for last name, L for last initial.\r\n */\r\n@Pipe({ name: 'luUserDisplay' })\r\nexport class LuUserDisplayPipe implements PipeTransform {\r\n\ttransform(user: ILuUser, format: LuDisplayFormat = LuDisplayFullname.lastfirst): string {\r\n\t\tlet result = '';\r\n\r\n\t\tif (!!user && !!user.firstName && !!user.lastName) {\r\n\t\t\tswitch (format) {\r\n\t\t\t\tcase LuDisplayFullname.lastfirst:\r\n\t\t\t\t\tresult = user.lastName + ' ' + user.firstName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayFullname.firstlast:\r\n\t\t\t\t\tresult = user.firstName + ' ' + user.lastName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayFullname.first:\r\n\t\t\t\t\tresult = user.firstName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayFullname.last:\r\n\t\t\t\t\tresult = user.lastName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayInitials.lastfirst:\r\n\t\t\t\t\tresult = user.lastName.charAt(0) + user.firstName.charAt(0);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayInitials.firstlast:\r\n\t\t\t\t\tresult = user.firstName.charAt(0) + user.lastName.charAt(0);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayInitials.first:\r\n\t\t\t\t\tresult = user.firstName.charAt(0);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayInitials.last:\r\n\t\t\t\t\tresult = user.lastName.charAt(0);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayHybrid.firstIlastFull:\r\n\t\t\t\t\tresult = user.firstName.charAt(0) + '. ' + user.lastName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayHybrid.lastIfirstFull:\r\n\t\t\t\t\tresult = user.lastName.charAt(0) + '. ' + user.firstName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayHybrid.lastFullfirstI:\r\n\t\t\t\t\tresult = user.lastName + ' ' + user.firstName.charAt(0) + '.';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayHybrid.firstFulllastI:\r\n\t\t\t\t\tresult = user.firstName + ' ' + user.lastName.charAt(0) + '.';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LuUserDisplayPipe } from './user-display.pipe';\r\n\r\n@NgModule({\r\n\timports: [CommonModule],\r\n\tdeclarations: [LuUserDisplayPipe],\r\n\texports: [LuUserDisplayPipe],\r\n\tproviders: [LuUserDisplayPipe],\r\n})\r\nexport class LuUserDisplayModule {}\r\n","import { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ILuUser } from '../user.model';\r\nimport {\r\n\tLuUserDisplayPipe,\r\n\tLuDisplayInitials,\r\n\tLuDisplayFullname,\r\n} from '../display/index';\r\n\r\n/**\r\n * Displays user'picture or a placeholder with his/her initials and random bg color'\r\n */\r\n@Component({\r\n\tselector: 'lu-user-picture',\r\n\ttemplateUrl: './user-picture.component.html',\r\n\tstyleUrls: ['./user-picture.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LuUserPictureComponent {\r\n\r\n\tprivate _displayFormat: LuDisplayInitials = LuDisplayInitials.lastfirst;\r\n\t/**\r\n\t * User Display format.\r\n\t * It is set to 'LF' by default\r\n\t */\r\n\t@Input()\r\n\tset displayFormat(displayFormat: LuDisplayInitials) {\r\n\t\tthis._displayFormat = displayFormat;\r\n\t\tthis._changeDetector.markForCheck();\r\n\t}\r\n\r\n\tget displayFormat(): LuDisplayInitials {\r\n\t\treturn this._displayFormat;\r\n\t}\r\n\r\n\t/**\r\n\t * ILuUser whose picture you wanna display.\r\n\t */\r\n\tprivate _user: ILuUser;\r\n\r\n\t@Input()\r\n\tset user(user: ILuUser) {\r\n\t\tthis._user = user;\r\n\t\tthis.initials = this.displayPipe.transform(user, this.displayFormat);\r\n\t\tconst pictureHref = user?.picture?.href || user?.pictureHref\r\n\t\tthis.hasPicture = !!pictureHref;\r\n\t\tif (this.hasPicture) {\r\n\t\t\tthis.style = { 'background-image': `url('${pictureHref}')` };\r\n\t\t} else {\r\n\t\t\tconst hsl = this.getNameHue();\r\n\t\t\tthis.style = { 'background-color': `hsl(${hsl}, 60%, 60%)` };\r\n\t\t}\r\n\t\tthis._changeDetector.markForCheck();\r\n\t}\r\n\tget user() {\r\n\t\treturn this._user;\r\n\t}\r\n\r\n\tinitials = '';\r\n\thasPicture = false;\r\n\r\n\tstyle;\r\n\r\n\tconstructor(\r\n\t\tprivate displayPipe: LuUserDisplayPipe,\r\n\t\tprivate _changeDetector: ChangeDetectorRef\r\n\t) {}\r\n\r\n\tprivate getNameHue(): number {\r\n\t\t// we sum the chars in user's firstname + lastname\r\n\t\tconst charSum = this.displayPipe\r\n\t\t\t.transform(this._user, LuDisplayFullname.firstlast)\r\n\t\t\t.split('')\r\n\t\t\t.reduce((sum, a) => sum + a.charCodeAt(0), 0);\r\n\t\t// and take a modulo 360 for hue\r\n\t\tconst hue = charSum % 360;\r\n\t\treturn hue;\r\n\t}\r\n}\r\n","<div class=\"picture\" [ngStyle]=\"style\">\r\n\t<span *ngIf=\"!hasPicture\">{{initials}}</span>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LuUserDisplayModule } from '../display/index';\r\nimport { LuUserPictureComponent } from './user-picture.component';\r\n\r\n@NgModule({\r\n\timports: [CommonModule, LuUserDisplayModule],\r\n\tdeclarations: [LuUserPictureComponent],\r\n\texports: [LuUserPictureComponent],\r\n})\r\nexport class LuUserPictureModule {}\r\n","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { ILuUser } from '../user.model';\r\nimport {\r\n\tLuUserDisplayPipe,\r\n\tLuDisplayInitials,\r\n\tLuDisplayFullname,\r\n\tLuDisplayHybrid,\r\n\tLuDisplayFormat,\r\n} from '../display/index';\r\n\r\n/**\r\n * Displays user picture and name. ILuUser's role can be specified, and the footer is customizable.\r\n */\r\n@Component({\r\n\tselector: 'lu-user-tile',\r\n\ttemplateUrl: './user-tile.component.html',\r\n\tstyleUrls: ['./user-tile.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LuUserTileComponent {\r\n\r\n\tprivate _user: ILuUser;\r\n\t/**\r\n\t * ILuUser to display.\r\n\t */\r\n\t@Input()\r\n\tset user(user: ILuUser) {\r\n\t\tthis._user = user;\r\n\t\tthis._changeDetector.markForCheck();\r\n\t}\r\n\r\n\tget user(): ILuUser {\r\n\t\treturn this._user;\r\n\t}\r\n\r\n\t/**\r\n\t * User Display format.\r\n\t * It is set to 'lf' by default\r\n\t */\r\n\t@Input()\r\n\tdisplayFormat: LuDisplayFormat;\r\n\r\n\tprivate _role: string;\r\n\t/**\r\n\t * ILuUser role to display\r\n\t */\r\n\t@Input()\r\n\tset role(role: string) {\r\n\t\tthis._role = role;\r\n\t\tthis._changeDetector.markForCheck();\r\n\t}\r\n\r\n\tget role(): string {\r\n\t\treturn this._role;\r\n\t}\r\n\r\n\tget displayPictureFormat(): LuDisplayInitials {\r\n\t\tswitch (this.displayFormat) {\r\n\t\t\tcase LuDisplayFullname.lastfirst:\r\n\t\t\tcase LuDisplayInitials.lastfirst:\r\n\t\t\tcase LuDisplayHybrid.lastIfirstFull:\r\n\t\t\tcase LuDisplayHybrid.lastFullfirstI:\r\n\t\t\t\treturn LuDisplayInitials.lastfirst;\r\n\t\t\tcase LuDisplayFullname.last:\r\n\t\t\tcase LuDisplayInitials.last:\r\n\t\t\t\treturn LuDisplayInitials.last;\r\n\t\t\tcase LuDisplayFullname.first:\r\n\t\t\tcase LuDisplayInitials.first:\r\n\t\t\t\treturn LuDisplayInitials.first;\r\n\t\t\tcase LuDisplayFullname.firstlast:\r\n\t\t\tcase LuDisplayInitials.firstlast:\r\n\t\t\tcase LuDisplayHybrid.firstIlastFull:\r\n\t\t\tcase LuDisplayHybrid.firstFulllastI:\r\n\t\t\tdefault:\r\n\t\t\t\treturn LuDisplayInitials.firstlast;\r\n\t\t}\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tprivate _changeDetector: ChangeDetectorRef\r\n\t) {}\r\n}\r\n","<lu-user-picture [user]=\"user\" [displayFormat]=\"displayPictureFormat\"></lu-user-picture>\r\n<div class=\"user-info\">\r\n\t<span class=\"user-tile-label\">{{role ? role : user?.jobTitle}}</span>\r\n\t<h5 class=\"user-tile-title\">{{user | luUserDisplay: displayFormat}}</h5>\r\n\t<span class=\"user-tile-footnote\"><ng-content></ng-content></span>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LuUserDisplayModule } from '../display/index';\r\nimport { LuUserPictureModule } from '../picture/index';\r\nimport { LuUserTileComponent } from './user-tile.component';\r\n\r\n@NgModule({\r\n\timports: [CommonModule, LuUserPictureModule, LuUserDisplayModule],\r\n\tdeclarations: [LuUserTileComponent],\r\n\texports: [LuUserTileComponent],\r\n})\r\nexport class LuUserTileModule {}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LU_USER_SELECT_INPUT_TRANSLATIONS = new InjectionToken('LuUserSelectTranslations');\r\n","import { Injectable, LOCALE_ID, Inject } from '@angular/core';\r\nimport { LU_USER_SELECT_INPUT_TRANSLATIONS } from './user-select-input.token';\r\nimport { ILuUserSelectInputLabel } from './user-select-input.translate';\r\nimport { ALuIntl } from '@lucca-front/ng/core';\r\n\r\n@Injectable()\r\nexport class LuUserSelectInputIntl extends ALuIntl<ILuUserSelectInputLabel> {\r\n\tconstructor(@Inject(LU_USER_SELECT_INPUT_TRANSLATIONS) translations, @Inject(LOCALE_ID) locale) {\r\n\t\tsuper(translations, locale);\r\n\t}\r\n}\r\n","import { ILuUser } from '../user.model';\r\nimport { ILuApiService, ALuApiService } from '@lucca-front/ng/api';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface ILuUserService<U extends ILuUser = ILuUser> extends ILuApiService<U> {\r\n\tgetMe(): Observable<U>;\r\n}\r\n\r\nexport abstract class ALuUserService<U extends ILuUser = ILuUser> extends ALuApiService<U> implements ILuUserService<U> {\r\n\tabstract getMe(): Observable<U>;\r\n}","import { ILuUser } from '../user.model';\r\nimport { ILuUserService } from './user-service.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LuApiV3Service, ILuApiResponse, ILuApiSuggestion } from '@lucca-front/ng/api';\r\nimport { Observable } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LuUserV3Service<U extends ILuUser = ILuUser> extends LuApiV3Service<U> implements ILuUserService<U> {\r\n\r\n\tprotected _appInstanceId: number | string;\r\n\tset appInstanceId(appInstanceId: number | string) { this._appInstanceId = appInstanceId; }\r\n\tprotected _operations: number[] = [];\r\n\tset operations(operations: number[]) { this._operations = operations; }\r\n\r\n\tconstructor(protected override _http: HttpClient) {\r\n\t\tsuper(_http);\r\n\t\tthis.api = '/api/v3/users/search';\r\n\t\tthis.fields = 'id,firstname,lastname,picture[href]';\r\n\t\tthis.orderBy = 'lastname,asc,firstname,asc';\r\n\t}\r\n\r\n\tgetMe(): Observable<U> {\r\n\t\treturn this._http.get<ILuApiResponse<ILuUser>>(`/api/v3/users/me?fields=id`).pipe(\r\n\t\t\tswitchMap(r => this._get(this.url + `&id=${r.data.id}`)),\r\n\t\t\tmap(users => users[0]),\r\n\t\t);\r\n\t}\r\n\r\n\toverride get url() {\r\n\t\tif (!this._appInstanceId || !this._operations || !this._operations.length) {\r\n\t\t\treturn `${this._api}?${[...this._filters, this._orderBy, this._fields].filter(f => !!f).join('&')}`;\r\n\t\t} else {\r\n\t\t\treturn `/api/v3/users/scopedsearch?${[\r\n\t\t\t\t...this._filters,\r\n\t\t\t\t`appInstanceId=${this._appInstanceId}`,\r\n\t\t\t\t`operations=${this._operations.join(',')}`,\r\n\t\t\t\tthis._orderBy,\r\n\t\t\t\tthis._fields,\r\n\t\t\t].filter(f => !!f).join('&')}`;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected override _get(url) {\r\n\t\treturn (<any>super._get(url) as Observable<ILuApiSuggestion<U>[]>)\r\n\t\t.pipe(map(suggestions => suggestions.map(s => s.item)));\r\n\t}\r\n\r\n\tprotected override _clueFilter(clue) {\r\n\t\tconst urlSafeClue = clue.split(' ').map(c => encodeURIComponent(c)).join(',');\r\n\t\treturn `clue=${urlSafeClue}`;\r\n\t}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LU_USER_SEARCHER_TRANSLATIONS = new InjectionToken('LuUserSearcherTranslations');\r\n","import { Injectable, LOCALE_ID, Inject } from '@angular/core';\r\nimport { ALuIntl } from '@lucca-front/ng/core';\r\nimport { ILuUserSearcherLabel } from './user-searcher.translate';\r\nimport { LU_USER_SEARCHER_TRANSLATIONS } from './user-searcher.token';\r\n\r\n@Injectable()\r\nexport class LuUserSearcherIntl extends ALuIntl<ILuUserSearcherLabel> {\r\n\tconstructor(@Inject(LU_USER_SEARCHER_TRANSLATIONS) translations, @Inject(LOCALE_ID) locale) {\r\n\t\tsuper(translations, locale);\r\n\t}\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewChild, ElementRef, SkipSelf, Self, Optional, Inject, HostBinding, OnInit, OnDestroy } from '@angular/core';\r\nimport {\r\n\tALuOnOpenSubscriber,\r\n\tALuOnScrollBottomSubscriber,\r\n\tALuOnCloseSubscriber,\r\n\tILuOnOpenSubscriber,\r\n\tILuOnScrollBottomSubscriber,\r\n\tILuOnCloseSubscriber,\r\n} from '@lucca-front/ng/core';\r\n\r\nimport { ALuOptionOperator } from '@lucca-front/ng/option';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { debounceTime, switchMap, catchError, share, startWith, mapTo, map, scan, filter } from 'rxjs/operators';\r\nimport { ILuUser } from '../../user.model';\r\nimport { ALuUserService, LuUserV3Service } from '../../service/index';\r\nimport { Subject, Observable, Subscription, combineLatest, of, merge, BehaviorSubject } from 'rxjs';\r\nimport { LuUserSearcherIntl } from './user-searcher.intl';\r\nimport { ILuUserSearcherLabel } from './user-searcher.translate';\r\n\r\n@Component({\r\n\tselector: 'lu-user-paged-searcher',\r\n\ttemplateUrl: 'user-searcher.component.html',\r\n\tstyleUrls: ['user-searcher.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: ALuOptionOperator,\r\n\t\t\tuseExisting: forwardRef(() => LuUserPagedSearcherComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuOnOpenSubscriber,\r\n\t\t\tuseExisting: forwardRef(() => LuUserPagedSearcherComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuOnCloseSubscriber,\r\n\t\t\tuseExisting: forwardRef(() => LuUserPagedSearcherComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuOnScrollBottomSubscriber,\r\n\t\t\tuseExisting: forwardRef(() => LuUserPagedSearcherComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuUserService,\r\n\t\t\tuseClass: LuUserV3Service,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuUserPagedSearcherComponent<U extends ILuUser = ILuUser>\r\n\timplements OnInit, OnDestroy, ILuOnOpenSubscriber, ILuOnScrollBottomSubscriber, ILuOnCloseSubscriber\r\n{\r\n\r\n\tprivate _service: LuUserV3Service<U>;\r\n\tprivate _subs = new Subscription();\r\n\r\n\t@HostBinding('class.position-fixed') fixed = true;\r\n\t@ViewChild('searchInput', { read: ElementRef, static: true }) searchInput: ElementRef;\r\n\r\n\t@Input() set fields(fields: string) { this._service.fields = fields; }\r\n\t@Input() set filters(filters: string[]) { this._service.filters = filters; }\r\n\t@Input() set orderBy(orderBy: string) { this._service.orderBy = orderBy; }\r\n\t@Input() set appInstanceId(appInstanceId: number | string) { this._service.appInstanceId = appInstanceId; }\r\n\t@Input() set operations(operations: number[]) { this._service.operations = operations; }\r\n\t@Input() enableFormerEmployees = false;\r\n\r\n\tform: FormGroup;\r\n\t// page$: Subject<number>;\r\n\toutOptions$ = new Subject<U[]>();\r\n\tloading$: Observable<boolean>;\r\n\tempty$: Observable<boolean>;\r\n\tprivate _loading = false;\r\n\tprivate _isOpened$ = new BehaviorSubject(false);\r\n\tprivate _page$ = new Subject<void>();\r\n\tprivate _isLastPage: boolean;\r\n\tprivate _options: U[] = [];\r\n\r\n\tconstructor(\r\n\t\t@Inject(ALuUserService) @Optional() @SkipSelf() hostService: ALuUserService,\r\n\t\t@Inject(ALuUserService) @Self() selfService: LuUserV3Service<U>,\r\n\t\t@Inject(LuUserSearcherIntl) public intl: ILuUserSearcherLabel,\r\n\r\n\t) {\r\n\t\tthis._service = (hostService || selfService) as LuUserV3Service<U>;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tclue: new FormControl(''),\r\n\t\t\tformerEmployees: new FormControl(false),\r\n\t\t});\r\n\r\n\t\tconst formValue$ = this.form.valueChanges.pipe(\r\n\t\t\tstartWith(this.form.value),\r\n\t\t);\r\n\r\n\t\tconst pager$ = this._page$.pipe(\r\n\t\t\tscan(acc => acc + 1, 0),\r\n\t\t\tstartWith(0),\r\n\t\t);\r\n\r\n\t\tconst query$ = combineLatest([\r\n\t\t\tformValue$.pipe(debounceTime(250)),\r\n\t\t\tthis._isOpened$,\r\n\t\t]).pipe(\r\n\t\t\tfilter(([, isOpened]) => isOpened),\r\n\t\t\tswitchMap(([val]) => pager$.pipe(map(page => [val, page]))),\r\n\t\t\tshare(),\r\n\t\t);\r\n\r\n\t\tconst results$ = query$.pipe(\r\n\t\t\tswitchMap(([val, page]) => {\r\n\t\t\t\tconst filters = [];\r\n\t\t\t\tif (val.formerEmployees) {\r\n\t\t\t\t\tfilters.push(`formerEmployees=true`);\r\n\t\t\t\t}\r\n\t\t\t\treturn this._service.searchPaged(val.clue, page, filters).pipe(\r\n\t\t\t\t\tcatchError(() => of([])),\r\n\t\t\t\t\tmap(items => [items, page] as [U[], number]),\r\n\t\t\t\t)\r\n\t\t\t}),\r\n\t\t\tshare(),\r\n\t\t);\r\n\r\n\t\tconst resultsSub = results$\r\n\t\t.subscribe(([items, page]) => {\r\n\t\t\tif (page === 0) {\r\n\t\t\t\tthis._options = [...items];\r\n\t\t\t} else {\r\n\t\t\t\tthis._options.push(...items);\r\n\t\t\t}\r\n\t\t\tthis._isLastPage = !items.length;\r\n\t\t\tthis.outOptions$.next([...this._options]);\r\n\t\t});\r\n\t\tthis._subs.add(resultsSub);\r\n\r\n\t\tthis.loading$ = merge(\r\n\t\t\tquery$.pipe(mapTo(true)),\r\n\t\t\tresults$.pipe(mapTo(false)),\r\n\t\t);\r\n\t\tconst loadingSub = this.loading$.subscribe(l => this._loading = l);\r\n\t\tthis._subs.add(loadingSub);\r\n\r\n\t\tthis.empty$ = this.outOptions$.pipe(\r\n\t\t\tmap(o => o.length === 0),\r\n\t\t);\r\n\t}\r\n\tngOnDestroy() {\r\n\t\tthis._subs.unsubscribe();\r\n\t}\r\n\r\n\tonOpen() {\r\n\t\tthis.searchInput.nativeElement.focus();\r\n\t\tthis._isOpened$.next(true);\r\n\t}\r\n\tonScrollBottom() {\r\n\t\tif (!this._loading && !this._isLastPage) {\r\n\t\t\tthis._page$.next();\r\n\t\t}\r\n\t}\r\n\tonClose() {\r\n\t\tthis._isOpened$.next(false);\r\n\t\tthis.outOptions$.next([]);\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\treset() {\r\n\t\tif (this.form.dirty) {\r\n\t\t\tthis.form.reset();\r\n\t\t}\r\n\t}\r\n}\r\n","<form [formGroup]=\"form\">\r\n\t<div class=\"textfield mod-search\" [class.is-loading]=\"loading$ | async\">\r\n\t\t<input #searchInput class=\"textfield-input\" formControlName=\"clue\">\r\n\t</div>\r\n\r\n\t<label class=\"checkbox mod-formerEmployee mod-small\" *ngIf=\"enableFormerEmployees\">\r\n\t\t<input class=\"checkbox-input\" type=\"checkbox\" formControlName=\"formerEmployees\"/>\r\n\t\t<span class=\"checkbox-label\">{{ intl.includeFormerEmployees }}</span>\r\n\t</label>\r\n</form>\r\n\r\n<lu-option-placeholder *ngIf=\"(empty$ | async) && !(loading$ | async)\" (onClear)=\"reset()\"></lu-option-placeholder>\r\n","import { ILuUser } from '../../user.model';\r\nimport { Observable, of } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LuUserDisplayPipe, LuDisplayFullname } from '../../display/index';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\ninterface IV3CollectionResponse<T = any> {\r\n\tdata: { items: T[] };\r\n}\r\n\r\nexport interface ILuUserHomonymsService<U extends ILuUser = ILuUser> {\r\n\textractHomonyms(users: U[]): U[];\r\n\tenrichHomonyms(homonyms: U[]): Observable<U[]>;\r\n}\r\n\r\nexport abstract class ALuUserHomonymsService<U extends ILuUser = ILuUser> implements ILuUserHomonymsService<U> {\r\n\tabstract extractHomonyms(users: U[]): U[];\r\n\tabstract enrichHomonyms(homonyms: U[]): Observable<U[]>;\r\n}\r\n@Injectable()\r\nexport class LuUserHomonymsService<U extends ILuUser = ILuUser> extends ALuUserHomonymsService<U> implements ILuUserHomonymsService<U> {\r\n\tprivate _format = LuDisplayFullname.lastfirst;\r\n\textractHomonyms(users: U[]): U[] {\r\n\t\tconst usersByName = {} as { [key: string]: U[] };\r\n\t\tusers.forEach(user => {\r\n\t\t\tconst name = this._pipe.transform(user, this._format);\r\n\t\t\tusersByName[name] = [...(usersByName[name] || []), user];\r\n\t\t});\r\n\r\n\t\tconst nonUniqNames = Object.keys(usersByName)\r\n\t\t.filter(key => usersByName[key].length > 1);\r\n\r\n\t\tconst homonyms = [] as U[];\r\n\t\tnonUniqNames.forEach(name => homonyms.push(...usersByName[name]));\r\n\t\treturn homonyms;\r\n\t}\r\n\r\n\tenrichHomonyms(homonyms: U[]): Observable<U[]> {\r\n\t\tif (!homonyms || homonyms.length === 0) { return of([]); }\r\n\t\treturn this._http.get<IV3CollectionResponse<{ id: number, department: { name: string }}>>(`/api/v3/users`, { params: {\r\n\t\t\t'id': homonyms.map(u => u.id).join(','),\r\n\t\t\t'fields': 'id,department.name',\r\n\t\t}}).pipe(\r\n\t\t\tmap(res => res.data.items as { id: number, department?: { name: string }}[]),\r\n\t\t\tmap(infos => infos.map(info => {\r\n\t\t\t\t\tconst homonym = homonyms.find(h => h.id === info.id);\r\n\t\t\t\t\treturn { ...homonym, additionalInformation: info.department ? info.department.name : '' } as U;\r\n\t\t\t\t}) as U[]\r\n\t\t\t),\r\n\t\t\tcatchError(err => of([])),\r\n\t\t);\r\n\t}\r\n\tconstructor(\r\n\t\tprivate _pipe: LuUserDisplayPipe,\r\n\t\tprivate _http: HttpClient,\r\n\t) {\r\n\t\tsuper();\r\n\t}\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, SkipSelf, Self, Optional, Inject } from '@angular/core';\r\nimport { ALuOptionOperator, ILuOptionOperator} from '@lucca-front/ng/option';\r\nimport { ILuUser } from '../../user.model';\r\nimport { map, withLatestFrom, switchMap } from 'rxjs/operators';\r\nimport { ALuUserHomonymsService, LuUserHomonymsService, ILuUserHomonymsService } from './user-homonyms.service';\r\nimport { merge, Observable } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'lu-user-homonyms',\r\n\ttemplate: '',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: ALuOptionOperator,\r\n\t\t\tuseExisting: forwardRef(() => LuUserHomonymsComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuUserHomonymsService,\r\n\t\t\tuseClass: LuUserHomonymsService,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuUserHomonymsComponent<U extends ILuUser = ILuUser> implements ILuOptionOperator<U> {\r\n\tset inOptions$(in$: Observable<U[]>) {\r\n\t\tthis._outOptions$ = merge(\r\n\t\t\tin$,\r\n\t\t\tin$.pipe(\r\n\t\t\t\tmap(users => this._service.extractHomonyms(users)),\r\n\t\t\t\tswitchMap((homonyms: U[]) => this._service.enrichHomonyms(homonyms)),\r\n\t\t\t\twithLatestFrom(in$),\r\n\t\t\t\tmap<[U[], U[]], U[]>(([enrichedUsers, users]) => {\r\n\t\t\t\t\tconst result = [ ...users];\r\n\t\t\t\t\tenrichedUsers.forEach(user => {\r\n\t\t\t\t\t\tconst i = result.findIndex(u => u.id === user.id);\r\n\t\t\t\t\t\tresult[i] = user;\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}),\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\tprivate _outOptions$: Observable<U[]>;\r\n\tget outOptions$() {\r\n\t\treturn this._outOptions$;\r\n\t}\r\n\tprivate _service: ILuUserHomonymsService<U>;\r\n\tconstructor(\r\n\t\t@Inject(ALuUserHomonymsService) @Optional() @SkipSelf() hostService: ILuUserHomonymsService<U>,\r\n\t\t@Inject(ALuUserHomonymsService) @Self() selfService: ILuUserHomonymsService<U>,\r\n\t) {\r\n\t\tthis._service = hostService || selfService;\r\n\t}\r\n}\r\n\r\n","import { Directive, forwardRef, Inject, Optional, SkipSelf, Self, ViewContainerRef, TemplateRef, Input } from '@angular/core';\r\nimport { ALuOptionOperator, ILuOptionOperator } from '@lucca-front/ng/option';\r\nimport { ALuOnOpenSubscriber } from '@lucca-front/ng/core';\r\nimport { ILuUser } from '../../user.model';\r\nimport { ALuUserService, LuUserV3Service } from '../../service/index';\r\n\r\n@Directive({\r\n\tselector: '[luUserMeOption]',\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: ALuOptionOperator,\r\n\t\t\tuseExisting: forwardRef(() => LuUserMeOptionDirective),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuUserService,\r\n\t\t\tuseClass: LuUserV3Service,\r\n\t\t},\r\n\t\t\r\n\t\t{\r\n\t\t\tprovide: ALuOnOpenSubscriber,\r\n\t\t\tuseExisting: forwardRef(() => LuUserMeOptionDirective),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuUserMeOptionDirective<U extends ILuUser = ILuUser> implements ILuOptionOperator<U> {\r\n\tset inOptions$ (in$) {\r\n\t\tthis.outOptions$ = in$;\r\n\t}\r\n\toutOptions$;\r\n\tprivate _service: LuUserV3Service<U>;\r\n\r\n\t@Input() set luUserMeOptionFields(fields: string) { this._service.fields = fields; }\r\n\t@Input() set luUserMeOptionFilters(filters: string[]) { this._service.filters = filters; }\r\n\t@Input() set luUserMeOptionOrderBy(orderBy: string) { this._service.orderBy = orderBy; }\r\n\t@Input() set luUserMeOptionAppInstanceId(appInstanceId: number | string) { this._service.appInstanceId = appInstanceId; }\r\n\t@Input() set luUserMeOptionOperations(operations: number[]) { this._service.operations = operations; }\r\n\r\n\tconstructor(\r\n\t\t@Inject(ALuUserService) @Optional() @SkipSelf() hostService: ALuUserService,\r\n\t\t@Inject(ALuUserService) @Self() selfService: ALuUserService,\r\n\t\tprivate _vcr: ViewContainerRef,\r\n\t\tprivate _templateRef: TemplateRef<{ $implicit: U }>,\r\n\t) {\r\n\t\tthis._service = (hostService || selfService) as LuUserV3Service<U>;\r\n\t}\r\n\r\n\tme: ILuUser = undefined;\r\n\tprivate meDisplayed = false;\r\n\tonOpen() {\r\n\t\tthis._service.getMe().subscribe(me => {\r\n\t\t\tthis.me = me;\r\n\t\t\tthis.displayMe();\r\n\t\t});\r\n\t}\r\n\tdisplayMe() {\r\n\t\tif (this.me && !this.meDisplayed) {\r\n\t\t\tthis.meDisplayed = true;\r\n\t\t\tthis._vcr.createEmbeddedView(this._templateRef, { $implicit: this.me });\r\n\t\t}\r\n\t}\r\n}","import {\r\n\tChangeDetectionStrategy,\r\n\tComponent,\r\n\tChangeDetectorRef,\r\n\tforwardRef,\r\n\tViewContainerRef,\r\n\tElementRef,\r\n\tHostListener,\r\n\tTemplateRef,\r\n\tViewChild,\r\n\tInput,\r\n\tRenderer2,\r\n\tHostBinding,\r\n\tAfterContentInit,\r\n\tInject,\r\n\tAfterViewInit,\r\n\tOptional,\r\n\tSkipSelf,\r\n\tSelf\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { ALuClearer, ILuClearer, ILuInputDisplayer, ALuInputDisplayer } from '@lucca-front/ng/input';\r\nimport { ILuInputWithPicker, ALuPickerPanel } from '@lucca-front/ng/picker';\r\nimport { ILuUser } from '../../user.model';\r\nimport { ALuSelectInputComponent } from '@lucca-front/ng/select';\r\nimport { ILuPickerPanel } from '@lucca-front/ng/picker';\r\nimport { LuDisplayFullname } from '../../display/index';\r\nimport { LuUserSelectInputIntl } from './user-select-input.intl';\r\nimport { ILuUserSelectInputLabel } from './user-select-input.translate';\r\nimport { LuOptionComparer } from '@lucca-front/ng/option';\r\nimport { ALuUserService, LuUserV3Service } from '../../service/index';\r\n\r\n/**\r\n* Displays user'picture or a placeholder with his/her initials and random bg color'\r\n*/\r\n@Component({\r\n\tselector: 'lu-user-select',\r\n\ttemplateUrl: './user-select-input.component.html',\r\n\tstyleUrls: ['./user-select-input.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuUserSelectInputComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuUserSelectInputComponent<U extends import ('../../user.model').ILuUser = import ('../../user.model').ILuUser>\r\nextends ALuSelectInputComponent<U>\r\nimplements ControlValueAccessor, ILuInputWithPicker<U>, AfterViewInit {\r\n\r\n\tsearchFormat = LuDisplayFullname.lastfirst;\r\n\r\n\t@Input('placeholder') override set inputPlaceholder(p: string) { this._placeholder = p; }\r\n\r\n\t@Input() fields: string;\r\n\t@Input() filters: string[];\r\n\t@Input() orderBy: string;\r\n\t@Input() appInstanceId: number | string;\r\n\t@Input() operations: number[];\r\n\t@Input() enableFormerEmployees = false;\r\n\r\n\tbyId: LuOptionComparer<U> = (option1: U, option2: U) => option1 && option2 && option1.id === option2.id;\r\n\r\n\tconstructor(\r\n\t\tprotected override _changeDetectorRef: ChangeDetectorRef,\r\n\t\tprotected override _overlay: Overlay,\r\n\t\tprotected override _elementRef: ElementRef,\r\n\t\tprotected override _viewContainerRef: ViewContainerRef,\r\n\t\tprotected override _renderer: Renderer2,\r\n\t\t@Inject(LuUserSelectInputIntl) public intl: ILuUserSelectInputLabel,\r\n\t) {\r\n\t\tsuper(\r\n\t\t\t_changeDetectorRef,\r\n\t\t\t_overlay,\r\n\t\t\t_elementRef,\r\n\t\t\t_viewContainerRef,\r\n\t\t\t_renderer,\r\n\t\t);\r\n\t}\r\n\r\n\r\n}\r\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container #display></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<lu-input-clearer></lu-input-clearer>\r\n</div>\r\n<ng-template luDisplayer [luDisplayerMultiple]=\"true\" let-values>\r\n\t<span *ngIf=\"multiple && values?.length > 1; else: singleView\"><span class=\"chip mod-unkillable\">{{values.length}}</span> {{intl.users}}</span>\r\n\t<ng-template #singleView>{{(values[0] || values) | luUserDisplay}}</ng-template>\r\n</ng-template>\r\n<lu-option-picker-advanced [option-comparer]=\"byId\">\r\n\t<header class=\"lu-picker-header\">\r\n\t\t<lu-user-paged-searcher\r\n\t\t\t[fields]=\"fields\"\r\n\t\t\t[filters]=\"filters\"\r\n\t\t\t[orderBy]=\"orderBy\"\r\n\t\t\t[appInstanceId]=\"appInstanceId\"\r\n\t\t\t[operations]=\"operations\"\r\n\t\t\t[enableFormerEmployees]=\"enableFormerEmployees\"\r\n\t\t></lu-user-paged-searcher>\r\n\t</header>\r\n\t<lu-user-homonyms></lu-user-homonyms>\r\n\t<lu-option\r\n\t\t*luUserMeOption=\"let user; fields: fields; filters: filters; orderBy: orderBy; appInstanceId: appInstanceId; operations: operations\"\r\n\t\t[value]=\"user\"\r\n\t>\r\n\t\t<div><b>{{intl.me}} {{ user | luUserDisplay: searchFormat }}</b></div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n\r\n\t<lu-option *luForOptions=\"let user\" [value]=\"user\">\r\n\t\t<div>{{ user | luUserDisplay: searchFormat }}</div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n</lu-option-picker-advanced>\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { LuUserHomonymsComponent } from './user-homonyms.component';\r\nimport { LuUserDisplayModule } from '../../display/index';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tHttpClientModule,\r\n\t\tLuUserDisplayModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tLuUserHomonymsComponent,\r\n\t],\r\n\texports: [\r\n\t\tLuUserHomonymsComponent,\r\n\t],\r\n})\r\nexport class LuUserHomonymsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuUserMeOptionDirective } from './me-option.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t],\r\n\tdeclarations: [\r\n\t\tLuUserMeOptionDirective,\r\n\t],\r\n\texports: [\r\n\t\tLuUserMeOptionDirective,\r\n\t],\r\n\tproviders: [\r\n\t]\r\n})\r\nexport class LuUserMeOptionModule {}\r\n","import { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport interface ILuUserSearcherLabel {\r\n\tincludeFormerEmployees: string;\r\n}\r\nexport abstract class ALuUserSearcherLabel {\r\n\tincludeFormerEmployees: string;\r\n}\r\n\r\nexport const luUserSearcherTranslations = {\r\n\ten: {\r\n\t\tincludeFormerEmployees: 'Include former employees',\r\n\t},\r\n\tfr: {\r\n\t\tincludeFormerEmployees: 'Inclure les salariés partis',\r\n\t},\r\n\tes: {\r\n\t\tincludeFormerEmployees: 'Incluir a los antiguos empleados',\r\n\t}\r\n} as ILuTranslation<ILuUserSearcherLabel>;\r\n","import { NgModule } from '@angular/core';\r\nimport { LuUserPagedSearcherComponent } from './user-searcher.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LuOptionPlaceholderModule } from '@lucca-front/ng/option';\r\nimport { LuUserSearcherIntl } from './user-searcher.intl';\r\nimport { LU_USER_SEARCHER_TRANSLATIONS } from './user-searcher.token';\r\nimport { luUserSearcherTranslations } from './user-searcher.translate';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tHttpClientModule,\r\n\t\tReactiveFormsModule,\r\n\t\tCommonModule,\r\n\t\tLuOptionPlaceholderModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tLuUserPagedSearcherComponent,\r\n\t],\r\n\texports: [\r\n\t\tLuUserPagedSearcherComponent,\r\n\t],\r\n\tproviders: [\r\n\t\tLuUserSearcherIntl,\r\n\t\t{ provide: LU_USER_SEARCHER_TRANSLATIONS, useValue: luUserSearcherTranslations },\r\n\t],\r\n})\r\nexport class LuUserSearcherModule {}\r\n","import { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport interface ILuUserSelectInputLabel {\r\n\tusers: string;\r\n\tme: string;\r\n}\r\nexport abstract class ALuUserSelectInputLabel {\r\n\tusers: string;\r\n\tme: string;\r\n}\r\n\r\nexport const luUserSelectInputTranslations = {\r\n\ten: {\r\n\t\tusers: 'users',\r\n\t\tme: 'Me:'\r\n\t},\r\n\tfr: {\r\n\t\tusers: 'utilisateurs',\r\n\t\tme: 'Moi :'\r\n\t},\r\n\tes: {\r\n\t\tusers: 'empleados',\r\n\t\tme: 'Yo :'\r\n\t}\r\n} as ILuTranslation<ILuUserSelectInputLabel>;\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { LuInputClearerModule, LuInputDisplayerModule } from '@lucca-front/ng/input';\r\nimport { LuOptionOperatorModule, LuOptionPickerModule } from '@lucca-front/ng/option';\r\nimport { LuUserDisplayModule } from '../../display/index';\r\nimport { LuUserHomonymsModule } from '../homonyms/index';\r\nimport { LuUserMeOptionModule } from '../me/index';\r\nimport { LuUserSearcherModule } from '../searcher/index';\r\nimport { LuUserSelectInputComponent } from './user-select-input.component';\r\nimport { LuUserSelectInputIntl } from './user-select-input.intl';\r\nimport { LU_USER_SELECT_INPUT_TRANSLATIONS } from './user-select-input.token';\r\nimport { luUserSelectInputTranslations } from './user-select-input.translate';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tLuUserDisplayModule,\r\n\t\tLuOptionOperatorModule,\r\n\t\tLuOptionPickerModule,\r\n\t\tLuInputClearerModule,\r\n\t\tLuUserSearcherModule,\r\n\t\tLuInputDisplayerModule,\r\n\t\tLuUserHomonymsModule,\r\n\t\tLuUserMeOptionModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tLuUserSelectInputComponent,\r\n\t],\r\n\texports: [\r\n\t\tLuUserSelectInputComponent,\r\n\t],\r\n\tproviders: [\r\n\t\t{ provide: LU_USER_SELECT_INPUT_TRANSLATIONS, useValue: luUserSelectInputTranslations },\r\n\t\tLuUserSelectInputIntl,\r\n\t]\r\n})\r\nexport class LuUserSelectInputModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { LuUserSelectInputModule } from './input/index';\r\nimport { LuUserSearcherModule } from './searcher/index';\r\nimport { LuUserHomonymsModule } from './homonyms/index';\r\nimport { LuUserMeOptionModule } from './me/index';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tLuUserSelectInputModule,\r\n\t\tLuUserSearcherModule,\r\n\t\tLuUserHomonymsModule,\r\n\t\tLuUserMeOptionModule,\r\n\t],\r\n\texports: [\r\n\t\tLuUserSelectInputModule,\r\n\t\tLuUserSearcherModule,\r\n\t\tLuUserHomonymsModule,\r\n\t\tLuUserMeOptionModule,\r\n\t],\r\n})\r\nexport class LuUserSelectModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuUserDisplayModule } from './display/index';\r\nimport { LuUserPictureModule } from './picture/index';\r\nimport { LuUserTileModule } from './tile/index';\r\nimport { LuUserSelectModule } from './select/index';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tLuUserDisplayModule,\r\n\t\tLuUserPictureModule,\r\n\t\tLuUserTileModule,\r\n\t\tLuUserSelectModule,\r\n\t],\r\n\texports: [\r\n\t\tLuUserDisplayModule,\r\n\t\tLuUserPictureModule,\r\n\t\tLuUserTileModule,\r\n\t\tLuUserSelectModule,\r\n\t],\r\n})\r\nexport class LuUserModule {}\r\n","/*\r\n * Public API Surface of safe-content\r\n */\r\n\r\nexport * from './index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-user.mjs","sources":["../../../packages/ng/user/src/lib/display/display-format.model.ts","../../../packages/ng/user/src/lib/display/user-display.pipe.ts","../../../packages/ng/user/src/lib/display/user-display.module.ts","../../../packages/ng/user/src/lib/picture/user-picture.component.ts","../../../packages/ng/user/src/lib/picture/user-picture.component.html","../../../packages/ng/user/src/lib/picture/user-picture.module.ts","../../../packages/ng/user/src/lib/tile/user-tile.component.ts","../../../packages/ng/user/src/lib/tile/user-tile.component.html","../../../packages/ng/user/src/lib/tile/user-tile.module.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.token.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.intl.ts","../../../packages/ng/user/src/lib/service/user-service.model.ts","../../../packages/ng/user/src/lib/service/user-v3.service.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.token.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.intl.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.component.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.component.html","../../../packages/ng/user/src/lib/select/homonyms/user-homonyms.service.ts","../../../packages/ng/user/src/lib/select/homonyms/user-homonyms.component.ts","../../../packages/ng/user/src/lib/select/me/me-option.directive.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.component.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.component.html","../../../packages/ng/user/src/lib/select/homonyms/user-homonyms.module.ts","../../../packages/ng/user/src/lib/select/me/me-option.module.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.translate.ts","../../../packages/ng/user/src/lib/select/searcher/user-searcher.module.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.translate.ts","../../../packages/ng/user/src/lib/select/input/user-select-input.module.ts","../../../packages/ng/user/src/lib/select/user-select.module.ts","../../../packages/ng/user/src/lib/user.module.ts","../../../packages/ng/user/src/public-api.ts","../../../packages/ng/user/src/lucca-front-ng-user.ts"],"sourcesContent":["export enum LuDisplayFullname {\r\n\tfirstlast = 'fl',\r\n\tlastfirst = 'lf',\r\n\tfirst = 'f',\r\n\tlast = 'l',\r\n}\r\n\r\nexport enum LuDisplayInitials {\r\n\tfirstlast = 'FL',\r\n\tlastfirst = 'LF',\r\n\tlast = 'L',\r\n\tfirst = 'F',\r\n}\r\n\r\nexport enum LuDisplayHybrid {\r\n\tfirstIlastFull = 'Fl',\r\n\tfirstFulllastI = 'fL',\r\n\tlastIfirstFull = 'Lf',\r\n\tlastFullfirstI = 'lF',\r\n}\r\n\r\nexport type LuDisplayFormat = LuDisplayFullname | LuDisplayInitials | LuDisplayHybrid;\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ILuUser } from '../user.model';\r\nimport {\r\n\tLuDisplayFullname,\r\n\tLuDisplayHybrid,\r\n\tLuDisplayInitials,\r\n\tLuDisplayFormat,\r\n} from './display-format.model';\r\n/**\r\n * Displays a user name according to specified format. Supported formats: f for first name,\r\n * F for first initial, l for last name, L for last initial.\r\n */\r\n@Pipe({ name: 'luUserDisplay' })\r\nexport class LuUserDisplayPipe implements PipeTransform {\r\n\ttransform(user: ILuUser, format: LuDisplayFormat = LuDisplayFullname.lastfirst): string {\r\n\t\tlet result = '';\r\n\r\n\t\tif (!!user && !!user.firstName && !!user.lastName) {\r\n\t\t\tswitch (format) {\r\n\t\t\t\tcase LuDisplayFullname.lastfirst:\r\n\t\t\t\t\tresult = user.lastName + ' ' + user.firstName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayFullname.firstlast:\r\n\t\t\t\t\tresult = user.firstName + ' ' + user.lastName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayFullname.first:\r\n\t\t\t\t\tresult = user.firstName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayFullname.last:\r\n\t\t\t\t\tresult = user.lastName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayInitials.lastfirst:\r\n\t\t\t\t\tresult = user.lastName.charAt(0) + user.firstName.charAt(0);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayInitials.firstlast:\r\n\t\t\t\t\tresult = user.firstName.charAt(0) + user.lastName.charAt(0);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayInitials.first:\r\n\t\t\t\t\tresult = user.firstName.charAt(0);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayInitials.last:\r\n\t\t\t\t\tresult = user.lastName.charAt(0);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayHybrid.firstIlastFull:\r\n\t\t\t\t\tresult = user.firstName.charAt(0) + '. ' + user.lastName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayHybrid.lastIfirstFull:\r\n\t\t\t\t\tresult = user.lastName.charAt(0) + '. ' + user.firstName;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayHybrid.lastFullfirstI:\r\n\t\t\t\t\tresult = user.lastName + ' ' + user.firstName.charAt(0) + '.';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LuDisplayHybrid.firstFulllastI:\r\n\t\t\t\t\tresult = user.firstName + ' ' + user.lastName.charAt(0) + '.';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LuUserDisplayPipe } from './user-display.pipe';\r\n\r\n@NgModule({\r\n\timports: [CommonModule],\r\n\tdeclarations: [LuUserDisplayPipe],\r\n\texports: [LuUserDisplayPipe],\r\n\tproviders: [LuUserDisplayPipe],\r\n})\r\nexport class LuUserDisplayModule {}\r\n","import { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ILuUser } from '../user.model';\r\nimport {\r\n\tLuUserDisplayPipe,\r\n\tLuDisplayInitials,\r\n\tLuDisplayFullname,\r\n} from '../display/index';\r\n\r\n/**\r\n * Displays user'picture or a placeholder with his/her initials and random bg color'\r\n */\r\n@Component({\r\n\tselector: 'lu-user-picture',\r\n\ttemplateUrl: './user-picture.component.html',\r\n\tstyleUrls: ['./user-picture.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LuUserPictureComponent {\r\n\r\n\tprivate _displayFormat: LuDisplayInitials = LuDisplayInitials.lastfirst;\r\n\t/**\r\n\t * User Display format.\r\n\t * It is set to 'LF' by default\r\n\t */\r\n\t@Input()\r\n\tset displayFormat(displayFormat: LuDisplayInitials) {\r\n\t\tthis._displayFormat = displayFormat;\r\n\t\tthis._changeDetector.markForCheck();\r\n\t}\r\n\r\n\tget displayFormat(): LuDisplayInitials {\r\n\t\treturn this._displayFormat;\r\n\t}\r\n\r\n\t/**\r\n\t * ILuUser whose picture you wanna display.\r\n\t */\r\n\tprivate _user: ILuUser;\r\n\r\n\t@Input()\r\n\tset user(user: ILuUser) {\r\n\t\tthis._user = user;\r\n\t\tthis.initials = this.displayPipe.transform(user, this.displayFormat);\r\n\t\tconst pictureHref = user?.picture?.href || user?.pictureHref\r\n\t\tthis.hasPicture = !!pictureHref;\r\n\t\tif (this.hasPicture) {\r\n\t\t\tthis.style = { 'background-image': `url('${pictureHref}')` };\r\n\t\t} else {\r\n\t\t\tconst hsl = this.getNameHue();\r\n\t\t\tthis.style = { 'background-color': `hsl(${hsl}, 60%, 60%)` };\r\n\t\t}\r\n\t\tthis._changeDetector.markForCheck();\r\n\t}\r\n\tget user() {\r\n\t\treturn this._user;\r\n\t}\r\n\r\n\tinitials = '';\r\n\thasPicture = false;\r\n\r\n\tstyle;\r\n\r\n\tconstructor(\r\n\t\tprivate displayPipe: LuUserDisplayPipe,\r\n\t\tprivate _changeDetector: ChangeDetectorRef\r\n\t) {}\r\n\r\n\tprivate getNameHue(): number {\r\n\t\t// we sum the chars in user's firstname + lastname\r\n\t\tconst charSum = this.displayPipe\r\n\t\t\t.transform(this._user, LuDisplayFullname.firstlast)\r\n\t\t\t.split('')\r\n\t\t\t.reduce((sum, a) => sum + a.charCodeAt(0), 0);\r\n\t\t// and take a modulo 360 for hue\r\n\t\tconst hue = charSum % 360;\r\n\t\treturn hue;\r\n\t}\r\n}\r\n","<div class=\"picture\" [ngStyle]=\"style\">\r\n\t<span *ngIf=\"!hasPicture\">{{initials}}</span>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LuUserDisplayModule } from '../display/index';\r\nimport { LuUserPictureComponent } from './user-picture.component';\r\n\r\n@NgModule({\r\n\timports: [CommonModule, LuUserDisplayModule],\r\n\tdeclarations: [LuUserPictureComponent],\r\n\texports: [LuUserPictureComponent],\r\n})\r\nexport class LuUserPictureModule {}\r\n","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { ILuUser } from '../user.model';\r\nimport {\r\n\tLuUserDisplayPipe,\r\n\tLuDisplayInitials,\r\n\tLuDisplayFullname,\r\n\tLuDisplayHybrid,\r\n\tLuDisplayFormat,\r\n} from '../display/index';\r\n\r\n/**\r\n * Displays user picture and name. ILuUser's role can be specified, and the footer is customizable.\r\n */\r\n@Component({\r\n\tselector: 'lu-user-tile',\r\n\ttemplateUrl: './user-tile.component.html',\r\n\tstyleUrls: ['./user-tile.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LuUserTileComponent {\r\n\r\n\tprivate _user: ILuUser;\r\n\t/**\r\n\t * ILuUser to display.\r\n\t */\r\n\t@Input()\r\n\tset user(user: ILuUser) {\r\n\t\tthis._user = user;\r\n\t\tthis._changeDetector.markForCheck();\r\n\t}\r\n\r\n\tget user(): ILuUser {\r\n\t\treturn this._user;\r\n\t}\r\n\r\n\t/**\r\n\t * User Display format.\r\n\t * It is set to 'lf' by default\r\n\t */\r\n\t@Input()\r\n\tdisplayFormat: LuDisplayFormat;\r\n\r\n\tprivate _role: string;\r\n\t/**\r\n\t * ILuUser role to display\r\n\t */\r\n\t@Input()\r\n\tset role(role: string) {\r\n\t\tthis._role = role;\r\n\t\tthis._changeDetector.markForCheck();\r\n\t}\r\n\r\n\tget role(): string {\r\n\t\treturn this._role;\r\n\t}\r\n\r\n\tget displayPictureFormat(): LuDisplayInitials {\r\n\t\tswitch (this.displayFormat) {\r\n\t\t\tcase LuDisplayFullname.lastfirst:\r\n\t\t\tcase LuDisplayInitials.lastfirst:\r\n\t\t\tcase LuDisplayHybrid.lastIfirstFull:\r\n\t\t\tcase LuDisplayHybrid.lastFullfirstI:\r\n\t\t\t\treturn LuDisplayInitials.lastfirst;\r\n\t\t\tcase LuDisplayFullname.last:\r\n\t\t\tcase LuDisplayInitials.last:\r\n\t\t\t\treturn LuDisplayInitials.last;\r\n\t\t\tcase LuDisplayFullname.first:\r\n\t\t\tcase LuDisplayInitials.first:\r\n\t\t\t\treturn LuDisplayInitials.first;\r\n\t\t\tcase LuDisplayFullname.firstlast:\r\n\t\t\tcase LuDisplayInitials.firstlast:\r\n\t\t\tcase LuDisplayHybrid.firstIlastFull:\r\n\t\t\tcase LuDisplayHybrid.firstFulllastI:\r\n\t\t\tdefault:\r\n\t\t\t\treturn LuDisplayInitials.firstlast;\r\n\t\t}\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tprivate _changeDetector: ChangeDetectorRef\r\n\t) {}\r\n}\r\n","<lu-user-picture [user]=\"user\" [displayFormat]=\"displayPictureFormat\"></lu-user-picture>\r\n<div class=\"user-info\">\r\n\t<span class=\"user-tile-label\">{{role ? role : user?.jobTitle}}</span>\r\n\t<h5 class=\"user-tile-title\">{{user | luUserDisplay: displayFormat}}</h5>\r\n\t<span class=\"user-tile-footnote\"><ng-content></ng-content></span>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LuUserDisplayModule } from '../display/index';\r\nimport { LuUserPictureModule } from '../picture/index';\r\nimport { LuUserTileComponent } from './user-tile.component';\r\n\r\n@NgModule({\r\n\timports: [CommonModule, LuUserPictureModule, LuUserDisplayModule],\r\n\tdeclarations: [LuUserTileComponent],\r\n\texports: [LuUserTileComponent],\r\n})\r\nexport class LuUserTileModule {}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LU_USER_SELECT_INPUT_TRANSLATIONS = new InjectionToken('LuUserSelectTranslations');\r\n","import { Injectable, LOCALE_ID, Inject } from '@angular/core';\r\nimport { LU_USER_SELECT_INPUT_TRANSLATIONS } from './user-select-input.token';\r\nimport { ILuUserSelectInputLabel } from './user-select-input.translate';\r\nimport { ALuIntl } from '@lucca-front/ng/core';\r\n\r\n@Injectable()\r\nexport class LuUserSelectInputIntl extends ALuIntl<ILuUserSelectInputLabel> {\r\n\tconstructor(@Inject(LU_USER_SELECT_INPUT_TRANSLATIONS) translations, @Inject(LOCALE_ID) locale) {\r\n\t\tsuper(translations, locale);\r\n\t}\r\n}\r\n","import { ILuUser } from '../user.model';\r\nimport { ILuApiService, ALuApiService } from '@lucca-front/ng/api';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface ILuUserService<U extends ILuUser = ILuUser> extends ILuApiService<U> {\r\n\tgetMe(): Observable<U>;\r\n}\r\n\r\nexport abstract class ALuUserService<U extends ILuUser = ILuUser> extends ALuApiService<U> implements ILuUserService<U> {\r\n\tabstract getMe(): Observable<U>;\r\n}","import { ILuUser } from '../user.model';\r\nimport { ILuUserService } from './user-service.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LuApiV3Service, ILuApiResponse, ILuApiSuggestion } from '@lucca-front/ng/api';\r\nimport { Observable } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LuUserV3Service<U extends ILuUser = ILuUser> extends LuApiV3Service<U> implements ILuUserService<U> {\r\n\r\n\tprotected _appInstanceId: number | string;\r\n\tset appInstanceId(appInstanceId: number | string) { this._appInstanceId = appInstanceId; }\r\n\tprotected _operations: number[] = [];\r\n\tset operations(operations: number[]) { this._operations = operations; }\r\n\r\n\tconstructor(protected override _http: HttpClient) {\r\n\t\tsuper(_http);\r\n\t\tthis.api = '/api/v3/users/search';\r\n\t\tthis.fields = 'id,firstname,lastname,picture[href]';\r\n\t\tthis.orderBy = 'lastname,asc,firstname,asc';\r\n\t}\r\n\r\n\tgetMe(): Observable<U> {\r\n\t\treturn this._http.get<ILuApiResponse<ILuUser>>(`/api/v3/users/me?fields=id`).pipe(\r\n\t\t\tswitchMap(r => this._get(this.url + `&id=${r.data.id}`)),\r\n\t\t\tmap(users => users[0]),\r\n\t\t);\r\n\t}\r\n\r\n\toverride get url() {\r\n\t\tif (!this._appInstanceId || !this._operations || !this._operations.length) {\r\n\t\t\treturn `${this._api}?${[...this._filters, this._orderBy, this._fields].filter(f => !!f).join('&')}`;\r\n\t\t} else {\r\n\t\t\treturn `/api/v3/users/scopedsearch?${[\r\n\t\t\t\t...this._filters,\r\n\t\t\t\t`appInstanceId=${this._appInstanceId}`,\r\n\t\t\t\t`operations=${this._operations.join(',')}`,\r\n\t\t\t\tthis._orderBy,\r\n\t\t\t\tthis._fields,\r\n\t\t\t].filter(f => !!f).join('&')}`;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected override _get(url) {\r\n\t\treturn (<any>super._get(url) as Observable<ILuApiSuggestion<U>[]>)\r\n\t\t.pipe(map(suggestions => suggestions.map(s => s.item)));\r\n\t}\r\n\r\n\tprotected override _clueFilter(clue) {\r\n\t\tconst urlSafeClue = clue.split(' ').map(c => encodeURIComponent(c)).join(',');\r\n\t\treturn `clue=${urlSafeClue}`;\r\n\t}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const LU_USER_SEARCHER_TRANSLATIONS = new InjectionToken('LuUserSearcherTranslations');\r\n","import { Injectable, LOCALE_ID, Inject } from '@angular/core';\r\nimport { ALuIntl } from '@lucca-front/ng/core';\r\nimport { ILuUserSearcherLabel } from './user-searcher.translate';\r\nimport { LU_USER_SEARCHER_TRANSLATIONS } from './user-searcher.token';\r\n\r\n@Injectable()\r\nexport class LuUserSearcherIntl extends ALuIntl<ILuUserSearcherLabel> {\r\n\tconstructor(@Inject(LU_USER_SEARCHER_TRANSLATIONS) translations, @Inject(LOCALE_ID) locale) {\r\n\t\tsuper(translations, locale);\r\n\t}\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewChild, ElementRef, SkipSelf, Self, Optional, Inject, HostBinding, OnInit, OnDestroy, Output } from '@angular/core';\r\nimport {\r\n\tALuOnOpenSubscriber,\r\n\tALuOnScrollBottomSubscriber,\r\n\tALuOnCloseSubscriber,\r\n\tILuOnOpenSubscriber,\r\n\tILuOnScrollBottomSubscriber,\r\n\tILuOnCloseSubscriber,\r\n} from '@lucca-front/ng/core';\r\n\r\nimport { ALuOptionOperator } from '@lucca-front/ng/option';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { debounceTime, switchMap, catchError, share, startWith, mapTo, map, scan, filter, distinctUntilChanged } from 'rxjs/operators';\r\nimport { ILuUser } from '../../user.model';\r\nimport { ALuUserService, LuUserV3Service } from '../../service/index';\r\nimport { Subject, Observable, Subscription, combineLatest, of, merge, BehaviorSubject } from 'rxjs';\r\nimport { LuUserSearcherIntl } from './user-searcher.intl';\r\nimport { ILuUserSearcherLabel } from './user-searcher.translate';\r\n\r\n@Component({\r\n\tselector: 'lu-user-paged-searcher',\r\n\ttemplateUrl: 'user-searcher.component.html',\r\n\tstyleUrls: ['user-searcher.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: ALuOptionOperator,\r\n\t\t\tuseExisting: forwardRef(() => LuUserPagedSearcherComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuOnOpenSubscriber,\r\n\t\t\tuseExisting: forwardRef(() => LuUserPagedSearcherComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuOnCloseSubscriber,\r\n\t\t\tuseExisting: forwardRef(() => LuUserPagedSearcherComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuOnScrollBottomSubscriber,\r\n\t\t\tuseExisting: forwardRef(() => LuUserPagedSearcherComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuUserService,\r\n\t\t\tuseClass: LuUserV3Service,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuUserPagedSearcherComponent<U extends ILuUser = ILuUser>\r\n\timplements OnInit, OnDestroy, ILuOnOpenSubscriber, ILuOnScrollBottomSubscriber, ILuOnCloseSubscriber\r\n{\r\n\r\n\tprivate _service: LuUserV3Service<U>;\r\n\tprivate _subs = new Subscription();\r\n\r\n\t@HostBinding('class.position-fixed') fixed = true;\r\n\t@ViewChild('searchInput', { read: ElementRef, static: true }) searchInput: ElementRef;\r\n\r\n\t@Input() set fields(fields: string) { this._service.fields = fields; }\r\n\t@Input() set filters(filters: string[]) { this._service.filters = filters; }\r\n\t@Input() set orderBy(orderBy: string) { this._service.orderBy = orderBy; }\r\n\t@Input() set appInstanceId(appInstanceId: number | string) { this._service.appInstanceId = appInstanceId; }\r\n\t@Input() set operations(operations: number[]) { this._service.operations = operations; }\r\n\t@Input() enableFormerEmployees = false;\r\n\r\n\t@Output() clueChange: Observable<string>;\r\n\r\n\tform: FormGroup;\r\n\t// page$: Subject<number>;\r\n\toutOptions$ = new Subject<U[]>();\r\n\tloading$: Observable<boolean>;\r\n\tempty$: Observable<boolean>;\r\n\tprivate _loading = false;\r\n\tprivate _isOpened$ = new BehaviorSubject(false);\r\n\tprivate _page$ = new Subject<void>();\r\n\tprivate _isLastPage: boolean;\r\n\tprivate _options: U[] = [];\r\n\r\n\tconstructor(\r\n\t\t@Inject(ALuUserService) @Optional() @SkipSelf() hostService: ALuUserService,\r\n\t\t@Inject(ALuUserService) @Self() selfService: LuUserV3Service<U>,\r\n\t\t@Inject(LuUserSearcherIntl) public intl: ILuUserSearcherLabel,\r\n\r\n\t) {\r\n\t\tthis._service = (hostService || selfService) as LuUserV3Service<U>;\r\n\r\n\t\tconst clue = new FormControl('');\r\n\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tclue,\r\n\t\t\tformerEmployees: new FormControl(false),\r\n\t\t});\r\n\r\n\t\tthis.clueChange = clue.valueChanges;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst formValue$ = this.form.valueChanges.pipe(\r\n\t\t\tstartWith(this.form.value),\r\n\t\t);\r\n\r\n\t\tconst pager$ = this._page$.pipe(\r\n\t\t\tscan(acc => acc + 1, 0),\r\n\t\t\tstartWith(0),\r\n\t\t);\r\n\r\n\t\tconst query$ = combineLatest([\r\n\t\t\tformValue$.pipe(debounceTime(250)),\r\n\t\t\tthis._isOpened$,\r\n\t\t]).pipe(\r\n\t\t\tfilter(([, isOpened]) => isOpened),\r\n\t\t\tswitchMap(([val]) => pager$.pipe(map(page => [val, page]))),\r\n\t\t\tshare(),\r\n\t\t);\r\n\r\n\t\tconst results$ = query$.pipe(\r\n\t\t\tswitchMap(([val, page]) => {\r\n\t\t\t\tconst filters = [];\r\n\t\t\t\tif (val.formerEmployees) {\r\n\t\t\t\t\tfilters.push(`formerEmployees=true`);\r\n\t\t\t\t}\r\n\t\t\t\treturn this._service.searchPaged(val.clue, page, filters).pipe(\r\n\t\t\t\t\tcatchError(() => of([])),\r\n\t\t\t\t\tmap(items => [items, page] as [U[], number]),\r\n\t\t\t\t)\r\n\t\t\t}),\r\n\t\t\tshare(),\r\n\t\t);\r\n\r\n\t\tconst resultsSub = results$\r\n\t\t.subscribe(([items, page]) => {\r\n\t\t\tif (page === 0) {\r\n\t\t\t\tthis._options = [...items];\r\n\t\t\t} else {\r\n\t\t\t\tthis._options.push(...items);\r\n\t\t\t}\r\n\t\t\tthis._isLastPage = !items.length;\r\n\t\t\tthis.outOptions$.next([...this._options]);\r\n\t\t});\r\n\t\tthis._subs.add(resultsSub);\r\n\r\n\t\tthis.loading$ = merge(\r\n\t\t\tquery$.pipe(mapTo(true)),\r\n\t\t\tresults$.pipe(mapTo(false)),\r\n\t\t);\r\n\t\tconst loadingSub = this.loading$.subscribe(l => this._loading = l);\r\n\t\tthis._subs.add(loadingSub);\r\n\r\n\t\tthis.empty$ = this.outOptions$.pipe(\r\n\t\t\tmap(o => o.length === 0),\r\n\t\t);\r\n\t}\r\n\tngOnDestroy() {\r\n\t\tthis._subs.unsubscribe();\r\n\t}\r\n\r\n\tonOpen() {\r\n\t\tthis.searchInput.nativeElement.focus();\r\n\t\tthis._isOpened$.next(true);\r\n\t}\r\n\tonScrollBottom() {\r\n\t\tif (!this._loading && !this._isLastPage) {\r\n\t\t\tthis._page$.next();\r\n\t\t}\r\n\t}\r\n\tonClose() {\r\n\t\tthis._isOpened$.next(false);\r\n\t\tthis.outOptions$.next([]);\r\n\t\tthis.reset();\r\n\t}\r\n\r\n\treset() {\r\n\t\tif (this.form.dirty) {\r\n\t\t\tthis.form.reset();\r\n\t\t}\r\n\t}\r\n}\r\n","<form [formGroup]=\"form\">\r\n\t<div class=\"textfield mod-search\" [class.is-loading]=\"loading$ | async\">\r\n\t\t<input #searchInput class=\"textfield-input\" formControlName=\"clue\">\r\n\t</div>\r\n\r\n\t<label class=\"checkbox mod-formerEmployee mod-small\" *ngIf=\"enableFormerEmployees\">\r\n\t\t<input class=\"checkbox-input\" type=\"checkbox\" formControlName=\"formerEmployees\"/>\r\n\t\t<span class=\"checkbox-label\">{{ intl.includeFormerEmployees }}</span>\r\n\t</label>\r\n</form>\r\n\r\n<lu-option-placeholder *ngIf=\"(empty$ | async) && !(loading$ | async)\" (onClear)=\"reset()\"></lu-option-placeholder>\r\n","import { ILuUser } from '../../user.model';\r\nimport { Observable, of } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LuUserDisplayPipe, LuDisplayFullname } from '../../display/index';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\ninterface IV3CollectionResponse<T = any> {\r\n\tdata: { items: T[] };\r\n}\r\n\r\nexport interface ILuUserHomonymsService<U extends ILuUser = ILuUser> {\r\n\textractHomonyms(users: U[]): U[];\r\n\tenrichHomonyms(homonyms: U[]): Observable<U[]>;\r\n}\r\n\r\nexport abstract class ALuUserHomonymsService<U extends ILuUser = ILuUser> implements ILuUserHomonymsService<U> {\r\n\tabstract extractHomonyms(users: U[]): U[];\r\n\tabstract enrichHomonyms(homonyms: U[]): Observable<U[]>;\r\n}\r\n@Injectable()\r\nexport class LuUserHomonymsService<U extends ILuUser = ILuUser> extends ALuUserHomonymsService<U> implements ILuUserHomonymsService<U> {\r\n\tprivate _format = LuDisplayFullname.lastfirst;\r\n\textractHomonyms(users: U[]): U[] {\r\n\t\tconst usersByName = {} as { [key: string]: U[] };\r\n\t\tusers.forEach(user => {\r\n\t\t\tconst name = this._pipe.transform(user, this._format);\r\n\t\t\tusersByName[name] = [...(usersByName[name] || []), user];\r\n\t\t});\r\n\r\n\t\tconst nonUniqNames = Object.keys(usersByName)\r\n\t\t.filter(key => usersByName[key].length > 1);\r\n\r\n\t\tconst homonyms = [] as U[];\r\n\t\tnonUniqNames.forEach(name => homonyms.push(...usersByName[name]));\r\n\t\treturn homonyms;\r\n\t}\r\n\r\n\tenrichHomonyms(homonyms: U[]): Observable<U[]> {\r\n\t\tif (!homonyms || homonyms.length === 0) { return of([]); }\r\n\t\treturn this._http.get<IV3CollectionResponse<{ id: number, department: { name: string }}>>(`/api/v3/users`, { params: {\r\n\t\t\t'id': homonyms.map(u => u.id).join(','),\r\n\t\t\t'fields': 'id,department.name',\r\n\t\t}}).pipe(\r\n\t\t\tmap(res => res.data.items as { id: number, department?: { name: string }}[]),\r\n\t\t\tmap(infos => infos.map(info => {\r\n\t\t\t\t\tconst homonym = homonyms.find(h => h.id === info.id);\r\n\t\t\t\t\treturn { ...homonym, additionalInformation: info.department ? info.department.name : '' } as U;\r\n\t\t\t\t}) as U[]\r\n\t\t\t),\r\n\t\t\tcatchError(err => of([])),\r\n\t\t);\r\n\t}\r\n\tconstructor(\r\n\t\tprivate _pipe: LuUserDisplayPipe,\r\n\t\tprivate _http: HttpClient,\r\n\t) {\r\n\t\tsuper();\r\n\t}\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, SkipSelf, Self, Optional, Inject } from '@angular/core';\r\nimport { ALuOptionOperator, ILuOptionOperator} from '@lucca-front/ng/option';\r\nimport { ILuUser } from '../../user.model';\r\nimport { map, withLatestFrom, switchMap } from 'rxjs/operators';\r\nimport { ALuUserHomonymsService, LuUserHomonymsService, ILuUserHomonymsService } from './user-homonyms.service';\r\nimport { merge, Observable } from 'rxjs';\r\n\r\n@Component({\r\n\tselector: 'lu-user-homonyms',\r\n\ttemplate: '',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: ALuOptionOperator,\r\n\t\t\tuseExisting: forwardRef(() => LuUserHomonymsComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuUserHomonymsService,\r\n\t\t\tuseClass: LuUserHomonymsService,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuUserHomonymsComponent<U extends ILuUser = ILuUser> implements ILuOptionOperator<U> {\r\n\tset inOptions$(in$: Observable<U[]>) {\r\n\t\tthis._outOptions$ = merge(\r\n\t\t\tin$,\r\n\t\t\tin$.pipe(\r\n\t\t\t\tmap(users => this._service.extractHomonyms(users)),\r\n\t\t\t\tswitchMap((homonyms: U[]) => this._service.enrichHomonyms(homonyms)),\r\n\t\t\t\twithLatestFrom(in$),\r\n\t\t\t\tmap<[U[], U[]], U[]>(([enrichedUsers, users]) => {\r\n\t\t\t\t\tconst result = [ ...users];\r\n\t\t\t\t\tenrichedUsers.forEach(user => {\r\n\t\t\t\t\t\tconst i = result.findIndex(u => u.id === user.id);\r\n\t\t\t\t\t\tresult[i] = user;\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}),\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\tprivate _outOptions$: Observable<U[]>;\r\n\tget outOptions$() {\r\n\t\treturn this._outOptions$;\r\n\t}\r\n\tprivate _service: ILuUserHomonymsService<U>;\r\n\tconstructor(\r\n\t\t@Inject(ALuUserHomonymsService) @Optional() @SkipSelf() hostService: ILuUserHomonymsService<U>,\r\n\t\t@Inject(ALuUserHomonymsService) @Self() selfService: ILuUserHomonymsService<U>,\r\n\t) {\r\n\t\tthis._service = hostService || selfService;\r\n\t}\r\n}\r\n\r\n","import { Directive, forwardRef, Inject, Optional, SkipSelf, Self, ViewContainerRef, TemplateRef, Input, EmbeddedViewRef } from '@angular/core';\r\nimport { ALuOptionOperator, ILuOptionOperator } from '@lucca-front/ng/option';\r\nimport { ALuOnOpenSubscriber } from '@lucca-front/ng/core';\r\nimport { ILuUser } from '../../user.model';\r\nimport { ALuUserService, LuUserV3Service } from '../../service/index';\r\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Directive({\r\n\tselector: '[luUserMeOption]',\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: ALuOptionOperator,\r\n\t\t\tuseExisting: forwardRef(() => LuUserMeOptionDirective),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ALuUserService,\r\n\t\t\tuseClass: LuUserV3Service,\r\n\t\t},\r\n\r\n\t\t{\r\n\t\t\tprovide: ALuOnOpenSubscriber,\r\n\t\t\tuseExisting: forwardRef(() => LuUserMeOptionDirective),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuUserMeOptionDirective<U extends ILuUser = ILuUser> implements ILuOptionOperator<U> {\r\n\t@Input() set luUserMeOptionFields(fields: string) { this._service.fields = fields; }\r\n\t@Input() set luUserMeOptionFilters(filters: string[]) { this._service.filters = filters; }\r\n\t@Input() set luUserMeOptionOrderBy(orderBy: string) { this._service.orderBy = orderBy; }\r\n\t@Input() set luUserMeOptionAppInstanceId(appInstanceId: number | string) { this._service.appInstanceId = appInstanceId; }\r\n\t@Input() set luUserMeOptionOperations(operations: number[]) { this._service.operations = operations; }\r\n\t@Input() set luUserMeOptionClue(clue: string) { clue ? this.hideMe() : this.displayMe(); }\r\n\r\n\tset inOptions$(in$: Observable<U[]>) {\r\n\t\tthis.outOptions$ = combineLatest([in$, this.meDisplayed$])\r\n\t\t\t.pipe(\r\n\t\t\t\tmap(\r\n\t\t\t\t\t([options, meDisplayed]) => meDisplayed\r\n\t\t\t\t\t\t? options?.filter(o => o.id !== this.me?.id)\r\n\t\t\t\t\t\t: options\r\n\t\t\t\t),\r\n\t\t\t);\r\n\t}\r\n\toutOptions$: Observable<U[]>;\r\n\r\n\tprivate _service: LuUserV3Service<U>;\r\n\tprivate _viewRef: EmbeddedViewRef<{ $implicit: ILuUser }>;\r\n\r\n\tconstructor(\r\n\t\t@Inject(ALuUserService) @Optional() @SkipSelf() hostService: ALuUserService,\r\n\t\t@Inject(ALuUserService) @Self() selfService: ALuUserService,\r\n\t\tprivate _vcr: ViewContainerRef,\r\n\t\tprivate _templateRef: TemplateRef<{ $implicit: U }>,\r\n\t) {\r\n\t\tthis._service = (hostService || selfService) as LuUserV3Service<U>;\r\n\t}\r\n\r\n\tme: ILuUser = undefined;\r\n\tprivate meDisplayed$ = new BehaviorSubject(false);\r\n\tonOpen() {\r\n\t\tthis._service.getMe().subscribe(me => {\r\n\t\t\tthis.me = me;\r\n\t\t\tthis.displayMe();\r\n\t\t});\r\n\t}\r\n\tdisplayMe() {\r\n\t\tif (this.me && !this.meDisplayed$.value) {\r\n\t\t\tthis.meDisplayed$.next(true);\r\n\t\t\tthis._viewRef = this._vcr.createEmbeddedView(this._templateRef, { $implicit: this.me });\r\n\t\t}\r\n\t}\r\n\thideMe() {\r\n\t\tif (this.me && this.meDisplayed$.value && this._viewRef) {\r\n\t\t\tthis.meDisplayed$.next(false);\r\n\t\t\tthis._viewRef.destroy();\r\n\t\t}\r\n\t}\r\n}\r\n","import {\r\n\tChangeDetectionStrategy,\r\n\tComponent,\r\n\tChangeDetectorRef,\r\n\tforwardRef,\r\n\tViewContainerRef,\r\n\tElementRef,\r\n\tInput,\r\n\tRenderer2,\r\n\tInject,\r\n\tAfterViewInit,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { ILuInputWithPicker } from '@lucca-front/ng/picker';\r\nimport { ILuUser } from '../../user.model';\r\nimport { ALuSelectInputComponent } from '@lucca-front/ng/select';\r\nimport { LuDisplayFullname } from '../../display/index';\r\nimport { LuUserSelectInputIntl } from './user-select-input.intl';\r\nimport { ILuUserSelectInputLabel } from './user-select-input.translate';\r\nimport { LuOptionComparer } from '@lucca-front/ng/option';\r\n\r\n/**\r\n* Displays user'picture or a placeholder with his/her initials and random bg color'\r\n*/\r\n@Component({\r\n\tselector: 'lu-user-select',\r\n\ttemplateUrl: './user-select-input.component.html',\r\n\tstyleUrls: ['./user-select-input.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuUserSelectInputComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class LuUserSelectInputComponent<U extends import ('../../user.model').ILuUser = import ('../../user.model').ILuUser>\r\nextends ALuSelectInputComponent<U>\r\nimplements ControlValueAccessor, ILuInputWithPicker<U>, AfterViewInit {\r\n\r\n\tsearchFormat = LuDisplayFullname.lastfirst;\r\n\r\n\t@Input('placeholder') override set inputPlaceholder(p: string) { this._placeholder = p; }\r\n\r\n\t@Input() fields: string;\r\n\t@Input() filters: string[];\r\n\t@Input() orderBy: string;\r\n\t@Input() appInstanceId: number | string;\r\n\t@Input() operations: number[];\r\n\t@Input() enableFormerEmployees = false;\r\n\r\n\tclue = '';\r\n\r\n\tbyId: LuOptionComparer<U> = (option1: U, option2: U) => option1 && option2 && option1.id === option2.id;\r\n\r\n\tconstructor(\r\n\t\tprotected override _changeDetectorRef: ChangeDetectorRef,\r\n\t\tprotected override _overlay: Overlay,\r\n\t\tprotected override _elementRef: ElementRef,\r\n\t\tprotected override _viewContainerRef: ViewContainerRef,\r\n\t\tprotected override _renderer: Renderer2,\r\n\t\t@Inject(LuUserSelectInputIntl) public intl: ILuUserSelectInputLabel,\r\n\t) {\r\n\t\tsuper(\r\n\t\t\t_changeDetectorRef,\r\n\t\t\t_overlay,\r\n\t\t\t_elementRef,\r\n\t\t\t_viewContainerRef,\r\n\t\t\t_renderer,\r\n\t\t);\r\n\t}\r\n}\r\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container #display></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<lu-input-clearer></lu-input-clearer>\r\n</div>\r\n<ng-template luDisplayer [luDisplayerMultiple]=\"true\" let-values>\r\n\t<span *ngIf=\"multiple && values?.length > 1; else: singleView\"><span class=\"chip mod-unkillable\">{{values.length}}</span> {{intl.users}}</span>\r\n\t<ng-template #singleView>{{(values[0] || values) | luUserDisplay}}</ng-template>\r\n</ng-template>\r\n<lu-option-picker-advanced [option-comparer]=\"byId\">\r\n\t<header class=\"lu-picker-header\">\r\n\t\t<lu-user-paged-searcher\r\n\t\t\t[fields]=\"fields\"\r\n\t\t\t[filters]=\"filters\"\r\n\t\t\t[orderBy]=\"orderBy\"\r\n\t\t\t[appInstanceId]=\"appInstanceId\"\r\n\t\t\t[operations]=\"operations\"\r\n\t\t\t[enableFormerEmployees]=\"enableFormerEmployees\"\r\n\t\t\t(clueChange)=\"clue = $event\"\r\n\t\t></lu-user-paged-searcher>\r\n\t</header>\r\n\t<lu-user-homonyms></lu-user-homonyms>\r\n\t<lu-option\r\n\t\t*luUserMeOption=\"let user; fields: fields; filters: filters; orderBy: orderBy; appInstanceId: appInstanceId; operations: operations; clue: clue\"\r\n\t\t[value]=\"user\"\r\n\t>\r\n\t\t<div><b>{{intl.me}} {{ user | luUserDisplay: searchFormat }}</b></div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n\r\n\t<lu-option *luForOptions=\"let user\" [value]=\"user\">\r\n\t\t<div>{{ user | luUserDisplay: searchFormat }}</div>\r\n\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">\r\n\t\t\t({{user.additionalInformation}})\r\n\t\t</div>\r\n\t</lu-option>\r\n</lu-option-picker-advanced>\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { LuUserHomonymsComponent } from './user-homonyms.component';\r\nimport { LuUserDisplayModule } from '../../display/index';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tHttpClientModule,\r\n\t\tLuUserDisplayModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tLuUserHomonymsComponent,\r\n\t],\r\n\texports: [\r\n\t\tLuUserHomonymsComponent,\r\n\t],\r\n})\r\nexport class LuUserHomonymsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuUserMeOptionDirective } from './me-option.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t],\r\n\tdeclarations: [\r\n\t\tLuUserMeOptionDirective,\r\n\t],\r\n\texports: [\r\n\t\tLuUserMeOptionDirective,\r\n\t],\r\n\tproviders: [\r\n\t]\r\n})\r\nexport class LuUserMeOptionModule {}\r\n","import { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport interface ILuUserSearcherLabel {\r\n\tincludeFormerEmployees: string;\r\n}\r\nexport abstract class ALuUserSearcherLabel {\r\n\tincludeFormerEmployees: string;\r\n}\r\n\r\nexport const luUserSearcherTranslations = {\r\n\ten: {\r\n\t\tincludeFormerEmployees: 'Include former employees',\r\n\t},\r\n\tfr: {\r\n\t\tincludeFormerEmployees: 'Inclure les salariés partis',\r\n\t},\r\n\tes: {\r\n\t\tincludeFormerEmployees: 'Incluir a los antiguos empleados',\r\n\t}\r\n} as ILuTranslation<ILuUserSearcherLabel>;\r\n","import { NgModule } from '@angular/core';\r\nimport { LuUserPagedSearcherComponent } from './user-searcher.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LuOptionPlaceholderModule } from '@lucca-front/ng/option';\r\nimport { LuUserSearcherIntl } from './user-searcher.intl';\r\nimport { LU_USER_SEARCHER_TRANSLATIONS } from './user-searcher.token';\r\nimport { luUserSearcherTranslations } from './user-searcher.translate';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tHttpClientModule,\r\n\t\tReactiveFormsModule,\r\n\t\tCommonModule,\r\n\t\tLuOptionPlaceholderModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tLuUserPagedSearcherComponent,\r\n\t],\r\n\texports: [\r\n\t\tLuUserPagedSearcherComponent,\r\n\t],\r\n\tproviders: [\r\n\t\tLuUserSearcherIntl,\r\n\t\t{ provide: LU_USER_SEARCHER_TRANSLATIONS, useValue: luUserSearcherTranslations },\r\n\t],\r\n})\r\nexport class LuUserSearcherModule {}\r\n","import { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport interface ILuUserSelectInputLabel {\r\n\tusers: string;\r\n\tme: string;\r\n}\r\nexport abstract class ALuUserSelectInputLabel {\r\n\tusers: string;\r\n\tme: string;\r\n}\r\n\r\nexport const luUserSelectInputTranslations = {\r\n\ten: {\r\n\t\tusers: 'users',\r\n\t\tme: 'Me:'\r\n\t},\r\n\tfr: {\r\n\t\tusers: 'utilisateurs',\r\n\t\tme: 'Moi :'\r\n\t},\r\n\tes: {\r\n\t\tusers: 'empleados',\r\n\t\tme: 'Yo :'\r\n\t}\r\n} as ILuTranslation<ILuUserSelectInputLabel>;\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { LuInputClearerModule, LuInputDisplayerModule } from '@lucca-front/ng/input';\r\nimport { LuOptionOperatorModule, LuOptionPickerModule } from '@lucca-front/ng/option';\r\nimport { LuUserDisplayModule } from '../../display/index';\r\nimport { LuUserHomonymsModule } from '../homonyms/index';\r\nimport { LuUserMeOptionModule } from '../me/index';\r\nimport { LuUserSearcherModule } from '../searcher/index';\r\nimport { LuUserSelectInputComponent } from './user-select-input.component';\r\nimport { LuUserSelectInputIntl } from './user-select-input.intl';\r\nimport { LU_USER_SELECT_INPUT_TRANSLATIONS } from './user-select-input.token';\r\nimport { luUserSelectInputTranslations } from './user-select-input.translate';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tLuUserDisplayModule,\r\n\t\tLuOptionOperatorModule,\r\n\t\tLuOptionPickerModule,\r\n\t\tLuInputClearerModule,\r\n\t\tLuUserSearcherModule,\r\n\t\tLuInputDisplayerModule,\r\n\t\tLuUserHomonymsModule,\r\n\t\tLuUserMeOptionModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tLuUserSelectInputComponent,\r\n\t],\r\n\texports: [\r\n\t\tLuUserSelectInputComponent,\r\n\t],\r\n\tproviders: [\r\n\t\t{ provide: LU_USER_SELECT_INPUT_TRANSLATIONS, useValue: luUserSelectInputTranslations },\r\n\t\tLuUserSelectInputIntl,\r\n\t]\r\n})\r\nexport class LuUserSelectInputModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { LuUserSelectInputModule } from './input/index';\r\nimport { LuUserSearcherModule } from './searcher/index';\r\nimport { LuUserHomonymsModule } from './homonyms/index';\r\nimport { LuUserMeOptionModule } from './me/index';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tLuUserSelectInputModule,\r\n\t\tLuUserSearcherModule,\r\n\t\tLuUserHomonymsModule,\r\n\t\tLuUserMeOptionModule,\r\n\t],\r\n\texports: [\r\n\t\tLuUserSelectInputModule,\r\n\t\tLuUserSearcherModule,\r\n\t\tLuUserHomonymsModule,\r\n\t\tLuUserMeOptionModule,\r\n\t],\r\n})\r\nexport class LuUserSelectModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { LuUserDisplayModule } from './display/index';\r\nimport { LuUserPictureModule } from './picture/index';\r\nimport { LuUserTileModule } from './tile/index';\r\nimport { LuUserSelectModule } from './select/index';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tLuUserDisplayModule,\r\n\t\tLuUserPictureModule,\r\n\t\tLuUserTileModule,\r\n\t\tLuUserSelectModule,\r\n\t],\r\n\texports: [\r\n\t\tLuUserDisplayModule,\r\n\t\tLuUserPictureModule,\r\n\t\tLuUserTileModule,\r\n\t\tLuUserSelectModule,\r\n\t],\r\n})\r\nexport class LuUserModule {}\r\n","/*\r\n * Public API Surface of safe-content\r\n */\r\n\r\nexport * from './index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|