spiderly 19.0.3 → 19.0.4
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/fesm2022/spiderly.mjs +456 -210
- package/fesm2022/spiderly.mjs.map +1 -1
- package/lib/components/layout/{layout-base.component.d.ts → layout.component.d.ts} +14 -6
- package/lib/components/layout/profile-avatar/profile-avatar.component.d.ts +42 -0
- package/lib/components/layout/sidemenu-topbar/sidemenu-topbar.component.d.ts +18 -0
- package/lib/components/layout/topbar/topbar.component.d.ts +9 -40
- package/lib/components/not-found/not-found.component.d.ts +1 -0
- package/lib/components/spiderly-data-table/spiderly-data-table.component.d.ts +2 -2
- package/lib/components/spiderly-data-view/spiderly-data-view.component.d.ts +59 -0
- package/lib/components/spiderly-form-control/spiderly-form-control.d.ts +7 -6
- package/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.d.ts +10 -3
- package/lib/directives/template-type.directive.d.ts +7 -0
- package/lib/entities/base-entity.d.ts +0 -10
- package/lib/entities/table-filter-context.d.ts +7 -4
- package/lib/entities/table-filter-sort-meta.d.ts +2 -2
- package/lib/entities/table-filter.d.ts +14 -4
- package/lib/enums/match-mode-enum-codes.d.ts +8 -0
- package/lib/services/config-base.service.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -1
- package/styles/components/layout/topbar/topbar.component.scss +33 -0
- package/styles/components/spiderly-data-view/spiderly-data-view.component.scss +50 -0
- package/styles/components/spiderly-panels/panel-footer/panel-footer.component.scss +1 -1
- package/styles/styles/layout/_main.scss +4 -0
- package/styles/styles/layout/_menu.scss +1 -1
- package/styles/styles/layout/_topbar.scss +2 -2
- package/styles/styles/layout/layout.scss +0 -1
- package/styles/styles/shared.scss +10 -4
- package/styles/styles/layout/_config.scss +0 -42
package/fesm2022/spiderly.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, importProvidersFrom, NgModule, Input, Component, EventEmitter, Output, ViewChild, LOCALE_ID, Inject, HostBinding, inject } from '@angular/core';
|
|
2
|
+
import { Injectable, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, importProvidersFrom, NgModule, Input, Component, EventEmitter, Output, ViewChild, LOCALE_ID, Inject, TemplateRef, ContentChild, HostBinding, inject, Directive } from '@angular/core';
|
|
3
3
|
import * as i1$1 from 'primeng/api';
|
|
4
4
|
import { MessageService, ConfirmationService } from 'primeng/api';
|
|
5
5
|
import { BehaviorSubject, Subject, of, map as map$1, throttleTime, combineLatest, forkJoin, delay as delay$1, withLatestFrom, firstValueFrom, filter as filter$1, finalize as finalize$1, tap as tap$1, throwError } from 'rxjs';
|
|
@@ -14,17 +14,15 @@ import { provideTransloco, TranslocoModule, TranslocoDirective, TranslocoService
|
|
|
14
14
|
import * as i1$6 from 'primeng/dynamicdialog';
|
|
15
15
|
import { DialogService } from 'primeng/dynamicdialog';
|
|
16
16
|
import { provideTranslocoPreloadLangs } from '@jsverse/transloco-preload-langs';
|
|
17
|
-
import * as
|
|
17
|
+
import * as i4 from 'primeng/autocomplete';
|
|
18
18
|
import { AutoCompleteModule } from 'primeng/autocomplete';
|
|
19
19
|
import * as i2 from '@angular/common';
|
|
20
20
|
import { CommonModule, formatDate } from '@angular/common';
|
|
21
21
|
import * as i3$2 from '@angular/forms';
|
|
22
|
-
import {
|
|
23
|
-
import * as i4 from 'primeng/inputgroupaddon';
|
|
22
|
+
import { FormControl, FormGroup, FormArray, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
24
23
|
import { InputGroupAddonModule } from 'primeng/inputgroupaddon';
|
|
25
|
-
import * as i5
|
|
24
|
+
import * as i5 from 'primeng/tooltip';
|
|
26
25
|
import { TooltipModule, Tooltip } from 'primeng/tooltip';
|
|
27
|
-
import * as i5 from 'primeng/inputgroup';
|
|
28
26
|
import { InputGroupModule } from 'primeng/inputgroup';
|
|
29
27
|
import * as i4$1 from 'primeng/datepicker';
|
|
30
28
|
import { DatePickerModule } from 'primeng/datepicker';
|
|
@@ -32,11 +30,11 @@ import * as i4$2 from 'primeng/checkbox';
|
|
|
32
30
|
import { CheckboxModule } from 'primeng/checkbox';
|
|
33
31
|
import * as i4$3 from 'primeng/colorpicker';
|
|
34
32
|
import { ColorPickerModule } from 'primeng/colorpicker';
|
|
35
|
-
import * as i3$
|
|
33
|
+
import * as i3$3 from 'primeng/select';
|
|
36
34
|
import { SelectModule } from 'primeng/select';
|
|
37
35
|
import * as i4$4 from 'primeng/editor';
|
|
38
36
|
import { EditorModule, Editor } from 'primeng/editor';
|
|
39
|
-
import * as i3$
|
|
37
|
+
import * as i3$4 from 'primeng/fileupload';
|
|
40
38
|
import { FileUploadModule } from 'primeng/fileupload';
|
|
41
39
|
import * as FileSaver from 'file-saver';
|
|
42
40
|
import * as i1$3 from 'primeng/button';
|
|
@@ -64,10 +62,12 @@ import { TableModule } from 'primeng/table';
|
|
|
64
62
|
import * as i2$2 from 'primeng/confirmdialog';
|
|
65
63
|
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
66
64
|
import { trigger, state, transition, style, animate } from '@angular/animations';
|
|
67
|
-
import * as
|
|
65
|
+
import * as i7 from 'primeng/avatar';
|
|
68
66
|
import { AvatarModule } from 'primeng/avatar';
|
|
69
|
-
import * as
|
|
67
|
+
import * as i8 from 'primeng/badge';
|
|
70
68
|
import { BadgeModule } from 'primeng/badge';
|
|
69
|
+
import * as i3$5 from 'primeng/menubar';
|
|
70
|
+
import { MenubarModule } from 'primeng/menubar';
|
|
71
71
|
import { NgxSpinnerService } from 'ngx-spinner';
|
|
72
72
|
|
|
73
73
|
function authInitializer(authService) {
|
|
@@ -78,21 +78,9 @@ function authInitializer(authService) {
|
|
|
78
78
|
|
|
79
79
|
class BaseEntity {
|
|
80
80
|
constructor(typeName) {
|
|
81
|
-
this.pipedProperties = [];
|
|
82
81
|
this.typeName = typeName;
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
|
-
class PipedProperty {
|
|
86
|
-
constructor(p, c) {
|
|
87
|
-
this.pipe = p;
|
|
88
|
-
this.control = c;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
var PropertyPipes;
|
|
92
|
-
(function (PropertyPipes) {
|
|
93
|
-
PropertyPipes[PropertyPipes["IntegerPipe"] = 0] = "IntegerPipe";
|
|
94
|
-
PropertyPipes[PropertyPipes["DecimalPipe"] = 1] = "DecimalPipe";
|
|
95
|
-
})(PropertyPipes || (PropertyPipes = {}));
|
|
96
84
|
|
|
97
85
|
class User extends BaseEntity {
|
|
98
86
|
constructor({ id, email, } = {}) {
|
|
@@ -289,6 +277,7 @@ class ConfigBaseService {
|
|
|
289
277
|
headers: new HttpHeaders({ 'Content-Type': 'application/json' }),
|
|
290
278
|
params: new HttpParams().set('X-Skip-Spinner', 'true')
|
|
291
279
|
};
|
|
280
|
+
this.logoPath = 'assets/images/logo/logo.svg';
|
|
292
281
|
}
|
|
293
282
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ConfigBaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
294
283
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ConfigBaseService, providedIn: 'root' }); }
|
|
@@ -429,7 +418,7 @@ class AuthBaseService {
|
|
|
429
418
|
};
|
|
430
419
|
this.initCompanyAuthDialogDetails = () => {
|
|
431
420
|
return of(new InitCompanyAuthDialogDetails({
|
|
432
|
-
image:
|
|
421
|
+
image: this.config.logoPath,
|
|
433
422
|
companyName: this.config.companyName,
|
|
434
423
|
}));
|
|
435
424
|
};
|
|
@@ -765,9 +754,6 @@ class BaseControl {
|
|
|
765
754
|
ngOnInit() {
|
|
766
755
|
if (this.control != null && this.disabled == true)
|
|
767
756
|
this.control.disable();
|
|
768
|
-
// TODO FT: Delete if you don't need
|
|
769
|
-
// if(this.control?.validator?.hasNotEmptyRule == true) // FT HACK: Be carefull with this name, if you change it in generator you need to change it here also
|
|
770
|
-
// this.control.required = true;
|
|
771
757
|
this.errorMessageTooltipEvent = window.innerWidth > 1000 ? 'hover' : 'focus';
|
|
772
758
|
}
|
|
773
759
|
ngAfterViewInit() {
|
|
@@ -777,7 +763,7 @@ class BaseControl {
|
|
|
777
763
|
}
|
|
778
764
|
getValidationErrrorMessages() {
|
|
779
765
|
if (this.control?.errors && this.control?.dirty) {
|
|
780
|
-
//
|
|
766
|
+
// It should always be one error message for single form control,
|
|
781
767
|
// also i don't need to reassign it to null because it will be shown only when control.valid == false
|
|
782
768
|
return this.control.errors['_'];
|
|
783
769
|
}
|
|
@@ -867,20 +853,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
867
853
|
args: [{ selector: 'required', standalone: true, template: "<span style=\"color: red; margin-left: 4px;\">*</span>" }]
|
|
868
854
|
}], ctorParameters: () => [] });
|
|
869
855
|
|
|
870
|
-
|
|
856
|
+
// It's made like generic type because of <number>, <string> etc. not to put class like User.
|
|
857
|
+
class SpiderlyFormControl extends FormControl {
|
|
858
|
+
constructor(value, opts = null, required = false) {
|
|
859
|
+
opts = opts ?? { updateOn: 'blur' };
|
|
860
|
+
super(value, opts);
|
|
861
|
+
this.required = required;
|
|
862
|
+
}
|
|
863
|
+
getRawValue() {
|
|
864
|
+
return super.getRawValue();
|
|
865
|
+
}
|
|
866
|
+
get validator() {
|
|
867
|
+
return this._spiderlyValidator;
|
|
868
|
+
}
|
|
869
|
+
set validator(validator) {
|
|
870
|
+
this._spiderlyValidator = validator;
|
|
871
|
+
this.setValidators(validator);
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
class SpiderlyFormGroup extends FormGroup {
|
|
875
|
+
constructor(controls) {
|
|
876
|
+
super(controls);
|
|
877
|
+
this.initSaveBody = () => null;
|
|
878
|
+
this.controlNamesFromHtml = [];
|
|
879
|
+
}
|
|
880
|
+
getRawValue() {
|
|
881
|
+
return super.getRawValue();
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
class SpiderlyFormArray extends FormArray {
|
|
885
|
+
constructor() {
|
|
886
|
+
super(...arguments);
|
|
887
|
+
this.controlNamesFromHtml = [];
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
class ValidatorAbstractService {
|
|
871
892
|
constructor(translocoService) {
|
|
893
|
+
this.translocoService = translocoService;
|
|
894
|
+
this.isArrayEmpty = (control) => {
|
|
895
|
+
const validator = () => {
|
|
896
|
+
const value = control.value;
|
|
897
|
+
const notEmptyRule = typeof value !== 'undefined' && value !== null && value.length !== 0;
|
|
898
|
+
const arrayValid = notEmptyRule;
|
|
899
|
+
return arrayValid ? null : { _: this.translocoService.translate('NotEmpty') };
|
|
900
|
+
};
|
|
901
|
+
validator.hasNotEmptyRule = true;
|
|
902
|
+
control.required = true;
|
|
903
|
+
return validator;
|
|
904
|
+
};
|
|
905
|
+
this.notEmpty = (control) => {
|
|
906
|
+
const validator = () => {
|
|
907
|
+
const value = control.value;
|
|
908
|
+
const notEmptyRule = typeof value !== 'undefined' && value !== null && value !== '';
|
|
909
|
+
const arrayValid = notEmptyRule;
|
|
910
|
+
return arrayValid ? null : { _: this.translocoService.translate('NotEmpty') };
|
|
911
|
+
};
|
|
912
|
+
validator.hasNotEmptyRule = true;
|
|
913
|
+
control.required = true;
|
|
914
|
+
control.validator = validator;
|
|
915
|
+
control.updateValueAndValidity();
|
|
916
|
+
};
|
|
917
|
+
this.isFormArrayEmpty = (control) => {
|
|
918
|
+
const validator = () => {
|
|
919
|
+
const value = control;
|
|
920
|
+
const notEmptyRule = typeof value !== 'undefined' && value !== null && value.length !== 0;
|
|
921
|
+
const arrayValid = notEmptyRule;
|
|
922
|
+
return arrayValid ? null : { _: this.translocoService.translate('NotEmpty') };
|
|
923
|
+
};
|
|
924
|
+
validator.hasNotEmptyRule = true;
|
|
925
|
+
control.required = true;
|
|
926
|
+
return validator;
|
|
927
|
+
};
|
|
928
|
+
}
|
|
929
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ValidatorAbstractService, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
930
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ValidatorAbstractService, providedIn: 'root' }); }
|
|
931
|
+
}
|
|
932
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ValidatorAbstractService, decorators: [{
|
|
933
|
+
type: Injectable,
|
|
934
|
+
args: [{
|
|
935
|
+
providedIn: 'root',
|
|
936
|
+
}]
|
|
937
|
+
}], ctorParameters: () => [{ type: i1$2.TranslocoService }] });
|
|
938
|
+
|
|
939
|
+
class SpiderlyAutocompleteComponent extends BaseAutocompleteControl {
|
|
940
|
+
constructor(translocoService, validatorService) {
|
|
872
941
|
super(translocoService);
|
|
873
942
|
this.translocoService = translocoService;
|
|
943
|
+
this.validatorService = validatorService;
|
|
874
944
|
this.appendTo = 'body';
|
|
875
945
|
this.showClear = true;
|
|
946
|
+
this.helperFormControl = new SpiderlyFormControl(null, { updateOn: 'change' });
|
|
876
947
|
}
|
|
877
948
|
ngOnInit() {
|
|
878
949
|
super.ngOnInit();
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
}
|
|
950
|
+
this.helperFormControl.label = this.control.label;
|
|
951
|
+
this.validatorService.setValidator(this.helperFormControl, this.control.parentClassName);
|
|
952
|
+
if (this.control.value != null)
|
|
953
|
+
this.helperFormControl.setValue({ label: this.displayName, code: this.control.value });
|
|
884
954
|
if (this.emptyMessage == null) {
|
|
885
955
|
this.emptyMessage = this.translocoService.translate('EmptyMessage');
|
|
886
956
|
}
|
|
@@ -889,9 +959,17 @@ class SpiderlyAutocompleteComponent extends BaseAutocompleteControl {
|
|
|
889
959
|
this.onTextInput.next(event);
|
|
890
960
|
}
|
|
891
961
|
select(event) {
|
|
962
|
+
this.control.setValue(event.value.code);
|
|
963
|
+
}
|
|
964
|
+
clear() {
|
|
965
|
+
this.control.setValue(null);
|
|
966
|
+
}
|
|
967
|
+
autocompleteMarkAsDirty() {
|
|
968
|
+
this.dropdownMarkAsDirty();
|
|
969
|
+
this.helperFormControl.markAsDirty();
|
|
892
970
|
}
|
|
893
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyAutocompleteComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
894
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyAutocompleteComponent, isStandalone: true, selector: "spiderly-autocomplete", inputs: { appendTo: "appendTo", showClear: "showClear", emptyMessage: "emptyMessage", displayName: "displayName" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\"
|
|
971
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyAutocompleteComponent, deps: [{ token: i1$2.TranslocoService }, { token: ValidatorAbstractService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
972
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyAutocompleteComponent, isStandalone: true, selector: "spiderly-autocomplete", inputs: { appendTo: "appendTo", showClear: "showClear", emptyMessage: "emptyMessage", displayName: "displayName" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\"> <!-- By passing an empty string we remove the label entirely -->\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n \r\n <!-- Don't support p-inputgroup -->\r\n <p-autocomplete\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"helperFormControl\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"options\"\r\n (completeMethod)=\"search($event)\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"false\"\r\n [showClear]=\"showClear\"\r\n (onHide)=\"autocompleteMarkAsDirty()\"\r\n (onSelect)=\"select($event)\"\r\n (onClear)=\"clear()\"\r\n [completeOnFocus]=\"true\"\r\n [fluid]=\"true\"\r\n [style]=\"{'width':'100%'}\"\r\n [appendTo]=\"appendTo\"\r\n [emptyMessage]=\"emptyMessage\"\r\n [lazy]=\"true\"\r\n ></p-autocomplete>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i4.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "ngmodule", type: InputGroupModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RequiredComponent, selector: "required" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
895
973
|
}
|
|
896
974
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyAutocompleteComponent, decorators: [{
|
|
897
975
|
type: Component,
|
|
@@ -905,8 +983,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
905
983
|
CommonModule,
|
|
906
984
|
RequiredComponent,
|
|
907
985
|
TranslocoDirective,
|
|
908
|
-
], template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\"
|
|
909
|
-
}], ctorParameters: () => [{ type: i1$2.TranslocoService }], propDecorators: { appendTo: [{
|
|
986
|
+
], template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\"> <!-- By passing an empty string we remove the label entirely -->\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n \r\n <!-- Don't support p-inputgroup -->\r\n <p-autocomplete\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"helperFormControl\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"options\"\r\n (completeMethod)=\"search($event)\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"false\"\r\n [showClear]=\"showClear\"\r\n (onHide)=\"autocompleteMarkAsDirty()\"\r\n (onSelect)=\"select($event)\"\r\n (onClear)=\"clear()\"\r\n [completeOnFocus]=\"true\"\r\n [fluid]=\"true\"\r\n [style]=\"{'width':'100%'}\"\r\n [appendTo]=\"appendTo\"\r\n [emptyMessage]=\"emptyMessage\"\r\n [lazy]=\"true\"\r\n ></p-autocomplete>\r\n </div>\r\n</ng-container>" }]
|
|
987
|
+
}], ctorParameters: () => [{ type: i1$2.TranslocoService }, { type: ValidatorAbstractService }], propDecorators: { appendTo: [{
|
|
910
988
|
type: Input
|
|
911
989
|
}], showClear: [{
|
|
912
990
|
type: Input
|
|
@@ -928,7 +1006,7 @@ class SpiderlyCalendarComponent extends BaseControl {
|
|
|
928
1006
|
setDate(event) {
|
|
929
1007
|
}
|
|
930
1008
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyCalendarComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
931
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyCalendarComponent, isStandalone: true, selector: "spiderly-calendar", inputs: { showTime: "showTime" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n <!-- tabindex=\"-1\": Makes the element focusable, but removes it from the tab order. -->\r\n <i *ngIf=\"showTooltip\" class=\"{{tooltipIcon}}\" style=\"margin-left: 5px; cursor: pointer;\" [pTooltip]=\"tooltipText\" tabindex=\"-1\" tooltipEvent=\"focus\"></i>\r\n </div>\r\n <p-datepicker\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n (onBlur)=\"control.markAsDirty()\"\r\n dateFormat=\"dd.mm.yy.\"\r\n iconDisplay=\"input\" \r\n [showIcon]=\"true\" \r\n [showTime]=\"showTime\"\r\n (onSelect)=\"setDate($event)\"\r\n appendTo=\"body\"\r\n [fluid]=\"true\"\r\n />\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i4$1.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1009
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyCalendarComponent, isStandalone: true, selector: "spiderly-calendar", inputs: { showTime: "showTime" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n <!-- tabindex=\"-1\": Makes the element focusable, but removes it from the tab order. -->\r\n <i *ngIf=\"showTooltip\" class=\"{{tooltipIcon}}\" style=\"margin-left: 5px; cursor: pointer;\" [pTooltip]=\"tooltipText\" tabindex=\"-1\" tooltipEvent=\"focus\"></i>\r\n </div>\r\n <p-datepicker\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n (onBlur)=\"control.markAsDirty()\"\r\n dateFormat=\"dd.mm.yy.\"\r\n iconDisplay=\"input\" \r\n [showIcon]=\"true\" \r\n [showTime]=\"showTime\"\r\n (onSelect)=\"setDate($event)\"\r\n appendTo=\"body\"\r\n [fluid]=\"true\"\r\n />\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i4$1.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
932
1010
|
}
|
|
933
1011
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyCalendarComponent, decorators: [{
|
|
934
1012
|
type: Component,
|
|
@@ -958,7 +1036,7 @@ class SpiderlyCheckboxComponent extends BaseControl {
|
|
|
958
1036
|
super.ngOnInit();
|
|
959
1037
|
}
|
|
960
1038
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyCheckboxComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
961
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyCheckboxComponent, isStandalone: true, selector: "spiderly-checkbox", inputs: { fakeLabel: "fakeLabel", initializeToFalse: "initializeToFalse", inlineLabel: "inlineLabel" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"inlineLabel === false && getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\" style=\"margin-top: 0.5rem;\">\r\n <p-checkbox\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\" \r\n [formControl]=\"control\"\r\n [value]=\"inlineLabel ? label : null\"\r\n [id]=\"label\"\r\n [binary]=\"true\"\r\n />\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i4$2.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1039
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyCheckboxComponent, isStandalone: true, selector: "spiderly-checkbox", inputs: { fakeLabel: "fakeLabel", initializeToFalse: "initializeToFalse", inlineLabel: "inlineLabel" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"inlineLabel === false && getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\" style=\"margin-top: 0.5rem;\">\r\n <p-checkbox\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\" \r\n [formControl]=\"control\"\r\n [value]=\"inlineLabel ? label : null\"\r\n [id]=\"label\"\r\n [binary]=\"true\"\r\n />\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i4$2.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
962
1040
|
}
|
|
963
1041
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyCheckboxComponent, decorators: [{
|
|
964
1042
|
type: Component,
|
|
@@ -992,7 +1070,7 @@ class SpiderlyColorpickComponent extends BaseControl {
|
|
|
992
1070
|
super.ngOnInit();
|
|
993
1071
|
}
|
|
994
1072
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyColorpickComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
995
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyColorpickComponent, isStandalone: true, selector: "spiderly-colorpick", usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div style=\"display: flex; gap: 10px;\">\r\n <div class=\"p-inputgroup p-fluid\">\r\n <!-- <span class=\"p-inputgroup-addon\">\r\n #\r\n </span> -->\r\n <input\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputText\r\n [placeholder]=\"placeholder\"\r\n [style]=\"{'width':'100%', 'position': 'relative'}\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n />\r\n </div>\r\n <p-colorpicker\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n appendTo=\"body\"\r\n ></p-colorpicker>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ColorPickerModule }, { kind: "component", type: i4$3.ColorPicker, selector: "p-colorPicker, p-colorpicker, p-color-picker", inputs: ["style", "styleClass", "inline", "format", "appendTo", "disabled", "tabindex", "inputId", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "autofocus"], outputs: ["onChange", "onShow", "onHide"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1073
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyColorpickComponent, isStandalone: true, selector: "spiderly-colorpick", usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div style=\"display: flex; gap: 10px;\">\r\n <div class=\"p-inputgroup p-fluid\">\r\n <!-- <span class=\"p-inputgroup-addon\">\r\n #\r\n </span> -->\r\n <input\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputText\r\n [placeholder]=\"placeholder\"\r\n [style]=\"{'width':'100%', 'position': 'relative'}\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n />\r\n </div>\r\n <p-colorpicker\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n appendTo=\"body\"\r\n ></p-colorpicker>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ColorPickerModule }, { kind: "component", type: i4$3.ColorPicker, selector: "p-colorPicker, p-colorpicker, p-color-picker", inputs: ["style", "styleClass", "inline", "format", "appendTo", "disabled", "tabindex", "inputId", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "autofocus"], outputs: ["onChange", "onShow", "onHide"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
996
1074
|
}
|
|
997
1075
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyColorpickComponent, decorators: [{
|
|
998
1076
|
type: Component,
|
|
@@ -1019,7 +1097,7 @@ class SpiderlyDropdownComponent extends BaseDropdownControl {
|
|
|
1019
1097
|
this.onChange.next(event);
|
|
1020
1098
|
}
|
|
1021
1099
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyDropdownComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1022
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyDropdownComponent, isStandalone: true, selector: "spiderly-dropdown", outputs: { onChange: "onChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n <!-- tabindex=\"-1\": Makes the element focusable, but removes it from the tab order. -->\r\n <i *ngIf=\"showTooltip\" class=\"{{tooltipIcon}}\" style=\"margin-left: 5px; cursor: pointer;\" [pTooltip]=\"tooltipText\" tabindex=\"-1\" tooltipEvent=\"focus\"></i>\r\n </div>\r\n\r\n <!-- Don't support p-inputgroup -->\r\n <p-select\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\" \r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"code\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n (onChange)=\"change($event)\"\r\n [fluid]=\"true\"\r\n appendTo=\"body\"\r\n />\r\n \r\n</div>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i3$
|
|
1100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyDropdownComponent, isStandalone: true, selector: "spiderly-dropdown", outputs: { onChange: "onChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n <!-- tabindex=\"-1\": Makes the element focusable, but removes it from the tab order. -->\r\n <i *ngIf=\"showTooltip\" class=\"{{tooltipIcon}}\" style=\"margin-left: 5px; cursor: pointer;\" [pTooltip]=\"tooltipText\" tabindex=\"-1\" tooltipEvent=\"focus\"></i>\r\n </div>\r\n\r\n <!-- Don't support p-inputgroup -->\r\n <p-select\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\" \r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"code\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n (onChange)=\"change($event)\"\r\n [fluid]=\"true\"\r\n appendTo=\"body\"\r\n />\r\n \r\n</div>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i3$3.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
1023
1101
|
}
|
|
1024
1102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyDropdownComponent, decorators: [{
|
|
1025
1103
|
type: Component,
|
|
@@ -1029,7 +1107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
1029
1107
|
SelectModule,
|
|
1030
1108
|
TooltipModule,
|
|
1031
1109
|
CommonModule,
|
|
1032
|
-
RequiredComponent
|
|
1110
|
+
RequiredComponent,
|
|
1033
1111
|
], template: "<div class=\"flex flex-column gap-2\">\r\n\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n <!-- tabindex=\"-1\": Makes the element focusable, but removes it from the tab order. -->\r\n <i *ngIf=\"showTooltip\" class=\"{{tooltipIcon}}\" style=\"margin-left: 5px; cursor: pointer;\" [pTooltip]=\"tooltipText\" tabindex=\"-1\" tooltipEvent=\"focus\"></i>\r\n </div>\r\n\r\n <!-- Don't support p-inputgroup -->\r\n <p-select\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\" \r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"code\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n (onChange)=\"change($event)\"\r\n [fluid]=\"true\"\r\n appendTo=\"body\"\r\n />\r\n \r\n</div>" }]
|
|
1034
1112
|
}], ctorParameters: () => [{ type: i1$2.TranslocoService }], propDecorators: { onChange: [{
|
|
1035
1113
|
type: Output
|
|
@@ -1061,7 +1139,7 @@ class SpiderlyEditorComponent extends BaseControl {
|
|
|
1061
1139
|
};
|
|
1062
1140
|
}
|
|
1063
1141
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyEditorComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1064
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyEditorComponent, isStandalone: true, selector: "spiderly-editor", viewQueries: [{ propertyName: "editor", first: true, predicate: Editor, descendants: true }, { propertyName: "tooltip", first: true, predicate: Tooltip, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n\r\n <!-- Disable doesn't work on this control -->\r\n <p-editor\r\n *ngIf=\"control\"\r\n [formControl]=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [readonly]=\"control.disabled\"\r\n [class]=\"control.invalid && control.dirty ? 'control-error-border' : ''\"\r\n [id]=\"control.label\"\r\n [placeholder]=\"placeholder\"\r\n (click)=\"onClick()\"\r\n [style]=\"{ height: '320px' }\"\r\n ></p-editor>\r\n\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i4$4.Editor, selector: "p-editor", inputs: ["style", "styleClass", "placeholder", "formats", "modules", "bounds", "scrollingContainer", "debug", "readonly"], outputs: ["onInit", "onTextChange", "onSelectionChange"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1142
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyEditorComponent, isStandalone: true, selector: "spiderly-editor", viewQueries: [{ propertyName: "editor", first: true, predicate: Editor, descendants: true }, { propertyName: "tooltip", first: true, predicate: Tooltip, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n\r\n <!-- Disable doesn't work on this control -->\r\n <p-editor\r\n *ngIf=\"control\"\r\n [formControl]=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [readonly]=\"control.disabled\"\r\n [class]=\"control.invalid && control.dirty ? 'control-error-border' : ''\"\r\n [id]=\"control.label\"\r\n [placeholder]=\"placeholder\"\r\n (click)=\"onClick()\"\r\n [style]=\"{ height: '320px' }\"\r\n ></p-editor>\r\n\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i4$4.Editor, selector: "p-editor", inputs: ["style", "styleClass", "placeholder", "formats", "modules", "bounds", "scrollingContainer", "debug", "readonly"], outputs: ["onInit", "onTextChange", "onSelectionChange"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
1065
1143
|
}
|
|
1066
1144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyEditorComponent, decorators: [{
|
|
1067
1145
|
type: Component,
|
|
@@ -1435,7 +1513,7 @@ class SpiderlyFileComponent extends BaseControl {
|
|
|
1435
1513
|
return isExcelFileType(mimeType);
|
|
1436
1514
|
}
|
|
1437
1515
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyFileComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1438
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyFileComponent, isStandalone: true, selector: "spiderly-file", inputs: { objectId: "objectId", fileData: "fileData", acceptedFileTypes: "acceptedFileTypes", required: "required", multiple: "multiple", files: "files" }, outputs: { onFileSelected: "onFileSelected", onFileRemoved: "onFileRemoved" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <!-- It's okay for this control, because for the custom uploads where we are not initializing the control from the backend, there is no need for formControl. -->\r\n <required *ngIf=\"control?.required || required\"></required>\r\n </div>\r\n\r\n <p-fileUpload \r\n [files]=\"files\" \r\n [disabled]=\"disabled\" \r\n [name]=\"control?.label ?? label\" \r\n [multiple]=\"multiple\" \r\n [accept]=\"acceptedFileTypesCommaSeparated\" \r\n [maxFileSize]=\"1000000\" \r\n (onSelect)=\"filesSelected($event)\"\r\n [class]=\"control?.invalid && control?.dirty ? 'control-error-border' : ''\"\r\n >\r\n <ng-template pTemplate=\"header\" let-files let-chooseCallback=\"chooseCallback\" let-clearCallback=\"clearCallback\" let-uploadCallback=\"uploadCallback\">\r\n <div class=\"flex flex-wrap justify-content-between align-items-center flex-1 gap-2\">\r\n <div class=\"flex gap-2\">\r\n <spiderly-button [disabled]=\"disabled\" (onClick)=\"choose($event, chooseCallback)\" icon=\"pi pi-upload\" [rounded]=\"true\" [outlined]=\"true\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-files let-removeFileCallback=\"removeFileCallback\">\r\n <div *ngIf=\"files?.length > 0\">\r\n <div class=\"flex justify-content-center p-0 gap-5\">\r\n <div *ngFor=\"let file of files; let index = index\" class=\"card m-0 px-3 py-3 flex flex-column align-items-center gap-3\" style=\"justify-content: center; overflow: hidden;\">\r\n <div *ngIf=\"isImageFileType(file.type)\" class=\"image-container\">\r\n <img role=\"presentation\" [src]=\"file.objectURL\"/>\r\n </div>\r\n <div *ngIf=\"isExcelFileType(file.type)\" class=\"excel-container\">\r\n <div class=\"excel-details\">\r\n <i class=\"pi pi-file-excel\" style=\"color: green; margin-right: 4px;\"></i>\r\n <span class=\"file-name\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n <spiderly-button [disabled]=\"disabled\" icon=\"pi pi-times\" (onClick)=\"fileRemoved(removeFileCallback, index)\" [outlined]=\"true\" [rounded]=\"true\" severity=\"danger\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"file\"> </ng-template>\r\n <ng-template pTemplate=\"empty\">\r\n <div class=\"flex align-items-center justify-content-center flex-column\">\r\n <i class=\"pi pi-cloud-upload border-2 border-circle p-5 text-8xl text-400 border-400 mt-3\"></i>\r\n <p class=\"mt-4 mb-0\">{{t('DragAndDropFilesHereToUpload')}}</p>\r\n </div>\r\n </ng-template>\r\n </p-fileUpload>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i3$
|
|
1516
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyFileComponent, isStandalone: true, selector: "spiderly-file", inputs: { objectId: "objectId", fileData: "fileData", acceptedFileTypes: "acceptedFileTypes", required: "required", multiple: "multiple", files: "files" }, outputs: { onFileSelected: "onFileSelected", onFileRemoved: "onFileRemoved" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <!-- It's okay for this control, because for the custom uploads where we are not initializing the control from the backend, there is no need for formControl. -->\r\n <required *ngIf=\"control?.required || required\"></required>\r\n </div>\r\n\r\n <p-fileUpload \r\n [files]=\"files\" \r\n [disabled]=\"disabled\" \r\n [name]=\"control?.label ?? label\" \r\n [multiple]=\"multiple\" \r\n [accept]=\"acceptedFileTypesCommaSeparated\" \r\n [maxFileSize]=\"1000000\" \r\n (onSelect)=\"filesSelected($event)\"\r\n [class]=\"control?.invalid && control?.dirty ? 'control-error-border' : ''\"\r\n >\r\n <ng-template pTemplate=\"header\" let-files let-chooseCallback=\"chooseCallback\" let-clearCallback=\"clearCallback\" let-uploadCallback=\"uploadCallback\">\r\n <div class=\"flex flex-wrap justify-content-between align-items-center flex-1 gap-2\">\r\n <div class=\"flex gap-2\">\r\n <spiderly-button [disabled]=\"disabled\" (onClick)=\"choose($event, chooseCallback)\" icon=\"pi pi-upload\" [rounded]=\"true\" [outlined]=\"true\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-files let-removeFileCallback=\"removeFileCallback\">\r\n <div *ngIf=\"files?.length > 0\">\r\n <div class=\"flex justify-content-center p-0 gap-5\">\r\n <div *ngFor=\"let file of files; let index = index\" class=\"card m-0 px-3 py-3 flex flex-column align-items-center gap-3\" style=\"justify-content: center; overflow: hidden;\">\r\n <div *ngIf=\"isImageFileType(file.type)\" class=\"image-container\">\r\n <img role=\"presentation\" [src]=\"file.objectURL\"/>\r\n </div>\r\n <div *ngIf=\"isExcelFileType(file.type)\" class=\"excel-container\">\r\n <div class=\"excel-details\">\r\n <i class=\"pi pi-file-excel\" style=\"color: green; margin-right: 4px;\"></i>\r\n <span class=\"file-name\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n <spiderly-button [disabled]=\"disabled\" icon=\"pi pi-times\" (onClick)=\"fileRemoved(removeFileCallback, index)\" [outlined]=\"true\" [rounded]=\"true\" severity=\"danger\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"file\"> </ng-template>\r\n <ng-template pTemplate=\"empty\">\r\n <div class=\"flex align-items-center justify-content-center flex-column\">\r\n <i class=\"pi pi-cloud-upload border-2 border-circle p-5 text-8xl text-400 border-400 mt-3\"></i>\r\n <p class=\"mt-4 mb-0\">{{t('DragAndDropFilesHereToUpload')}}</p>\r\n </div>\r\n </ng-template>\r\n </p-fileUpload>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i3$4.FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "directive", type: i1$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: RequiredComponent, selector: "required" }, { kind: "component", type: SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
1439
1517
|
}
|
|
1440
1518
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyFileComponent, decorators: [{
|
|
1441
1519
|
type: Component,
|
|
@@ -1485,7 +1563,7 @@ class SpiderlyMultiAutocompleteComponent extends BaseAutocompleteControl {
|
|
|
1485
1563
|
this.onTextInput.next(event);
|
|
1486
1564
|
}
|
|
1487
1565
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyMultiAutocompleteComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1488
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyMultiAutocompleteComponent, isStandalone: true, selector: "spiderly-multiautocomplete", usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n\r\n <!-- Don't support p-inputgroup -->\r\n <!-- Showing label fix: https://github.com/primefaces/primeng/issues/17332#issuecomment-2922861294 -->\r\n <p-autocomplete \r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"options\"\r\n (completeMethod)=\"search($event)\"\r\n [forceSelection]=\"true\"\r\n [multiple]=\"true\"\r\n [dropdown]=\"false\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n [completeOnFocus]=\"true\"\r\n dropdownIcon=\"pi pi-plus\"\r\n [fluid]=\"true\"\r\n [style]=\"{'width': '100%'}\"\r\n >\r\n </p-autocomplete>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type:
|
|
1566
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyMultiAutocompleteComponent, isStandalone: true, selector: "spiderly-multiautocomplete", usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n\r\n <!-- Don't support p-inputgroup -->\r\n <!-- Showing label fix: https://github.com/primefaces/primeng/issues/17332#issuecomment-2922861294 -->\r\n <p-autocomplete \r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"options\"\r\n (completeMethod)=\"search($event)\"\r\n [forceSelection]=\"true\"\r\n [multiple]=\"true\"\r\n [dropdown]=\"false\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n [completeOnFocus]=\"true\"\r\n dropdownIcon=\"pi pi-plus\"\r\n [fluid]=\"true\"\r\n [style]=\"{'width': '100%'}\"\r\n >\r\n </p-autocomplete>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i4.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RequiredComponent, selector: "required" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
1489
1567
|
}
|
|
1490
1568
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyMultiAutocompleteComponent, decorators: [{
|
|
1491
1569
|
type: Component,
|
|
@@ -1509,7 +1587,7 @@ class SpiderlyMultiSelectComponent extends BaseDropdownControl {
|
|
|
1509
1587
|
super.ngOnInit();
|
|
1510
1588
|
}
|
|
1511
1589
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyMultiSelectComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1512
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyMultiSelectComponent, isStandalone: true, selector: "spiderly-multiselect", usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-multiSelect\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"code\"\r\n display=\"chip\"\r\n [maxSelectedLabels]=\"20\"\r\n [placeholder]=\"placeholder\"\r\n [fluid]=\"true\"\r\n appendTo=\"body\"\r\n />\r\n <!-- [virtualScroll]=\"true\" FT: I think that this is not doing anything, check -->\r\n <!-- (onFilter)=\"search($event)\" FT: While they don't implement lazy load like here: https://github.com/yelhouti/primeng/blob/8.0.0-rc2/src/app/components/multiselect/multiselect.ts\r\n we need to use this and dropdown control only on the client -->\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1590
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyMultiSelectComponent, isStandalone: true, selector: "spiderly-multiselect", usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-multiSelect\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"code\"\r\n display=\"chip\"\r\n [maxSelectedLabels]=\"20\"\r\n [placeholder]=\"placeholder\"\r\n [fluid]=\"true\"\r\n appendTo=\"body\"\r\n />\r\n <!-- [virtualScroll]=\"true\" FT: I think that this is not doing anything, check -->\r\n <!-- (onFilter)=\"search($event)\" FT: While they don't implement lazy load like here: https://github.com/yelhouti/primeng/blob/8.0.0-rc2/src/app/components/multiselect/multiselect.ts\r\n we need to use this and dropdown control only on the client -->\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
1513
1591
|
}
|
|
1514
1592
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyMultiSelectComponent, decorators: [{
|
|
1515
1593
|
type: Component,
|
|
@@ -1534,7 +1612,7 @@ class SpiderlyNumberComponent extends BaseControl {
|
|
|
1534
1612
|
super.ngOnInit();
|
|
1535
1613
|
}
|
|
1536
1614
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyNumberComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1537
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyNumberComponent, isStandalone: true, selector: "spiderly-number", inputs: { prefix: "prefix", showButtons: "showButtons", decimal: "decimal", maxFractionDigits: "maxFractionDigits" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"showLabel\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-inputNumber\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (onBlur)=\"control.markAsDirty()\"\r\n [prefix]=\"prefix\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n [showButtons]=\"showButtons\"\r\n buttonLayout=\"horizontal\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n />\r\n </div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i4$6.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled", "fluid"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1615
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyNumberComponent, isStandalone: true, selector: "spiderly-number", inputs: { prefix: "prefix", showButtons: "showButtons", decimal: "decimal", maxFractionDigits: "maxFractionDigits" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"showLabel\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-inputNumber\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (onBlur)=\"control.markAsDirty()\"\r\n [prefix]=\"prefix\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n [showButtons]=\"showButtons\"\r\n buttonLayout=\"horizontal\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n />\r\n </div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i4$6.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled", "fluid"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
1538
1616
|
}
|
|
1539
1617
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyNumberComponent, decorators: [{
|
|
1540
1618
|
type: Component,
|
|
@@ -1566,7 +1644,7 @@ class SpiderlyPasswordComponent extends BaseControl {
|
|
|
1566
1644
|
super.ngOnInit();
|
|
1567
1645
|
}
|
|
1568
1646
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyPasswordComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1569
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyPasswordComponent, isStandalone: true, selector: "spiderly-password", inputs: { showPasswordStrength: "showPasswordStrength" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-password\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control?.label\"\r\n [toggleMask]=\"true\"\r\n [feedback]=\"showPasswordStrength\"\r\n (onBlur)=\"control?.markAsDirty()\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n </div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PasswordModule }, { kind: "component", type: i4$7.Password, selector: "p-password", inputs: ["ariaLabel", "fluid", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "size", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1647
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyPasswordComponent, isStandalone: true, selector: "spiderly-password", inputs: { showPasswordStrength: "showPasswordStrength" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-password\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control?.label\"\r\n [toggleMask]=\"true\"\r\n [feedback]=\"showPasswordStrength\"\r\n (onBlur)=\"control?.markAsDirty()\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n </div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PasswordModule }, { kind: "component", type: i4$7.Password, selector: "p-password", inputs: ["ariaLabel", "fluid", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "size", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
1570
1648
|
}
|
|
1571
1649
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyPasswordComponent, decorators: [{
|
|
1572
1650
|
type: Component,
|
|
@@ -1591,7 +1669,7 @@ class SpiderlyTextareaComponent extends BaseControl {
|
|
|
1591
1669
|
super.ngOnInit();
|
|
1592
1670
|
}
|
|
1593
1671
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyTextareaComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1594
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyTextareaComponent, isStandalone: true, selector: "spiderly-textarea", usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <textarea\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pTextarea\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [autoResize]=\"true\"\r\n [class]=\"control.disabled ? 'disabled' : ''\"\r\n ></textarea>\r\n </div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TextareaModule }, { kind: "directive", type: i4$8.Textarea, selector: "[pTextarea]", inputs: ["autoResize", "variant", "fluid", "pSize"], outputs: ["onResize"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1672
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyTextareaComponent, isStandalone: true, selector: "spiderly-textarea", usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <textarea\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pTextarea\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [autoResize]=\"true\"\r\n [class]=\"control.disabled ? 'disabled' : ''\"\r\n ></textarea>\r\n </div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TextareaModule }, { kind: "directive", type: i4$8.Textarea, selector: "[pTextarea]", inputs: ["autoResize", "variant", "fluid", "pSize"], outputs: ["onResize"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
1595
1673
|
}
|
|
1596
1674
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyTextareaComponent, decorators: [{
|
|
1597
1675
|
type: Component,
|
|
@@ -1619,7 +1697,7 @@ class SpiderlyTextboxComponent extends BaseControl {
|
|
|
1619
1697
|
this.onButtonClick.next(null);
|
|
1620
1698
|
}
|
|
1621
1699
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyTextboxComponent, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1622
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyTextboxComponent, isStandalone: true, selector: "spiderly-textbox", inputs: { showButton: "showButton", buttonIcon: "buttonIcon" }, outputs: { onButtonClick: "onButtonClick" }, usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup\">\r\n <input\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputText\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [placeholder]=\"placeholder\"\r\n [fluid]=\"true\"\r\n />\r\n <span *ngIf=\"showButton\" (click)=\"buttonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--p-primary-color); border-color: var(--p-primary-color);\">\r\n <i class=\"pi {{buttonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i4$9.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5
|
|
1700
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyTextboxComponent, isStandalone: true, selector: "spiderly-textbox", inputs: { showButton: "showButton", buttonIcon: "buttonIcon" }, outputs: { onButtonClick: "onButtonClick" }, usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup\">\r\n <input\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputText\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [placeholder]=\"placeholder\"\r\n [fluid]=\"true\"\r\n />\r\n <span *ngIf=\"showButton\" (click)=\"buttonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--p-primary-color); border-color: var(--p-primary-color);\">\r\n <i class=\"pi {{buttonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i4$9.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
1623
1701
|
}
|
|
1624
1702
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyTextboxComponent, decorators: [{
|
|
1625
1703
|
type: Component,
|
|
@@ -1660,11 +1738,11 @@ class PanelFooterComponent {
|
|
|
1660
1738
|
ngOnInit() {
|
|
1661
1739
|
}
|
|
1662
1740
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: PanelFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1663
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: PanelFooterComponent, isStandalone: false, selector: "panel-footer", ngImport: i0, template: "<div class=\"spiderly-panel-footer\">\r\n <div class=\"buttons-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n <span class=\"p-text-secondary\">\r\n <ng-content select=\"[footerRight]\"></ng-content>\r\n </span>\r\n</div>", styles: [".spiderly-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid
|
|
1741
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: PanelFooterComponent, isStandalone: false, selector: "panel-footer", ngImport: i0, template: "<div class=\"spiderly-panel-footer\">\r\n <div class=\"buttons-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n <span class=\"p-text-secondary\">\r\n <ng-content select=\"[footerRight]\"></ng-content>\r\n </span>\r\n</div>", styles: [".spiderly-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--p-content-border-color);border-bottom-right-radius:var(--p-content-border-radius);border-bottom-left-radius:var(--p-content-border-radius);padding:18px}\n"] }); }
|
|
1664
1742
|
}
|
|
1665
1743
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: PanelFooterComponent, decorators: [{
|
|
1666
1744
|
type: Component,
|
|
1667
|
-
args: [{ selector: 'panel-footer', standalone: false, template: "<div class=\"spiderly-panel-footer\">\r\n <div class=\"buttons-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n <span class=\"p-text-secondary\">\r\n <ng-content select=\"[footerRight]\"></ng-content>\r\n </span>\r\n</div>", styles: [".spiderly-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid
|
|
1745
|
+
args: [{ selector: 'panel-footer', standalone: false, template: "<div class=\"spiderly-panel-footer\">\r\n <div class=\"buttons-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n <span class=\"p-text-secondary\">\r\n <ng-content select=\"[footerRight]\"></ng-content>\r\n </span>\r\n</div>", styles: [".spiderly-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--p-content-border-color);border-bottom-right-radius:var(--p-content-border-radius);border-bottom-left-radius:var(--p-content-border-radius);padding:18px}\n"] }]
|
|
1668
1746
|
}], ctorParameters: () => [] });
|
|
1669
1747
|
|
|
1670
1748
|
class PanelHeaderComponent {
|
|
@@ -1974,41 +2052,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
1974
2052
|
type: Input
|
|
1975
2053
|
}] } });
|
|
1976
2054
|
|
|
1977
|
-
// It's made like generic type because of <number>, <string> etc. not to put class like User.
|
|
1978
|
-
class SpiderlyFormControl extends FormControl {
|
|
1979
|
-
constructor(value, opts = null, required = false) {
|
|
1980
|
-
opts = opts ?? { updateOn: 'blur' };
|
|
1981
|
-
super(value, opts);
|
|
1982
|
-
this.required = required;
|
|
1983
|
-
}
|
|
1984
|
-
getRawValue() {
|
|
1985
|
-
return super.getRawValue();
|
|
1986
|
-
}
|
|
1987
|
-
get validator() {
|
|
1988
|
-
return this._spiderlyValidator;
|
|
1989
|
-
}
|
|
1990
|
-
set validator(validator) {
|
|
1991
|
-
this._spiderlyValidator = validator;
|
|
1992
|
-
this.setValidators(validator);
|
|
1993
|
-
}
|
|
1994
|
-
}
|
|
1995
|
-
class SpiderlyFormGroup extends FormGroup {
|
|
1996
|
-
constructor(controls) {
|
|
1997
|
-
super(controls);
|
|
1998
|
-
this.initSaveBody = () => null;
|
|
1999
|
-
this.controlNamesFromHtml = [];
|
|
2000
|
-
}
|
|
2001
|
-
getRawValue() {
|
|
2002
|
-
return super.getRawValue();
|
|
2003
|
-
}
|
|
2004
|
-
}
|
|
2005
|
-
class SpiderlyFormArray extends FormArray {
|
|
2006
|
-
constructor() {
|
|
2007
|
-
super(...arguments);
|
|
2008
|
-
this.controlNamesFromHtml = [];
|
|
2009
|
-
}
|
|
2010
|
-
}
|
|
2011
|
-
|
|
2012
2055
|
class IsAuthorizedForSaveEvent extends BaseEntity {
|
|
2013
2056
|
constructor({ isAuthorizedForSave, currentUserPermissionCodes, } = {}) {
|
|
2014
2057
|
super('IsAuthorizedForSaveEvent');
|
|
@@ -2030,54 +2073,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
2030
2073
|
}]
|
|
2031
2074
|
}], ctorParameters: () => [] });
|
|
2032
2075
|
|
|
2033
|
-
class ValidatorAbstractService {
|
|
2034
|
-
constructor(translocoService) {
|
|
2035
|
-
this.translocoService = translocoService;
|
|
2036
|
-
this.isArrayEmpty = (control) => {
|
|
2037
|
-
const validator = () => {
|
|
2038
|
-
const value = control.value;
|
|
2039
|
-
const notEmptyRule = typeof value !== 'undefined' && value !== null && value.length !== 0;
|
|
2040
|
-
const arrayValid = notEmptyRule;
|
|
2041
|
-
return arrayValid ? null : { _: this.translocoService.translate('NotEmpty') };
|
|
2042
|
-
};
|
|
2043
|
-
validator.hasNotEmptyRule = true;
|
|
2044
|
-
control.required = true;
|
|
2045
|
-
return validator;
|
|
2046
|
-
};
|
|
2047
|
-
this.notEmpty = (control) => {
|
|
2048
|
-
const validator = () => {
|
|
2049
|
-
const value = control.value;
|
|
2050
|
-
const notEmptyRule = typeof value !== 'undefined' && value !== null && value !== '';
|
|
2051
|
-
const arrayValid = notEmptyRule;
|
|
2052
|
-
return arrayValid ? null : { _: this.translocoService.translate('NotEmpty') };
|
|
2053
|
-
};
|
|
2054
|
-
validator.hasNotEmptyRule = true;
|
|
2055
|
-
control.required = true;
|
|
2056
|
-
control.validator = validator;
|
|
2057
|
-
control.updateValueAndValidity();
|
|
2058
|
-
};
|
|
2059
|
-
this.isFormArrayEmpty = (control) => {
|
|
2060
|
-
const validator = () => {
|
|
2061
|
-
const value = control;
|
|
2062
|
-
const notEmptyRule = typeof value !== 'undefined' && value !== null && value.length !== 0;
|
|
2063
|
-
const arrayValid = notEmptyRule;
|
|
2064
|
-
return arrayValid ? null : { _: this.translocoService.translate('NotEmpty') };
|
|
2065
|
-
};
|
|
2066
|
-
validator.hasNotEmptyRule = true;
|
|
2067
|
-
control.required = true;
|
|
2068
|
-
return validator;
|
|
2069
|
-
};
|
|
2070
|
-
}
|
|
2071
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ValidatorAbstractService, deps: [{ token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2072
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ValidatorAbstractService, providedIn: 'root' }); }
|
|
2073
|
-
}
|
|
2074
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ValidatorAbstractService, decorators: [{
|
|
2075
|
-
type: Injectable,
|
|
2076
|
-
args: [{
|
|
2077
|
-
providedIn: 'root',
|
|
2078
|
-
}]
|
|
2079
|
-
}], ctorParameters: () => [{ type: i1$2.TranslocoService }] });
|
|
2080
|
-
|
|
2081
2076
|
class BaseFormService {
|
|
2082
2077
|
constructor(translateLabelsService, validatorService, messageService, translocoService) {
|
|
2083
2078
|
this.translateLabelsService = translateLabelsService;
|
|
@@ -2088,14 +2083,14 @@ class BaseFormService {
|
|
|
2088
2083
|
if (modelConstructor == null)
|
|
2089
2084
|
return null;
|
|
2090
2085
|
if (formGroup == null)
|
|
2091
|
-
console.error('
|
|
2086
|
+
console.error('Spiderly: You need to instantiate the form group.');
|
|
2092
2087
|
this.initFormGroup(formGroup, modelConstructor, updateOnChangeControls);
|
|
2093
2088
|
parentFormGroup.setControl(propertyNameInSaveBody, formGroup); // FT: Use setControl because it will update formGroup if it already exists
|
|
2094
2089
|
return formGroup;
|
|
2095
2090
|
};
|
|
2096
2091
|
this.initFormGroup = (formGroup, modelConstructor, updateOnChangeControls) => {
|
|
2097
2092
|
if (formGroup == null)
|
|
2098
|
-
console.error('
|
|
2093
|
+
console.error('Spiderly: You need to instantiate the form group.');
|
|
2099
2094
|
Object.keys(modelConstructor).forEach((formControlName) => {
|
|
2100
2095
|
let formControl;
|
|
2101
2096
|
const formControlValue = modelConstructor[formControlName];
|
|
@@ -2108,13 +2103,14 @@ class BaseFormService {
|
|
|
2108
2103
|
}
|
|
2109
2104
|
formControl.label = formControlName;
|
|
2110
2105
|
formControl.labelForDisplay = this.getTranslatedLabel(formControlName);
|
|
2106
|
+
formControl.parentClassName = modelConstructor.typeName;
|
|
2111
2107
|
formGroup.setControl(formControlName, formControl); // FT: Use setControl because it will update formControl if it already exists
|
|
2112
2108
|
this.validatorService.setValidator(formControl, modelConstructor.typeName);
|
|
2113
2109
|
});
|
|
2114
2110
|
return formGroup;
|
|
2115
2111
|
};
|
|
2116
2112
|
//#region Helpers
|
|
2117
|
-
//
|
|
2113
|
+
// If you want to call single method
|
|
2118
2114
|
this.checkFormGroupValidity = (formGroup) => {
|
|
2119
2115
|
if (formGroup.invalid) {
|
|
2120
2116
|
Object.keys(formGroup.controls).forEach(key => {
|
|
@@ -2374,7 +2370,7 @@ class BaseFormCopy {
|
|
|
2374
2370
|
formArray.clear();
|
|
2375
2371
|
}
|
|
2376
2372
|
else {
|
|
2377
|
-
//
|
|
2373
|
+
// This is okay because when we have M2M association with additional fields, we will not give back the list because we are not checking version on the server.
|
|
2378
2374
|
// console.error(`You returned empty array for control: ${formArray.translationKey}.`);
|
|
2379
2375
|
}
|
|
2380
2376
|
res[key].forEach((model) => {
|
|
@@ -2394,7 +2390,7 @@ class BaseFormCopy {
|
|
|
2394
2390
|
}
|
|
2395
2391
|
}
|
|
2396
2392
|
else {
|
|
2397
|
-
//
|
|
2393
|
+
// It's okay to do this.
|
|
2398
2394
|
// console.error('You returned something that is not in the save DTO.');
|
|
2399
2395
|
}
|
|
2400
2396
|
});
|
|
@@ -2412,7 +2408,6 @@ class BaseFormCopy {
|
|
|
2412
2408
|
};
|
|
2413
2409
|
this.rerouteToSavedObject = (rerouteId) => {
|
|
2414
2410
|
if (rerouteId == null) {
|
|
2415
|
-
// console.error('You do not have rerouteId in your DTO.')
|
|
2416
2411
|
const currentUrl = this.router.url;
|
|
2417
2412
|
const parentUrl = getParentUrl(currentUrl);
|
|
2418
2413
|
this.router.navigateByUrl(parentUrl);
|
|
@@ -3089,16 +3084,17 @@ class NotFoundComponent {
|
|
|
3089
3084
|
constructor(config) {
|
|
3090
3085
|
this.config = config;
|
|
3091
3086
|
this.companyName = this.config.companyName;
|
|
3087
|
+
this.logoPath = this.config.logoPath;
|
|
3092
3088
|
}
|
|
3093
3089
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: NotFoundComponent, deps: [{ token: ConfigBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3094
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: NotFoundComponent, isStandalone: true, selector: "not-found", ngImport: i0, template: "<div class=\"flex min-h-screen overflow-hidden\" style=\"padding: 20px;\">\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"w-full sm:w-30rem\" style=\"margin: auto; border-radius:50px; padding:0.3rem; background: linear-gradient(180deg, var(--p-primary-color) 10%, rgba(33, 150, 243, 0) 30%);\">\r\n <div class=\"surface-card py-6 px-5 sm:px-6\" style=\"border-radius:45px;\">\r\n <div class=\"text-center\">\r\n <img \r\n src=\"
|
|
3090
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: NotFoundComponent, isStandalone: true, selector: "not-found", ngImport: i0, template: "<div class=\"flex min-h-screen overflow-hidden\" style=\"padding: 20px;\">\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"w-full sm:w-30rem\" style=\"margin: auto; border-radius:50px; padding:0.3rem; background: linear-gradient(180deg, var(--p-primary-color) 10%, rgba(33, 150, 243, 0) 30%);\">\r\n <div class=\"surface-card py-6 px-5 sm:px-6\" style=\"border-radius:45px;\">\r\n <div class=\"text-center\">\r\n <img \r\n [src]=\"logoPath\" \r\n alt=\"{{companyName}} Logo\" \r\n title=\"{{companyName}} Logo\" \r\n height=\"60\"\r\n class=\"mb-4\"\r\n >\r\n </div>\r\n <h1 class=\"mb-4\">\r\n <div class=\"font-bold text-5xl lg:text-6xl gradient-title\">404</div>\r\n <div class=\"font-bold text-5xl lg:text-6xl\">Page Not Found</div>\r\n </h1>\r\n <div class=\"text-600 text-lg mb-5\">\r\n The page you're looking for doesn't exist or has been moved. Let's get you back on track.\r\n </div>\r\n <div>\r\n <p-button [routerLink]=\"['/']\" label=\"Go to Homepage\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }] }); }
|
|
3095
3091
|
}
|
|
3096
3092
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: NotFoundComponent, decorators: [{
|
|
3097
3093
|
type: Component,
|
|
3098
3094
|
args: [{ selector: 'not-found', imports: [
|
|
3099
3095
|
RouterModule,
|
|
3100
3096
|
ButtonModule,
|
|
3101
|
-
], template: "<div class=\"flex min-h-screen overflow-hidden\" style=\"padding: 20px;\">\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"w-full sm:w-30rem\" style=\"margin: auto; border-radius:50px; padding:0.3rem; background: linear-gradient(180deg, var(--p-primary-color) 10%, rgba(33, 150, 243, 0) 30%);\">\r\n <div class=\"surface-card py-6 px-5 sm:px-6\" style=\"border-radius:45px;\">\r\n <div class=\"text-center\">\r\n <img \r\n src=\"
|
|
3097
|
+
], template: "<div class=\"flex min-h-screen overflow-hidden\" style=\"padding: 20px;\">\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"w-full sm:w-30rem\" style=\"margin: auto; border-radius:50px; padding:0.3rem; background: linear-gradient(180deg, var(--p-primary-color) 10%, rgba(33, 150, 243, 0) 30%);\">\r\n <div class=\"surface-card py-6 px-5 sm:px-6\" style=\"border-radius:45px;\">\r\n <div class=\"text-center\">\r\n <img \r\n [src]=\"logoPath\" \r\n alt=\"{{companyName}} Logo\" \r\n title=\"{{companyName}} Logo\" \r\n height=\"60\"\r\n class=\"mb-4\"\r\n >\r\n </div>\r\n <h1 class=\"mb-4\">\r\n <div class=\"font-bold text-5xl lg:text-6xl gradient-title\">404</div>\r\n <div class=\"font-bold text-5xl lg:text-6xl\">Page Not Found</div>\r\n </h1>\r\n <div class=\"text-600 text-lg mb-5\">\r\n The page you're looking for doesn't exist or has been moved. Let's get you back on track.\r\n </div>\r\n <div>\r\n <p-button [routerLink]=\"['/']\" label=\"Go to Homepage\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
3102
3098
|
}], ctorParameters: () => [{ type: ConfigBaseService }] });
|
|
3103
3099
|
|
|
3104
3100
|
class SpiderlySplitButtonComponent extends SpiderlyButtonBaseComponent {
|
|
@@ -3150,6 +3146,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
3150
3146
|
], template: "<ng-container *transloco=\"let t\">\r\n <p-confirmDialog \r\n #cd \r\n ></p-confirmDialog>\r\n <div\r\n class=\"border-bottom-1 surface-border text-lg\"\r\n style=\"display: flex; align-items: center; padding-bottom: 10px; width: 100%; gap: 10px;\"\r\n >\r\n <i class=\"pi pi-exclamation-circle text-4xl\"></i>\r\n <p>{{t('PleaseConfirmToProceed')}}</p>\r\n </div>\r\n \r\n <div style=\"display: flex; gap: 5px; justify-content: right; margin-top: 28px;\">\r\n <spiderly-button (onClick)=\"reject()\" icon=\"pi pi-times\" [label]=\"t('Cancle')\" severity=\"secondary\"></spiderly-button>\r\n <spiderly-button (onClick)=\"accept()\" icon=\"pi pi-check\" [label]=\"t('Confirm')\" styleClass=\"p-button-danger\"></spiderly-button>\r\n </div>\r\n</ng-container>\r\n" }]
|
|
3151
3147
|
}], ctorParameters: () => [{ type: i1$6.DynamicDialogRef }, { type: i1$6.DynamicDialogConfig }] });
|
|
3152
3148
|
|
|
3149
|
+
var MatchModeCodes;
|
|
3150
|
+
(function (MatchModeCodes) {
|
|
3151
|
+
MatchModeCodes[MatchModeCodes["StartsWith"] = 0] = "StartsWith";
|
|
3152
|
+
MatchModeCodes[MatchModeCodes["Contains"] = 1] = "Contains";
|
|
3153
|
+
MatchModeCodes[MatchModeCodes["Equals"] = 2] = "Equals";
|
|
3154
|
+
MatchModeCodes[MatchModeCodes["LessThan"] = 3] = "LessThan";
|
|
3155
|
+
MatchModeCodes[MatchModeCodes["GreaterThan"] = 4] = "GreaterThan";
|
|
3156
|
+
MatchModeCodes[MatchModeCodes["In"] = 5] = "In";
|
|
3157
|
+
})(MatchModeCodes || (MatchModeCodes = {}));
|
|
3158
|
+
|
|
3153
3159
|
class SpiderlyDataTableComponent {
|
|
3154
3160
|
constructor(router, dialogService, route, messageService, translocoService, locale) {
|
|
3155
3161
|
this.router = router;
|
|
@@ -3160,19 +3166,19 @@ class SpiderlyDataTableComponent {
|
|
|
3160
3166
|
this.locale = locale;
|
|
3161
3167
|
this.tableIcon = 'pi pi-list';
|
|
3162
3168
|
this.rows = 10;
|
|
3163
|
-
this.showPaginator = true; //
|
|
3164
|
-
this.showCardWrapper =
|
|
3169
|
+
this.showPaginator = true; // Pass only when hasLazyLoad === false
|
|
3170
|
+
this.showCardWrapper = false;
|
|
3165
3171
|
this.readonly = false;
|
|
3166
3172
|
this.onTotalRecordsChange = new EventEmitter();
|
|
3167
3173
|
this.loading = true;
|
|
3168
3174
|
this.newlySelectedItems = [];
|
|
3169
|
-
this.fakeSelectedItems = []; //
|
|
3170
|
-
this.currentPageSelectedItemsFromDb = []; //
|
|
3175
|
+
this.fakeSelectedItems = []; // Only for showing checkboxes, we will not send this to the backend
|
|
3176
|
+
this.currentPageSelectedItemsFromDb = []; // Made so we can add only newly selected items to the newlySelectedItems
|
|
3171
3177
|
this.unselectedItems = [];
|
|
3172
3178
|
this.onLazyLoad = new EventEmitter();
|
|
3173
3179
|
this.rowsSelectedNumber = 0;
|
|
3174
3180
|
this.isAllSelected = null;
|
|
3175
|
-
this.fakeIsAllSelected = false; //
|
|
3181
|
+
this.fakeIsAllSelected = false; // Only for showing checkboxes, we will not send this to the backend
|
|
3176
3182
|
this.isFirstTimeLazyLoad = true;
|
|
3177
3183
|
this.onIsAllSelectedChange = new EventEmitter();
|
|
3178
3184
|
this.matchModeDateOptions = [];
|
|
@@ -3181,22 +3187,22 @@ class SpiderlyDataTableComponent {
|
|
|
3181
3187
|
this.showExportToExcelButton = true;
|
|
3182
3188
|
this.showReloadTableButton = false;
|
|
3183
3189
|
this.hasLazyLoad = true;
|
|
3184
|
-
this.selectedItemIds = []; //
|
|
3185
|
-
this.selectedItems = []; //
|
|
3190
|
+
this.selectedItemIds = []; // Pass only when hasLazyLoad === false, it's enough if the M2M association hasn't additional fields
|
|
3191
|
+
this.selectedItems = []; // Pass only when hasLazyLoad === false
|
|
3186
3192
|
this.onRowSelect = new EventEmitter();
|
|
3187
3193
|
this.onRowUnselect = new EventEmitter();
|
|
3188
3194
|
this.clientFilterCount = 0;
|
|
3189
3195
|
}
|
|
3190
3196
|
ngOnInit() {
|
|
3191
3197
|
this.matchModeDateOptions = [
|
|
3192
|
-
{ label: this.translocoService.translate('OnDate'), value:
|
|
3193
|
-
{ label: this.translocoService.translate('DatesBefore'), value:
|
|
3194
|
-
{ label: this.translocoService.translate('DatesAfter'), value:
|
|
3198
|
+
{ label: this.translocoService.translate('OnDate'), value: MatchModeCodes.Equals },
|
|
3199
|
+
{ label: this.translocoService.translate('DatesBefore'), value: MatchModeCodes.LessThan },
|
|
3200
|
+
{ label: this.translocoService.translate('DatesAfter'), value: MatchModeCodes.GreaterThan },
|
|
3195
3201
|
];
|
|
3196
3202
|
this.matchModeNumberOptions = [
|
|
3197
|
-
{ label: this.translocoService.translate('Equals'), value:
|
|
3198
|
-
{ label: this.translocoService.translate('
|
|
3199
|
-
{ label: this.translocoService.translate('
|
|
3203
|
+
{ label: this.translocoService.translate('Equals'), value: MatchModeCodes.Equals },
|
|
3204
|
+
{ label: this.translocoService.translate('LessThan'), value: MatchModeCodes.LessThan },
|
|
3205
|
+
{ label: this.translocoService.translate('MoreThan'), value: MatchModeCodes.GreaterThan },
|
|
3200
3206
|
];
|
|
3201
3207
|
if (this.hasLazyLoad === false) {
|
|
3202
3208
|
this.clientLoad();
|
|
@@ -3223,10 +3229,10 @@ class SpiderlyDataTableComponent {
|
|
|
3223
3229
|
if (this.isAllSelected == true) {
|
|
3224
3230
|
let idsToInsert = [...this.items.map(x => x.id)];
|
|
3225
3231
|
idsToInsert = idsToInsert.filter(x => this.unselectedItems.includes(x) == false);
|
|
3226
|
-
this.fakeSelectedItems = [...idsToInsert]; //
|
|
3232
|
+
this.fakeSelectedItems = [...idsToInsert]; // Only for showing checkboxes, we will not send this to the backend
|
|
3227
3233
|
}
|
|
3228
3234
|
else if (this.isAllSelected == false) {
|
|
3229
|
-
this.fakeSelectedItems = [...this.newlySelectedItems]; //
|
|
3235
|
+
this.fakeSelectedItems = [...this.newlySelectedItems]; // Only for showing checkboxes, we will not send this to the backend
|
|
3230
3236
|
}
|
|
3231
3237
|
else if (this.isAllSelected == null) {
|
|
3232
3238
|
let idsToInsert = [...selectedRowsMethodResult.selectedIds, ...this.newlySelectedItems];
|
|
@@ -3257,7 +3263,7 @@ class SpiderlyDataTableComponent {
|
|
|
3257
3263
|
}
|
|
3258
3264
|
filter(event) {
|
|
3259
3265
|
if (this.hasLazyLoad && this.selectionMode === 'multiple')
|
|
3260
|
-
this.selectAll(false); //
|
|
3266
|
+
this.selectAll(false); // We need to do it like this because: totalRecords: 1 -> selectedRecords from earlyer selection 2 -> unselect current -> all checkbox is set to true
|
|
3261
3267
|
if (this.hasLazyLoad === false && this.selectionMode === 'multiple') {
|
|
3262
3268
|
if (this.clientFilterCount === 0) {
|
|
3263
3269
|
this.loadFormArrayItems();
|
|
@@ -3309,15 +3315,15 @@ class SpiderlyDataTableComponent {
|
|
|
3309
3315
|
getColMatchMode(filterType) {
|
|
3310
3316
|
switch (filterType) {
|
|
3311
3317
|
case 'text':
|
|
3312
|
-
return
|
|
3318
|
+
return MatchModeCodes.Contains;
|
|
3313
3319
|
case 'date':
|
|
3314
|
-
return
|
|
3320
|
+
return MatchModeCodes.Equals;
|
|
3315
3321
|
case 'multiselect':
|
|
3316
|
-
return
|
|
3322
|
+
return MatchModeCodes.In;
|
|
3317
3323
|
case 'boolean':
|
|
3318
|
-
return
|
|
3324
|
+
return MatchModeCodes.Equals;
|
|
3319
3325
|
case 'numeric':
|
|
3320
|
-
return
|
|
3326
|
+
return MatchModeCodes.Equals;
|
|
3321
3327
|
default:
|
|
3322
3328
|
return null;
|
|
3323
3329
|
}
|
|
@@ -3398,7 +3404,7 @@ class SpiderlyDataTableComponent {
|
|
|
3398
3404
|
case 'boolean':
|
|
3399
3405
|
return rowData[col.field] == true ? this.translocoService.translate('Yes') : this.translocoService.translate('No');
|
|
3400
3406
|
case 'numeric':
|
|
3401
|
-
// TODO
|
|
3407
|
+
// TODO make decimal pipe
|
|
3402
3408
|
return rowData[col.field];
|
|
3403
3409
|
default:
|
|
3404
3410
|
return null;
|
|
@@ -3476,7 +3482,7 @@ class SpiderlyDataTableComponent {
|
|
|
3476
3482
|
this.rowsSelectedNumber++;
|
|
3477
3483
|
const index = this.unselectedItems.indexOf(id);
|
|
3478
3484
|
if (index !== -1) {
|
|
3479
|
-
this.unselectedItems.splice(index, 1); //
|
|
3485
|
+
this.unselectedItems.splice(index, 1); // Splice is mutating the array
|
|
3480
3486
|
}
|
|
3481
3487
|
this.setFakeIsAllSelected();
|
|
3482
3488
|
}
|
|
@@ -3489,19 +3495,19 @@ class SpiderlyDataTableComponent {
|
|
|
3489
3495
|
const fakeIndex = this.fakeSelectedItems.indexOf(id);
|
|
3490
3496
|
const nonLazyLoadIndex = this.selectedItemIds.indexOf(id);
|
|
3491
3497
|
if (index !== -1) {
|
|
3492
|
-
this.newlySelectedItems.splice(index, 1); //
|
|
3498
|
+
this.newlySelectedItems.splice(index, 1); // Splice is mutating the array
|
|
3493
3499
|
}
|
|
3494
3500
|
if (fakeIndex !== -1) {
|
|
3495
|
-
this.fakeSelectedItems.splice(fakeIndex, 1); //
|
|
3501
|
+
this.fakeSelectedItems.splice(fakeIndex, 1); // Splice is mutating the array
|
|
3496
3502
|
}
|
|
3497
3503
|
if (nonLazyLoadIndex !== -1) {
|
|
3498
|
-
this.selectedItemIds.splice(nonLazyLoadIndex, 1); //
|
|
3504
|
+
this.selectedItemIds.splice(nonLazyLoadIndex, 1); // Splice is mutating the array
|
|
3499
3505
|
}
|
|
3500
3506
|
this.setFakeIsAllSelected();
|
|
3501
3507
|
}
|
|
3502
3508
|
//#endregion
|
|
3503
3509
|
//#region Client side table
|
|
3504
|
-
//
|
|
3510
|
+
// Can do it with Id also, because we are never adding the new record in the table at the same page.
|
|
3505
3511
|
getFormArrayControlByIndex(formControlName, index) {
|
|
3506
3512
|
if (this.getFormControl) {
|
|
3507
3513
|
return this.getFormControl(formControlName, index, this.additionalIndexes);
|
|
@@ -3511,7 +3517,7 @@ class SpiderlyDataTableComponent {
|
|
|
3511
3517
|
}
|
|
3512
3518
|
}
|
|
3513
3519
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyDataTableComponent, deps: [{ token: i3.Router }, { token: i1$6.DialogService }, { token: i3.ActivatedRoute }, { token: SpiderlyMessageService }, { token: i1$2.TranslocoService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3514
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyDataTableComponent, isStandalone: true, selector: "spiderly-data-table", inputs: { tableTitle: "tableTitle", tableIcon: "tableIcon", items: "items", rows: "rows", cols: "cols", showPaginator: "showPaginator", showCardWrapper: "showCardWrapper", readonly: "readonly", getTableDataObservableMethod: "getTableDataObservableMethod", exportTableDataToExcelObservableMethod: "exportTableDataToExcelObservableMethod", deleteItemFromTableObservableMethod: "deleteItemFromTableObservableMethod", newlySelectedItems: "newlySelectedItems", unselectedItems: "unselectedItems", selectionMode: "selectionMode", selectedLazyLoadObservableMethod: "selectedLazyLoadObservableMethod", additionalFilterIdLong: "additionalFilterIdLong", showAddButton: "showAddButton", showExportToExcelButton: "showExportToExcelButton", showReloadTableButton: "showReloadTableButton", getFormArrayItems: "getFormArrayItems", hasLazyLoad: "hasLazyLoad", getAlreadySelectedItemIds: "getAlreadySelectedItemIds", getAlreadySelectedItems: "getAlreadySelectedItems", getFormControl: "getFormControl", additionalIndexes: "additionalIndexes" }, outputs: { onTotalRecordsChange: "onTotalRecordsChange", onLazyLoad: "onLazyLoad", onIsAllSelectedChange: "onIsAllSelectedChange", onRowSelect: "onRowSelect", onRowUnselect: "onRowUnselect" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["dt"], descendants: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div [class]=\"showCardWrapper ? 'card responsive-card-padding overflow-auto' : ''\">\r\n <p-table #dt [value]=\"items\" [rows]=\"rows\" [rowHover]=\"true\" [paginator]=\"showPaginator\" responsiveLayout=\"scroll\" [lazy]=\"hasLazyLoad\"\r\n (onLazyLoad)=\"lazyLoad($event)\" [totalRecords]=\"totalRecords\" class=\"spiderly-table\" [loading]=\"(items === undefined || loading === true)\" [selectionMode]=\"selectionMode\" dataKey=\"id\" \r\n (onFilter)=\"filter($event)\"> \r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header overflow-auto\">\r\n <div style=\"display: flex; align-items: center; gap: 8px;\">\r\n <i class=\"{{tableIcon}} text-2xl primary-color\"></i>\r\n <h5 style=\"margin: 0px;\">{{tableTitle}}</h5>\r\n </div>\r\n <div style=\"display: flex; gap: 8px;\">\r\n <button pButton [label]=\"t('ClearFilters')\" class=\"p-button-outlined remove-button-border-focus\" style=\"flex: none;\" icon=\"pi pi-filter-slash\" (click)=\"clear(dt)\"></button>\r\n <button pButton *ngIf=\"showExportToExcelButton\" [label]=\"t('ExportToExcel')\" class=\"p-button-outlined remove-button-border-focus\" style=\"flex: none;\" icon=\"pi pi-download\" (click)=\"exportListToExcel()\"></button>\r\n <button pButton *ngIf=\"showReloadTableButton\" [label]=\"t('Reload')\" class=\"p-button-outlined remove-button-border-focus\" style=\"flex: none;\" icon=\"pi pi-refresh\" (click)=\"reload()\"></button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 0rem;\" *ngIf=\"selectionMode == 'multiple'\">\r\n <div style=\"display: flex; gap: 8px;\">\r\n <p-checkbox [disabled]=\"readonly\" (onChange)=\"selectAll($event.checked)\" [(ngModel)]=\"fakeIsAllSelected\" [binary]=\"true\"></p-checkbox> ({{rowsSelectedNumber}})\r\n </div>\r\n </th>\r\n <ng-container *ngFor=\"let col of cols; trackBy: colTrackByFn\">\r\n <th [style]=\"getColHeaderWidth(col.filterType)\">\r\n <div style=\"display: flex; justify-content: space-between; align-items: center;\">\r\n {{col.name}}\r\n <!-- <p-sortIcon field=\"\"></p-sortIcon> -->\r\n <!-- <p-columnFilter type=\"date\" field=\"date\" display=\"menu\"></p-columnFilter> -->\r\n <p-columnFilter *ngIf=\"col.filterType != null\" [type]=\"col.filterType\" [field]=\"col.filterField ?? col.field\" display=\"menu\" [placeholder]=\"col.filterPlaceholder\" \r\n [showOperator]=\"false\" [showMatchModes]=\"col.showMatchModes\" [showAddButton]=\"col.showAddButton\" [matchModeOptions]=\"getColMatchModeOptions(col.filterType)\"\r\n [matchMode]=\"getColMatchMode(col.filterType)\"\r\n >\r\n <ng-container *ngIf=\"isDropOrMulti(col.filterType)\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"col.dropdownOrMultiselectValues\" [placeholder]=\"t('All')\" (onChange)=\"filter($event.value)\" optionLabel=\"label\" optionValue=\"code\" [style]=\"{'width':'240px'}\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-2\">{{ item.label }}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </ng-container>\r\n </p-columnFilter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-index=\"rowIndex\" let-editing=\"editing\">\r\n <tr>\r\n <td *ngIf=\"selectionMode == 'multiple'\">\r\n <p-checkbox [disabled]=\"readonly\" (onChange)=\"selectRow(rowData.id, rowData.index)\" [ngModel]=\"isRowSelected(rowData.id)\" [binary]=\"true\"></p-checkbox>\r\n </td>\r\n <ng-container *ngFor=\"let col of cols; trackBy: colTrackByFn\">\r\n <td [pTooltip]=\"getRowData(rowData, col)\" [style]=\"getStyleForBodyColumn(col)\" *ngIf=\"!col.editable\">\r\n <div style=\"display: flex; align-items: center; justify-content: center; gap: 18px;\">\r\n <ng-container *ngFor=\"let action of col.actions; trackBy: actionTrackByFn\" >\r\n <span [pTooltip]=\"action.name\" [class]=\"getClassForAction(action)\" (click)=\"getMethodForAction(action, rowData)\"></span>\r\n </ng-container>\r\n </div>\r\n {{getRowData(rowData, col)}}\r\n </td>\r\n <td *ngIf=\"col.editable\">\r\n <spiderly-number [control]=\"getFormArrayControlByIndex(col.field, rowData.index)\" [showLabel]=\"false\"></spiderly-number>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"cols?.length + (selectionMode === 'multiple' ? 1 : 0)\">{{t('NoRecordsFound')}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr>\r\n <td [attr.colspan]=\"cols?.length + (selectionMode === 'multiple' ? 1 : 0)\">{{t('Loading')}}...</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorleft\">\r\n {{t('TotalRecords')}}: {{totalRecords}}\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\">\r\n <div style=\"display: flex; justify-content: end; gap: 10px;\">\r\n <spiderly-button *ngIf=\"showAddButton\" [label]=\"t('AddNew')\" icon=\"pi pi-plus\" (onClick)=\"navigateToDetails(0)\"></spiderly-button>\r\n </div>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n</ng-container>", styles: [".table-header{display:flex;justify-content:space-between;align-items:center}@media (max-width: 640px){.table-header{display:flex;flex-direction:column;align-items:start;gap:14px}}.spiderly-table .p-paginator{padding:1rem}@media (min-width: 1400px){.spiderly-table .p-paginator-left-content{position:absolute;padding:14px;left:0}}@media (min-width: 1400px){.spiderly-table .p-paginator-right-content{position:absolute;padding:14px;right:0}}:host ::ng-deep .p-datatable-thead{position:unset!important}:host ::ng-deep .p-datatable-header{border-radius:6px 6px 0 0}:host ::ng-deep .p-datatable{border-radius:var(--p-content-border-radius);border:1px solid var(--p-datatable-border-color)}\n", ":is() .remove-button-border-focus:focus,:is() .remove-button-border-focus:enabled:focus{box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;background-color:var(--gray-200)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: SpiderlyControlsModule }, { kind: "component", type: SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "component", type: SpiderlyNumberComponent, selector: "spiderly-number", inputs: ["prefix", "showButtons", "decimal", "maxFractionDigits"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i9.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i9.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons", "ariaLabel", "filterButtonProps"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i4$2.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5$1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
|
|
3520
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyDataTableComponent, isStandalone: true, selector: "spiderly-data-table", inputs: { tableTitle: "tableTitle", tableIcon: "tableIcon", items: "items", rows: "rows", cols: "cols", showPaginator: "showPaginator", showCardWrapper: "showCardWrapper", readonly: "readonly", getTableDataObservableMethod: "getTableDataObservableMethod", exportTableDataToExcelObservableMethod: "exportTableDataToExcelObservableMethod", deleteItemFromTableObservableMethod: "deleteItemFromTableObservableMethod", newlySelectedItems: "newlySelectedItems", unselectedItems: "unselectedItems", selectionMode: "selectionMode", selectedLazyLoadObservableMethod: "selectedLazyLoadObservableMethod", additionalFilterIdLong: "additionalFilterIdLong", showAddButton: "showAddButton", showExportToExcelButton: "showExportToExcelButton", showReloadTableButton: "showReloadTableButton", getFormArrayItems: "getFormArrayItems", hasLazyLoad: "hasLazyLoad", getAlreadySelectedItemIds: "getAlreadySelectedItemIds", getAlreadySelectedItems: "getAlreadySelectedItems", getFormControl: "getFormControl", additionalIndexes: "additionalIndexes" }, outputs: { onTotalRecordsChange: "onTotalRecordsChange", onLazyLoad: "onLazyLoad", onIsAllSelectedChange: "onIsAllSelectedChange", onRowSelect: "onRowSelect", onRowUnselect: "onRowUnselect" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["dt"], descendants: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div [class]=\"showCardWrapper ? 'card responsive-card-padding overflow-auto' : ''\">\r\n <p-table #dt [value]=\"items\" [rows]=\"rows\" [rowHover]=\"true\" [paginator]=\"showPaginator\" responsiveLayout=\"scroll\" [lazy]=\"hasLazyLoad\"\r\n (onLazyLoad)=\"lazyLoad($event)\" [totalRecords]=\"totalRecords\" class=\"spiderly-table\" [loading]=\"(items === undefined || loading === true)\" [selectionMode]=\"selectionMode\" dataKey=\"id\" \r\n (onFilter)=\"filter($event)\"> \r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header overflow-auto\">\r\n <div style=\"display: flex; align-items: center; gap: 8px;\">\r\n <i class=\"{{tableIcon}} text-2xl primary-color\"></i>\r\n <h5 style=\"margin: 0px;\">{{tableTitle}}</h5>\r\n </div>\r\n <div style=\"display: flex; gap: 8px;\">\r\n <button pButton [label]=\"t('ClearFilters')\" class=\"p-button-outlined\" style=\"flex: none;\" icon=\"pi pi-filter-slash\" (click)=\"clear(dt)\"></button>\r\n <button pButton *ngIf=\"showExportToExcelButton\" [label]=\"t('ExportToExcel')\" class=\"p-button-outlined\" style=\"flex: none;\" icon=\"pi pi-download\" (click)=\"exportListToExcel()\"></button>\r\n <button pButton *ngIf=\"showReloadTableButton\" [label]=\"t('Reload')\" class=\"p-button-outlined\" style=\"flex: none;\" icon=\"pi pi-refresh\" (click)=\"reload()\"></button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 0rem;\" *ngIf=\"selectionMode == 'multiple'\">\r\n <div style=\"display: flex; gap: 8px;\">\r\n <p-checkbox [disabled]=\"readonly\" (onChange)=\"selectAll($event.checked)\" [(ngModel)]=\"fakeIsAllSelected\" [binary]=\"true\"></p-checkbox> ({{rowsSelectedNumber}})\r\n </div>\r\n </th>\r\n <ng-container *ngFor=\"let col of cols; trackBy: colTrackByFn\">\r\n <th [style]=\"getColHeaderWidth(col.filterType)\">\r\n <div style=\"display: flex; justify-content: space-between; align-items: center;\">\r\n {{col.name}}\r\n <p-columnFilter *ngIf=\"col.filterType != null\" [type]=\"col.filterType\" [field]=\"col.filterField ?? col.field\" display=\"menu\" [placeholder]=\"col.filterPlaceholder\" \r\n [showOperator]=\"false\" [showMatchModes]=\"col.showMatchModes\" [showAddButton]=\"col.showAddButton\" [matchModeOptions]=\"getColMatchModeOptions(col.filterType)\"\r\n [matchMode]=\"getColMatchMode(col.filterType)\"\r\n >\r\n <ng-container *ngIf=\"isDropOrMulti(col.filterType)\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"col.dropdownOrMultiselectValues\" [placeholder]=\"t('All')\" (onChange)=\"filter($event.value)\" optionLabel=\"label\" optionValue=\"code\" [style]=\"{'width':'240px'}\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-2\">{{ item.label }}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </ng-container>\r\n </p-columnFilter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-index=\"rowIndex\" let-editing=\"editing\">\r\n <tr>\r\n <td *ngIf=\"selectionMode == 'multiple'\">\r\n <p-checkbox [disabled]=\"readonly\" (onChange)=\"selectRow(rowData.id, rowData.index)\" [ngModel]=\"isRowSelected(rowData.id)\" [binary]=\"true\"></p-checkbox>\r\n </td>\r\n <ng-container *ngFor=\"let col of cols; trackBy: colTrackByFn\">\r\n <td [pTooltip]=\"getRowData(rowData, col)\" [style]=\"getStyleForBodyColumn(col)\" *ngIf=\"!col.editable\">\r\n <div style=\"display: flex; align-items: center; justify-content: center; gap: 18px;\">\r\n <ng-container *ngFor=\"let action of col.actions; trackBy: actionTrackByFn\" >\r\n <span [pTooltip]=\"action.name\" [class]=\"getClassForAction(action)\" (click)=\"getMethodForAction(action, rowData)\"></span>\r\n </ng-container>\r\n </div>\r\n {{getRowData(rowData, col)}}\r\n </td>\r\n <td *ngIf=\"col.editable\">\r\n <spiderly-number [control]=\"getFormArrayControlByIndex(col.field, rowData.index)\" [showLabel]=\"false\"></spiderly-number>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"cols?.length + (selectionMode === 'multiple' ? 1 : 0)\">{{t('NoRecordsFound')}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr>\r\n <td [attr.colspan]=\"cols?.length + (selectionMode === 'multiple' ? 1 : 0)\">{{t('Loading')}}...</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorleft\">\r\n {{t('TotalRecords')}}: {{totalRecords}}\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\">\r\n <div style=\"display: flex; justify-content: end; gap: 10px;\">\r\n <spiderly-button *ngIf=\"showAddButton\" [label]=\"t('AddNew')\" icon=\"pi pi-plus\" (onClick)=\"navigateToDetails(0)\"></spiderly-button>\r\n </div>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n</ng-container>", styles: [".table-header{display:flex;justify-content:space-between;align-items:center}@media (max-width: 640px){.table-header{display:flex;flex-direction:column;align-items:start;gap:14px}}.spiderly-table .p-paginator{padding:1rem}@media (min-width: 1400px){.spiderly-table .p-paginator-left-content{position:absolute;padding:14px;left:0}}@media (min-width: 1400px){.spiderly-table .p-paginator-right-content{position:absolute;padding:14px;right:0}}:host ::ng-deep .p-datatable-thead{position:unset!important}:host ::ng-deep .p-datatable-header{border-radius:6px 6px 0 0}:host ::ng-deep .p-datatable{border-radius:var(--p-content-border-radius);border:1px solid var(--p-datatable-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: SpiderlyControlsModule }, { kind: "component", type: SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "component", type: SpiderlyNumberComponent, selector: "spiderly-number", inputs: ["prefix", "showButtons", "decimal", "maxFractionDigits"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i9.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i9.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons", "ariaLabel", "filterButtonProps"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i4$2.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
|
|
3515
3521
|
}
|
|
3516
3522
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyDataTableComponent, decorators: [{
|
|
3517
3523
|
type: Component,
|
|
@@ -3525,7 +3531,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
3525
3531
|
MultiSelectModule,
|
|
3526
3532
|
CheckboxModule,
|
|
3527
3533
|
TooltipModule,
|
|
3528
|
-
], template: "<ng-container *transloco=\"let t\">\r\n <div [class]=\"showCardWrapper ? 'card responsive-card-padding overflow-auto' : ''\">\r\n <p-table #dt [value]=\"items\" [rows]=\"rows\" [rowHover]=\"true\" [paginator]=\"showPaginator\" responsiveLayout=\"scroll\" [lazy]=\"hasLazyLoad\"\r\n (onLazyLoad)=\"lazyLoad($event)\" [totalRecords]=\"totalRecords\" class=\"spiderly-table\" [loading]=\"(items === undefined || loading === true)\" [selectionMode]=\"selectionMode\" dataKey=\"id\" \r\n (onFilter)=\"filter($event)\"> \r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header overflow-auto\">\r\n <div style=\"display: flex; align-items: center; gap: 8px;\">\r\n <i class=\"{{tableIcon}} text-2xl primary-color\"></i>\r\n <h5 style=\"margin: 0px;\">{{tableTitle}}</h5>\r\n </div>\r\n <div style=\"display: flex; gap: 8px;\">\r\n <button pButton [label]=\"t('ClearFilters')\" class=\"p-button-outlined
|
|
3534
|
+
], template: "<ng-container *transloco=\"let t\">\r\n <div [class]=\"showCardWrapper ? 'card responsive-card-padding overflow-auto' : ''\">\r\n <p-table #dt [value]=\"items\" [rows]=\"rows\" [rowHover]=\"true\" [paginator]=\"showPaginator\" responsiveLayout=\"scroll\" [lazy]=\"hasLazyLoad\"\r\n (onLazyLoad)=\"lazyLoad($event)\" [totalRecords]=\"totalRecords\" class=\"spiderly-table\" [loading]=\"(items === undefined || loading === true)\" [selectionMode]=\"selectionMode\" dataKey=\"id\" \r\n (onFilter)=\"filter($event)\"> \r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header overflow-auto\">\r\n <div style=\"display: flex; align-items: center; gap: 8px;\">\r\n <i class=\"{{tableIcon}} text-2xl primary-color\"></i>\r\n <h5 style=\"margin: 0px;\">{{tableTitle}}</h5>\r\n </div>\r\n <div style=\"display: flex; gap: 8px;\">\r\n <button pButton [label]=\"t('ClearFilters')\" class=\"p-button-outlined\" style=\"flex: none;\" icon=\"pi pi-filter-slash\" (click)=\"clear(dt)\"></button>\r\n <button pButton *ngIf=\"showExportToExcelButton\" [label]=\"t('ExportToExcel')\" class=\"p-button-outlined\" style=\"flex: none;\" icon=\"pi pi-download\" (click)=\"exportListToExcel()\"></button>\r\n <button pButton *ngIf=\"showReloadTableButton\" [label]=\"t('Reload')\" class=\"p-button-outlined\" style=\"flex: none;\" icon=\"pi pi-refresh\" (click)=\"reload()\"></button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 0rem;\" *ngIf=\"selectionMode == 'multiple'\">\r\n <div style=\"display: flex; gap: 8px;\">\r\n <p-checkbox [disabled]=\"readonly\" (onChange)=\"selectAll($event.checked)\" [(ngModel)]=\"fakeIsAllSelected\" [binary]=\"true\"></p-checkbox> ({{rowsSelectedNumber}})\r\n </div>\r\n </th>\r\n <ng-container *ngFor=\"let col of cols; trackBy: colTrackByFn\">\r\n <th [style]=\"getColHeaderWidth(col.filterType)\">\r\n <div style=\"display: flex; justify-content: space-between; align-items: center;\">\r\n {{col.name}}\r\n <p-columnFilter *ngIf=\"col.filterType != null\" [type]=\"col.filterType\" [field]=\"col.filterField ?? col.field\" display=\"menu\" [placeholder]=\"col.filterPlaceholder\" \r\n [showOperator]=\"false\" [showMatchModes]=\"col.showMatchModes\" [showAddButton]=\"col.showAddButton\" [matchModeOptions]=\"getColMatchModeOptions(col.filterType)\"\r\n [matchMode]=\"getColMatchMode(col.filterType)\"\r\n >\r\n <ng-container *ngIf=\"isDropOrMulti(col.filterType)\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"col.dropdownOrMultiselectValues\" [placeholder]=\"t('All')\" (onChange)=\"filter($event.value)\" optionLabel=\"label\" optionValue=\"code\" [style]=\"{'width':'240px'}\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-2\">{{ item.label }}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </ng-container>\r\n </p-columnFilter>\r\n </div>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-index=\"rowIndex\" let-editing=\"editing\">\r\n <tr>\r\n <td *ngIf=\"selectionMode == 'multiple'\">\r\n <p-checkbox [disabled]=\"readonly\" (onChange)=\"selectRow(rowData.id, rowData.index)\" [ngModel]=\"isRowSelected(rowData.id)\" [binary]=\"true\"></p-checkbox>\r\n </td>\r\n <ng-container *ngFor=\"let col of cols; trackBy: colTrackByFn\">\r\n <td [pTooltip]=\"getRowData(rowData, col)\" [style]=\"getStyleForBodyColumn(col)\" *ngIf=\"!col.editable\">\r\n <div style=\"display: flex; align-items: center; justify-content: center; gap: 18px;\">\r\n <ng-container *ngFor=\"let action of col.actions; trackBy: actionTrackByFn\" >\r\n <span [pTooltip]=\"action.name\" [class]=\"getClassForAction(action)\" (click)=\"getMethodForAction(action, rowData)\"></span>\r\n </ng-container>\r\n </div>\r\n {{getRowData(rowData, col)}}\r\n </td>\r\n <td *ngIf=\"col.editable\">\r\n <spiderly-number [control]=\"getFormArrayControlByIndex(col.field, rowData.index)\" [showLabel]=\"false\"></spiderly-number>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"cols?.length + (selectionMode === 'multiple' ? 1 : 0)\">{{t('NoRecordsFound')}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr>\r\n <td [attr.colspan]=\"cols?.length + (selectionMode === 'multiple' ? 1 : 0)\">{{t('Loading')}}...</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorleft\">\r\n {{t('TotalRecords')}}: {{totalRecords}}\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\">\r\n <div style=\"display: flex; justify-content: end; gap: 10px;\">\r\n <spiderly-button *ngIf=\"showAddButton\" [label]=\"t('AddNew')\" icon=\"pi pi-plus\" (onClick)=\"navigateToDetails(0)\"></spiderly-button>\r\n </div>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n</ng-container>", styles: [".table-header{display:flex;justify-content:space-between;align-items:center}@media (max-width: 640px){.table-header{display:flex;flex-direction:column;align-items:start;gap:14px}}.spiderly-table .p-paginator{padding:1rem}@media (min-width: 1400px){.spiderly-table .p-paginator-left-content{position:absolute;padding:14px;left:0}}@media (min-width: 1400px){.spiderly-table .p-paginator-right-content{position:absolute;padding:14px;right:0}}:host ::ng-deep .p-datatable-thead{position:unset!important}:host ::ng-deep .p-datatable-header{border-radius:6px 6px 0 0}:host ::ng-deep .p-datatable{border-radius:var(--p-content-border-radius);border:1px solid var(--p-datatable-border-color)}\n"] }]
|
|
3529
3535
|
}], ctorParameters: () => [{ type: i3.Router }, { type: i1$6.DialogService }, { type: i3.ActivatedRoute }, { type: SpiderlyMessageService }, { type: i1$2.TranslocoService }, { type: undefined, decorators: [{
|
|
3530
3536
|
type: Inject,
|
|
3531
3537
|
args: [LOCALE_ID]
|
|
@@ -3631,6 +3637,158 @@ class AllClickEvent {
|
|
|
3631
3637
|
}
|
|
3632
3638
|
}
|
|
3633
3639
|
|
|
3640
|
+
class SpiderlyDataViewComponent {
|
|
3641
|
+
constructor(router, route, translocoService, locale) {
|
|
3642
|
+
this.router = router;
|
|
3643
|
+
this.route = route;
|
|
3644
|
+
this.translocoService = translocoService;
|
|
3645
|
+
this.locale = locale;
|
|
3646
|
+
this.rows = 10;
|
|
3647
|
+
this.filters = [];
|
|
3648
|
+
this.showCardWrapper = true;
|
|
3649
|
+
this.onLazyLoad = new EventEmitter();
|
|
3650
|
+
this.loading = true;
|
|
3651
|
+
this.matchModeDateOptions = [];
|
|
3652
|
+
this.matchModeNumberOptions = [];
|
|
3653
|
+
this.applyFilters = () => {
|
|
3654
|
+
this.table._filter();
|
|
3655
|
+
};
|
|
3656
|
+
}
|
|
3657
|
+
ngOnInit() {
|
|
3658
|
+
this.matchModeDateOptions = [
|
|
3659
|
+
{ label: this.translocoService.translate('OnDate'), value: MatchModeCodes.Equals },
|
|
3660
|
+
{ label: this.translocoService.translate('DatesBefore'), value: MatchModeCodes.LessThan },
|
|
3661
|
+
{ label: this.translocoService.translate('DatesAfter'), value: MatchModeCodes.GreaterThan },
|
|
3662
|
+
];
|
|
3663
|
+
this.matchModeNumberOptions = [
|
|
3664
|
+
{ label: this.translocoService.translate('Equals'), value: MatchModeCodes.Equals },
|
|
3665
|
+
{ label: this.translocoService.translate('LessThan'), value: MatchModeCodes.LessThan },
|
|
3666
|
+
{ label: this.translocoService.translate('MoreThan'), value: MatchModeCodes.GreaterThan },
|
|
3667
|
+
];
|
|
3668
|
+
}
|
|
3669
|
+
lazyLoad(event) {
|
|
3670
|
+
this.lastLazyLoadEvent = event;
|
|
3671
|
+
const transformedFilter = {};
|
|
3672
|
+
for (const key in event.filters) {
|
|
3673
|
+
const filterMeta = event.filters[key];
|
|
3674
|
+
if (Array.isArray(filterMeta)) {
|
|
3675
|
+
transformedFilter[key] = filterMeta;
|
|
3676
|
+
}
|
|
3677
|
+
else {
|
|
3678
|
+
transformedFilter[key] = [{
|
|
3679
|
+
value: filterMeta.value,
|
|
3680
|
+
matchMode: filterMeta.matchMode
|
|
3681
|
+
}];
|
|
3682
|
+
}
|
|
3683
|
+
}
|
|
3684
|
+
let tableFilter = event;
|
|
3685
|
+
tableFilter.filters = transformedFilter;
|
|
3686
|
+
this.onLazyLoad.next(tableFilter);
|
|
3687
|
+
this.getTableDataObservableMethod(tableFilter).subscribe({
|
|
3688
|
+
next: async (res) => {
|
|
3689
|
+
this.items = res.data;
|
|
3690
|
+
this.totalRecords = res.totalRecords;
|
|
3691
|
+
this.loading = false;
|
|
3692
|
+
},
|
|
3693
|
+
error: () => {
|
|
3694
|
+
this.loading = false;
|
|
3695
|
+
},
|
|
3696
|
+
});
|
|
3697
|
+
}
|
|
3698
|
+
filter(event) {
|
|
3699
|
+
}
|
|
3700
|
+
getDefaultMatchMode(filterType) {
|
|
3701
|
+
switch (filterType) {
|
|
3702
|
+
case 'text':
|
|
3703
|
+
return MatchModeCodes.Contains;
|
|
3704
|
+
case 'date':
|
|
3705
|
+
return MatchModeCodes.Equals;
|
|
3706
|
+
case 'multiselect':
|
|
3707
|
+
return MatchModeCodes.In;
|
|
3708
|
+
case 'boolean':
|
|
3709
|
+
return MatchModeCodes.Equals;
|
|
3710
|
+
case 'numeric':
|
|
3711
|
+
return MatchModeCodes.Equals;
|
|
3712
|
+
default:
|
|
3713
|
+
return null;
|
|
3714
|
+
}
|
|
3715
|
+
}
|
|
3716
|
+
getMatchModeOptions(filterType) {
|
|
3717
|
+
switch (filterType) {
|
|
3718
|
+
case 'text':
|
|
3719
|
+
return [];
|
|
3720
|
+
case 'date':
|
|
3721
|
+
return this.matchModeDateOptions;
|
|
3722
|
+
case 'multiselect':
|
|
3723
|
+
return [];
|
|
3724
|
+
case 'boolean':
|
|
3725
|
+
return [];
|
|
3726
|
+
case 'numeric':
|
|
3727
|
+
return this.matchModeNumberOptions;
|
|
3728
|
+
default:
|
|
3729
|
+
return [];
|
|
3730
|
+
}
|
|
3731
|
+
}
|
|
3732
|
+
navigateToDetails(rowId) {
|
|
3733
|
+
this.router.navigate([rowId], { relativeTo: this.route });
|
|
3734
|
+
}
|
|
3735
|
+
reload() {
|
|
3736
|
+
this.loading = true;
|
|
3737
|
+
this.items = null;
|
|
3738
|
+
this.lazyLoad(this.lastLazyLoadEvent);
|
|
3739
|
+
}
|
|
3740
|
+
colTrackByFn(index, item) {
|
|
3741
|
+
return item.field;
|
|
3742
|
+
}
|
|
3743
|
+
actionTrackByFn(index, item) {
|
|
3744
|
+
return `${index}${item.field}`;
|
|
3745
|
+
}
|
|
3746
|
+
clearFilters() {
|
|
3747
|
+
this.table.clear();
|
|
3748
|
+
}
|
|
3749
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyDataViewComponent, deps: [{ token: i3.Router }, { token: i3.ActivatedRoute }, { token: i1$2.TranslocoService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3750
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.13", type: SpiderlyDataViewComponent, isStandalone: true, selector: "spiderly-data-view", inputs: { items: "items", rows: "rows", filters: "filters", showCardWrapper: "showCardWrapper", getTableDataObservableMethod: "getTableDataObservableMethod" }, outputs: { onLazyLoad: "onLazyLoad" }, queries: [{ propertyName: "cardBody", first: true, predicate: ["cardBody"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "table", first: true, predicate: ["dt"], descendants: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div [class]=\"showCardWrapper ? 'card responsive-card-padding overflow-auto' : ''\">\r\n <p-table \r\n #dt \r\n [value]=\"items\" \r\n [rows]=\"rows\" \r\n [rowHover]=\"true\" \r\n responsiveLayout=\"scroll\" \r\n [lazy]=\"true\"\r\n (onLazyLoad)=\"lazyLoad($event)\" \r\n [totalRecords]=\"totalRecords\" class=\"spiderly-table\" \r\n [loading]=\"(items === undefined || loading === true)\" \r\n dataKey=\"id\" \r\n (onFilter)=\"filter($event)\"\r\n [filterDelay]=\"500\"\r\n > \r\n <ng-template #caption>\r\n <div *ngIf=\"filters.length !== 0\">\r\n <div class=\"data-view-grid\">\r\n @for (filter of filters; track $index) {\r\n <div>\r\n <div style=\"display: flex; flex-direction: column; gap: 0.5rem; position: relative;\">\r\n <div>\r\n <label>\r\n {{filter.name}}\r\n </label>\r\n </div>\r\n\r\n <p-columnFilter *ngIf=\"filter.filterType != null\" [type]=\"filter.filterType\" [field]=\"filter.filterField ?? filter.field\" display=\"row\" [placeholder]=\"filter.filterPlaceholder\" \r\n [showOperator]=\"false\" [showMenu]=\"filter.showMatchModes\" [showMatchModes]=\"true\" [showClearButton]=\"false\" [matchMode]=\"getDefaultMatchMode(filter.filterType)\" [matchModeOptions]=\"getMatchModeOptions(filter.filterType)\" \r\n >\r\n <!-- Multiselect -->\r\n <ng-container *ngIf=\"filter.filterType == 'multiselect'\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"filter.dropdownOrMultiselectValues\" [placeholder]=\"t('All')\" (onChange)=\"filter($event.value)\" optionLabel=\"label\" optionValue=\"code\" [style]=\"{'width':'240px'}\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-2\">{{ item.label }}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </ng-container>\r\n </p-columnFilter>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div style=\"display: flex; gap: 12px;\">\r\n <spiderly-button [label]=\"t('ApplyFilters')\" (onClick)=\"applyFilters()\" icon=\"pi pi-search\"></spiderly-button>\r\n <spiderly-button [label]=\"t('ClearFilters')\" (onClick)=\"clearFilters()\" icon=\"pi pi-filter-slash\"></spiderly-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #body let-rowData let-index=\"rowIndex\">\r\n <tr class=\"card\" style=\"padding: 0; margin-bottom: 0;\">\r\n <td (click)=\"navigateToDetails(rowData.id)\" style=\"display: block; border: 0; cursor: pointer;\">\r\n <ng-container *ngTemplateOutlet=\"cardBody; context: { $implicit: rowData, item: rowData, index: index }\">\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n</ng-container>", styles: ["::ng-deep .p-datatable-tbody{display:flex;flex-direction:column;gap:18px}::ng-deep .p-datatable-header{margin-bottom:36px;border:0!important;padding:0!important;background-color:transparent!important}::ng-deep .p-fluid{width:100%!important}::ng-deep .p-inputtext{width:100%!important}::ng-deep .p-inputnumber{width:100%!important}::ng-deep .p-datepicker{width:100%!important}.data-view-grid{display:grid;gap:18px;grid-template-columns:1fr 1fr 1fr;margin-bottom:18px}@media (max-width: 1080px){.data-view-grid{gap:12px;grid-template-columns:1fr 1fr}}@media (max-width: 500px){.data-view-grid{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: SpiderlyControlsModule }, { kind: "component", type: SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i9.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i9.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons", "ariaLabel", "filterButtonProps"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: DatePickerModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: InputNumberModule }, { kind: "ngmodule", type: SelectModule }] }); }
|
|
3751
|
+
}
|
|
3752
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyDataViewComponent, decorators: [{
|
|
3753
|
+
type: Component,
|
|
3754
|
+
args: [{ selector: 'spiderly-data-view', imports: [
|
|
3755
|
+
FormsModule,
|
|
3756
|
+
CommonModule,
|
|
3757
|
+
TranslocoDirective,
|
|
3758
|
+
SpiderlyControlsModule,
|
|
3759
|
+
TableModule,
|
|
3760
|
+
ButtonModule,
|
|
3761
|
+
MultiSelectModule,
|
|
3762
|
+
CheckboxModule,
|
|
3763
|
+
TooltipModule,
|
|
3764
|
+
DatePickerModule,
|
|
3765
|
+
InputTextModule,
|
|
3766
|
+
InputNumberModule,
|
|
3767
|
+
SelectModule,
|
|
3768
|
+
], template: "<ng-container *transloco=\"let t\">\r\n <div [class]=\"showCardWrapper ? 'card responsive-card-padding overflow-auto' : ''\">\r\n <p-table \r\n #dt \r\n [value]=\"items\" \r\n [rows]=\"rows\" \r\n [rowHover]=\"true\" \r\n responsiveLayout=\"scroll\" \r\n [lazy]=\"true\"\r\n (onLazyLoad)=\"lazyLoad($event)\" \r\n [totalRecords]=\"totalRecords\" class=\"spiderly-table\" \r\n [loading]=\"(items === undefined || loading === true)\" \r\n dataKey=\"id\" \r\n (onFilter)=\"filter($event)\"\r\n [filterDelay]=\"500\"\r\n > \r\n <ng-template #caption>\r\n <div *ngIf=\"filters.length !== 0\">\r\n <div class=\"data-view-grid\">\r\n @for (filter of filters; track $index) {\r\n <div>\r\n <div style=\"display: flex; flex-direction: column; gap: 0.5rem; position: relative;\">\r\n <div>\r\n <label>\r\n {{filter.name}}\r\n </label>\r\n </div>\r\n\r\n <p-columnFilter *ngIf=\"filter.filterType != null\" [type]=\"filter.filterType\" [field]=\"filter.filterField ?? filter.field\" display=\"row\" [placeholder]=\"filter.filterPlaceholder\" \r\n [showOperator]=\"false\" [showMenu]=\"filter.showMatchModes\" [showMatchModes]=\"true\" [showClearButton]=\"false\" [matchMode]=\"getDefaultMatchMode(filter.filterType)\" [matchModeOptions]=\"getMatchModeOptions(filter.filterType)\" \r\n >\r\n <!-- Multiselect -->\r\n <ng-container *ngIf=\"filter.filterType == 'multiselect'\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"filter.dropdownOrMultiselectValues\" [placeholder]=\"t('All')\" (onChange)=\"filter($event.value)\" optionLabel=\"label\" optionValue=\"code\" [style]=\"{'width':'240px'}\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-2\">{{ item.label }}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </ng-container>\r\n </p-columnFilter>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div style=\"display: flex; gap: 12px;\">\r\n <spiderly-button [label]=\"t('ApplyFilters')\" (onClick)=\"applyFilters()\" icon=\"pi pi-search\"></spiderly-button>\r\n <spiderly-button [label]=\"t('ClearFilters')\" (onClick)=\"clearFilters()\" icon=\"pi pi-filter-slash\"></spiderly-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #body let-rowData let-index=\"rowIndex\">\r\n <tr class=\"card\" style=\"padding: 0; margin-bottom: 0;\">\r\n <td (click)=\"navigateToDetails(rowData.id)\" style=\"display: block; border: 0; cursor: pointer;\">\r\n <ng-container *ngTemplateOutlet=\"cardBody; context: { $implicit: rowData, item: rowData, index: index }\">\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n</ng-container>", styles: ["::ng-deep .p-datatable-tbody{display:flex;flex-direction:column;gap:18px}::ng-deep .p-datatable-header{margin-bottom:36px;border:0!important;padding:0!important;background-color:transparent!important}::ng-deep .p-fluid{width:100%!important}::ng-deep .p-inputtext{width:100%!important}::ng-deep .p-inputnumber{width:100%!important}::ng-deep .p-datepicker{width:100%!important}.data-view-grid{display:grid;gap:18px;grid-template-columns:1fr 1fr 1fr;margin-bottom:18px}@media (max-width: 1080px){.data-view-grid{gap:12px;grid-template-columns:1fr 1fr}}@media (max-width: 500px){.data-view-grid{grid-template-columns:1fr}}\n"] }]
|
|
3769
|
+
}], ctorParameters: () => [{ type: i3.Router }, { type: i3.ActivatedRoute }, { type: i1$2.TranslocoService }, { type: undefined, decorators: [{
|
|
3770
|
+
type: Inject,
|
|
3771
|
+
args: [LOCALE_ID]
|
|
3772
|
+
}] }], propDecorators: { table: [{
|
|
3773
|
+
type: ViewChild,
|
|
3774
|
+
args: ['dt']
|
|
3775
|
+
}], items: [{
|
|
3776
|
+
type: Input
|
|
3777
|
+
}], rows: [{
|
|
3778
|
+
type: Input
|
|
3779
|
+
}], filters: [{
|
|
3780
|
+
type: Input
|
|
3781
|
+
}], showCardWrapper: [{
|
|
3782
|
+
type: Input
|
|
3783
|
+
}], onLazyLoad: [{
|
|
3784
|
+
type: Output
|
|
3785
|
+
}], getTableDataObservableMethod: [{
|
|
3786
|
+
type: Input
|
|
3787
|
+
}], cardBody: [{
|
|
3788
|
+
type: ContentChild,
|
|
3789
|
+
args: ['cardBody', { read: TemplateRef }]
|
|
3790
|
+
}] } });
|
|
3791
|
+
|
|
3634
3792
|
class SidebarMenuService {
|
|
3635
3793
|
constructor() {
|
|
3636
3794
|
this.menuSource = new Subject();
|
|
@@ -3838,14 +3996,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
3838
3996
|
type: Input
|
|
3839
3997
|
}] } });
|
|
3840
3998
|
|
|
3841
|
-
class
|
|
3842
|
-
constructor(layoutService, authService,
|
|
3999
|
+
class ProfileAvatarComponent {
|
|
4000
|
+
constructor(layoutService, authService, router, translocoService, config) {
|
|
3843
4001
|
this.layoutService = layoutService;
|
|
3844
4002
|
this.authService = authService;
|
|
3845
|
-
this.apiService = apiService;
|
|
3846
4003
|
this.router = router;
|
|
3847
4004
|
this.translocoService = translocoService;
|
|
3848
4005
|
this.config = config;
|
|
4006
|
+
this.isSideMenuLayout = true;
|
|
3849
4007
|
this.initTopBarSubscription = null;
|
|
3850
4008
|
this.menuItems = [];
|
|
3851
4009
|
this.showProfileIcon = false;
|
|
@@ -3860,7 +4018,6 @@ class AppTopBarComponent {
|
|
|
3860
4018
|
this.onAfterNgOnInit = () => {
|
|
3861
4019
|
this.initTopBarSubscription = this.layoutService.initTopBarData().subscribe(initTopBarData => {
|
|
3862
4020
|
this.userProfilePath = initTopBarData.userProfilePath;
|
|
3863
|
-
this.companyName = initTopBarData.companyName;
|
|
3864
4021
|
this.unreadNotificationsCount = initTopBarData.unreadNotificationsCount;
|
|
3865
4022
|
this.notificationMenuItem.showNotificationBadge = initTopBarData.unreadNotificationsCount > 0;
|
|
3866
4023
|
this.showProfileIcon = initTopBarData.showProfileIcon;
|
|
@@ -3880,13 +4037,6 @@ class AppTopBarComponent {
|
|
|
3880
4037
|
}
|
|
3881
4038
|
},
|
|
3882
4039
|
this.notificationMenuItem,
|
|
3883
|
-
// {
|
|
3884
|
-
// label: this.translocoService.translate('Settings'),
|
|
3885
|
-
// icon: 'pi-cog',
|
|
3886
|
-
// onClick: () => {
|
|
3887
|
-
// this.router.navigateByUrl(`/administration/users`);
|
|
3888
|
-
// }
|
|
3889
|
-
// },
|
|
3890
4040
|
{
|
|
3891
4041
|
label: this.translocoService.translate('Logout'),
|
|
3892
4042
|
icon: 'pi-sign-out',
|
|
@@ -3918,20 +4068,21 @@ class AppTopBarComponent {
|
|
|
3918
4068
|
this.initTopBarSubscription.unsubscribe();
|
|
3919
4069
|
}
|
|
3920
4070
|
}
|
|
3921
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type:
|
|
3922
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type:
|
|
4071
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ProfileAvatarComponent, deps: [{ token: LayoutBaseService }, { token: AuthBaseService }, { token: i3.Router }, { token: i1$2.TranslocoService }, { token: ConfigBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4072
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: ProfileAvatarComponent, isStandalone: true, selector: "spiderly-profile-avatar", inputs: { isSideMenuLayout: "isSideMenuLayout" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["topbarmenu"], descendants: true }, { propertyName: "topbarProfileDropdownMenuButton", first: true, predicate: ["topbarprofiledropdownmenubutton"], descendants: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div\r\n *ngIf=\"this.currentUser != null\"\r\n #topbarmenu\r\n >\r\n <div\r\n #topbarprofiledropdownmenubutton\r\n (click)=\"layoutService.showProfileDropdownSidebar()\"\r\n >\r\n <p-avatar\r\n *ngIf=\"showProfileIcon\"\r\n [label]=\"avatarLabel\"\r\n [style]=\"{ 'background-color': 'var(--p-primary-color)', 'color': '#fff', 'cursor': 'pointer', 'width': '34px', 'height': '34px', 'font-size': '21px' }\"\r\n pBadge \r\n [badgeStyleClass]=\"'p-badge-danger'\"\r\n [badgeDisabled]=\"unreadNotificationsCount == 0 || unreadNotificationsCount == null\"\r\n [value]=\"unreadNotificationsCount\"\r\n />\r\n </div>\r\n <div\r\n #topbarprofiledropdownmenu\r\n (document:click)=\"onDocumentClick($event)\"\r\n >\r\n <div \r\n *ngIf=\"layoutService.state.profileDropdownSidebarVisible\" \r\n [ngStyle]=\"{'right': isSideMenuLayout ? '26px' : '0', 'top': isSideMenuLayout ? '60px' : '40px'}\" \r\n style=\"width: 280px; position: absolute; padding: 15px;\" \r\n class=\"card\">\r\n <div style=\"display: flex; flex-direction: column; justify-content: center; text-align: center; gap: 10px;\">\r\n <p-avatar\r\n [label]=\"avatarLabel\"\r\n size=\"xlarge\"\r\n [style]=\"{ 'background-color': 'var(--p-primary-color)', 'color': '#fff', 'cursor': 'pointer', 'margin': 'auto' }\"\r\n (click)=\"routeToUserPage()\"\r\n />\r\n <div style=\"font-size: 15px;\">{{currentUser?.email}}</div>\r\n </div>\r\n <div style=\"margin-top: 15px;\">\r\n <div *ngFor=\"let item of menuItems\" [style]=\"item.showSeparator ? 'margin-top: 5px;' : ''\">\r\n <div *ngIf=\"item.showSeparator\" class=\"gray-separator\"></div>\r\n <div (click)=\"item.onClick()\" class=\"hover-card\" style=\"display: flex; align-items: center; gap: 5px; margin-top: 5px;\">\r\n <i \r\n class=\"pi pi-fw {{item.icon}} primary-color\" \r\n style=\"font-size: 16px; position: relative;\"\r\n >\r\n <span *ngIf=\"item.showNotificationBadge && unreadNotificationsCount != 0\" class=\"badge\"></span>\r\n </i>\r\n <div style=\"font-size: 15px;\"> {{item.label}} </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"this.currentUser == null\">\r\n <spiderly-button [label]=\"t('Login')\" icon=\"pi pi-sign-in\" [routerLink]=\"this.config.loginSlug\"></spiderly-button>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i7.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i8.BadgeDirective, selector: "[pBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "severity", "value", "badgeStyle", "badgeStyleClass"] }, { kind: "component", type: SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
3923
4073
|
}
|
|
3924
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type:
|
|
4074
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ProfileAvatarComponent, decorators: [{
|
|
3925
4075
|
type: Component,
|
|
3926
|
-
args: [{ selector: '
|
|
4076
|
+
args: [{ selector: 'spiderly-profile-avatar', imports: [
|
|
3927
4077
|
CommonModule,
|
|
3928
4078
|
RouterModule,
|
|
3929
4079
|
AvatarModule,
|
|
3930
4080
|
BadgeModule,
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
4081
|
+
SpiderlyButtonComponent,
|
|
4082
|
+
TranslocoDirective,
|
|
4083
|
+
], template: "<ng-container *transloco=\"let t\">\r\n <div\r\n *ngIf=\"this.currentUser != null\"\r\n #topbarmenu\r\n >\r\n <div\r\n #topbarprofiledropdownmenubutton\r\n (click)=\"layoutService.showProfileDropdownSidebar()\"\r\n >\r\n <p-avatar\r\n *ngIf=\"showProfileIcon\"\r\n [label]=\"avatarLabel\"\r\n [style]=\"{ 'background-color': 'var(--p-primary-color)', 'color': '#fff', 'cursor': 'pointer', 'width': '34px', 'height': '34px', 'font-size': '21px' }\"\r\n pBadge \r\n [badgeStyleClass]=\"'p-badge-danger'\"\r\n [badgeDisabled]=\"unreadNotificationsCount == 0 || unreadNotificationsCount == null\"\r\n [value]=\"unreadNotificationsCount\"\r\n />\r\n </div>\r\n <div\r\n #topbarprofiledropdownmenu\r\n (document:click)=\"onDocumentClick($event)\"\r\n >\r\n <div \r\n *ngIf=\"layoutService.state.profileDropdownSidebarVisible\" \r\n [ngStyle]=\"{'right': isSideMenuLayout ? '26px' : '0', 'top': isSideMenuLayout ? '60px' : '40px'}\" \r\n style=\"width: 280px; position: absolute; padding: 15px;\" \r\n class=\"card\">\r\n <div style=\"display: flex; flex-direction: column; justify-content: center; text-align: center; gap: 10px;\">\r\n <p-avatar\r\n [label]=\"avatarLabel\"\r\n size=\"xlarge\"\r\n [style]=\"{ 'background-color': 'var(--p-primary-color)', 'color': '#fff', 'cursor': 'pointer', 'margin': 'auto' }\"\r\n (click)=\"routeToUserPage()\"\r\n />\r\n <div style=\"font-size: 15px;\">{{currentUser?.email}}</div>\r\n </div>\r\n <div style=\"margin-top: 15px;\">\r\n <div *ngFor=\"let item of menuItems\" [style]=\"item.showSeparator ? 'margin-top: 5px;' : ''\">\r\n <div *ngIf=\"item.showSeparator\" class=\"gray-separator\"></div>\r\n <div (click)=\"item.onClick()\" class=\"hover-card\" style=\"display: flex; align-items: center; gap: 5px; margin-top: 5px;\">\r\n <i \r\n class=\"pi pi-fw {{item.icon}} primary-color\" \r\n style=\"font-size: 16px; position: relative;\"\r\n >\r\n <span *ngIf=\"item.showNotificationBadge && unreadNotificationsCount != 0\" class=\"badge\"></span>\r\n </i>\r\n <div style=\"font-size: 15px;\"> {{item.label}} </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"this.currentUser == null\">\r\n <spiderly-button [label]=\"t('Login')\" icon=\"pi pi-sign-in\" [routerLink]=\"this.config.loginSlug\"></spiderly-button>\r\n </div>\r\n</ng-container>" }]
|
|
4084
|
+
}], ctorParameters: () => [{ type: LayoutBaseService }, { type: AuthBaseService }, { type: i3.Router }, { type: i1$2.TranslocoService }, { type: ConfigBaseService }], propDecorators: { isSideMenuLayout: [{
|
|
4085
|
+
type: Input
|
|
3935
4086
|
}], menu: [{
|
|
3936
4087
|
type: ViewChild,
|
|
3937
4088
|
args: ['topbarmenu']
|
|
@@ -3940,19 +4091,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImpo
|
|
|
3940
4091
|
args: ['topbarprofiledropdownmenubutton']
|
|
3941
4092
|
}] } });
|
|
3942
4093
|
|
|
3943
|
-
class
|
|
4094
|
+
class SideMenuTopBarComponent {
|
|
4095
|
+
constructor(layoutService, router, config, translocoService) {
|
|
4096
|
+
this.layoutService = layoutService;
|
|
4097
|
+
this.router = router;
|
|
4098
|
+
this.config = config;
|
|
4099
|
+
this.translocoService = translocoService;
|
|
4100
|
+
this.companyName = this.config.companyName;
|
|
4101
|
+
}
|
|
4102
|
+
async ngOnInit() {
|
|
4103
|
+
this.router.events
|
|
4104
|
+
.pipe(filter$1(event => event instanceof NavigationEnd))
|
|
4105
|
+
.subscribe((event) => {
|
|
4106
|
+
this.layoutService.state.profileDropdownSidebarVisible = false;
|
|
4107
|
+
});
|
|
4108
|
+
}
|
|
4109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SideMenuTopBarComponent, deps: [{ token: LayoutBaseService }, { token: i3.Router }, { token: ConfigBaseService }, { token: i1$2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SideMenuTopBarComponent, isStandalone: true, selector: "spiderly-sidemenu-topbar", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menubutton"], descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\r\n <a class=\"layout-topbar-logo\" routerLink=\"/\">\r\n <span>{{companyName?.toLocaleUpperCase()}}</span>\r\n </a>\r\n\r\n <button\r\n #menubutton\r\n class=\"p-link layout-menu-button layout-topbar-button\"\r\n (click)=\"layoutService.onMenuToggle()\"\r\n >\r\n <i class=\"pi pi-bars\"></i>\r\n </button>\r\n\r\n <div class=\"profile-button\">\r\n <spiderly-profile-avatar\r\n ></spiderly-profile-avatar>\r\n </div>\r\n\r\n</div>\r\n ", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: ProfileAvatarComponent, selector: "spiderly-profile-avatar", inputs: ["isSideMenuLayout"] }] }); }
|
|
4111
|
+
}
|
|
4112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SideMenuTopBarComponent, decorators: [{
|
|
4113
|
+
type: Component,
|
|
4114
|
+
args: [{ selector: 'spiderly-sidemenu-topbar', imports: [
|
|
4115
|
+
CommonModule,
|
|
4116
|
+
RouterModule,
|
|
4117
|
+
AvatarModule,
|
|
4118
|
+
BadgeModule,
|
|
4119
|
+
ProfileAvatarComponent,
|
|
4120
|
+
], template: "<div class=\"layout-topbar\">\r\n <a class=\"layout-topbar-logo\" routerLink=\"/\">\r\n <span>{{companyName?.toLocaleUpperCase()}}</span>\r\n </a>\r\n\r\n <button\r\n #menubutton\r\n class=\"p-link layout-menu-button layout-topbar-button\"\r\n (click)=\"layoutService.onMenuToggle()\"\r\n >\r\n <i class=\"pi pi-bars\"></i>\r\n </button>\r\n\r\n <div class=\"profile-button\">\r\n <spiderly-profile-avatar\r\n ></spiderly-profile-avatar>\r\n </div>\r\n\r\n</div>\r\n " }]
|
|
4121
|
+
}], ctorParameters: () => [{ type: LayoutBaseService }, { type: i3.Router }, { type: ConfigBaseService }, { type: i1$2.TranslocoService }], propDecorators: { menuButton: [{
|
|
4122
|
+
type: ViewChild,
|
|
4123
|
+
args: ['menubutton']
|
|
4124
|
+
}] } });
|
|
4125
|
+
|
|
4126
|
+
class TopBarComponent {
|
|
4127
|
+
constructor(config) {
|
|
4128
|
+
this.config = config;
|
|
4129
|
+
this.companyName = this.config.companyName;
|
|
4130
|
+
this.logoPath = this.config.logoPath;
|
|
4131
|
+
this.isSideMenuActive = false;
|
|
4132
|
+
}
|
|
4133
|
+
ngOnInit() {
|
|
4134
|
+
}
|
|
4135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: TopBarComponent, deps: [{ token: ConfigBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: TopBarComponent, isStandalone: true, selector: "spiderly-topbar", inputs: { menu: "menu" }, ngImport: i0, template: "<div class=\"topbar-wrapper\">\r\n <nav class=\"topbar\">\r\n <p-menubar [model]=\"menu\" [style]=\"{ border: '0' }\">\r\n <ng-template #start>\r\n <img style=\"margin-left: 11px; cursor: pointer;\" width=\"45\" height=\"45\" routerLink=\"/\" [src]=\"logoPath\" alt=\"Logo\">\r\n </ng-template>\r\n <ng-template #end>\r\n <div style=\"margin-right: 11px; display: flex; gap: 10px; align-items: center; position: relative;\">\r\n <div>\r\n <ng-content select=\"[ACTIONS]\"></ng-content>\r\n </div>\r\n <spiderly-profile-avatar [isSideMenuLayout]=\"false\"></spiderly-profile-avatar>\r\n </div>\r\n </ng-template>\r\n </p-menubar>\r\n </nav>\r\n</div>", styles: [".topbar-wrapper{background-color:var(--p-content-background);width:100%;border-bottom:1px solid var(--p-content-border-color);box-shadow:0 4px 6px #0000001a;position:sticky;top:0;left:0;z-index:1000}.topbar{max-width:1100px;margin:auto}::ng-deep .p-menubar-item-link{padding:10px!important;font-size:15px!important}::ng-deep .p-menubar-item-link .pi{font-size:15px}::ng-deep .p-menubar-button{width:35px!important;height:35px!important}::ng-deep .p-menubar-button .p-icon{width:16px;height:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MenubarModule }, { kind: "component", type: i3$5.Menubar, selector: "p-menubar", inputs: ["model", "style", "styleClass", "autoZIndex", "baseZIndex", "autoDisplay", "autoHide", "breakpoint", "autoHideDelay", "id", "ariaLabel", "ariaLabelledBy"], outputs: ["onFocus", "onBlur"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: ProfileAvatarComponent, selector: "spiderly-profile-avatar", inputs: ["isSideMenuLayout"] }] }); }
|
|
4137
|
+
}
|
|
4138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: TopBarComponent, decorators: [{
|
|
4139
|
+
type: Component,
|
|
4140
|
+
args: [{ selector: 'spiderly-topbar', imports: [
|
|
4141
|
+
CommonModule,
|
|
4142
|
+
RouterModule,
|
|
4143
|
+
MenubarModule,
|
|
4144
|
+
AvatarModule,
|
|
4145
|
+
ProfileAvatarComponent,
|
|
4146
|
+
], template: "<div class=\"topbar-wrapper\">\r\n <nav class=\"topbar\">\r\n <p-menubar [model]=\"menu\" [style]=\"{ border: '0' }\">\r\n <ng-template #start>\r\n <img style=\"margin-left: 11px; cursor: pointer;\" width=\"45\" height=\"45\" routerLink=\"/\" [src]=\"logoPath\" alt=\"Logo\">\r\n </ng-template>\r\n <ng-template #end>\r\n <div style=\"margin-right: 11px; display: flex; gap: 10px; align-items: center; position: relative;\">\r\n <div>\r\n <ng-content select=\"[ACTIONS]\"></ng-content>\r\n </div>\r\n <spiderly-profile-avatar [isSideMenuLayout]=\"false\"></spiderly-profile-avatar>\r\n </div>\r\n </ng-template>\r\n </p-menubar>\r\n </nav>\r\n</div>", styles: [".topbar-wrapper{background-color:var(--p-content-background);width:100%;border-bottom:1px solid var(--p-content-border-color);box-shadow:0 4px 6px #0000001a;position:sticky;top:0;left:0;z-index:1000}.topbar{max-width:1100px;margin:auto}::ng-deep .p-menubar-item-link{padding:10px!important;font-size:15px!important}::ng-deep .p-menubar-item-link .pi{font-size:15px}::ng-deep .p-menubar-button{width:35px!important;height:35px!important}::ng-deep .p-menubar-button .p-icon{width:16px;height:16px}\n"] }]
|
|
4147
|
+
}], ctorParameters: () => [{ type: ConfigBaseService }], propDecorators: { menu: [{
|
|
4148
|
+
type: Input
|
|
4149
|
+
}] } });
|
|
4150
|
+
|
|
4151
|
+
class SpiderlyLayoutComponent {
|
|
3944
4152
|
constructor(layoutService, renderer, router) {
|
|
3945
4153
|
this.layoutService = layoutService;
|
|
3946
4154
|
this.renderer = renderer;
|
|
3947
4155
|
this.router = router;
|
|
4156
|
+
this.menu = [];
|
|
4157
|
+
this.sideMenu = [];
|
|
4158
|
+
this.topMenu = [];
|
|
4159
|
+
this.isSideMenuLayout = true;
|
|
3948
4160
|
this.onAfterNgDestroy = () => { };
|
|
3949
4161
|
this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {
|
|
3950
4162
|
if (!this.menuOutsideClickListener) {
|
|
3951
4163
|
this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {
|
|
3952
|
-
const isOutsideClicked = !(this.appSidebar
|
|
3953
|
-
this.appSidebar
|
|
3954
|
-
this.
|
|
3955
|
-
this.
|
|
4164
|
+
const isOutsideClicked = !(this.appSidebar?.el.nativeElement.isSameNode(event.target) ||
|
|
4165
|
+
this.appSidebar?.el.nativeElement.contains(event.target) ||
|
|
4166
|
+
this.sidemenuTopbar?.menuButton?.nativeElement.isSameNode(event.target) ||
|
|
4167
|
+
this.sidemenuTopbar?.menuButton?.nativeElement.contains(event.target) ||
|
|
3956
4168
|
(event.target.closest('.p-autocomplete-items')) ||
|
|
3957
4169
|
(event.target.closest('.p-autocomplete-clear-icon')));
|
|
3958
4170
|
if (isOutsideClicked) {
|
|
@@ -3962,8 +4174,8 @@ class LayoutBaseComponent {
|
|
|
3962
4174
|
}
|
|
3963
4175
|
if (!this.profileMenuOutsideClickListener) {
|
|
3964
4176
|
this.profileMenuOutsideClickListener = this.renderer.listen('document', 'click', event => {
|
|
3965
|
-
const isOutsideClicked = !(this.
|
|
3966
|
-
this.
|
|
4177
|
+
const isOutsideClicked = !(this.topbarmenu?.nativeElement.isSameNode(event.target) ||
|
|
4178
|
+
this.topbarmenu?.nativeElement.contains(event.target));
|
|
3967
4179
|
if (isOutsideClicked) {
|
|
3968
4180
|
this.hideProfileMenu();
|
|
3969
4181
|
}
|
|
@@ -3979,6 +4191,14 @@ class LayoutBaseComponent {
|
|
|
3979
4191
|
this.hideProfileMenu();
|
|
3980
4192
|
});
|
|
3981
4193
|
}
|
|
4194
|
+
ngOnInit() {
|
|
4195
|
+
if (this.isSideMenuLayout) {
|
|
4196
|
+
this.sideMenu = [...this.menu];
|
|
4197
|
+
}
|
|
4198
|
+
else {
|
|
4199
|
+
this.topMenu = [...this.menu[0].items];
|
|
4200
|
+
}
|
|
4201
|
+
}
|
|
3982
4202
|
hideMenu() {
|
|
3983
4203
|
this.layoutService.state.overlayMenuActive = false;
|
|
3984
4204
|
this.layoutService.state.staticMenuMobileActive = false;
|
|
@@ -4035,22 +4255,32 @@ class LayoutBaseComponent {
|
|
|
4035
4255
|
}
|
|
4036
4256
|
this.onAfterNgDestroy();
|
|
4037
4257
|
}
|
|
4038
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type:
|
|
4039
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type:
|
|
4258
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyLayoutComponent, deps: [{ token: LayoutBaseService }, { token: i0.Renderer2 }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4259
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyLayoutComponent, isStandalone: true, selector: "spiderly-layout", inputs: { menu: "menu", isSideMenuLayout: "isSideMenuLayout" }, viewQueries: [{ propertyName: "appSidebar", first: true, predicate: AppSidebarComponent, descendants: true }, { propertyName: "sidemenuTopbar", first: true, predicate: SideMenuTopBarComponent, descendants: true }, { propertyName: "topbarmenu", first: true, predicate: ["topbarmenu"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"isSideMenuLayout\" class=\"layout-wrapper\" [ngClass]=\"containerClass\">\r\n <spiderly-sidemenu-topbar></spiderly-sidemenu-topbar>\r\n <div class=\"layout-sidebar\">\r\n <sidebar [menu]=\"sideMenu\"></sidebar>\r\n </div>\r\n <div class=\"layout-main-container\">\r\n <div class=\"layout-main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <footer></footer>\r\n </div>\r\n <div class=\"layout-mask\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"isSideMenuLayout === false\">\r\n <spiderly-topbar [menu]=\"topMenu\">\r\n <ng-content ACTIONS select=\"[ACTIONS]\"></ng-content>\r\n </spiderly-topbar>\r\n <main style=\"max-width: 1100px; margin: auto; padding: 18px;\">\r\n <router-outlet></router-outlet>\r\n </main>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AppSidebarComponent, selector: "sidebar", inputs: ["menu"] }, { kind: "component", type: FooterComponent, selector: "footer" }, { kind: "component", type: SideMenuTopBarComponent, selector: "spiderly-sidemenu-topbar" }, { kind: "component", type: TopBarComponent, selector: "spiderly-topbar", inputs: ["menu"] }] }); }
|
|
4040
4260
|
}
|
|
4041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type:
|
|
4261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyLayoutComponent, decorators: [{
|
|
4042
4262
|
type: Component,
|
|
4043
|
-
args: [{
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4263
|
+
args: [{ selector: 'spiderly-layout', imports: [
|
|
4264
|
+
CommonModule,
|
|
4265
|
+
RouterModule,
|
|
4266
|
+
AppSidebarComponent,
|
|
4267
|
+
FooterComponent,
|
|
4268
|
+
SideMenuTopBarComponent,
|
|
4269
|
+
TopBarComponent,
|
|
4270
|
+
], template: "<div *ngIf=\"isSideMenuLayout\" class=\"layout-wrapper\" [ngClass]=\"containerClass\">\r\n <spiderly-sidemenu-topbar></spiderly-sidemenu-topbar>\r\n <div class=\"layout-sidebar\">\r\n <sidebar [menu]=\"sideMenu\"></sidebar>\r\n </div>\r\n <div class=\"layout-main-container\">\r\n <div class=\"layout-main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <footer></footer>\r\n </div>\r\n <div class=\"layout-mask\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"isSideMenuLayout === false\">\r\n <spiderly-topbar [menu]=\"topMenu\">\r\n <ng-content ACTIONS select=\"[ACTIONS]\"></ng-content>\r\n </spiderly-topbar>\r\n <main style=\"max-width: 1100px; margin: auto; padding: 18px;\">\r\n <router-outlet></router-outlet>\r\n </main>\r\n</div>" }]
|
|
4271
|
+
}], ctorParameters: () => [{ type: LayoutBaseService }, { type: i0.Renderer2 }, { type: i3.Router }], propDecorators: { menu: [{
|
|
4272
|
+
type: Input
|
|
4273
|
+
}], isSideMenuLayout: [{
|
|
4274
|
+
type: Input
|
|
4275
|
+
}], appSidebar: [{
|
|
4049
4276
|
type: ViewChild,
|
|
4050
4277
|
args: [AppSidebarComponent]
|
|
4051
|
-
}],
|
|
4278
|
+
}], sidemenuTopbar: [{
|
|
4279
|
+
type: ViewChild,
|
|
4280
|
+
args: [SideMenuTopBarComponent]
|
|
4281
|
+
}], topbarmenu: [{
|
|
4052
4282
|
type: ViewChild,
|
|
4053
|
-
args: [
|
|
4283
|
+
args: ['topbarmenu']
|
|
4054
4284
|
}] } });
|
|
4055
4285
|
|
|
4056
4286
|
// FT HACK: Fake class, because of api imports
|
|
@@ -4370,6 +4600,22 @@ const unauthorizedInterceptor = (req, next) => {
|
|
|
4370
4600
|
}));
|
|
4371
4601
|
};
|
|
4372
4602
|
|
|
4603
|
+
class SpiderlyTemplateTypeDirective {
|
|
4604
|
+
static ngTemplateContextGuard(dir, ctx) {
|
|
4605
|
+
return true;
|
|
4606
|
+
}
|
|
4607
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyTemplateTypeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4608
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.13", type: SpiderlyTemplateTypeDirective, isStandalone: true, selector: "[templateType]", inputs: { templateType: "templateType" }, ngImport: i0 }); }
|
|
4609
|
+
}
|
|
4610
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: SpiderlyTemplateTypeDirective, decorators: [{
|
|
4611
|
+
type: Directive,
|
|
4612
|
+
args: [{
|
|
4613
|
+
selector: '[templateType]',
|
|
4614
|
+
}]
|
|
4615
|
+
}], propDecorators: { templateType: [{
|
|
4616
|
+
type: Input
|
|
4617
|
+
}] } });
|
|
4618
|
+
|
|
4373
4619
|
/*
|
|
4374
4620
|
* Public API Surface of spiderly
|
|
4375
4621
|
*/
|
|
@@ -4378,5 +4624,5 @@ const unauthorizedInterceptor = (req, next) => {
|
|
|
4378
4624
|
* Generated bundle index. Do not edit.
|
|
4379
4625
|
*/
|
|
4380
4626
|
|
|
4381
|
-
export { Action, AllClickEvent, ApiSecurityService, AppSidebarComponent,
|
|
4627
|
+
export { Action, AllClickEvent, ApiSecurityService, AppSidebarComponent, AuthBaseService, AuthGuard, AuthResult, BaseAutocompleteControl, BaseControl, BaseDropdownControl, BaseEntity, BaseFormCopy, BaseFormService, CardSkeletonComponent, Codebook, Column, ConfigBaseService, ExternalProvider, FooterComponent, GoogleButtonComponent, IndexCardComponent, InfoCardComponent, InitCompanyAuthDialogDetails, InitTopBarData, IsAuthorizedForSaveEvent, JwtAuthResult, LastMenuIconIndexClicked, LayoutBaseService, LazyLoadSelectedIdsResult, Login, LoginComponent, LoginVerificationComponent, LoginVerificationResultStatusCodes, LoginVerificationToken, MatchModeCodes, MenuChangeEvent, MenuitemComponent, MimeTypes, Namebook, NotAuthGuard, NotFoundComponent, PanelBodyComponent, PanelFooterComponent, PanelHeaderComponent, Permission, PermissionSaveBody, PrimengOption, RefreshToken, RefreshTokenRequest, Registration, RegistrationComponent, RegistrationVerificationComponent, RegistrationVerificationResult, RegistrationVerificationResultStatusCodes, RegistrationVerificationToken, RequiredComponent, Role, RoleBaseDetailsComponent, RoleMainUIForm, RolePermission, RolePermissionSaveBody, RoleSaveBody, RowClickEvent, SecurityPermissionCodes, SideMenuTopBarComponent, SidebarMenuComponent, SimpleSaveResult, SpiderlyAutocompleteComponent, SpiderlyButton, SpiderlyButtonBaseComponent, SpiderlyButtonComponent, SpiderlyCalendarComponent, SpiderlyCardComponent, SpiderlyCheckboxComponent, SpiderlyColorpickComponent, SpiderlyControlsModule, SpiderlyDataTableComponent, SpiderlyDataViewComponent, SpiderlyDeleteConfirmationComponent, SpiderlyDropdownComponent, SpiderlyEditorComponent, SpiderlyErrorHandler, SpiderlyFileComponent, SpiderlyFileSelectEvent, SpiderlyFormArray, SpiderlyFormControl, SpiderlyFormGroup, SpiderlyLayoutComponent, SpiderlyMessageService, SpiderlyMultiAutocompleteComponent, SpiderlyMultiSelectComponent, SpiderlyNumberComponent, SpiderlyPanelComponent, SpiderlyPanelsModule, SpiderlyPasswordComponent, SpiderlyReturnButtonComponent, SpiderlySplitButtonComponent, SpiderlyTab, SpiderlyTemplateTypeDirective, SpiderlyTextareaComponent, SpiderlyTextboxComponent, SpiderlyTranslocoFallbackStrategy, SpiderlyTranslocoLoader, SpiderlyTranslocoMissingHandler, SpiderlyTranslocoModule, TableFilter, TableFilterContext, TableFilterSortMeta, TableResponse, TopBarComponent, TranslateLabelsAbstractService, User, UserRole, UserRoleSaveBody, ValidatorAbstractService, VerificationTokenRequest, VerificationTypeCodes, VerificationWrapperComponent, adjustColor, authInitializer, capitalizeFirstLetter, deleteAction, exportListToExcel, getControl, getFileNameFromContentDisposition, getHtmlImgDisplayString64, getMimeTypeForFileName, getMonth, getParentUrl, getPrimengAutocompleteCodebookOptions, getPrimengAutocompleteNamebookOptions, getPrimengDropdownCodebookOptions, getPrimengDropdownNamebookOptions, httpLoadingInterceptor, isExcelFileType, isImageFileType, isNullOrEmpty, jsonHttpInterceptor, jwtInterceptor, nameOf, nameof, provideSpiderlyCore, provideSpiderlyTransloco, pushAction, selectedTab, singleOrDefault, toCommaSeparatedString, unauthorizedInterceptor, validatePrecisionScale };
|
|
4382
4628
|
//# sourceMappingURL=spiderly.mjs.map
|