@ngx-smz/core 21.1.2 → 21.1.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/ngx-smz-core.mjs +353 -837
- package/fesm2022/ngx-smz-core.mjs.map +1 -1
- package/package.json +1 -5
- package/resources/assets/images/asset-access.svg +46 -0
- package/resources/assets/images/asset-error.svg +74 -0
- package/resources/assets/scss/dialogs/smz-general-styles.scss +1 -1
- package/types/ngx-smz-core.d.ts +132 -185
- package/fesm2022/ngx-smz-core-src-lib-modules-prime-overlaypanel.mjs +0 -413
- package/fesm2022/ngx-smz-core-src-lib-modules-prime-overlaypanel.mjs.map +0 -1
- package/types/ngx-smz-core-src-lib-modules-prime-overlaypanel.d.ts +0 -80
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, Injectable, InjectionToken, provideAppInitializer, inject, makeEnvironmentProviders, computed, Pipe, Input, Component, DestroyRef, EventEmitter, HostListener, Output, HostBinding, Directive, ChangeDetectionStrategy, ViewEncapsulation, Optional, NgModule, ViewChild,
|
|
2
|
+
import { signal, Injectable, InjectionToken, provideAppInitializer, inject, makeEnvironmentProviders, computed, Pipe, Input, Component, DestroyRef, EventEmitter, HostListener, Output, HostBinding, Directive, ChangeDetectionStrategy, ViewEncapsulation, Optional, NgModule, ViewChild, ElementRef, Renderer2, forwardRef, Inject, ChangeDetectorRef, LOCALE_ID, ContentChildren, Self, ErrorHandler, DEFAULT_CURRENCY_CODE, DOCUMENT, PLATFORM_ID } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/common';
|
|
4
4
|
import { CommonModule, getCurrencySymbol, getLocaleCurrencyCode, NgStyle, LocationStrategy, registerLocaleData, isPlatformBrowser as isPlatformBrowser$1, formatDate } from '@angular/common';
|
|
5
5
|
import * as i1$3 from '@angular/forms';
|
|
@@ -21,7 +21,7 @@ import { ObjectUtils, ZIndexUtils, UniqueComponentId } from 'primeng/utils';
|
|
|
21
21
|
import * as i1$8 from '@angular/common/http';
|
|
22
22
|
import { HttpClient, provideHttpClient, withInterceptorsFromDi, HttpErrorResponse, HttpHeaders, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
23
23
|
import { cloneDeep, uniqBy, flatten as flatten$1, sortBy, isBoolean as isBoolean$1, isEmpty as isEmpty$2, isEqual } from 'lodash-es';
|
|
24
|
-
import { BehaviorSubject, firstValueFrom, debounceTime, tap, of, take as take$1, Subject, throwError, map as map$1, throttleTime, switchMap, Observable, takeUntil as takeUntil$2, merge, filter as filter$1 } from 'rxjs';
|
|
24
|
+
import { Subscription, BehaviorSubject, firstValueFrom, debounceTime, tap, of, take as take$1, Subject, throwError, map as map$1, throttleTime, switchMap, Observable, takeUntil as takeUntil$2, merge, filter as filter$1 } from 'rxjs';
|
|
25
25
|
import * as i1$2 from 'primeng/datepicker';
|
|
26
26
|
import { DatePickerModule } from 'primeng/datepicker';
|
|
27
27
|
import * as i1 from 'primeng/tooltip';
|
|
@@ -65,25 +65,24 @@ import * as i3$5 from 'primeng/multiselect';
|
|
|
65
65
|
import { MultiSelectModule } from 'primeng/multiselect';
|
|
66
66
|
import * as i4$3 from 'primeng/radiobutton';
|
|
67
67
|
import { RadioButtonModule } from 'primeng/radiobutton';
|
|
68
|
-
import * as i3$6 from 'primeng/ripple';
|
|
69
|
-
import { RippleModule } from 'primeng/ripple';
|
|
70
|
-
import { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';
|
|
71
|
-
import * as i5$1 from 'primeng/config';
|
|
72
|
-
import { PrimeNG } from 'primeng/config';
|
|
73
68
|
import { FileUploadModule } from 'primeng/fileupload';
|
|
74
69
|
import moment from 'moment';
|
|
75
70
|
import * as i2$5 from 'primeng/dynamicdialog';
|
|
76
71
|
import { DialogService as DialogService$1 } from 'primeng/dynamicdialog';
|
|
77
72
|
import { animation, style, animate, trigger, transition, useAnimation } from '@angular/animations';
|
|
73
|
+
import { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';
|
|
74
|
+
import * as i5$1 from 'primeng/config';
|
|
75
|
+
import { PrimeNG } from 'primeng/config';
|
|
78
76
|
import * as i3$9 from 'primeng/progressbar';
|
|
79
77
|
import { ProgressBarModule } from 'primeng/progressbar';
|
|
80
78
|
import cloneDeep$1 from 'lodash-es/cloneDeep';
|
|
81
79
|
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
82
|
-
import { cloneDeep as cloneDeep$2 } from 'lodash';
|
|
83
80
|
import * as i19 from 'primeng/skeleton';
|
|
84
81
|
import { SkeletonModule } from 'primeng/skeleton';
|
|
85
82
|
import * as i1$9 from '@angular/router';
|
|
86
83
|
import { RouterModule, NavigationEnd, RouteReuseStrategy, Router, RouteConfigLoadStart, RouteConfigLoadEnd } from '@angular/router';
|
|
84
|
+
import * as i3$6 from 'primeng/ripple';
|
|
85
|
+
import { RippleModule } from 'primeng/ripple';
|
|
87
86
|
import { Navigate, RouterState } from '@ngxs/router-plugin';
|
|
88
87
|
import * as i25 from 'primeng/togglebutton';
|
|
89
88
|
import { ToggleButtonModule } from 'primeng/togglebutton';
|
|
@@ -107,8 +106,6 @@ import sortBy$1 from 'lodash-es/sortBy';
|
|
|
107
106
|
import flatten$2 from 'lodash-es/flatten';
|
|
108
107
|
import * as i4$5 from 'primeng/picklist';
|
|
109
108
|
import { PickListModule } from 'primeng/picklist';
|
|
110
|
-
import forIn from 'lodash-es/forIn';
|
|
111
|
-
import startsWith from 'lodash-es/startsWith';
|
|
112
109
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
113
110
|
import localePt from '@angular/common/locales/pt';
|
|
114
111
|
import 'moment/locale/pt-br';
|
|
@@ -121,16 +118,16 @@ import * as i2$6 from 'primeng/dock';
|
|
|
121
118
|
import { DockModule } from 'primeng/dock';
|
|
122
119
|
import * as i2$7 from 'primeng/blockui';
|
|
123
120
|
import { BlockUIModule } from 'primeng/blockui';
|
|
121
|
+
import * as i11 from 'primeng/toast';
|
|
122
|
+
import { ToastModule } from 'primeng/toast';
|
|
124
123
|
import * as i3$8 from 'primeng/drawer';
|
|
125
124
|
import { DrawerModule } from 'primeng/drawer';
|
|
126
125
|
import * as i9 from 'primeng/tree';
|
|
127
126
|
import { Tree, TreeModule } from 'primeng/tree';
|
|
128
127
|
import * as i8$1 from 'primeng/contextmenu';
|
|
129
128
|
import { ContextMenuModule } from 'primeng/contextmenu';
|
|
130
|
-
import * as i11 from 'primeng/menu';
|
|
129
|
+
import * as i11$1 from 'primeng/menu';
|
|
131
130
|
import { MenuModule } from 'primeng/menu';
|
|
132
|
-
import * as i1$b from 'primeng/toast';
|
|
133
|
-
import { ToastModule } from 'primeng/toast';
|
|
134
131
|
import * as i2$9 from 'primeng/dataview';
|
|
135
132
|
import { DataView, DataViewModule } from 'primeng/dataview';
|
|
136
133
|
import * as i5$2 from 'primeng/timeline';
|
|
@@ -1978,6 +1975,7 @@ class SmzFormViewdata {
|
|
|
1978
1975
|
form;
|
|
1979
1976
|
manager;
|
|
1980
1977
|
cdf;
|
|
1978
|
+
validationMessagesService;
|
|
1981
1979
|
isValid = false;
|
|
1982
1980
|
isCustomValidationValid = true;
|
|
1983
1981
|
// Is the data different from the original state?
|
|
@@ -1991,11 +1989,12 @@ class SmzFormViewdata {
|
|
|
1991
1989
|
_hasChangesFromLastKnownState = false;
|
|
1992
1990
|
previousState = '';
|
|
1993
1991
|
cachedResponse = null;
|
|
1994
|
-
constructor(config, form, manager, cdf) {
|
|
1992
|
+
constructor(config, form, manager, cdf, validationMessagesService) {
|
|
1995
1993
|
this.config = config;
|
|
1996
1994
|
this.form = form;
|
|
1997
1995
|
this.manager = manager;
|
|
1998
1996
|
this.cdf = cdf;
|
|
1997
|
+
this.validationMessagesService = validationMessagesService;
|
|
1999
1998
|
}
|
|
2000
1999
|
/** Retorna o objeto com os valores dos inputs; Esse objeto seguirá a nomemclatura do campo name de cada inputConfig */
|
|
2001
2000
|
getData() {
|
|
@@ -2004,7 +2003,12 @@ class SmzFormViewdata {
|
|
|
2004
2003
|
console.log('-------- getData ---------');
|
|
2005
2004
|
}
|
|
2006
2005
|
const data = {};
|
|
2007
|
-
const response = {
|
|
2006
|
+
const response = {
|
|
2007
|
+
data,
|
|
2008
|
+
isValid: true,
|
|
2009
|
+
hasUnsavedChanges: false,
|
|
2010
|
+
validationMessagesByField: {}
|
|
2011
|
+
};
|
|
2008
2012
|
const formFlattenResponse = this.config.behaviors?.flattenResponse ?? false;
|
|
2009
2013
|
for (const group of this.config.groups) {
|
|
2010
2014
|
for (const input of group.children) {
|
|
@@ -2068,8 +2072,10 @@ class SmzFormViewdata {
|
|
|
2068
2072
|
}
|
|
2069
2073
|
// console.log('response.isValid', response.isValid);
|
|
2070
2074
|
this.isValid = response.isValid;
|
|
2075
|
+
const validationMessagesByField = this.validationMessagesService.getMessagesByPropertyName();
|
|
2076
|
+
const finalResponse = { ...response, validationMessagesByField };
|
|
2071
2077
|
// console.log('Final isValid', this.isValid);
|
|
2072
|
-
this.cachedResponse =
|
|
2078
|
+
this.cachedResponse = finalResponse;
|
|
2073
2079
|
return this.cachedResponse;
|
|
2074
2080
|
}
|
|
2075
2081
|
/** Atualiza os valores dos inputs com seus dados default */
|
|
@@ -2168,6 +2174,93 @@ class SmzFormViewdata {
|
|
|
2168
2174
|
}
|
|
2169
2175
|
}
|
|
2170
2176
|
|
|
2177
|
+
class SmzFormValidationMessagesService {
|
|
2178
|
+
form = null;
|
|
2179
|
+
subscriptions = new Subscription();
|
|
2180
|
+
controlToPropertyName = new WeakMap();
|
|
2181
|
+
validationMessagesByPropertyName = new Map();
|
|
2182
|
+
messagesByPropertyNameSignal = signal({}, ...(ngDevMode ? [{ debugName: "messagesByPropertyNameSignal" }] : []));
|
|
2183
|
+
controlMessagesSignals = new WeakMap();
|
|
2184
|
+
messagesByPropertyName = this.messagesByPropertyNameSignal.asReadonly();
|
|
2185
|
+
initialize(config, form) {
|
|
2186
|
+
this.resetState();
|
|
2187
|
+
this.form = form;
|
|
2188
|
+
for (const group of config.groups) {
|
|
2189
|
+
for (const input of group.children) {
|
|
2190
|
+
const control = this.form.controls[input.propertyName];
|
|
2191
|
+
if (control == null) {
|
|
2192
|
+
continue;
|
|
2193
|
+
}
|
|
2194
|
+
this.controlToPropertyName.set(control, input.propertyName);
|
|
2195
|
+
this.validationMessagesByPropertyName.set(input.propertyName, input.advancedSettings?.validationMessages ?? []);
|
|
2196
|
+
}
|
|
2197
|
+
}
|
|
2198
|
+
this.refreshAllMessages();
|
|
2199
|
+
this.subscriptions.add(this.form.statusChanges.subscribe(() => {
|
|
2200
|
+
this.refreshAllMessages();
|
|
2201
|
+
}));
|
|
2202
|
+
}
|
|
2203
|
+
getMessagesSignalByControl(control) {
|
|
2204
|
+
if (control == null) {
|
|
2205
|
+
return computed(() => []);
|
|
2206
|
+
}
|
|
2207
|
+
const cachedSignal = this.controlMessagesSignals.get(control);
|
|
2208
|
+
if (cachedSignal != null) {
|
|
2209
|
+
return cachedSignal;
|
|
2210
|
+
}
|
|
2211
|
+
const controlMessagesSignal = computed(() => {
|
|
2212
|
+
const propertyName = this.controlToPropertyName.get(control);
|
|
2213
|
+
if (propertyName == null) {
|
|
2214
|
+
return [];
|
|
2215
|
+
}
|
|
2216
|
+
return this.messagesByPropertyNameSignal()[propertyName] ?? [];
|
|
2217
|
+
}, ...(ngDevMode ? [{ debugName: "controlMessagesSignal" }] : []));
|
|
2218
|
+
this.controlMessagesSignals.set(control, controlMessagesSignal);
|
|
2219
|
+
return controlMessagesSignal;
|
|
2220
|
+
}
|
|
2221
|
+
getMessagesByPropertyName() {
|
|
2222
|
+
return this.messagesByPropertyNameSignal();
|
|
2223
|
+
}
|
|
2224
|
+
refreshAllMessages() {
|
|
2225
|
+
const nextMessagesByPropertyName = {};
|
|
2226
|
+
this.validationMessagesByPropertyName.forEach((validationMessages, propertyName) => {
|
|
2227
|
+
const control = this.form.controls[propertyName];
|
|
2228
|
+
if (control != null) {
|
|
2229
|
+
nextMessagesByPropertyName[propertyName] = this.resolveValidationMessages(control.errors, validationMessages);
|
|
2230
|
+
}
|
|
2231
|
+
});
|
|
2232
|
+
this.messagesByPropertyNameSignal.set(nextMessagesByPropertyName);
|
|
2233
|
+
}
|
|
2234
|
+
resolveValidationMessages(errors, messages) {
|
|
2235
|
+
if (errors == null) {
|
|
2236
|
+
return [];
|
|
2237
|
+
}
|
|
2238
|
+
const resolvedMessages = [];
|
|
2239
|
+
for (const errorType of Object.keys(errors)) {
|
|
2240
|
+
const matchedMessage = messages.find(message => message.type === errorType);
|
|
2241
|
+
if (matchedMessage != null) {
|
|
2242
|
+
resolvedMessages.push(matchedMessage.message);
|
|
2243
|
+
}
|
|
2244
|
+
else {
|
|
2245
|
+
resolvedMessages.push(`Erro desconhecido: ${errorType}`);
|
|
2246
|
+
}
|
|
2247
|
+
}
|
|
2248
|
+
return resolvedMessages;
|
|
2249
|
+
}
|
|
2250
|
+
resetState() {
|
|
2251
|
+
this.subscriptions.unsubscribe();
|
|
2252
|
+
this.subscriptions = new Subscription();
|
|
2253
|
+
this.validationMessagesByPropertyName.clear();
|
|
2254
|
+
this.messagesByPropertyNameSignal.set({});
|
|
2255
|
+
this.form = null;
|
|
2256
|
+
}
|
|
2257
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzFormValidationMessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2258
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzFormValidationMessagesService });
|
|
2259
|
+
}
|
|
2260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzFormValidationMessagesService, decorators: [{
|
|
2261
|
+
type: Injectable
|
|
2262
|
+
}] });
|
|
2263
|
+
|
|
2171
2264
|
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-console, no-underscore-dangle, eqeqeq, max-len */
|
|
2172
2265
|
class SmzFormsDropdownService {
|
|
2173
2266
|
dependsOn;
|
|
@@ -2756,52 +2849,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
2756
2849
|
type: Injectable
|
|
2757
2850
|
}] });
|
|
2758
2851
|
|
|
2759
|
-
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-useless-escape, max-len, @typescript-eslint/no-useless-constructor */
|
|
2760
|
-
let ValidationMessagesPipe$1 = class ValidationMessagesPipe {
|
|
2761
|
-
constructor() {
|
|
2762
|
-
}
|
|
2763
|
-
transform(errors, messages) {
|
|
2764
|
-
if (errors == null)
|
|
2765
|
-
return [];
|
|
2766
|
-
const result = [];
|
|
2767
|
-
for (const error of Object.keys(errors)) {
|
|
2768
|
-
const match = messages.find(x => x.type === error);
|
|
2769
|
-
if (match != null) {
|
|
2770
|
-
result.push(match.message);
|
|
2771
|
-
}
|
|
2772
|
-
else {
|
|
2773
|
-
result.push(`Erro desconhecido: ${error}`);
|
|
2774
|
-
}
|
|
2775
|
-
}
|
|
2776
|
-
return result;
|
|
2777
|
-
}
|
|
2778
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ValidationMessagesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2779
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: ValidationMessagesPipe, isStandalone: false, name: "validationMessages", pure: false });
|
|
2780
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ValidationMessagesPipe });
|
|
2781
|
-
};
|
|
2782
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ValidationMessagesPipe$1, decorators: [{
|
|
2783
|
-
type: Pipe,
|
|
2784
|
-
args: [{
|
|
2785
|
-
name: 'validationMessages',
|
|
2786
|
-
pure: false,
|
|
2787
|
-
standalone: false
|
|
2788
|
-
}]
|
|
2789
|
-
}, {
|
|
2790
|
-
type: Injectable
|
|
2791
|
-
}], ctorParameters: () => [] });
|
|
2792
|
-
|
|
2793
2852
|
class ValidationMessagesComponent {
|
|
2853
|
+
validationMessagesService = inject(SmzFormValidationMessagesService);
|
|
2854
|
+
formControl;
|
|
2794
2855
|
input;
|
|
2795
|
-
control
|
|
2856
|
+
set control(value) {
|
|
2857
|
+
this.formControl = value;
|
|
2858
|
+
this.controlMessages = this.validationMessagesService.getMessagesSignalByControl(value);
|
|
2859
|
+
}
|
|
2860
|
+
get control() {
|
|
2861
|
+
return this.formControl;
|
|
2862
|
+
}
|
|
2796
2863
|
behaviors;
|
|
2797
2864
|
extraMessages = [];
|
|
2865
|
+
controlMessages = signal([], ...(ngDevMode ? [{ debugName: "controlMessages" }] : []));
|
|
2798
2866
|
uiConfig = GlobalInjector.config;
|
|
2799
2867
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ValidationMessagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2800
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ValidationMessagesComponent, isStandalone: false, selector: "smz-validation-messages", inputs: { input: "input", control: "control", behaviors: "behaviors", extraMessages: "extraMessages" }, ngImport: i0, template: "@if (behaviors?.showErrorsMethod != null ? control[behaviors.showErrorsMethod] : control[uiConfig.dialogs.forms.behaviors.showErrorsMethod]) {\r\n @if ((
|
|
2868
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ValidationMessagesComponent, isStandalone: false, selector: "smz-validation-messages", inputs: { input: "input", control: "control", behaviors: "behaviors", extraMessages: "extraMessages" }, ngImport: i0, template: "@if (behaviors?.showErrorsMethod != null ? control[behaviors.showErrorsMethod] : control[uiConfig.dialogs.forms.behaviors.showErrorsMethod]) {\r\n @if (controlMessages() | join : extraMessages; as messages) {\r\n @if (messages.length === 1) {\r\n @for (message of messages; track message) {\r\n <span class=\"col-12 error-message\">{{ message }}</span>\r\n }\r\n }\r\n\r\n @if (messages.length > 1) {\r\n @if (behaviors.showMultipleErrorMessages) {\r\n <span class=\"col-12 error-message asterisk\">{{ messages | describeArray }}</span>\r\n }\r\n\r\n @if (!behaviors.showMultipleErrorMessages) {\r\n <span class=\"col-12 error-message asterisk\" [pTooltip]=\"messages | describeArray\">{{ uiConfig.dialogs.forms.multipleErrorMessagesLabel }} *</span>\r\n }\r\n }\r\n }\r\n}", dependencies: [{ kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "pipe", type: DescribeArrayPipe, name: "describeArray" }, { kind: "pipe", type: JoinPipe, name: "join" }] });
|
|
2801
2869
|
}
|
|
2802
2870
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ValidationMessagesComponent, decorators: [{
|
|
2803
2871
|
type: Component,
|
|
2804
|
-
args: [{ selector: 'smz-validation-messages', standalone: false, template: "@if (behaviors?.showErrorsMethod != null ? control[behaviors.showErrorsMethod] : control[uiConfig.dialogs.forms.behaviors.showErrorsMethod]) {\r\n @if ((
|
|
2872
|
+
args: [{ selector: 'smz-validation-messages', standalone: false, template: "@if (behaviors?.showErrorsMethod != null ? control[behaviors.showErrorsMethod] : control[uiConfig.dialogs.forms.behaviors.showErrorsMethod]) {\r\n @if (controlMessages() | join : extraMessages; as messages) {\r\n @if (messages.length === 1) {\r\n @for (message of messages; track message) {\r\n <span class=\"col-12 error-message\">{{ message }}</span>\r\n }\r\n }\r\n\r\n @if (messages.length > 1) {\r\n @if (behaviors.showMultipleErrorMessages) {\r\n <span class=\"col-12 error-message asterisk\">{{ messages | describeArray }}</span>\r\n }\r\n\r\n @if (!behaviors.showMultipleErrorMessages) {\r\n <span class=\"col-12 error-message asterisk\" [pTooltip]=\"messages | describeArray\">{{ uiConfig.dialogs.forms.multipleErrorMessagesLabel }} *</span>\r\n }\r\n }\r\n }\r\n}" }]
|
|
2805
2873
|
}], propDecorators: { input: [{
|
|
2806
2874
|
type: Input
|
|
2807
2875
|
}], control: [{
|
|
@@ -4796,11 +4864,11 @@ class InputTreeComponent {
|
|
|
4796
4864
|
}
|
|
4797
4865
|
}
|
|
4798
4866
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: InputTreeComponent, deps: [{ token: SmzFormsDropdownService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4799
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: InputTreeComponent, isStandalone: false, selector: "smz-input-tree", inputs: { input: "input", formId: "formId", control: "control", behaviors: "behaviors" }, ngImport: i0, template: "@if (nodes$ | async; as nodes) {\
|
|
4867
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: InputTreeComponent, isStandalone: false, selector: "smz-input-tree", inputs: { input: "input", formId: "formId", control: "control", behaviors: "behaviors" }, ngImport: i0, template: "@if (nodes$ | async; as nodes) {\n <smz-label\n class=\"smz__input_name\"\n [text]=\"input.name\"\n [propertyName]=\"input.propertyName\"\n [showLabel]=\"input.hideLabel != true\"\n [warning]=\"input.warning?.()\"\n [help]=\"input.tooltip?.()\"\n [popover]=\"input.popover?.()\">\n </smz-label>\n <div class=\"input_inner__wrapper grid grid-nogutter\">\n <p-treeSelect\n class=\"col-12 grid-nogutter smz__input_value flex-1\"\n containerStyleClass=\"w-full\"\n [formControl]=\"control\"\n [options]=\"nodes\"\n [placeholder]=\"input.name\"\n appendTo=\"body\"\n [filter]=\"input.showFilter ? true : false\"\n [selectionMode]=\"input.selectionMode\"\n [filterInputAutoFocus]=\"input.autofocusFilter\"\n [emptyMessage]=\"input.emptyMessage\"\n [showClear]=\"input.showClear\"\n [filterPlaceholder]=\"input.emptyFilterMessage\"\n [scrollHeight]=\"input.scrollHeight\"\n [display]=\"input.display\"\n >\n @for (inputType of input.allTypes; track inputType) {\n <ng-template let-node [pTemplate]=\"inputType\">\n @if (node != null) {\n <div [innerHTML]=\"node.label | safeHtml\" [pTooltip]=\"node.tooltip\"></div>\n }\n </ng-template>\n }\n </p-treeSelect>\n <smz-validation-messages [input]=\"input\" [control]=\"control\" [behaviors]=\"behaviors\"></smz-validation-messages>\n </div>\n}", dependencies: [{ kind: "directive", type: i1$7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: i5.TreeSelect, selector: "p-treeSelect, p-treeselect, p-tree-select", inputs: ["inputId", "scrollHeight", "metaKeySelection", "display", "selectionMode", "tabindex", "ariaLabel", "ariaLabelledBy", "placeholder", "panelClass", "panelStyle", "panelStyleClass", "containerStyle", "containerStyleClass", "labelStyle", "labelStyleClass", "overlayOptions", "emptyMessage", "filter", "filterBy", "filterMode", "filterPlaceholder", "filterLocale", "filterInputAutoFocus", "propagateSelectionDown", "propagateSelectionUp", "showClear", "resetFilterOnHide", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "autofocus", "options", "loading", "loadingMode", "size", "variant", "fluid", "appendTo", "motionOptions"], outputs: ["onNodeExpand", "onNodeCollapse", "onShow", "onHide", "onClear", "onFilter", "onFocus", "onBlur", "onNodeUnselect", "onNodeSelect"] }, { kind: "component", type: LabelComponent, selector: "smz-label", inputs: ["text", "propertyName", "showLabel", "warning", "help", "popover"] }, { kind: "component", type: ValidationMessagesComponent, selector: "smz-validation-messages", inputs: ["input", "control", "behaviors", "extraMessages"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: SafeHtmlPipe$2, name: "safeHtml" }] });
|
|
4800
4868
|
}
|
|
4801
4869
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: InputTreeComponent, decorators: [{
|
|
4802
4870
|
type: Component,
|
|
4803
|
-
args: [{ selector: 'smz-input-tree', standalone: false, template: "@if (nodes$ | async; as nodes) {\
|
|
4871
|
+
args: [{ selector: 'smz-input-tree', standalone: false, template: "@if (nodes$ | async; as nodes) {\n <smz-label\n class=\"smz__input_name\"\n [text]=\"input.name\"\n [propertyName]=\"input.propertyName\"\n [showLabel]=\"input.hideLabel != true\"\n [warning]=\"input.warning?.()\"\n [help]=\"input.tooltip?.()\"\n [popover]=\"input.popover?.()\">\n </smz-label>\n <div class=\"input_inner__wrapper grid grid-nogutter\">\n <p-treeSelect\n class=\"col-12 grid-nogutter smz__input_value flex-1\"\n containerStyleClass=\"w-full\"\n [formControl]=\"control\"\n [options]=\"nodes\"\n [placeholder]=\"input.name\"\n appendTo=\"body\"\n [filter]=\"input.showFilter ? true : false\"\n [selectionMode]=\"input.selectionMode\"\n [filterInputAutoFocus]=\"input.autofocusFilter\"\n [emptyMessage]=\"input.emptyMessage\"\n [showClear]=\"input.showClear\"\n [filterPlaceholder]=\"input.emptyFilterMessage\"\n [scrollHeight]=\"input.scrollHeight\"\n [display]=\"input.display\"\n >\n @for (inputType of input.allTypes; track inputType) {\n <ng-template let-node [pTemplate]=\"inputType\">\n @if (node != null) {\n <div [innerHTML]=\"node.label | safeHtml\" [pTooltip]=\"node.tooltip\"></div>\n }\n </ng-template>\n }\n </p-treeSelect>\n <smz-validation-messages [input]=\"input\" [control]=\"control\" [behaviors]=\"behaviors\"></smz-validation-messages>\n </div>\n}" }]
|
|
4804
4872
|
}], ctorParameters: () => [{ type: SmzFormsDropdownService }], propDecorators: { input: [{
|
|
4805
4873
|
type: Input
|
|
4806
4874
|
}], formId: [{
|
|
@@ -5090,401 +5158,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
5090
5158
|
}]
|
|
5091
5159
|
}] });
|
|
5092
5160
|
|
|
5093
|
-
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, @angular-eslint/component-class-suffix, @angular-eslint/no-output-on-prefix, @typescript-eslint/no-unsafe-function-type */
|
|
5094
|
-
class OverlayPanel {
|
|
5095
|
-
el;
|
|
5096
|
-
renderer;
|
|
5097
|
-
cd;
|
|
5098
|
-
zone;
|
|
5099
|
-
overlayService;
|
|
5100
|
-
config = inject(PrimeNG);
|
|
5101
|
-
dismissable = true;
|
|
5102
|
-
showCloseIcon;
|
|
5103
|
-
style;
|
|
5104
|
-
styleClass;
|
|
5105
|
-
appendTo = 'body';
|
|
5106
|
-
autoZIndex = true;
|
|
5107
|
-
ariaCloseLabel;
|
|
5108
|
-
baseZIndex = 0;
|
|
5109
|
-
focusOnShow = true;
|
|
5110
|
-
mousePosition = true;
|
|
5111
|
-
showTransitionOptions = '0s cubic-bezier(0, 0, 0.2, 1)';
|
|
5112
|
-
hideTransitionOptions = '0s linear';
|
|
5113
|
-
onShow = new EventEmitter();
|
|
5114
|
-
onHide = new EventEmitter();
|
|
5115
|
-
templates;
|
|
5116
|
-
overlayPanelRef;
|
|
5117
|
-
container;
|
|
5118
|
-
overlayVisible = false;
|
|
5119
|
-
render = false;
|
|
5120
|
-
selfClick = false;
|
|
5121
|
-
documentClickListener;
|
|
5122
|
-
target;
|
|
5123
|
-
mouseEvent;
|
|
5124
|
-
willHide;
|
|
5125
|
-
scrollHandler;
|
|
5126
|
-
documentResizeListener;
|
|
5127
|
-
contentTemplate;
|
|
5128
|
-
destroyCallback;
|
|
5129
|
-
overlayEventListener;
|
|
5130
|
-
overlaySubscription;
|
|
5131
|
-
constructor(el, renderer, cd, zone, overlayService) {
|
|
5132
|
-
this.el = el;
|
|
5133
|
-
this.renderer = renderer;
|
|
5134
|
-
this.cd = cd;
|
|
5135
|
-
this.zone = zone;
|
|
5136
|
-
this.overlayService = overlayService;
|
|
5137
|
-
}
|
|
5138
|
-
ngAfterContentInit() {
|
|
5139
|
-
this.templates.forEach((item) => {
|
|
5140
|
-
switch (item.getType()) {
|
|
5141
|
-
case 'content':
|
|
5142
|
-
this.contentTemplate = item.template;
|
|
5143
|
-
break;
|
|
5144
|
-
default:
|
|
5145
|
-
this.contentTemplate = item.template;
|
|
5146
|
-
break;
|
|
5147
|
-
}
|
|
5148
|
-
this.cd.markForCheck();
|
|
5149
|
-
});
|
|
5150
|
-
}
|
|
5151
|
-
bindDocumentClickListener() {
|
|
5152
|
-
if (!this.documentClickListener && this.dismissable) {
|
|
5153
|
-
this.zone.runOutsideAngular(() => {
|
|
5154
|
-
const documentEvent = DomHandler.isIOS() ? 'touchstart' : 'click';
|
|
5155
|
-
const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';
|
|
5156
|
-
this.documentClickListener = this.renderer.listen(documentTarget, documentEvent, (event) => {
|
|
5157
|
-
if (!this.container.contains(event.target) && this.target !== event.target && !this.target.contains(event.target) && !this.selfClick) {
|
|
5158
|
-
this.zone.run(() => {
|
|
5159
|
-
this.hide();
|
|
5160
|
-
});
|
|
5161
|
-
}
|
|
5162
|
-
this.selfClick = false;
|
|
5163
|
-
this.cd.markForCheck();
|
|
5164
|
-
});
|
|
5165
|
-
});
|
|
5166
|
-
}
|
|
5167
|
-
}
|
|
5168
|
-
unbindDocumentClickListener() {
|
|
5169
|
-
if (this.documentClickListener) {
|
|
5170
|
-
this.documentClickListener();
|
|
5171
|
-
this.documentClickListener = null;
|
|
5172
|
-
this.selfClick = false;
|
|
5173
|
-
}
|
|
5174
|
-
}
|
|
5175
|
-
toggle(event, target) {
|
|
5176
|
-
if (this.overlayVisible) {
|
|
5177
|
-
if (this.hasTargetChanged(event, target)) {
|
|
5178
|
-
this.destroyCallback = () => {
|
|
5179
|
-
this.show(null, (target || event.currentTarget || event.target));
|
|
5180
|
-
};
|
|
5181
|
-
}
|
|
5182
|
-
this.hide();
|
|
5183
|
-
}
|
|
5184
|
-
else {
|
|
5185
|
-
this.show(event, target);
|
|
5186
|
-
}
|
|
5187
|
-
}
|
|
5188
|
-
show(event, target) {
|
|
5189
|
-
this.mouseEvent = event;
|
|
5190
|
-
this.target = target || event.currentTarget || event.target;
|
|
5191
|
-
this.overlayVisible = true;
|
|
5192
|
-
this.render = true;
|
|
5193
|
-
this.cd.markForCheck();
|
|
5194
|
-
this.zone.runOutsideAngular(() => {
|
|
5195
|
-
setTimeout(() => this.afterOverlayShown());
|
|
5196
|
-
});
|
|
5197
|
-
}
|
|
5198
|
-
afterOverlayShown() {
|
|
5199
|
-
const el = this.overlayPanelRef?.nativeElement;
|
|
5200
|
-
if (!el) {
|
|
5201
|
-
return;
|
|
5202
|
-
}
|
|
5203
|
-
this.container = el;
|
|
5204
|
-
this.onShow.emit(null);
|
|
5205
|
-
this.appendContainer();
|
|
5206
|
-
this.align();
|
|
5207
|
-
this.bindDocumentClickListener();
|
|
5208
|
-
this.bindDocumentResizeListener();
|
|
5209
|
-
this.bindScrollListener();
|
|
5210
|
-
if (this.focusOnShow) {
|
|
5211
|
-
this.focus();
|
|
5212
|
-
}
|
|
5213
|
-
this.overlayEventListener = (e) => {
|
|
5214
|
-
if (this.container && this.container.contains(e.target)) {
|
|
5215
|
-
this.selfClick = true;
|
|
5216
|
-
}
|
|
5217
|
-
};
|
|
5218
|
-
this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);
|
|
5219
|
-
}
|
|
5220
|
-
onOverlayClick(event) {
|
|
5221
|
-
this.overlayService.add({
|
|
5222
|
-
originalEvent: event,
|
|
5223
|
-
target: this.el.nativeElement
|
|
5224
|
-
});
|
|
5225
|
-
this.selfClick = true;
|
|
5226
|
-
}
|
|
5227
|
-
onContentClick() {
|
|
5228
|
-
this.selfClick = true;
|
|
5229
|
-
}
|
|
5230
|
-
hasTargetChanged(event, target) {
|
|
5231
|
-
return this.target != null && this.target !== (target || event.currentTarget || event.target);
|
|
5232
|
-
}
|
|
5233
|
-
appendContainer() {
|
|
5234
|
-
if (this.appendTo) {
|
|
5235
|
-
if (this.appendTo === 'body') {
|
|
5236
|
-
document.body.appendChild(this.container);
|
|
5237
|
-
}
|
|
5238
|
-
else {
|
|
5239
|
-
DomHandler.appendChild(this.container, this.appendTo);
|
|
5240
|
-
}
|
|
5241
|
-
}
|
|
5242
|
-
}
|
|
5243
|
-
restoreAppend() {
|
|
5244
|
-
if (this.container && this.appendTo) {
|
|
5245
|
-
this.el.nativeElement.appendChild(this.container);
|
|
5246
|
-
}
|
|
5247
|
-
}
|
|
5248
|
-
align() {
|
|
5249
|
-
if (this.autoZIndex) {
|
|
5250
|
-
ZIndexUtils.set('overlay', this.container, this.baseZIndex + this.config.zIndex.overlay);
|
|
5251
|
-
}
|
|
5252
|
-
if (this.mousePosition) {
|
|
5253
|
-
this.cursorPosition(this.container, this.mouseEvent);
|
|
5254
|
-
}
|
|
5255
|
-
else {
|
|
5256
|
-
DomHandler.absolutePosition(this.container, this.target);
|
|
5257
|
-
}
|
|
5258
|
-
const containerOffset = DomHandler.getOffset(this.container);
|
|
5259
|
-
const targetOffset = DomHandler.getOffset(this.target);
|
|
5260
|
-
let arrowLeft = 0;
|
|
5261
|
-
if (containerOffset.left < targetOffset.left) {
|
|
5262
|
-
arrowLeft = targetOffset.left - containerOffset.left;
|
|
5263
|
-
}
|
|
5264
|
-
this.container.style.setProperty('--overlayArrowLeft', `${arrowLeft}px`);
|
|
5265
|
-
if (containerOffset.top < targetOffset.top) {
|
|
5266
|
-
DomHandler.addClass(this.container, 'p-overlaypanel-flipped');
|
|
5267
|
-
}
|
|
5268
|
-
}
|
|
5269
|
-
cursorPosition(element, mouseEvent) {
|
|
5270
|
-
const elementOuterHeight = 0;
|
|
5271
|
-
const elementOuterWidth = 30;
|
|
5272
|
-
const targetOuterHeight = 0;
|
|
5273
|
-
const targetOuterWidth = 0;
|
|
5274
|
-
const targetOffset = { top: mouseEvent.clientY, left: mouseEvent.clientX };
|
|
5275
|
-
const windowScrollTop = DomHandler.getWindowScrollTop();
|
|
5276
|
-
const windowScrollLeft = DomHandler.getWindowScrollLeft();
|
|
5277
|
-
const viewport = DomHandler.getViewport();
|
|
5278
|
-
let top, left;
|
|
5279
|
-
if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {
|
|
5280
|
-
top = targetOffset.top + windowScrollTop - elementOuterHeight;
|
|
5281
|
-
element.style.transformOrigin = 'bottom';
|
|
5282
|
-
if (top < 0) {
|
|
5283
|
-
top = windowScrollTop;
|
|
5284
|
-
}
|
|
5285
|
-
}
|
|
5286
|
-
else {
|
|
5287
|
-
top = targetOuterHeight + targetOffset.top + windowScrollTop;
|
|
5288
|
-
element.style.transformOrigin = 'top';
|
|
5289
|
-
}
|
|
5290
|
-
if (targetOffset.left + elementOuterWidth > viewport.width) {
|
|
5291
|
-
left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);
|
|
5292
|
-
}
|
|
5293
|
-
else {
|
|
5294
|
-
left = targetOffset.left + windowScrollLeft - elementOuterWidth;
|
|
5295
|
-
}
|
|
5296
|
-
element.style.top = top + 'px';
|
|
5297
|
-
element.style.left = left + 'px';
|
|
5298
|
-
}
|
|
5299
|
-
onLeaveDone(event) {
|
|
5300
|
-
const el = event.target;
|
|
5301
|
-
el.classList.add('overlay-leave');
|
|
5302
|
-
const onEnd = () => {
|
|
5303
|
-
el.removeEventListener('animationend', onEnd);
|
|
5304
|
-
event.animationComplete();
|
|
5305
|
-
if (this.destroyCallback) {
|
|
5306
|
-
this.destroyCallback();
|
|
5307
|
-
this.destroyCallback = null;
|
|
5308
|
-
}
|
|
5309
|
-
if (this.overlaySubscription) {
|
|
5310
|
-
this.overlaySubscription.unsubscribe();
|
|
5311
|
-
}
|
|
5312
|
-
if (this.autoZIndex && this.container) {
|
|
5313
|
-
ZIndexUtils.clear(this.container);
|
|
5314
|
-
}
|
|
5315
|
-
this.onContainerDestroy();
|
|
5316
|
-
this.onHide.emit({});
|
|
5317
|
-
this.render = false;
|
|
5318
|
-
this.cd.markForCheck();
|
|
5319
|
-
};
|
|
5320
|
-
el.addEventListener('animationend', onEnd);
|
|
5321
|
-
}
|
|
5322
|
-
focus() {
|
|
5323
|
-
const focusable = DomHandler.findSingle(this.container, '[autofocus]');
|
|
5324
|
-
if (focusable) {
|
|
5325
|
-
this.zone.runOutsideAngular(() => {
|
|
5326
|
-
setTimeout(() => focusable.focus(), 5);
|
|
5327
|
-
});
|
|
5328
|
-
}
|
|
5329
|
-
}
|
|
5330
|
-
hide() {
|
|
5331
|
-
// console.log('hide');
|
|
5332
|
-
this.overlayVisible = false;
|
|
5333
|
-
this.cd.markForCheck();
|
|
5334
|
-
}
|
|
5335
|
-
onCloseClick(event) {
|
|
5336
|
-
this.hide();
|
|
5337
|
-
event.preventDefault();
|
|
5338
|
-
}
|
|
5339
|
-
onWindowResize(event) {
|
|
5340
|
-
this.hide();
|
|
5341
|
-
}
|
|
5342
|
-
bindDocumentResizeListener() {
|
|
5343
|
-
this.documentResizeListener = this.onWindowResize.bind(this);
|
|
5344
|
-
window.addEventListener('resize', this.documentResizeListener);
|
|
5345
|
-
}
|
|
5346
|
-
unbindDocumentResizeListener() {
|
|
5347
|
-
if (this.documentResizeListener) {
|
|
5348
|
-
window.removeEventListener('resize', this.documentResizeListener);
|
|
5349
|
-
this.documentResizeListener = null;
|
|
5350
|
-
}
|
|
5351
|
-
}
|
|
5352
|
-
bindScrollListener() {
|
|
5353
|
-
if (!this.scrollHandler) {
|
|
5354
|
-
this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {
|
|
5355
|
-
if (this.overlayVisible) {
|
|
5356
|
-
this.hide();
|
|
5357
|
-
}
|
|
5358
|
-
});
|
|
5359
|
-
}
|
|
5360
|
-
this.scrollHandler.bindScrollListener();
|
|
5361
|
-
}
|
|
5362
|
-
unbindScrollListener() {
|
|
5363
|
-
if (this.scrollHandler) {
|
|
5364
|
-
this.scrollHandler.unbindScrollListener();
|
|
5365
|
-
}
|
|
5366
|
-
}
|
|
5367
|
-
onContainerDestroy() {
|
|
5368
|
-
if (!this.cd.destroyed) {
|
|
5369
|
-
this.target = null;
|
|
5370
|
-
}
|
|
5371
|
-
this.unbindDocumentClickListener();
|
|
5372
|
-
this.unbindDocumentResizeListener();
|
|
5373
|
-
this.unbindScrollListener();
|
|
5374
|
-
}
|
|
5375
|
-
ngOnDestroy() {
|
|
5376
|
-
if (this.scrollHandler) {
|
|
5377
|
-
this.scrollHandler.destroy();
|
|
5378
|
-
this.scrollHandler = null;
|
|
5379
|
-
}
|
|
5380
|
-
if (this.container && this.autoZIndex) {
|
|
5381
|
-
ZIndexUtils.clear(this.container);
|
|
5382
|
-
}
|
|
5383
|
-
if (!this.cd.destroyed) {
|
|
5384
|
-
this.target = null;
|
|
5385
|
-
}
|
|
5386
|
-
this.destroyCallback = null;
|
|
5387
|
-
if (this.container) {
|
|
5388
|
-
this.restoreAppend();
|
|
5389
|
-
this.onContainerDestroy();
|
|
5390
|
-
}
|
|
5391
|
-
if (this.overlaySubscription) {
|
|
5392
|
-
this.overlaySubscription.unsubscribe();
|
|
5393
|
-
}
|
|
5394
|
-
}
|
|
5395
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OverlayPanel, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1$7.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5396
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: OverlayPanel, isStandalone: false, selector: "p-overlayPanel", inputs: { dismissable: "dismissable", showCloseIcon: "showCloseIcon", style: "style", styleClass: "styleClass", appendTo: "appendTo", autoZIndex: "autoZIndex", ariaCloseLabel: "ariaCloseLabel", baseZIndex: "baseZIndex", focusOnShow: "focusOnShow", mousePosition: "mousePosition", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onShow: "onShow", onHide: "onHide" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "overlayPanelRef", first: true, predicate: ["overlayPanel"], descendants: true }], ngImport: i0, template: `
|
|
5397
|
-
@if (render) {
|
|
5398
|
-
@if (overlayVisible) {
|
|
5399
|
-
<div #overlayPanel [ngClass]="'p-overlaypanel p-component'" [ngStyle]="style" [class]="styleClass" (click)="onOverlayClick($event)"
|
|
5400
|
-
[style.--show-transition]="showTransitionOptions" [style.--hide-transition]="hideTransitionOptions"
|
|
5401
|
-
animate.enter="overlay-enter" (animate.leave)="onLeaveDone($event)">
|
|
5402
|
-
<div class="p-overlaypanel-content" (click)="onContentClick()" (mousedown)="onContentClick()">
|
|
5403
|
-
<ng-content></ng-content>
|
|
5404
|
-
<ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
|
|
5405
|
-
</div>
|
|
5406
|
-
@if (showCloseIcon) {
|
|
5407
|
-
<button type="button" class="p-overlaypanel-close p-link" (click)="onCloseClick($event)" (keydown.enter)="hide()" [attr.aria-label]="ariaCloseLabel" pRipple>
|
|
5408
|
-
<span class="p-overlaypanel-close-icon pi pi-times"></span>
|
|
5409
|
-
</button>
|
|
5410
|
-
}
|
|
5411
|
-
</div>
|
|
5412
|
-
}
|
|
5413
|
-
}
|
|
5414
|
-
`, isInline: true, styles: [".p-overlaypanel{position:absolute;margin-top:10px;top:0;left:0}.overlay-enter{animation:overlay-enter-anim var(--show-transition, 0s cubic-bezier(0, 0, .2, 1)) forwards}@keyframes overlay-enter-anim{0%{transform:scaleY(.8);opacity:0}to{transform:translateY(0);opacity:1}}.overlay-leave{animation:overlay-leave-anim var(--hide-transition, 0s linear) forwards}@keyframes overlay-leave-anim{to{opacity:0}}.p-overlaypanel-flipped{margin-top:0;margin-bottom:10px}.p-overlaypanel-close{display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-overlaypanel:after,.p-overlaypanel:before{bottom:100%;left:calc(var(--overlayArrowLeft, 0) + 1.25rem);content:\" \";height:0;width:0;position:absolute;pointer-events:none}.p-overlaypanel:after{border-width:8px;margin-left:-8px}.p-overlaypanel:before{border-width:10px;margin-left:-10px}.p-overlaypanel-shifted:after,.p-overlaypanel-shifted:before{left:auto;right:1.25em;margin-left:auto}.p-overlaypanel-flipped:after,.p-overlaypanel-flipped:before{bottom:auto;top:100%}.p-overlaypanel.p-overlaypanel-flipped:after{border-bottom-color:transparent}.p-overlaypanel.p-overlaypanel-flipped:before{border-bottom-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3$6.Ripple, selector: "[pRipple]" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
5415
|
-
}
|
|
5416
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OverlayPanel, decorators: [{
|
|
5417
|
-
type: Component,
|
|
5418
|
-
args: [{ selector: 'p-overlayPanel', template: `
|
|
5419
|
-
@if (render) {
|
|
5420
|
-
@if (overlayVisible) {
|
|
5421
|
-
<div #overlayPanel [ngClass]="'p-overlaypanel p-component'" [ngStyle]="style" [class]="styleClass" (click)="onOverlayClick($event)"
|
|
5422
|
-
[style.--show-transition]="showTransitionOptions" [style.--hide-transition]="hideTransitionOptions"
|
|
5423
|
-
animate.enter="overlay-enter" (animate.leave)="onLeaveDone($event)">
|
|
5424
|
-
<div class="p-overlaypanel-content" (click)="onContentClick()" (mousedown)="onContentClick()">
|
|
5425
|
-
<ng-content></ng-content>
|
|
5426
|
-
<ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
|
|
5427
|
-
</div>
|
|
5428
|
-
@if (showCloseIcon) {
|
|
5429
|
-
<button type="button" class="p-overlaypanel-close p-link" (click)="onCloseClick($event)" (keydown.enter)="hide()" [attr.aria-label]="ariaCloseLabel" pRipple>
|
|
5430
|
-
<span class="p-overlaypanel-close-icon pi pi-times"></span>
|
|
5431
|
-
</button>
|
|
5432
|
-
}
|
|
5433
|
-
</div>
|
|
5434
|
-
}
|
|
5435
|
-
}
|
|
5436
|
-
`, changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
|
|
5437
|
-
'class': 'p-element'
|
|
5438
|
-
}, standalone: false, styles: [".p-overlaypanel{position:absolute;margin-top:10px;top:0;left:0}.overlay-enter{animation:overlay-enter-anim var(--show-transition, 0s cubic-bezier(0, 0, .2, 1)) forwards}@keyframes overlay-enter-anim{0%{transform:scaleY(.8);opacity:0}to{transform:translateY(0);opacity:1}}.overlay-leave{animation:overlay-leave-anim var(--hide-transition, 0s linear) forwards}@keyframes overlay-leave-anim{to{opacity:0}}.p-overlaypanel-flipped{margin-top:0;margin-bottom:10px}.p-overlaypanel-close{display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-overlaypanel:after,.p-overlaypanel:before{bottom:100%;left:calc(var(--overlayArrowLeft, 0) + 1.25rem);content:\" \";height:0;width:0;position:absolute;pointer-events:none}.p-overlaypanel:after{border-width:8px;margin-left:-8px}.p-overlaypanel:before{border-width:10px;margin-left:-10px}.p-overlaypanel-shifted:after,.p-overlaypanel-shifted:before{left:auto;right:1.25em;margin-left:auto}.p-overlaypanel-flipped:after,.p-overlaypanel-flipped:before{bottom:auto;top:100%}.p-overlaypanel.p-overlaypanel-flipped:after{border-bottom-color:transparent}.p-overlaypanel.p-overlaypanel-flipped:before{border-bottom-color:transparent}\n"] }]
|
|
5439
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1$7.OverlayService }], propDecorators: { dismissable: [{
|
|
5440
|
-
type: Input
|
|
5441
|
-
}], showCloseIcon: [{
|
|
5442
|
-
type: Input
|
|
5443
|
-
}], style: [{
|
|
5444
|
-
type: Input
|
|
5445
|
-
}], styleClass: [{
|
|
5446
|
-
type: Input
|
|
5447
|
-
}], appendTo: [{
|
|
5448
|
-
type: Input
|
|
5449
|
-
}], autoZIndex: [{
|
|
5450
|
-
type: Input
|
|
5451
|
-
}], ariaCloseLabel: [{
|
|
5452
|
-
type: Input
|
|
5453
|
-
}], baseZIndex: [{
|
|
5454
|
-
type: Input
|
|
5455
|
-
}], focusOnShow: [{
|
|
5456
|
-
type: Input
|
|
5457
|
-
}], mousePosition: [{
|
|
5458
|
-
type: Input
|
|
5459
|
-
}], showTransitionOptions: [{
|
|
5460
|
-
type: Input
|
|
5461
|
-
}], hideTransitionOptions: [{
|
|
5462
|
-
type: Input
|
|
5463
|
-
}], onShow: [{
|
|
5464
|
-
type: Output
|
|
5465
|
-
}], onHide: [{
|
|
5466
|
-
type: Output
|
|
5467
|
-
}], templates: [{
|
|
5468
|
-
type: ContentChildren,
|
|
5469
|
-
args: [PrimeTemplate]
|
|
5470
|
-
}], overlayPanelRef: [{
|
|
5471
|
-
type: ViewChild,
|
|
5472
|
-
args: ['overlayPanel']
|
|
5473
|
-
}] } });
|
|
5474
|
-
class OverlayPanelModule {
|
|
5475
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OverlayPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5476
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: OverlayPanelModule, declarations: [OverlayPanel], imports: [CommonModule, RippleModule, SharedModule], exports: [OverlayPanel, SharedModule] });
|
|
5477
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OverlayPanelModule, imports: [CommonModule, RippleModule, SharedModule, SharedModule] });
|
|
5478
|
-
}
|
|
5479
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OverlayPanelModule, decorators: [{
|
|
5480
|
-
type: NgModule,
|
|
5481
|
-
args: [{
|
|
5482
|
-
imports: [CommonModule, RippleModule, SharedModule],
|
|
5483
|
-
exports: [OverlayPanel, SharedModule],
|
|
5484
|
-
declarations: [OverlayPanel]
|
|
5485
|
-
}]
|
|
5486
|
-
}] });
|
|
5487
|
-
|
|
5488
5161
|
/* eslint-disable @angular-eslint/component-class-suffix -- SmzInputTagArea is legacy name */
|
|
5489
5162
|
/* eslint-disable @typescript-eslint/no-explicit-any -- overlay/dom types */
|
|
5490
5163
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment -- overlay/dom */
|
|
@@ -5660,34 +5333,30 @@ class SmzInputTagArea {
|
|
|
5660
5333
|
};
|
|
5661
5334
|
};
|
|
5662
5335
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzInputTagArea, deps: [{ token: i1$3.NgModel, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5663
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzInputTagArea, isStandalone: false, selector: "smz-input-tag-area", inputs: { config: "config", rows: "rows", control: "control" }, viewQueries: [{ propertyName: "overlay", first: true, predicate:
|
|
5336
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzInputTagArea, isStandalone: false, selector: "smz-input-tag-area", inputs: { config: "config", rows: "rows", control: "control" }, viewQueries: [{ propertyName: "overlay", first: true, predicate: Popover, descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputArea"], descendants: true }, { propertyName: "listboxElement", first: true, predicate: ["listbox"], descendants: true }], ngImport: i0, template: `
|
|
5664
5337
|
<textarea #inputArea id="inputArea" pInputTextarea smzSmartTag [(ngModel)]="ngModel" [formControl]="control" [options]="config?.options" [rows]="rows" (tagTyped)="onTag($event)" class="col-12"></textarea>
|
|
5665
|
-
<p-
|
|
5666
|
-
|
|
5667
|
-
|
|
5668
|
-
|
|
5669
|
-
|
|
5670
|
-
|
|
5671
|
-
</p-overlayPanel>
|
|
5672
|
-
`, isInline: true, styles: [".p-overlaypanel.tag-overlay .p-overlaypanel-content{padding:0}\n", ".tag-dropdown.p-dropdown{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$4.Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["pTextareaPT", "pTextareaUnstyled", "autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "directive", type: SmzSmartTag, selector: "[smzSmartTag]", inputs: ["options"], outputs: ["tagTyped"] }, { kind: "component", type: OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "mousePosition", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i1$7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i6.Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["hostName", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "styleClass", "listStyle", "listStyleClass", "readonly", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark", "dragdrop", "dropListData", "fluid"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad", "onDrop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5338
|
+
<p-popover #overlay appendTo="body" [style]="{width: '450px'}" (onHide)="onHideOverlay()" styleClass="tag-overlay">
|
|
5339
|
+
@if (currentTag) {
|
|
5340
|
+
<p-listbox #listbox (onClick)="hide($event)" (keyup.enter)="hide($event)" styleClass="tag-dropdown" [options]="currentTag.data" [(ngModel)]="currentTagSelection" optionLabel="key"></p-listbox>
|
|
5341
|
+
}
|
|
5342
|
+
</p-popover>
|
|
5343
|
+
`, isInline: true, styles: [".p-overlaypanel.tag-overlay .p-overlaypanel-content{padding:0}\n", ".tag-dropdown.p-dropdown{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$4.Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["pTextareaPT", "pTextareaUnstyled", "autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "directive", type: SmzSmartTag, selector: "[smzSmartTag]", inputs: ["options"], outputs: ["tagTyped"] }, { kind: "component", type: i6.Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["hostName", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "styleClass", "listStyle", "listStyleClass", "readonly", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark", "dragdrop", "dropListData", "fluid"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad", "onDrop"] }, { kind: "component", type: i3.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions", "motionOptions"], outputs: ["onShow", "onHide"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5673
5344
|
}
|
|
5674
5345
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzInputTagArea, decorators: [{
|
|
5675
5346
|
type: Component,
|
|
5676
5347
|
args: [{ selector: 'smz-input-tag-area', template: `
|
|
5677
5348
|
<textarea #inputArea id="inputArea" pInputTextarea smzSmartTag [(ngModel)]="ngModel" [formControl]="control" [options]="config?.options" [rows]="rows" (tagTyped)="onTag($event)" class="col-12"></textarea>
|
|
5678
|
-
<p-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
|
|
5683
|
-
</ng-template>
|
|
5684
|
-
</p-overlayPanel>
|
|
5349
|
+
<p-popover #overlay appendTo="body" [style]="{width: '450px'}" (onHide)="onHideOverlay()" styleClass="tag-overlay">
|
|
5350
|
+
@if (currentTag) {
|
|
5351
|
+
<p-listbox #listbox (onClick)="hide($event)" (keyup.enter)="hide($event)" styleClass="tag-dropdown" [options]="currentTag.data" [(ngModel)]="currentTagSelection" optionLabel="key"></p-listbox>
|
|
5352
|
+
}
|
|
5353
|
+
</p-popover>
|
|
5685
5354
|
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, styles: [".p-overlaypanel.tag-overlay .p-overlaypanel-content{padding:0}\n", ".tag-dropdown.p-dropdown{width:100%}\n"] }]
|
|
5686
5355
|
}], ctorParameters: () => [{ type: i1$3.NgModel, decorators: [{
|
|
5687
5356
|
type: Optional
|
|
5688
5357
|
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { overlay: [{
|
|
5689
5358
|
type: ViewChild,
|
|
5690
|
-
args: [
|
|
5359
|
+
args: [Popover]
|
|
5691
5360
|
}], inputElement: [{
|
|
5692
5361
|
type: ViewChild,
|
|
5693
5362
|
args: ['inputArea']
|
|
@@ -5708,19 +5377,19 @@ class SmzInputTagAreaModule {
|
|
|
5708
5377
|
ReactiveFormsModule,
|
|
5709
5378
|
TextareaModule,
|
|
5710
5379
|
SmzSmartTagModule,
|
|
5711
|
-
OverlayPanelModule,
|
|
5712
5380
|
SelectModule,
|
|
5713
5381
|
ButtonModule,
|
|
5714
|
-
ListboxModule
|
|
5382
|
+
ListboxModule,
|
|
5383
|
+
PopoverModule], exports: [SmzInputTagArea] });
|
|
5715
5384
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzInputTagAreaModule, imports: [CommonModule,
|
|
5716
5385
|
FormsModule,
|
|
5717
5386
|
ReactiveFormsModule,
|
|
5718
5387
|
TextareaModule,
|
|
5719
5388
|
SmzSmartTagModule,
|
|
5720
|
-
OverlayPanelModule,
|
|
5721
5389
|
SelectModule,
|
|
5722
5390
|
ButtonModule,
|
|
5723
|
-
ListboxModule
|
|
5391
|
+
ListboxModule,
|
|
5392
|
+
PopoverModule] });
|
|
5724
5393
|
}
|
|
5725
5394
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzInputTagAreaModule, decorators: [{
|
|
5726
5395
|
type: NgModule,
|
|
@@ -5731,10 +5400,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
5731
5400
|
ReactiveFormsModule,
|
|
5732
5401
|
TextareaModule,
|
|
5733
5402
|
SmzSmartTagModule,
|
|
5734
|
-
OverlayPanelModule,
|
|
5735
5403
|
SelectModule,
|
|
5736
5404
|
ButtonModule,
|
|
5737
|
-
ListboxModule
|
|
5405
|
+
ListboxModule,
|
|
5406
|
+
PopoverModule
|
|
5738
5407
|
],
|
|
5739
5408
|
exports: [SmzInputTagArea],
|
|
5740
5409
|
declarations: [SmzInputTagArea]
|
|
@@ -6158,6 +5827,7 @@ class FormGroupComponent {
|
|
|
6158
5827
|
cdf;
|
|
6159
5828
|
manager;
|
|
6160
5829
|
repository;
|
|
5830
|
+
validationMessagesService;
|
|
6161
5831
|
loggingService = inject(LoggingService);
|
|
6162
5832
|
logger = this.loggingService.scoped(LoggingScope.Forms);
|
|
6163
5833
|
isComponentActive = true;
|
|
@@ -6184,11 +5854,12 @@ class FormGroupComponent {
|
|
|
6184
5854
|
controlTypes = SmzControlType;
|
|
6185
5855
|
isInitialized = false;
|
|
6186
5856
|
configHasErrors = false;
|
|
6187
|
-
constructor(fb, cdf, manager, repository) {
|
|
5857
|
+
constructor(fb, cdf, manager, repository, validationMessagesService) {
|
|
6188
5858
|
this.fb = fb;
|
|
6189
5859
|
this.cdf = cdf;
|
|
6190
5860
|
this.manager = manager;
|
|
6191
5861
|
this.repository = repository;
|
|
5862
|
+
this.validationMessagesService = validationMessagesService;
|
|
6192
5863
|
}
|
|
6193
5864
|
ngOnInit() {
|
|
6194
5865
|
if (this.config != null) {
|
|
@@ -6270,7 +5941,9 @@ class FormGroupComponent {
|
|
|
6270
5941
|
}
|
|
6271
5942
|
}
|
|
6272
5943
|
const options = { updateOn: this.config?.behaviors?.updateOn ?? 'change' };
|
|
6273
|
-
|
|
5944
|
+
const formGroup = this.fb.group(controlsConfig, options);
|
|
5945
|
+
this.validationMessagesService.initialize(this.config, formGroup);
|
|
5946
|
+
this.viewdata = new SmzFormViewdata(this.config, formGroup, this.manager, this.cdf, this.validationMessagesService);
|
|
6274
5947
|
if (this.config.context == null) {
|
|
6275
5948
|
this.config.context = {
|
|
6276
5949
|
applyGlobalStyles: null,
|
|
@@ -6561,13 +6234,13 @@ class FormGroupComponent {
|
|
|
6561
6234
|
this.isComponentActive = false;
|
|
6562
6235
|
this.repository.remove(this.config);
|
|
6563
6236
|
}
|
|
6564
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: FormGroupComponent, deps: [{ token: i1$3.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }, { token: SmzFormsManagerService }, { token: SmzFormsRepositoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6565
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: FormGroupComponent, isStandalone: false, selector: "smz-form-group", inputs: { config: "config" }, outputs: { statusChanges: "statusChanges", initialStateChanged: "initialStateChanged", previousStateChanged: "previousStateChanged", submit: "submit" }, usesOnChanges: true, ngImport: i0, template: "@if (config != null) {\r\n <div class=\"smz_form_grid_container\">\r\n @if (viewdata?.form != null && !configHasErrors) {\r\n <form focusFirstInput [focus]=\"!config.behaviors.avoidFocusOnLoad\" [formGroup]=\"viewdata.form\" class=\"smz_form__wrapper\" (submit)=\"$event.preventDefault()\" (keydown.enter)=\"onEnter($event)\">\r\n <ng-container *ngTemplateOutlet=\"groupTemplate\"></ng-container>\r\n </form>\r\n }\r\n @if (configHasErrors) {\r\n <div>Error</div>\r\n }\r\n </div>\r\n}\r\n\r\n<ng-template #groupTemplate>\r\n\r\n <div class=\"w-full px-0 mx-auto\">\r\n <div class=\"grid grid-nogutter flex-wrap items-start justify-start flex-gap-2\" [ngClass]=\"config.template | setTemplateClasses : ['horizontalAlignment', 'verticalAlignment']\">\r\n @for (group of config.groups; track group) {\r\n @if (!group.isHide) {\r\n <div class=\"col\" [ngClass]=\"group.template | setTemplateClasses : ['row']\">\r\n @if (group.showName) {\r\n <div class=\"smz__group_name\">{{ group.name }}</div>\r\n }\r\n <div [ngClass]=\"group.styleClass ?? 'grid grid-nogutter flex-wrap items-start justify-start flex-gap-2'\">\r\n @for (input of group.children; track input) {\r\n @if (input.isVisible) {\r\n <div class=\"input__control__wrapper col relative\" [ngClass]=\"input.template | setTemplateClasses : ['row'] : [input.styleClass, group.inputStyleClass]\">\r\n <ng-container *ngTemplateOutlet=\"inputTemplate; context: { $implicit: input }\"></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #inputTemplate let-input>\r\n\r\n @if (input.type == controlTypes.PASSWORD) {\r\n <smz-input-password [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-password>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_MASK) {\r\n <smz-input-mask [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-mask>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT) {\r\n <smz-input-text [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-text>\r\n }\r\n\r\n @if (input.type == controlTypes.LIST) {\r\n <smz-input-list [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-list>\r\n }\r\n\r\n @if (input.type == controlTypes.NUMBER) {\r\n <smz-input-number [input]=\"input\" [form]=\"viewdata.form\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-number>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_AREA) {\r\n <smz-input-text-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-text-area>\r\n }\r\n\r\n @if (input.type == controlTypes.CONTENT_MASK) {\r\n <smz-input-content-mask [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-content-mask>\r\n }\r\n\r\n @if (input.type == controlTypes.TAG_AREA) {\r\n <input-tag-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></input-tag-area>\r\n }\r\n\r\n @if (input.type == controlTypes.AUTOCOMPLETE_TAG_AREA) {\r\n <smz-input-autocomplete-tag-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-autocomplete-tag-area>\r\n }\r\n\r\n @if (input.type == controlTypes.RADIO) {\r\n <smz-radio-button [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-radio-button>\r\n }\r\n\r\n @if (input.type == controlTypes.SWITCH) {\r\n <smz-input-switch [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-switch>\r\n }\r\n\r\n @if (input.type == controlTypes.CHECKBOX) {\r\n <smz-checkbox [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-checkbox>\r\n }\r\n\r\n @if (input.type == controlTypes.CHECKBOX_GROUP) {\r\n <smz-checkbox-group [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-checkbox-group>\r\n }\r\n\r\n @if (input.type == controlTypes.CALENDAR) {\r\n <smz-calendar [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-calendar>\r\n }\r\n\r\n @if (input.type == controlTypes.DROPDOWN) {\r\n <smz-dropdown [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-dropdown>\r\n }\r\n\r\n @if (input.type == controlTypes.LINKED_DROPDOWN) {\r\n <smz-linked-dropdown [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-linked-dropdown>\r\n }\r\n\r\n @if (input.type == controlTypes.FILE) {\r\n <smz-file-upload [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [form]=\"viewdata.form\" [behaviors]=\"config.behaviors\"></smz-file-upload>\r\n }\r\n\r\n @if (input.type == controlTypes.CURRENCY) {\r\n <smz-input-currency [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-currency>\r\n }\r\n\r\n @if (input.type == controlTypes.MULTI_SELECT) {\r\n <smz-multi-select [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-multi-select>\r\n }\r\n\r\n @if (input.type == controlTypes.LINKED_MULTISELECT) {\r\n <smz-linked-multi-select [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-linked-multi-select>\r\n }\r\n\r\n @if (input.type == controlTypes.COLOR_PICKER) {\r\n <smz-color-picker [input]=\"input\" [control]=\"$any(viewdata.form.controls[input.propertyName])\" [behaviors]=\"config.behaviors\"></smz-color-picker>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_BUTTON) {\r\n <smz-input-text-button [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [viewdata]=\"viewdata\" [behaviors]=\"config.behaviors\"></smz-input-text-button>\r\n }\r\n\r\n @if (input.type == controlTypes.TREE) {\r\n <smz-input-tree [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-input-tree>\r\n }\r\n\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CalendarComponent, selector: "smz-calendar", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: CheckBoxComponent, selector: "smz-checkbox", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: CheckBoxGroupComponent, selector: "smz-checkbox-group", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: ColorPickerComponent, selector: "smz-color-picker", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: DropdownComponent, selector: "smz-dropdown", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: FileUploadComponent, selector: "smz-file-upload", inputs: ["input", "form", "control", "behaviors"], outputs: ["selectChange"] }, { kind: "directive", type: FormFocusFirstInputDirective, selector: "[focusFirstInput]", inputs: ["focus"] }, { kind: "component", type: InputCurrencyComponent, selector: "smz-input-currency", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputListComponent, selector: "smz-input-list", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputMaskComponent, selector: "smz-input-mask", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputNumberComponent, selector: "smz-input-number", inputs: ["input", "control", "behaviors", "form"] }, { kind: "component", type: InputPasswordComponent, selector: "smz-input-password", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputSwitchComponent, selector: "smz-input-switch", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputTextAreaComponent, selector: "smz-input-text-area", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: SmzInputAutocompleteTagArea, selector: "smz-input-autocomplete-tag-area", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputTextComponent, selector: "smz-input-text", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputTreeComponent, selector: "smz-input-tree", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: LinkedDropdownComponent, selector: "smz-linked-dropdown", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: LinkedMultiSelectComponent, selector: "smz-linked-multi-select", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: MultiSelectComponent, selector: "smz-multi-select", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: RadioButtonComponent, selector: "smz-radio-button", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: InputTagAreaComponent, selector: "input-tag-area", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputContentMaskComponent, selector: "smz-input-content-mask", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputTextButtonComponent, selector: "smz-input-text-button", inputs: ["input", "control", "viewdata", "behaviors"] }, { kind: "pipe", type: SetTemplateClassesPipe, name: "setTemplateClasses" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6237
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: FormGroupComponent, deps: [{ token: i1$3.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }, { token: SmzFormsManagerService }, { token: SmzFormsRepositoryService }, { token: SmzFormValidationMessagesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6238
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: FormGroupComponent, isStandalone: false, selector: "smz-form-group", inputs: { config: "config" }, outputs: { statusChanges: "statusChanges", initialStateChanged: "initialStateChanged", previousStateChanged: "previousStateChanged", submit: "submit" }, providers: [SmzFormValidationMessagesService], usesOnChanges: true, ngImport: i0, template: "@if (config != null) {\r\n <div class=\"smz_form_grid_container\">\r\n @if (viewdata?.form != null && !configHasErrors) {\r\n <form focusFirstInput [focus]=\"!config.behaviors.avoidFocusOnLoad\" [formGroup]=\"viewdata.form\" class=\"smz_form__wrapper\" (submit)=\"$event.preventDefault()\" (keydown.enter)=\"onEnter($event)\">\r\n <ng-container *ngTemplateOutlet=\"groupTemplate\"></ng-container>\r\n </form>\r\n }\r\n @if (configHasErrors) {\r\n <div>Error</div>\r\n }\r\n </div>\r\n}\r\n\r\n<ng-template #groupTemplate>\r\n\r\n <div class=\"w-full px-0 mx-auto\">\r\n <div class=\"grid grid-nogutter flex-wrap items-start justify-start flex-gap-2\" [ngClass]=\"config.template | setTemplateClasses : ['horizontalAlignment', 'verticalAlignment']\">\r\n @for (group of config.groups; track group) {\r\n @if (!group.isHide) {\r\n <div class=\"col\" [ngClass]=\"group.template | setTemplateClasses : ['row']\">\r\n @if (group.showName) {\r\n <div class=\"smz__group_name\">{{ group.name }}</div>\r\n }\r\n <div [ngClass]=\"group.styleClass ?? 'grid grid-nogutter flex-wrap items-start justify-start flex-gap-2'\">\r\n @for (input of group.children; track input) {\r\n @if (input.isVisible) {\r\n <div class=\"input__control__wrapper col relative\" [ngClass]=\"input.template | setTemplateClasses : ['row'] : [input.styleClass, group.inputStyleClass]\">\r\n <ng-container *ngTemplateOutlet=\"inputTemplate; context: { $implicit: input }\"></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #inputTemplate let-input>\r\n\r\n @if (input.type == controlTypes.PASSWORD) {\r\n <smz-input-password [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-password>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_MASK) {\r\n <smz-input-mask [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-mask>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT) {\r\n <smz-input-text [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-text>\r\n }\r\n\r\n @if (input.type == controlTypes.LIST) {\r\n <smz-input-list [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-list>\r\n }\r\n\r\n @if (input.type == controlTypes.NUMBER) {\r\n <smz-input-number [input]=\"input\" [form]=\"viewdata.form\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-number>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_AREA) {\r\n <smz-input-text-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-text-area>\r\n }\r\n\r\n @if (input.type == controlTypes.CONTENT_MASK) {\r\n <smz-input-content-mask [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-content-mask>\r\n }\r\n\r\n @if (input.type == controlTypes.TAG_AREA) {\r\n <input-tag-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></input-tag-area>\r\n }\r\n\r\n @if (input.type == controlTypes.AUTOCOMPLETE_TAG_AREA) {\r\n <smz-input-autocomplete-tag-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-autocomplete-tag-area>\r\n }\r\n\r\n @if (input.type == controlTypes.RADIO) {\r\n <smz-radio-button [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-radio-button>\r\n }\r\n\r\n @if (input.type == controlTypes.SWITCH) {\r\n <smz-input-switch [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-switch>\r\n }\r\n\r\n @if (input.type == controlTypes.CHECKBOX) {\r\n <smz-checkbox [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-checkbox>\r\n }\r\n\r\n @if (input.type == controlTypes.CHECKBOX_GROUP) {\r\n <smz-checkbox-group [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-checkbox-group>\r\n }\r\n\r\n @if (input.type == controlTypes.CALENDAR) {\r\n <smz-calendar [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-calendar>\r\n }\r\n\r\n @if (input.type == controlTypes.DROPDOWN) {\r\n <smz-dropdown [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-dropdown>\r\n }\r\n\r\n @if (input.type == controlTypes.LINKED_DROPDOWN) {\r\n <smz-linked-dropdown [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-linked-dropdown>\r\n }\r\n\r\n @if (input.type == controlTypes.FILE) {\r\n <smz-file-upload [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [form]=\"viewdata.form\" [behaviors]=\"config.behaviors\"></smz-file-upload>\r\n }\r\n\r\n @if (input.type == controlTypes.CURRENCY) {\r\n <smz-input-currency [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-currency>\r\n }\r\n\r\n @if (input.type == controlTypes.MULTI_SELECT) {\r\n <smz-multi-select [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-multi-select>\r\n }\r\n\r\n @if (input.type == controlTypes.LINKED_MULTISELECT) {\r\n <smz-linked-multi-select [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-linked-multi-select>\r\n }\r\n\r\n @if (input.type == controlTypes.COLOR_PICKER) {\r\n <smz-color-picker [input]=\"input\" [control]=\"$any(viewdata.form.controls[input.propertyName])\" [behaviors]=\"config.behaviors\"></smz-color-picker>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_BUTTON) {\r\n <smz-input-text-button [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [viewdata]=\"viewdata\" [behaviors]=\"config.behaviors\"></smz-input-text-button>\r\n }\r\n\r\n @if (input.type == controlTypes.TREE) {\r\n <smz-input-tree [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-input-tree>\r\n }\r\n\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CalendarComponent, selector: "smz-calendar", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: CheckBoxComponent, selector: "smz-checkbox", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: CheckBoxGroupComponent, selector: "smz-checkbox-group", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: ColorPickerComponent, selector: "smz-color-picker", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: DropdownComponent, selector: "smz-dropdown", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: FileUploadComponent, selector: "smz-file-upload", inputs: ["input", "form", "control", "behaviors"], outputs: ["selectChange"] }, { kind: "directive", type: FormFocusFirstInputDirective, selector: "[focusFirstInput]", inputs: ["focus"] }, { kind: "component", type: InputCurrencyComponent, selector: "smz-input-currency", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputListComponent, selector: "smz-input-list", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputMaskComponent, selector: "smz-input-mask", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputNumberComponent, selector: "smz-input-number", inputs: ["input", "control", "behaviors", "form"] }, { kind: "component", type: InputPasswordComponent, selector: "smz-input-password", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputSwitchComponent, selector: "smz-input-switch", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputTextAreaComponent, selector: "smz-input-text-area", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: SmzInputAutocompleteTagArea, selector: "smz-input-autocomplete-tag-area", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputTextComponent, selector: "smz-input-text", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputTreeComponent, selector: "smz-input-tree", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: LinkedDropdownComponent, selector: "smz-linked-dropdown", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: LinkedMultiSelectComponent, selector: "smz-linked-multi-select", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: MultiSelectComponent, selector: "smz-multi-select", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: RadioButtonComponent, selector: "smz-radio-button", inputs: ["input", "formId", "control", "behaviors"] }, { kind: "component", type: InputTagAreaComponent, selector: "input-tag-area", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputContentMaskComponent, selector: "smz-input-content-mask", inputs: ["input", "control", "behaviors"] }, { kind: "component", type: InputTextButtonComponent, selector: "smz-input-text-button", inputs: ["input", "control", "viewdata", "behaviors"] }, { kind: "pipe", type: SetTemplateClassesPipe, name: "setTemplateClasses" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6566
6239
|
}
|
|
6567
6240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: FormGroupComponent, decorators: [{
|
|
6568
6241
|
type: Component,
|
|
6569
|
-
args: [{ selector: 'smz-form-group', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (config != null) {\r\n <div class=\"smz_form_grid_container\">\r\n @if (viewdata?.form != null && !configHasErrors) {\r\n <form focusFirstInput [focus]=\"!config.behaviors.avoidFocusOnLoad\" [formGroup]=\"viewdata.form\" class=\"smz_form__wrapper\" (submit)=\"$event.preventDefault()\" (keydown.enter)=\"onEnter($event)\">\r\n <ng-container *ngTemplateOutlet=\"groupTemplate\"></ng-container>\r\n </form>\r\n }\r\n @if (configHasErrors) {\r\n <div>Error</div>\r\n }\r\n </div>\r\n}\r\n\r\n<ng-template #groupTemplate>\r\n\r\n <div class=\"w-full px-0 mx-auto\">\r\n <div class=\"grid grid-nogutter flex-wrap items-start justify-start flex-gap-2\" [ngClass]=\"config.template | setTemplateClasses : ['horizontalAlignment', 'verticalAlignment']\">\r\n @for (group of config.groups; track group) {\r\n @if (!group.isHide) {\r\n <div class=\"col\" [ngClass]=\"group.template | setTemplateClasses : ['row']\">\r\n @if (group.showName) {\r\n <div class=\"smz__group_name\">{{ group.name }}</div>\r\n }\r\n <div [ngClass]=\"group.styleClass ?? 'grid grid-nogutter flex-wrap items-start justify-start flex-gap-2'\">\r\n @for (input of group.children; track input) {\r\n @if (input.isVisible) {\r\n <div class=\"input__control__wrapper col relative\" [ngClass]=\"input.template | setTemplateClasses : ['row'] : [input.styleClass, group.inputStyleClass]\">\r\n <ng-container *ngTemplateOutlet=\"inputTemplate; context: { $implicit: input }\"></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #inputTemplate let-input>\r\n\r\n @if (input.type == controlTypes.PASSWORD) {\r\n <smz-input-password [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-password>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_MASK) {\r\n <smz-input-mask [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-mask>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT) {\r\n <smz-input-text [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-text>\r\n }\r\n\r\n @if (input.type == controlTypes.LIST) {\r\n <smz-input-list [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-list>\r\n }\r\n\r\n @if (input.type == controlTypes.NUMBER) {\r\n <smz-input-number [input]=\"input\" [form]=\"viewdata.form\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-number>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_AREA) {\r\n <smz-input-text-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-text-area>\r\n }\r\n\r\n @if (input.type == controlTypes.CONTENT_MASK) {\r\n <smz-input-content-mask [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-content-mask>\r\n }\r\n\r\n @if (input.type == controlTypes.TAG_AREA) {\r\n <input-tag-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></input-tag-area>\r\n }\r\n\r\n @if (input.type == controlTypes.AUTOCOMPLETE_TAG_AREA) {\r\n <smz-input-autocomplete-tag-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-autocomplete-tag-area>\r\n }\r\n\r\n @if (input.type == controlTypes.RADIO) {\r\n <smz-radio-button [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-radio-button>\r\n }\r\n\r\n @if (input.type == controlTypes.SWITCH) {\r\n <smz-input-switch [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-switch>\r\n }\r\n\r\n @if (input.type == controlTypes.CHECKBOX) {\r\n <smz-checkbox [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-checkbox>\r\n }\r\n\r\n @if (input.type == controlTypes.CHECKBOX_GROUP) {\r\n <smz-checkbox-group [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-checkbox-group>\r\n }\r\n\r\n @if (input.type == controlTypes.CALENDAR) {\r\n <smz-calendar [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-calendar>\r\n }\r\n\r\n @if (input.type == controlTypes.DROPDOWN) {\r\n <smz-dropdown [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-dropdown>\r\n }\r\n\r\n @if (input.type == controlTypes.LINKED_DROPDOWN) {\r\n <smz-linked-dropdown [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-linked-dropdown>\r\n }\r\n\r\n @if (input.type == controlTypes.FILE) {\r\n <smz-file-upload [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [form]=\"viewdata.form\" [behaviors]=\"config.behaviors\"></smz-file-upload>\r\n }\r\n\r\n @if (input.type == controlTypes.CURRENCY) {\r\n <smz-input-currency [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-currency>\r\n }\r\n\r\n @if (input.type == controlTypes.MULTI_SELECT) {\r\n <smz-multi-select [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-multi-select>\r\n }\r\n\r\n @if (input.type == controlTypes.LINKED_MULTISELECT) {\r\n <smz-linked-multi-select [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-linked-multi-select>\r\n }\r\n\r\n @if (input.type == controlTypes.COLOR_PICKER) {\r\n <smz-color-picker [input]=\"input\" [control]=\"$any(viewdata.form.controls[input.propertyName])\" [behaviors]=\"config.behaviors\"></smz-color-picker>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_BUTTON) {\r\n <smz-input-text-button [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [viewdata]=\"viewdata\" [behaviors]=\"config.behaviors\"></smz-input-text-button>\r\n }\r\n\r\n @if (input.type == controlTypes.TREE) {\r\n <smz-input-tree [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-input-tree>\r\n }\r\n\r\n</ng-template>\r\n" }]
|
|
6570
|
-
}], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }, { type: SmzFormsManagerService }, { type: SmzFormsRepositoryService }], propDecorators: { config: [{
|
|
6242
|
+
args: [{ selector: 'smz-form-group', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [SmzFormValidationMessagesService], standalone: false, template: "@if (config != null) {\r\n <div class=\"smz_form_grid_container\">\r\n @if (viewdata?.form != null && !configHasErrors) {\r\n <form focusFirstInput [focus]=\"!config.behaviors.avoidFocusOnLoad\" [formGroup]=\"viewdata.form\" class=\"smz_form__wrapper\" (submit)=\"$event.preventDefault()\" (keydown.enter)=\"onEnter($event)\">\r\n <ng-container *ngTemplateOutlet=\"groupTemplate\"></ng-container>\r\n </form>\r\n }\r\n @if (configHasErrors) {\r\n <div>Error</div>\r\n }\r\n </div>\r\n}\r\n\r\n<ng-template #groupTemplate>\r\n\r\n <div class=\"w-full px-0 mx-auto\">\r\n <div class=\"grid grid-nogutter flex-wrap items-start justify-start flex-gap-2\" [ngClass]=\"config.template | setTemplateClasses : ['horizontalAlignment', 'verticalAlignment']\">\r\n @for (group of config.groups; track group) {\r\n @if (!group.isHide) {\r\n <div class=\"col\" [ngClass]=\"group.template | setTemplateClasses : ['row']\">\r\n @if (group.showName) {\r\n <div class=\"smz__group_name\">{{ group.name }}</div>\r\n }\r\n <div [ngClass]=\"group.styleClass ?? 'grid grid-nogutter flex-wrap items-start justify-start flex-gap-2'\">\r\n @for (input of group.children; track input) {\r\n @if (input.isVisible) {\r\n <div class=\"input__control__wrapper col relative\" [ngClass]=\"input.template | setTemplateClasses : ['row'] : [input.styleClass, group.inputStyleClass]\">\r\n <ng-container *ngTemplateOutlet=\"inputTemplate; context: { $implicit: input }\"></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #inputTemplate let-input>\r\n\r\n @if (input.type == controlTypes.PASSWORD) {\r\n <smz-input-password [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-password>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_MASK) {\r\n <smz-input-mask [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-mask>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT) {\r\n <smz-input-text [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-text>\r\n }\r\n\r\n @if (input.type == controlTypes.LIST) {\r\n <smz-input-list [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-list>\r\n }\r\n\r\n @if (input.type == controlTypes.NUMBER) {\r\n <smz-input-number [input]=\"input\" [form]=\"viewdata.form\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-number>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_AREA) {\r\n <smz-input-text-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-text-area>\r\n }\r\n\r\n @if (input.type == controlTypes.CONTENT_MASK) {\r\n <smz-input-content-mask [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-content-mask>\r\n }\r\n\r\n @if (input.type == controlTypes.TAG_AREA) {\r\n <input-tag-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></input-tag-area>\r\n }\r\n\r\n @if (input.type == controlTypes.AUTOCOMPLETE_TAG_AREA) {\r\n <smz-input-autocomplete-tag-area [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-autocomplete-tag-area>\r\n }\r\n\r\n @if (input.type == controlTypes.RADIO) {\r\n <smz-radio-button [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-radio-button>\r\n }\r\n\r\n @if (input.type == controlTypes.SWITCH) {\r\n <smz-input-switch [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-switch>\r\n }\r\n\r\n @if (input.type == controlTypes.CHECKBOX) {\r\n <smz-checkbox [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-checkbox>\r\n }\r\n\r\n @if (input.type == controlTypes.CHECKBOX_GROUP) {\r\n <smz-checkbox-group [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-checkbox-group>\r\n }\r\n\r\n @if (input.type == controlTypes.CALENDAR) {\r\n <smz-calendar [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-calendar>\r\n }\r\n\r\n @if (input.type == controlTypes.DROPDOWN) {\r\n <smz-dropdown [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-dropdown>\r\n }\r\n\r\n @if (input.type == controlTypes.LINKED_DROPDOWN) {\r\n <smz-linked-dropdown [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-linked-dropdown>\r\n }\r\n\r\n @if (input.type == controlTypes.FILE) {\r\n <smz-file-upload [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [form]=\"viewdata.form\" [behaviors]=\"config.behaviors\"></smz-file-upload>\r\n }\r\n\r\n @if (input.type == controlTypes.CURRENCY) {\r\n <smz-input-currency [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [behaviors]=\"config.behaviors\"></smz-input-currency>\r\n }\r\n\r\n @if (input.type == controlTypes.MULTI_SELECT) {\r\n <smz-multi-select [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-multi-select>\r\n }\r\n\r\n @if (input.type == controlTypes.LINKED_MULTISELECT) {\r\n <smz-linked-multi-select [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-linked-multi-select>\r\n }\r\n\r\n @if (input.type == controlTypes.COLOR_PICKER) {\r\n <smz-color-picker [input]=\"input\" [control]=\"$any(viewdata.form.controls[input.propertyName])\" [behaviors]=\"config.behaviors\"></smz-color-picker>\r\n }\r\n\r\n @if (input.type == controlTypes.TEXT_BUTTON) {\r\n <smz-input-text-button [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [viewdata]=\"viewdata\" [behaviors]=\"config.behaviors\"></smz-input-text-button>\r\n }\r\n\r\n @if (input.type == controlTypes.TREE) {\r\n <smz-input-tree [input]=\"input\" [control]=\"getFormControl(input.propertyName)\" [formId]=\"config.formId\" [behaviors]=\"config.behaviors\"></smz-input-tree>\r\n }\r\n\r\n</ng-template>\r\n" }]
|
|
6243
|
+
}], ctorParameters: () => [{ type: i1$3.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }, { type: SmzFormsManagerService }, { type: SmzFormsRepositoryService }, { type: SmzFormValidationMessagesService }], propDecorators: { config: [{
|
|
6571
6244
|
type: Input
|
|
6572
6245
|
}], statusChanges: [{
|
|
6573
6246
|
type: Output
|
|
@@ -7969,7 +7642,6 @@ class NgxSmzFormsModule {
|
|
|
7969
7642
|
MultiSelectComponent,
|
|
7970
7643
|
RadioButtonComponent,
|
|
7971
7644
|
ValidationMessagesComponent,
|
|
7972
|
-
ValidationMessagesPipe$1,
|
|
7973
7645
|
FileDragDropDirective,
|
|
7974
7646
|
FileNameShortenPipe,
|
|
7975
7647
|
InputTagAreaComponent,
|
|
@@ -8102,7 +7774,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
8102
7774
|
MultiSelectComponent,
|
|
8103
7775
|
RadioButtonComponent,
|
|
8104
7776
|
ValidationMessagesComponent,
|
|
8105
|
-
ValidationMessagesPipe$1,
|
|
8106
7777
|
FileDragDropDirective,
|
|
8107
7778
|
FileNameShortenPipe,
|
|
8108
7779
|
InputTagAreaComponent,
|
|
@@ -12276,7 +11947,7 @@ class TableHelperService {
|
|
|
12276
11947
|
return this.tables[key];
|
|
12277
11948
|
}
|
|
12278
11949
|
else {
|
|
12279
|
-
const resultCloned = cloneDeep
|
|
11950
|
+
const resultCloned = cloneDeep(result);
|
|
12280
11951
|
synchronizeTable(resultCloned, this.tables[key]);
|
|
12281
11952
|
this.tables[key] = resultCloned;
|
|
12282
11953
|
return this.tables[key];
|
|
@@ -17585,11 +17256,11 @@ class SmzTableComponent {
|
|
|
17585
17256
|
this.tableHelper.clear(this.tableKey);
|
|
17586
17257
|
}
|
|
17587
17258
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzTableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TableEditableService }, { token: TableFormsService }, { token: TableHelperService }, { token: i1$6.Store }, { token: SmzExcelService }], target: i0.ɵɵFactoryTarget.Component });
|
|
17588
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzTableComponent, isStandalone: false, selector: "smz-ui-table", inputs: { state: "state", items: "items", loading: "loading" }, outputs: { selectionChange: "selectionChange", filterChange: "filterChange", columnVisibilityChange: "columnVisibilityChange", create: "create", update: "update", delete: "delete" }, providers: [TableEditableService, TableFormsService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "table", first: true, predicate: ["dt"], descendants: true }, { propertyName: "columnMultiselect", first: true, predicate: ["columnMultiselect"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (state | tableContext; as context) {\r\n @if ((context.state.emptyFeedback != null && (context.state.emptyFeedback.extraInfo || context.state.emptyFeedback.image || context.state.emptyFeedback.actionButtons)) && (items != null && items.length === 0) && context.state.emptyFeedback.isFeatured) {\r\n <smz-data-info\r\n [image]=\"context.state.emptyFeedback.image\"\r\n [message]=\"context.state.emptyFeedback.message\"\r\n [callbackInfo]=\"context.state.emptyFeedback.extraInfo\"\r\n [actions]=\"context.state.emptyFeedback.actionButtons\">\r\n <ng-template pTemplate=\"actions\">\r\n <ng-container *ngTemplateOutlet=\"emptyActionsTemplate; context: { $implicit: {} }\"></ng-container>\r\n </ng-template>\r\n </smz-data-info>\r\n } @else {\r\n <ng-container *ngVar=\"state.source?.items$ != null ? (state.source.items$ | async) : null as observableSource\">\r\n <ng-container *ngVar=\"state.source?.signalItems != null ? state.source.signalItems() : null as signalSource\">\r\n @if (((observableSource ?? signalSource ?? items) | cloneTableItems : context: tableKey: context.state.rowExpansion.sincronize); as clonedData) {\r\n <p-table #dt\r\n dataKey=\"id\"\r\n editMode=\"row\"\r\n [stripedRows]=\"context.state.styles.striped\"\r\n [value]=\"clonedData.items\"\r\n [(selection)]=\"selectedItems\"\r\n [tableStyleClass]=\"context.state.styles.tableStyleClass\"\r\n [styleClass]=\"'p-datatable-smz-ui-table' + (context.state.styles.showGrid ? ' p-datatable-gridlines' : '') + (context.state.styles.size === 'extra-small' ? ' p-datatable-xs' : '') + (context.state.styles.size === 'small' ? ' p-datatable-sm' : '') + (context.state.styles.size === 'large' ? ' p-datatable-lg' : '')\"\r\n [rowHover]=\"context.state.actions.rowBehavior.hoverable\"\r\n [rows]=\"context.state.pagination.rows\"\r\n [showCurrentPageReport]=\"context.state.pagination.pageReport.isVisible\"\r\n [rowsPerPageOptions]=\"context.state.pagination.rowsPerPageOptions\"\r\n [loading]=\"loading\"\r\n [paginator]=\"context.state.pagination.isVisible\"\r\n paginatorDropdownAppendTo=\"body\"\r\n [currentPageReportTemplate]=\"context.state.locale.paginator.template\"\r\n [sortField]=\"context.state.sort.field\"\r\n [sortMode]=\"context.state.sort.mode\"\r\n [sortOrder]=\"context.state.sort.order\"\r\n [multiSortMeta]=\"context.state.sort.multiSortMeta\"\r\n [scrollable]=\"context.state.viewport.scrollable\"\r\n [scrollHeight]=\"context.state.viewport.scrollHeight\"\r\n [filterDelay]=\"0\"\r\n [globalFilterFields]=\"context.globalFilter\"\r\n [columns]=\"context.visibleColumns\"\r\n [frozenColumns]=\"context.frozenColumns\"\r\n [frozenWidth]=\"context.state.frozen.isEnabled ? context.state.frozen.width : null\"\r\n [resizableColumns]=\"context.state.viewport.resizableColumns\"\r\n [columnResizeMode]=\"context.state.viewport.columnResizeMode\"\r\n (onPage)=\"onPage($event)\"\r\n (onFilter)=\"onFilter($event)\"\r\n (selectionChange)=\"emitSelection($event)\"\r\n >\r\n @if (context.state.caption.isVisible) {\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"grid grid-nogutter items-center gap-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\r\n @if (context.state.caption.title != null) {\r\n <div class=\"col database-title\" [innerHTML]=\"context.state.caption.title\"></div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"captionTemplate; context: { $implicit: dt }\"></ng-container>\r\n <smz-table-caption-buttons [buttons]=\"context.state.caption.buttons\"></smz-table-caption-buttons>\r\n @if (context.state.caption.exportToPdf.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.exportToPdf.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-file-pdf\" (click)=\"exportToPdf(context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.exportToExcel.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.exportToExcel.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-file-excel\" (click)=\"exportToExcel(table, context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.editable.creation.isButtonVisible) {\r\n <button pButton [label]=\"context.state.editable.creation.buttonLabel\" class=\"p-button-outlined\" icon=\"fa-solid fa-plus\" (click)=\"editableService.onRowCreateInit(table, context.columns)\" [disabled]=\"clonedData.showSkeleton || editableService.isEditing || editableService.isCreating || context.state.editable.creation.isButtonDisabled\"></button>\r\n }\r\n @if (context.state.caption.rowSelection.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.rowSelection.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-check-double\" (click)=\"onRowSelection(context)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.clearFilters.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.clearFilters.label\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table, context)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.columnVisibility.showDropdownSelector) {\r\n <p-multiSelect\r\n #columnMultiselect\r\n class=\"ml-2 col-12 md:col-2\"\r\n styleClass=\"w-full\"\r\n [options]=\"context.hideableColumns\"\r\n [(ngModel)]=\"selectedColumns\"\r\n [placeholder]=\"context.state.locale.columnVisibility.placeholder\"\r\n [selectedItemsLabel]=\"context.state.locale.columnVisibility.selectedItemsLabel\"\r\n optionLabel=\"name\"\r\n dataKey=\"field\"\r\n optionLabel=\"header\"\r\n [filter]=\"true\"\r\n (onPanelHide)=\"updateColumnsVisibility(true)\"\r\n [pTooltip]=\"context.state.locale.columnVisibility.pTooltip\">\r\n </p-multiSelect>\r\n }\r\n @if (context.state.caption.globalFilter.isVisible) {\r\n <p-iconfield class=\"col-12\" [ngClass]=\"{ 'md:col-2': !context.state.caption.globalFilter.expanded }\">\r\n <p-inputicon styleClass=\"pi pi-search\" />\r\n <input #inputGlobal [(ngModel)]=\"globalSearchInput\" pInputText type=\"text\" styleClass=\"database-global-search\" (input)=\"updateGlobalFilter(inputGlobal.value)\" [disabled]=\"clonedData.showSkeleton\" [placeholder]=\"context.state.locale.globalFilter.placeholder\" />\r\n </p-iconfield>\r\n }\r\n </div>\r\n @if (toolbarTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center mt-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\r\n <ng-container *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n }\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr [ngClass]=\"{ 'invisible-header': !context.state.header.isVisible }\">\r\n @if (context.state.caption.rowSelection.isEnabled) {\r\n <th [ngStyle]=\"context.state.caption.rowSelection.ngStyle\">\r\n @if (!context.state.actions.batchActions.isVisible) {\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n }\r\n </th>\r\n }\r\n @if (context.state.rowExpansion.isEnabled) {\r\n <th [ngStyle]=\"context.state.rowExpansion.ngStyle\"></th>\r\n }\r\n @for (col of columns; track col) {\r\n @if (context.state.viewport.resizableColumns) {\r\n @if (col.isOrderable) {\r\n <th [pSortableColumn]=\"col.sortField\" pResizableColumn [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n @if (!col.isOrderable) {\r\n <th pResizableColumn [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n } @else {\r\n @if (col.isOrderable) {\r\n <th [pSortableColumn]=\"col.sortField\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n @if (!col.isOrderable) {\r\n <th [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n }\r\n <ng-template #headerContent>\r\n <div class=\"flex justify-start items-center\">\r\n <span class=\"mr-1\">{{ col.header }}</span>\r\n @if (col.showHeaderActions) {\r\n <smz-table-header-actions clickStopPropagation class=\"ml-1 mt-1\" [col]=\"col\"></smz-table-header-actions>\r\n }\r\n @if (!clonedData.showSkeleton && col.isOrderable) {\r\n <p-sortIcon [field]=\"col.sortField\"></p-sortIcon>\r\n }\r\n @if (!clonedData.showSkeleton) {\r\n @switch (col.filter.type) {\r\n @case (filterTypes.currency) {\r\n <smz-column-filter type=\"numeric\" currency=\"BRL\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.numeric) {\r\n <smz-column-filter type=\"numeric\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.date) {\r\n <smz-column-filter type=\"date\" [field]=\"col.filterField\" [showTime]=\"col.filter.showTime\"></smz-column-filter>\r\n }\r\n @case (filterTypes.text) {\r\n <smz-column-filter type=\"text\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.boolean) {\r\n <smz-column-filter type=\"boolean\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.dropdown) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField + '.id'\" matchMode=\"dropdown\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-select appendTo=\"body\" [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></p-select>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"in\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect_array) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"array-some\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : true\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect_string) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"multiselectByString\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField : filterField : null : true : false : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n }\r\n }\r\n @if (context.state.caption.columnVisibility.showColumnHideButton) {\r\n <button pButton type=\"button\" icon=\"fa-solid fa-eye-slash\" class=\"p-button-rounded p-button-text p-button-plain\" (click)=\"hideColumn(col, context)\"></button>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible|| context.state.editable.isEditable) {\r\n <th [ngStyle]=\"context.state.editable.isEditable ? context.state.editable.ngStyle : context.state.actions.customActions.ngStyle\"></th>\r\n }\r\n </tr>\r\n @if (context.state.actions.batchActions.isVisible) {\r\n <tr>\r\n <th [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\"\r\n [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\r\n <div class=\"grid grid-nogutter items-center justify-start\">\r\n <p-tableHeaderCheckbox class=\"mr-4\"></p-tableHeaderCheckbox>\r\n @if (selectedItems?.length > 0) {\r\n @for (batchItem of context.state.actions.batchActions.items; track batchItem) {\r\n @if (batchItem.visible) {\r\n <button pButton [label]=\"batchItem.label\" class=\"p-button-rounded p-button-text p-button-plain animate__animated animate__fadeIn\" [ngClass]=\"batchItem.styleClass\" [icon]=\"batchItem.icon\" (click)=\"batchItem.command(selectedItems); selectedItems = [];\" [disabled]=\"batchItem.disabled\" [pTooltip]=\"batchItem.tooltip\"></button>\r\n }\r\n }\r\n }\r\n </div>\r\n </th>\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item let-editing=\"editing\" let-rowIndex=\"rowIndex\" let-columns=\"columns\">\r\n <tr #editableRowElement\r\n [pEditableRow]=\"item\"\r\n tableItemAction\r\n [isClickable]=\"context.state.actions.rowBehavior.isClickable\"\r\n [callback]=\"context.state.actions.rowBehavior.clickCallback\"\r\n [expandRowOnClick]=\"context.state.actions.rowBehavior.expandRowOnClick\"\r\n [item]=\"item\"\r\n class=\"p-selectable-row\"\r\n [ngClass]=\"{ 'highlight-row': item?.id === state.actions.rowBehavior.highlights, 'preserve-in-small': state.actions.rowBehavior.preserveLayoutInSmallDevices }\"\r\n >\r\n @if (context.state.caption.rowSelection.isEnabled && !clonedData.showSkeleton) {\r\n <td\r\n clickStopPropagation\r\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\r\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\"\r\n [ngStyle]=\"context.state.caption.rowSelection.ngStyle\"\r\n >\r\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n </td>\r\n }\r\n @if (context.state.rowExpansion.isEnabled && !clonedData.showSkeleton) {\r\n <td\r\n clickStopPropagation\r\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\r\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading, 'grid grid-nogutter justify-start items-center gap-2': context.state.rowExpansion.highlightNewItems && item._isNew }\"\r\n [ngStyle]=\"context.state.rowExpansion.ngStyle\"\r\n >\r\n <p-toggleButton [(ngModel)]=\"item._isExpanded\" [onIcon]=\"'fa-solid fa-chevron-down'\" [offIcon]=\"'fa-solid fa-chevron-right'\" (onChange)=\"item._isNew = false\"></p-toggleButton>\r\n @if (context.state.rowExpansion.highlightNewItems && item._isNew) {\r\n <div class=\"rounded bg-cyan-400 text-sm text-white px-2 py-0 smz-table-new-tag\" (click)=\"item._isNew = false\">{{ context.state.rowExpansion.highlightLabel }}</div>\r\n }\r\n </td>\r\n }\r\n @for (col of columns; track col) {\r\n @if (clonedData.showSkeleton) {\r\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngStyle]=\"col.content.ngStyle\"><p-skeleton width=\"100%\" height=\"1rem\"></p-skeleton></td>\r\n } @else {\r\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\" [ngStyle]=\"col.content.ngStyle\">\r\n <span class=\"p-column-title\">{{ col.header }}</span>\r\n <p-cellEditor>\r\n <!-- CELULAR COM EDITOR -->\r\n <ng-template pTemplate=\"input\">\r\n @switch (col.editable.type) {\r\n @case (editableTypes.none) {\r\n <smz-table-content class=\"cursor-default\" [ngClass]=\"col.content.contentStyleClass\" [col]=\"col\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\"></smz-table-content>\r\n }\r\n @case (editableTypes.custom) {\r\n <ng-container *ngTemplateOutlet=\"editableTemplate; context: { $implicit: item, col: col }\"></ng-container>\r\n }\r\n <!-- INPUT TEXT -->\r\n @case (editableTypes.text) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <input pInputText type=\"text\" [formControl]=\"$any(control)\" style=\"width: 100%;\">\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT NUMBER -->\r\n @case (editableTypes.number) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-inputNumber\r\n *ngVar=\"col.editable.data as numberData\"\r\n [formControl]=\"$any(control)\"\r\n [mode]=\"numberData.mode\"\r\n [minFractionDigits]=\"numberData.minFractionDigits\"\r\n [maxFractionDigits]=\"numberData.maxFractionDigits\"\r\n [currency]=\"numberData.currency\"\r\n [useGrouping]=\"numberData.useGrouping\"\r\n [allowEmpty]=\"numberData.allowEmpty\"\r\n [showClear]=\"numberData.showClear\"\r\n [showButtons]=\"numberData.showButtons\"\r\n [prefix]=\"numberData.prefix\"\r\n [suffix]=\"numberData.suffix\">\r\n </p-inputNumber>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT SWITCH -->\r\n @case (editableTypes.switch) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-toggleswitch [formControl]=\"$any(control)\"></p-toggleswitch>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT TEXT AREA -->\r\n @case (editableTypes.area) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <textarea pInputTextarea type=\"text\" [formControl]=\"$any(control)\" [rows]=\"$any(col.editable.data).rows\" required style=\"width: 100%;\"></textarea>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT DROPDOWN -->\r\n @case (editableTypes.dropdown) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-select appendTo=\"body\" [formControl]=\"$any(control)\" styleClass=\"w-full\" [options]=\"col.editable.data | editableSource\" optionLabel=\"name\" dataKey=\"id\" [placeholder]=\"$any(col.editable.data).placeholder\" [showClear]=\"!col.editable.validatorsPreset?.isRequired\" [filter]=\"true\"></p-select>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT CALENDAR -->\r\n @case (editableTypes.calendar) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-datepicker [formControl]=\"$any(control)\" appendTo=\"body\" styleClass=\"w-full\" [ngClass]=\"{ 'pl-5': !control.valid }\"></p-datepicker>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n </ng-template>\r\n <!-- CELULAR COM CONTE\u00DADO -->\r\n <ng-template pTemplate=\"output\">\r\n <smz-table-content\r\n [col]=\"col\"\r\n [pTooltip]=\"col.content.tooltip != null ? col.content.tooltip(item) : null\"\r\n tooltipPosition=\"left\"\r\n [ngClass]=\"col.content.contentStyleClass\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\">\r\n </smz-table-content>\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n }\r\n }\r\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) {\r\n <td [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\r\n <div class=\"grid grid-nogutter items-center justify-center\">\r\n @if (clonedData.showSkeleton) {\r\n <div class=\"w-full\">\r\n <p-skeleton width=\"100%\" height=\"1rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <!-- SEM EDITAR -->\r\n @if (!editing) {\r\n @if (context.state.editable.update.isButtonVisible) {\r\n <button pButton type=\"button\" icon=\"pi pi-pencil\" (click)=\"editableService.onRowEditInit(item)\" class=\"p-button-rounded p-button-text mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.update.isButtonDisabled || (!context.state.editable.update.condition(item))\" pInitEditableRow></button>\r\n }\r\n @if (context.state.editable.remove.isButtonVisible) {\r\n <button pButton type=\"button\" icon=\"pi pi-trash\" (click)=\"editableService.onRowRemove($event, table, item)\" class=\"p-button-rounded p-button-text p-button-secondary mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.remove.isButtonDisabled || (!context.state.editable.remove.condition(item))\"></button>\r\n }\r\n }\r\n <!-- EDITANDO -->\r\n @if (editing) {\r\n @if (editableService.context[item.id]; as editableContext) {\r\n <!-- COM LOADING -->\r\n @if (editableContext.isLoading) {\r\n <button pButton type=\"button\" icon=\"fa-solid fa-rotate fa-spin\" [disabled]=\"true\" class=\"p-button-rounded p-button-text p-button-info mr-2\"></button>\r\n }\r\n <!-- SEM LOADING -->\r\n @if (!editableContext.isLoading) {\r\n <!-- EDITANDO -->\r\n @if (!editableContext.hasErrors) {\r\n <!-- CRIANDO -->\r\n @if (item._context?.isCreating) {\r\n <button pButton type=\"button\" icon=\"pi pi-check\" (click)=\"editableService.onRowCreateSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"p-button-rounded p-button-text p-button-success mr-2\"></button>\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" class=\"p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n <!-- ATUALIZANDO -->\r\n @if (item._context?.isUpdating) {\r\n <button pButton type=\"button\" icon=\"pi pi-check\" (click)=\"editableService.onRowEditSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"p-button-rounded p-button-text p-button-success mr-2\"></button>\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowEditCancel($event, table, item)\" class=\"p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n }\r\n <!-- COM ERRORS -->\r\n @if (editableContext.hasErrors) {\r\n <p-overlayPanel #errorsOverlay appendTo=\"body\" [style]=\"{ width: '450px' }\">\r\n <ng-template pTemplate>\r\n <div [innerHtml]=\"editableContext.errors | contentErrors\"></div>\r\n </ng-template>\r\n </p-overlayPanel>\r\n <button pButton type=\"button\" icon=\"fas fa-exclamation-triangle\" [disabled]=\"false\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger mr-2\" (click)=\"errorsOverlay.toggle($event)\"></button>\r\n <!-- CRIANDO -->\r\n @if (item._context?.isCreating) {\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n <!-- ATUALIZANDO -->\r\n @if (item._context?.isUpdating) {\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowEditCancel($event, table, item)\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n <!-- CUSTOM MENU -->\r\n @if (context.state.actions.customActions.isVisible && !editing) {\r\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: item }\"></ng-container>\r\n }\r\n <!-- MENU -->\r\n @if (context.state.actions.menu.isVisible && !editing) {\r\n <smz-menu [callback]=\"context.state.actions.menu.callback\" [items]=\"context.state.actions.menu.items\" [data]=\"item\" [behavior]=\"context.state.actions.menu.behavior\" [ngClass]=\"{ 'ml-2': context.state.actions.customActions.isVisible }\" [icon]=\"context.state.actions.menu.styles.icon\" [styleClass]=\"context.state.actions.menu.styles.styleClass\" [buttonClass]=\"context.state.actions.menu.styles.buttonClass\"></smz-menu>\r\n }\r\n }\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n @if (item?._isExpanded) {\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\">\r\n <ng-container *ngTemplateOutlet=\"rowContentTemplate; context: { $implicit: item }\"></ng-container>\r\n </td>\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\" [ngStyle]=\"{ 'text-align': 'center' }\">\r\n <div [innerHtml]=\"context.state.emptyFeedback.message\"></div>\r\n @if (context.state.caption.clearFilters.isButtonVisible && hasFilters()) {\r\n <button pButton [label]=\"context.state.locale.clearFilters.label\" class=\"p-button-outlined mt-3\" icon=\"pi pi-filter-slash\" (click)=\"clear(table, context)\"></button>\r\n }\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n }\r\n} @else {\r\n @if (emptyStateTemplate != null) {\r\n <ng-container *ngTemplateOutlet=\"emptyStateTemplate; context: { $implicit: {} }\"></ng-container>\r\n }\r\n}\r\n\r\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "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", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "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: i8.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i8.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i8.CellEditor, selector: "p-cellEditor" }, { kind: "component", type: i8.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i8.TableCheckbox, selector: "p-tableCheckbox", inputs: ["value", "disabled", "required", "index", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i8.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: i8.EditableRow, selector: "[pEditableRow]", inputs: ["pEditableRow", "pEditableRowDisabled"] }, { kind: "directive", type: i8.InitEditableRow, selector: "[pInitEditableRow]" }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: i3$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "styleClass", "panelStyle", "panelStyleClass", "inputId", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "dataKey", "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", "showClear", "autofocus", "placeholder", "options", "filterValue", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect", "size", "variant", "fluid", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "component", type: i4$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i1$2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "styleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "readonlyInput", "shortYearCutoff", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "minDate", "maxDate", "disabledDates", "disabledDays", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "view", "defaultDate", "appendTo", "motionOptions"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TableItemActionsDirective, selector: "[tableItemAction]", inputs: ["isClickable", "item", "callback", "expandRowOnClick"] }, { kind: "directive", type: ClickStopPropagationDirective, selector: "[clickStopPropagation]" }, { kind: "component", type: SmzDataInfoComponent, selector: "smz-data-info", inputs: ["image", "message", "actions", "callbackInfo", "callbackLabel"], outputs: ["clicked"] }, { kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: i19.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: i2$4.Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["pTextareaPT", "pTextareaUnstyled", "autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "component", type: OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "mousePosition", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$3.ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "component", type: i3$3.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "autocomplete", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: SmzMenuComponent, selector: "smz-menu", inputs: ["items", "callback", "data", "buttonClass", "styleClass", "icon", "behavior"] }, { kind: "component", type: i25.ToggleButton, selector: "p-toggleButton, p-togglebutton, p-toggle-button", inputs: ["onLabel", "offLabel", "onIcon", "offIcon", "ariaLabel", "ariaLabelledBy", "styleClass", "inputId", "tabindex", "iconPos", "autofocus", "size", "allowEmpty", "fluid"], outputs: ["onChange"] }, { kind: "directive", type: NgVar, selector: "[ngVar]", inputs: ["ngVar"] }, { kind: "component", type: i27.IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: i28.InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["hostName", "styleClass"] }, { kind: "component", type: SmzColumnFilterComponent, selector: "smz-column-filter", inputs: ["currency", "display", "field", "matchMode", "showAddButton", "showMatchModes", "showOperator", "type", "showTime"] }, { kind: "component", type: SmzTableValidationMessagesComponent, selector: "smz-table-validation-messages", inputs: ["errors", "messages", "isFormInvalid", "isFormDirty"] }, { kind: "component", type: SmzTableContentComponent, selector: "smz-table-content", inputs: ["col", "contentTypes", "item", "rowIndex", "contentTemplate"] }, { kind: "component", type: SmzTableCaptionButtonsComponent, selector: "smz-table-caption-buttons", inputs: ["buttons"] }, { kind: "component", type: SmzTableHeaderActionsComponent, selector: "smz-table-header-actions", inputs: ["col"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: UniqueFilterPipe, name: "uniqueFilter" }, { kind: "pipe", type: SmzTableContextPipe, name: "tableContext" }, { kind: "pipe", type: SmzFilterObjectPipe, name: "filterObject" }, { kind: "pipe", type: SmzCloneTableItemsPipe, name: "cloneTableItems" }, { kind: "pipe", type: SmzEditableSourcePipe, name: "editableSource" }, { kind: "pipe", type: SmzContentErrorsPipe, name: "contentErrors" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17259
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzTableComponent, isStandalone: false, selector: "smz-ui-table", inputs: { state: "state", items: "items", loading: "loading" }, outputs: { selectionChange: "selectionChange", filterChange: "filterChange", columnVisibilityChange: "columnVisibilityChange", create: "create", update: "update", delete: "delete" }, providers: [TableEditableService, TableFormsService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "table", first: true, predicate: ["dt"], descendants: true }, { propertyName: "columnMultiselect", first: true, predicate: ["columnMultiselect"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (state | tableContext; as context) {\r\n @if ((context.state.emptyFeedback != null && (context.state.emptyFeedback.extraInfo || context.state.emptyFeedback.image || context.state.emptyFeedback.actionButtons)) && (items != null && items.length === 0) && context.state.emptyFeedback.isFeatured) {\r\n <smz-data-info\r\n [image]=\"context.state.emptyFeedback.image\"\r\n [message]=\"context.state.emptyFeedback.message\"\r\n [callbackInfo]=\"context.state.emptyFeedback.extraInfo\"\r\n [actions]=\"context.state.emptyFeedback.actionButtons\">\r\n <ng-template pTemplate=\"actions\">\r\n <ng-container *ngTemplateOutlet=\"emptyActionsTemplate; context: { $implicit: {} }\"></ng-container>\r\n </ng-template>\r\n </smz-data-info>\r\n } @else {\r\n <ng-container *ngVar=\"state.source?.items$ != null ? (state.source.items$ | async) : null as observableSource\">\r\n <ng-container *ngVar=\"state.source?.signalItems != null ? state.source.signalItems() : null as signalSource\">\r\n @if (((observableSource ?? signalSource ?? items) | cloneTableItems : context: tableKey: context.state.rowExpansion.sincronize); as clonedData) {\r\n <p-table #dt\r\n dataKey=\"id\"\r\n editMode=\"row\"\r\n [stripedRows]=\"context.state.styles.striped\"\r\n [value]=\"clonedData.items\"\r\n [(selection)]=\"selectedItems\"\r\n [tableStyleClass]=\"context.state.styles.tableStyleClass\"\r\n [styleClass]=\"'p-datatable-smz-ui-table' + (context.state.styles.showGrid ? ' p-datatable-gridlines' : '') + (context.state.styles.size === 'extra-small' ? ' p-datatable-xs' : '') + (context.state.styles.size === 'small' ? ' p-datatable-sm' : '') + (context.state.styles.size === 'large' ? ' p-datatable-lg' : '')\"\r\n [rowHover]=\"context.state.actions.rowBehavior.hoverable\"\r\n [rows]=\"context.state.pagination.rows\"\r\n [showCurrentPageReport]=\"context.state.pagination.pageReport.isVisible\"\r\n [rowsPerPageOptions]=\"context.state.pagination.rowsPerPageOptions\"\r\n [loading]=\"loading\"\r\n [paginator]=\"context.state.pagination.isVisible\"\r\n paginatorDropdownAppendTo=\"body\"\r\n [currentPageReportTemplate]=\"context.state.locale.paginator.template\"\r\n [sortField]=\"context.state.sort.field\"\r\n [sortMode]=\"context.state.sort.mode\"\r\n [sortOrder]=\"context.state.sort.order\"\r\n [multiSortMeta]=\"context.state.sort.multiSortMeta\"\r\n [scrollable]=\"context.state.viewport.scrollable\"\r\n [scrollHeight]=\"context.state.viewport.scrollHeight\"\r\n [filterDelay]=\"0\"\r\n [globalFilterFields]=\"context.globalFilter\"\r\n [columns]=\"context.visibleColumns\"\r\n [frozenColumns]=\"context.frozenColumns\"\r\n [frozenWidth]=\"context.state.frozen.isEnabled ? context.state.frozen.width : null\"\r\n [resizableColumns]=\"context.state.viewport.resizableColumns\"\r\n [columnResizeMode]=\"context.state.viewport.columnResizeMode\"\r\n (onPage)=\"onPage($event)\"\r\n (onFilter)=\"onFilter($event)\"\r\n (selectionChange)=\"emitSelection($event)\"\r\n >\r\n @if (context.state.caption.isVisible) {\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"grid grid-nogutter items-center gap-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\r\n @if (context.state.caption.title != null) {\r\n <div class=\"col database-title\" [innerHTML]=\"context.state.caption.title\"></div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"captionTemplate; context: { $implicit: dt }\"></ng-container>\r\n <smz-table-caption-buttons [buttons]=\"context.state.caption.buttons\"></smz-table-caption-buttons>\r\n @if (context.state.caption.exportToPdf.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.exportToPdf.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-file-pdf\" (click)=\"exportToPdf(context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.exportToExcel.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.exportToExcel.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-file-excel\" (click)=\"exportToExcel(table, context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.editable.creation.isButtonVisible) {\r\n <button pButton [label]=\"context.state.editable.creation.buttonLabel\" class=\"p-button-outlined\" icon=\"fa-solid fa-plus\" (click)=\"editableService.onRowCreateInit(table, context.columns)\" [disabled]=\"clonedData.showSkeleton || editableService.isEditing || editableService.isCreating || context.state.editable.creation.isButtonDisabled\"></button>\r\n }\r\n @if (context.state.caption.rowSelection.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.rowSelection.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-check-double\" (click)=\"onRowSelection(context)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.clearFilters.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.clearFilters.label\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table, context)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.columnVisibility.showDropdownSelector) {\r\n <p-multiSelect\r\n #columnMultiselect\r\n class=\"ml-2 col-12 md:col-2\"\r\n styleClass=\"w-full\"\r\n [options]=\"context.hideableColumns\"\r\n [(ngModel)]=\"selectedColumns\"\r\n [placeholder]=\"context.state.locale.columnVisibility.placeholder\"\r\n [selectedItemsLabel]=\"context.state.locale.columnVisibility.selectedItemsLabel\"\r\n optionLabel=\"name\"\r\n dataKey=\"field\"\r\n optionLabel=\"header\"\r\n [filter]=\"true\"\r\n (onPanelHide)=\"updateColumnsVisibility(true)\"\r\n [pTooltip]=\"context.state.locale.columnVisibility.pTooltip\">\r\n </p-multiSelect>\r\n }\r\n @if (context.state.caption.globalFilter.isVisible) {\r\n <p-iconfield class=\"col-12\" [ngClass]=\"{ 'md:col-2': !context.state.caption.globalFilter.expanded }\">\r\n <p-inputicon styleClass=\"pi pi-search\" />\r\n <input #inputGlobal [(ngModel)]=\"globalSearchInput\" pInputText type=\"text\" styleClass=\"database-global-search\" (input)=\"updateGlobalFilter(inputGlobal.value)\" [disabled]=\"clonedData.showSkeleton\" [placeholder]=\"context.state.locale.globalFilter.placeholder\" />\r\n </p-iconfield>\r\n }\r\n </div>\r\n @if (toolbarTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center mt-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\r\n <ng-container *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n }\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr [ngClass]=\"{ 'invisible-header': !context.state.header.isVisible }\">\r\n @if (context.state.caption.rowSelection.isEnabled) {\r\n <th [ngStyle]=\"context.state.caption.rowSelection.ngStyle\">\r\n @if (!context.state.actions.batchActions.isVisible) {\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n }\r\n </th>\r\n }\r\n @if (context.state.rowExpansion.isEnabled) {\r\n <th [ngStyle]=\"context.state.rowExpansion.ngStyle\"></th>\r\n }\r\n @for (col of columns; track col) {\r\n @if (context.state.viewport.resizableColumns) {\r\n @if (col.isOrderable) {\r\n <th [pSortableColumn]=\"col.sortField\" pResizableColumn [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n @if (!col.isOrderable) {\r\n <th pResizableColumn [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n } @else {\r\n @if (col.isOrderable) {\r\n <th [pSortableColumn]=\"col.sortField\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n @if (!col.isOrderable) {\r\n <th [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n }\r\n <ng-template #headerContent>\r\n <div class=\"flex justify-start items-center\">\r\n <span class=\"mr-1\">{{ col.header }}</span>\r\n @if (col.showHeaderActions) {\r\n <smz-table-header-actions clickStopPropagation class=\"ml-1 mt-1\" [col]=\"col\"></smz-table-header-actions>\r\n }\r\n @if (!clonedData.showSkeleton && col.isOrderable) {\r\n <p-sortIcon [field]=\"col.sortField\"></p-sortIcon>\r\n }\r\n @if (!clonedData.showSkeleton) {\r\n @switch (col.filter.type) {\r\n @case (filterTypes.currency) {\r\n <smz-column-filter type=\"numeric\" currency=\"BRL\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.numeric) {\r\n <smz-column-filter type=\"numeric\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.date) {\r\n <smz-column-filter type=\"date\" [field]=\"col.filterField\" [showTime]=\"col.filter.showTime\"></smz-column-filter>\r\n }\r\n @case (filterTypes.text) {\r\n <smz-column-filter type=\"text\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.boolean) {\r\n <smz-column-filter type=\"boolean\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.dropdown) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField + '.id'\" matchMode=\"dropdown\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-select appendTo=\"body\" [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></p-select>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"in\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect_array) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"array-some\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : true\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect_string) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"multiselectByString\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField : filterField : null : true : false : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n }\r\n }\r\n @if (context.state.caption.columnVisibility.showColumnHideButton) {\r\n <button pButton type=\"button\" icon=\"fa-solid fa-eye-slash\" class=\"p-button-rounded p-button-text p-button-plain\" (click)=\"hideColumn(col, context)\"></button>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible|| context.state.editable.isEditable) {\r\n <th [ngStyle]=\"context.state.editable.isEditable ? context.state.editable.ngStyle : context.state.actions.customActions.ngStyle\"></th>\r\n }\r\n </tr>\r\n @if (context.state.actions.batchActions.isVisible) {\r\n <tr>\r\n <th [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\"\r\n [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\r\n <div class=\"grid grid-nogutter items-center justify-start\">\r\n <p-tableHeaderCheckbox class=\"mr-4\"></p-tableHeaderCheckbox>\r\n @if (selectedItems?.length > 0) {\r\n @for (batchItem of context.state.actions.batchActions.items; track batchItem) {\r\n @if (batchItem.visible) {\r\n <button pButton [label]=\"batchItem.label\" class=\"p-button-rounded p-button-text p-button-plain animate__animated animate__fadeIn\" [ngClass]=\"batchItem.styleClass\" [icon]=\"batchItem.icon\" (click)=\"batchItem.command(selectedItems); selectedItems = [];\" [disabled]=\"batchItem.disabled\" [pTooltip]=\"batchItem.tooltip\"></button>\r\n }\r\n }\r\n }\r\n </div>\r\n </th>\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item let-editing=\"editing\" let-rowIndex=\"rowIndex\" let-columns=\"columns\">\r\n <tr #editableRowElement\r\n [pEditableRow]=\"item\"\r\n tableItemAction\r\n [isClickable]=\"context.state.actions.rowBehavior.isClickable\"\r\n [callback]=\"context.state.actions.rowBehavior.clickCallback\"\r\n [expandRowOnClick]=\"context.state.actions.rowBehavior.expandRowOnClick\"\r\n [item]=\"item\"\r\n class=\"p-selectable-row\"\r\n [ngClass]=\"{ 'highlight-row': item?.id === state.actions.rowBehavior.highlights, 'preserve-in-small': state.actions.rowBehavior.preserveLayoutInSmallDevices }\"\r\n >\r\n @if (context.state.caption.rowSelection.isEnabled && !clonedData.showSkeleton) {\r\n <td\r\n clickStopPropagation\r\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\r\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\"\r\n [ngStyle]=\"context.state.caption.rowSelection.ngStyle\"\r\n >\r\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n </td>\r\n }\r\n @if (context.state.rowExpansion.isEnabled && !clonedData.showSkeleton) {\r\n <td\r\n clickStopPropagation\r\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\r\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading, 'grid grid-nogutter justify-start items-center gap-2': context.state.rowExpansion.highlightNewItems && item._isNew }\"\r\n [ngStyle]=\"context.state.rowExpansion.ngStyle\"\r\n >\r\n <p-toggleButton [(ngModel)]=\"item._isExpanded\" [onIcon]=\"'fa-solid fa-chevron-down'\" [offIcon]=\"'fa-solid fa-chevron-right'\" (onChange)=\"item._isNew = false\"></p-toggleButton>\r\n @if (context.state.rowExpansion.highlightNewItems && item._isNew) {\r\n <div class=\"rounded bg-cyan-400 text-sm text-white px-2 py-0 smz-table-new-tag\" (click)=\"item._isNew = false\">{{ context.state.rowExpansion.highlightLabel }}</div>\r\n }\r\n </td>\r\n }\r\n @for (col of columns; track col) {\r\n @if (clonedData.showSkeleton) {\r\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngStyle]=\"col.content.ngStyle\"><p-skeleton width=\"100%\" height=\"1rem\"></p-skeleton></td>\r\n } @else {\r\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\" [ngStyle]=\"col.content.ngStyle\">\r\n <span class=\"p-column-title\">{{ col.header }}</span>\r\n <p-cellEditor>\r\n <!-- CELULAR COM EDITOR -->\r\n <ng-template pTemplate=\"input\">\r\n @switch (col.editable.type) {\r\n @case (editableTypes.none) {\r\n <smz-table-content class=\"cursor-default\" [ngClass]=\"col.content.contentStyleClass\" [col]=\"col\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\"></smz-table-content>\r\n }\r\n @case (editableTypes.custom) {\r\n <ng-container *ngTemplateOutlet=\"editableTemplate; context: { $implicit: item, col: col }\"></ng-container>\r\n }\r\n <!-- INPUT TEXT -->\r\n @case (editableTypes.text) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <input pInputText type=\"text\" [formControl]=\"$any(control)\" style=\"width: 100%;\">\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT NUMBER -->\r\n @case (editableTypes.number) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-inputNumber\r\n *ngVar=\"col.editable.data as numberData\"\r\n [formControl]=\"$any(control)\"\r\n [mode]=\"numberData.mode\"\r\n [minFractionDigits]=\"numberData.minFractionDigits\"\r\n [maxFractionDigits]=\"numberData.maxFractionDigits\"\r\n [currency]=\"numberData.currency\"\r\n [useGrouping]=\"numberData.useGrouping\"\r\n [allowEmpty]=\"numberData.allowEmpty\"\r\n [showClear]=\"numberData.showClear\"\r\n [showButtons]=\"numberData.showButtons\"\r\n [prefix]=\"numberData.prefix\"\r\n [suffix]=\"numberData.suffix\">\r\n </p-inputNumber>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT SWITCH -->\r\n @case (editableTypes.switch) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-toggleswitch [formControl]=\"$any(control)\"></p-toggleswitch>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT TEXT AREA -->\r\n @case (editableTypes.area) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <textarea pInputTextarea type=\"text\" [formControl]=\"$any(control)\" [rows]=\"$any(col.editable.data).rows\" required style=\"width: 100%;\"></textarea>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT DROPDOWN -->\r\n @case (editableTypes.dropdown) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-select appendTo=\"body\" [formControl]=\"$any(control)\" styleClass=\"w-full\" [options]=\"col.editable.data | editableSource\" optionLabel=\"name\" dataKey=\"id\" [placeholder]=\"$any(col.editable.data).placeholder\" [showClear]=\"!col.editable.validatorsPreset?.isRequired\" [filter]=\"true\"></p-select>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT CALENDAR -->\r\n @case (editableTypes.calendar) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-datepicker [formControl]=\"$any(control)\" appendTo=\"body\" styleClass=\"w-full\" [ngClass]=\"{ 'pl-5': !control.valid }\"></p-datepicker>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n </ng-template>\r\n <!-- CELULAR COM CONTE\u00DADO -->\r\n <ng-template pTemplate=\"output\">\r\n <smz-table-content\r\n [col]=\"col\"\r\n [pTooltip]=\"col.content.tooltip != null ? col.content.tooltip(item) : null\"\r\n tooltipPosition=\"left\"\r\n [ngClass]=\"col.content.contentStyleClass\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\">\r\n </smz-table-content>\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n }\r\n }\r\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) {\r\n <td [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\r\n <div class=\"grid grid-nogutter items-center justify-center\">\r\n @if (clonedData.showSkeleton) {\r\n <div class=\"w-full\">\r\n <p-skeleton width=\"100%\" height=\"1rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <!-- SEM EDITAR -->\r\n @if (!editing) {\r\n @if (context.state.editable.update.isButtonVisible) {\r\n <button pButton type=\"button\" icon=\"pi pi-pencil\" (click)=\"editableService.onRowEditInit(item)\" class=\"p-button-rounded p-button-text mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.update.isButtonDisabled || (!context.state.editable.update.condition(item))\" pInitEditableRow></button>\r\n }\r\n @if (context.state.editable.remove.isButtonVisible) {\r\n <button pButton type=\"button\" icon=\"pi pi-trash\" (click)=\"editableService.onRowRemove($event, table, item)\" class=\"p-button-rounded p-button-text p-button-secondary mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.remove.isButtonDisabled || (!context.state.editable.remove.condition(item))\"></button>\r\n }\r\n }\r\n <!-- EDITANDO -->\r\n @if (editing) {\r\n @if (editableService.context[item.id]; as editableContext) {\r\n <!-- COM LOADING -->\r\n @if (editableContext.isLoading) {\r\n <button pButton type=\"button\" icon=\"fa-solid fa-rotate fa-spin\" [disabled]=\"true\" class=\"p-button-rounded p-button-text p-button-info mr-2\"></button>\r\n }\r\n <!-- SEM LOADING -->\r\n @if (!editableContext.isLoading) {\r\n <!-- EDITANDO -->\r\n @if (!editableContext.hasErrors) {\r\n <!-- CRIANDO -->\r\n @if (item._context?.isCreating) {\r\n <button pButton type=\"button\" icon=\"pi pi-check\" (click)=\"editableService.onRowCreateSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"p-button-rounded p-button-text p-button-success mr-2\"></button>\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" class=\"p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n <!-- ATUALIZANDO -->\r\n @if (item._context?.isUpdating) {\r\n <button pButton type=\"button\" icon=\"pi pi-check\" (click)=\"editableService.onRowEditSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"p-button-rounded p-button-text p-button-success mr-2\"></button>\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowEditCancel($event, table, item)\" class=\"p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n }\r\n <!-- COM ERRORS -->\r\n @if (editableContext.hasErrors) {\r\n <p-popover #errorsOverlay appendTo=\"body\" [style]=\"{ width: '450px' }\">\r\n <div [innerHtml]=\"editableContext.errors | contentErrors\"></div>\r\n </p-popover>\r\n <button pButton type=\"button\" icon=\"fas fa-exclamation-triangle\" [disabled]=\"false\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger mr-2\" (click)=\"errorsOverlay.toggle($event)\"></button>\r\n <!-- CRIANDO -->\r\n @if (item._context?.isCreating) {\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n <!-- ATUALIZANDO -->\r\n @if (item._context?.isUpdating) {\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowEditCancel($event, table, item)\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n <!-- CUSTOM MENU -->\r\n @if (context.state.actions.customActions.isVisible && !editing) {\r\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: item }\"></ng-container>\r\n }\r\n <!-- MENU -->\r\n @if (context.state.actions.menu.isVisible && !editing) {\r\n <smz-menu [callback]=\"context.state.actions.menu.callback\" [items]=\"context.state.actions.menu.items\" [data]=\"item\" [behavior]=\"context.state.actions.menu.behavior\" [ngClass]=\"{ 'ml-2': context.state.actions.customActions.isVisible }\" [icon]=\"context.state.actions.menu.styles.icon\" [styleClass]=\"context.state.actions.menu.styles.styleClass\" [buttonClass]=\"context.state.actions.menu.styles.buttonClass\"></smz-menu>\r\n }\r\n }\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n @if (item?._isExpanded) {\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\">\r\n <ng-container *ngTemplateOutlet=\"rowContentTemplate; context: { $implicit: item }\"></ng-container>\r\n </td>\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\" [ngStyle]=\"{ 'text-align': 'center' }\">\r\n <div [innerHtml]=\"context.state.emptyFeedback.message\"></div>\r\n @if (context.state.caption.clearFilters.isButtonVisible && hasFilters()) {\r\n <button pButton [label]=\"context.state.locale.clearFilters.label\" class=\"p-button-outlined mt-3\" icon=\"pi pi-filter-slash\" (click)=\"clear(table, context)\"></button>\r\n }\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n }\r\n} @else {\r\n @if (emptyStateTemplate != null) {\r\n <ng-container *ngTemplateOutlet=\"emptyStateTemplate; context: { $implicit: {} }\"></ng-container>\r\n }\r\n}\r\n\r\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "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", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "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: i8.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i8.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i8.CellEditor, selector: "p-cellEditor" }, { kind: "component", type: i8.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i8.TableCheckbox, selector: "p-tableCheckbox", inputs: ["value", "disabled", "required", "index", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i8.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: i8.EditableRow, selector: "[pEditableRow]", inputs: ["pEditableRow", "pEditableRowDisabled"] }, { kind: "directive", type: i8.InitEditableRow, selector: "[pInitEditableRow]" }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: i3$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "styleClass", "panelStyle", "panelStyleClass", "inputId", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "dataKey", "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", "showClear", "autofocus", "placeholder", "options", "filterValue", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect", "size", "variant", "fluid", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "component", type: i4$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i1$2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "styleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "readonlyInput", "shortYearCutoff", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "minDate", "maxDate", "disabledDates", "disabledDays", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "view", "defaultDate", "appendTo", "motionOptions"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TableItemActionsDirective, selector: "[tableItemAction]", inputs: ["isClickable", "item", "callback", "expandRowOnClick"] }, { kind: "directive", type: ClickStopPropagationDirective, selector: "[clickStopPropagation]" }, { kind: "component", type: SmzDataInfoComponent, selector: "smz-data-info", inputs: ["image", "message", "actions", "callbackInfo", "callbackLabel"], outputs: ["clicked"] }, { kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: i19.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: i2$4.Textarea, selector: "[pTextarea], [pInputTextarea]", inputs: ["pTextareaPT", "pTextareaUnstyled", "autoResize", "pSize", "variant", "fluid", "invalid"], outputs: ["onResize"] }, { kind: "component", type: i3.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$3.ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "component", type: i3$3.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "placeholder", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "autocomplete", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: SmzMenuComponent, selector: "smz-menu", inputs: ["items", "callback", "data", "buttonClass", "styleClass", "icon", "behavior"] }, { kind: "component", type: i25.ToggleButton, selector: "p-toggleButton, p-togglebutton, p-toggle-button", inputs: ["onLabel", "offLabel", "onIcon", "offIcon", "ariaLabel", "ariaLabelledBy", "styleClass", "inputId", "tabindex", "iconPos", "autofocus", "size", "allowEmpty", "fluid"], outputs: ["onChange"] }, { kind: "directive", type: NgVar, selector: "[ngVar]", inputs: ["ngVar"] }, { kind: "component", type: i27.IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: i28.InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["hostName", "styleClass"] }, { kind: "component", type: SmzColumnFilterComponent, selector: "smz-column-filter", inputs: ["currency", "display", "field", "matchMode", "showAddButton", "showMatchModes", "showOperator", "type", "showTime"] }, { kind: "component", type: SmzTableValidationMessagesComponent, selector: "smz-table-validation-messages", inputs: ["errors", "messages", "isFormInvalid", "isFormDirty"] }, { kind: "component", type: SmzTableContentComponent, selector: "smz-table-content", inputs: ["col", "contentTypes", "item", "rowIndex", "contentTemplate"] }, { kind: "component", type: SmzTableCaptionButtonsComponent, selector: "smz-table-caption-buttons", inputs: ["buttons"] }, { kind: "component", type: SmzTableHeaderActionsComponent, selector: "smz-table-header-actions", inputs: ["col"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: UniqueFilterPipe, name: "uniqueFilter" }, { kind: "pipe", type: SmzTableContextPipe, name: "tableContext" }, { kind: "pipe", type: SmzFilterObjectPipe, name: "filterObject" }, { kind: "pipe", type: SmzCloneTableItemsPipe, name: "cloneTableItems" }, { kind: "pipe", type: SmzEditableSourcePipe, name: "editableSource" }, { kind: "pipe", type: SmzContentErrorsPipe, name: "contentErrors" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17589
17260
|
}
|
|
17590
17261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzTableComponent, decorators: [{
|
|
17591
17262
|
type: Component,
|
|
17592
|
-
args: [{ selector: 'smz-ui-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableEditableService, TableFormsService], standalone: false, template: "@if (state | tableContext; as context) {\r\n @if ((context.state.emptyFeedback != null && (context.state.emptyFeedback.extraInfo || context.state.emptyFeedback.image || context.state.emptyFeedback.actionButtons)) && (items != null && items.length === 0) && context.state.emptyFeedback.isFeatured) {\r\n <smz-data-info\r\n [image]=\"context.state.emptyFeedback.image\"\r\n [message]=\"context.state.emptyFeedback.message\"\r\n [callbackInfo]=\"context.state.emptyFeedback.extraInfo\"\r\n [actions]=\"context.state.emptyFeedback.actionButtons\">\r\n <ng-template pTemplate=\"actions\">\r\n <ng-container *ngTemplateOutlet=\"emptyActionsTemplate; context: { $implicit: {} }\"></ng-container>\r\n </ng-template>\r\n </smz-data-info>\r\n } @else {\r\n <ng-container *ngVar=\"state.source?.items$ != null ? (state.source.items$ | async) : null as observableSource\">\r\n <ng-container *ngVar=\"state.source?.signalItems != null ? state.source.signalItems() : null as signalSource\">\r\n @if (((observableSource ?? signalSource ?? items) | cloneTableItems : context: tableKey: context.state.rowExpansion.sincronize); as clonedData) {\r\n <p-table #dt\r\n dataKey=\"id\"\r\n editMode=\"row\"\r\n [stripedRows]=\"context.state.styles.striped\"\r\n [value]=\"clonedData.items\"\r\n [(selection)]=\"selectedItems\"\r\n [tableStyleClass]=\"context.state.styles.tableStyleClass\"\r\n [styleClass]=\"'p-datatable-smz-ui-table' + (context.state.styles.showGrid ? ' p-datatable-gridlines' : '') + (context.state.styles.size === 'extra-small' ? ' p-datatable-xs' : '') + (context.state.styles.size === 'small' ? ' p-datatable-sm' : '') + (context.state.styles.size === 'large' ? ' p-datatable-lg' : '')\"\r\n [rowHover]=\"context.state.actions.rowBehavior.hoverable\"\r\n [rows]=\"context.state.pagination.rows\"\r\n [showCurrentPageReport]=\"context.state.pagination.pageReport.isVisible\"\r\n [rowsPerPageOptions]=\"context.state.pagination.rowsPerPageOptions\"\r\n [loading]=\"loading\"\r\n [paginator]=\"context.state.pagination.isVisible\"\r\n paginatorDropdownAppendTo=\"body\"\r\n [currentPageReportTemplate]=\"context.state.locale.paginator.template\"\r\n [sortField]=\"context.state.sort.field\"\r\n [sortMode]=\"context.state.sort.mode\"\r\n [sortOrder]=\"context.state.sort.order\"\r\n [multiSortMeta]=\"context.state.sort.multiSortMeta\"\r\n [scrollable]=\"context.state.viewport.scrollable\"\r\n [scrollHeight]=\"context.state.viewport.scrollHeight\"\r\n [filterDelay]=\"0\"\r\n [globalFilterFields]=\"context.globalFilter\"\r\n [columns]=\"context.visibleColumns\"\r\n [frozenColumns]=\"context.frozenColumns\"\r\n [frozenWidth]=\"context.state.frozen.isEnabled ? context.state.frozen.width : null\"\r\n [resizableColumns]=\"context.state.viewport.resizableColumns\"\r\n [columnResizeMode]=\"context.state.viewport.columnResizeMode\"\r\n (onPage)=\"onPage($event)\"\r\n (onFilter)=\"onFilter($event)\"\r\n (selectionChange)=\"emitSelection($event)\"\r\n >\r\n @if (context.state.caption.isVisible) {\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"grid grid-nogutter items-center gap-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\r\n @if (context.state.caption.title != null) {\r\n <div class=\"col database-title\" [innerHTML]=\"context.state.caption.title\"></div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"captionTemplate; context: { $implicit: dt }\"></ng-container>\r\n <smz-table-caption-buttons [buttons]=\"context.state.caption.buttons\"></smz-table-caption-buttons>\r\n @if (context.state.caption.exportToPdf.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.exportToPdf.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-file-pdf\" (click)=\"exportToPdf(context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.exportToExcel.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.exportToExcel.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-file-excel\" (click)=\"exportToExcel(table, context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.editable.creation.isButtonVisible) {\r\n <button pButton [label]=\"context.state.editable.creation.buttonLabel\" class=\"p-button-outlined\" icon=\"fa-solid fa-plus\" (click)=\"editableService.onRowCreateInit(table, context.columns)\" [disabled]=\"clonedData.showSkeleton || editableService.isEditing || editableService.isCreating || context.state.editable.creation.isButtonDisabled\"></button>\r\n }\r\n @if (context.state.caption.rowSelection.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.rowSelection.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-check-double\" (click)=\"onRowSelection(context)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.clearFilters.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.clearFilters.label\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table, context)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.columnVisibility.showDropdownSelector) {\r\n <p-multiSelect\r\n #columnMultiselect\r\n class=\"ml-2 col-12 md:col-2\"\r\n styleClass=\"w-full\"\r\n [options]=\"context.hideableColumns\"\r\n [(ngModel)]=\"selectedColumns\"\r\n [placeholder]=\"context.state.locale.columnVisibility.placeholder\"\r\n [selectedItemsLabel]=\"context.state.locale.columnVisibility.selectedItemsLabel\"\r\n optionLabel=\"name\"\r\n dataKey=\"field\"\r\n optionLabel=\"header\"\r\n [filter]=\"true\"\r\n (onPanelHide)=\"updateColumnsVisibility(true)\"\r\n [pTooltip]=\"context.state.locale.columnVisibility.pTooltip\">\r\n </p-multiSelect>\r\n }\r\n @if (context.state.caption.globalFilter.isVisible) {\r\n <p-iconfield class=\"col-12\" [ngClass]=\"{ 'md:col-2': !context.state.caption.globalFilter.expanded }\">\r\n <p-inputicon styleClass=\"pi pi-search\" />\r\n <input #inputGlobal [(ngModel)]=\"globalSearchInput\" pInputText type=\"text\" styleClass=\"database-global-search\" (input)=\"updateGlobalFilter(inputGlobal.value)\" [disabled]=\"clonedData.showSkeleton\" [placeholder]=\"context.state.locale.globalFilter.placeholder\" />\r\n </p-iconfield>\r\n }\r\n </div>\r\n @if (toolbarTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center mt-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\r\n <ng-container *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n }\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr [ngClass]=\"{ 'invisible-header': !context.state.header.isVisible }\">\r\n @if (context.state.caption.rowSelection.isEnabled) {\r\n <th [ngStyle]=\"context.state.caption.rowSelection.ngStyle\">\r\n @if (!context.state.actions.batchActions.isVisible) {\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n }\r\n </th>\r\n }\r\n @if (context.state.rowExpansion.isEnabled) {\r\n <th [ngStyle]=\"context.state.rowExpansion.ngStyle\"></th>\r\n }\r\n @for (col of columns; track col) {\r\n @if (context.state.viewport.resizableColumns) {\r\n @if (col.isOrderable) {\r\n <th [pSortableColumn]=\"col.sortField\" pResizableColumn [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n @if (!col.isOrderable) {\r\n <th pResizableColumn [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n } @else {\r\n @if (col.isOrderable) {\r\n <th [pSortableColumn]=\"col.sortField\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n @if (!col.isOrderable) {\r\n <th [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n }\r\n <ng-template #headerContent>\r\n <div class=\"flex justify-start items-center\">\r\n <span class=\"mr-1\">{{ col.header }}</span>\r\n @if (col.showHeaderActions) {\r\n <smz-table-header-actions clickStopPropagation class=\"ml-1 mt-1\" [col]=\"col\"></smz-table-header-actions>\r\n }\r\n @if (!clonedData.showSkeleton && col.isOrderable) {\r\n <p-sortIcon [field]=\"col.sortField\"></p-sortIcon>\r\n }\r\n @if (!clonedData.showSkeleton) {\r\n @switch (col.filter.type) {\r\n @case (filterTypes.currency) {\r\n <smz-column-filter type=\"numeric\" currency=\"BRL\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.numeric) {\r\n <smz-column-filter type=\"numeric\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.date) {\r\n <smz-column-filter type=\"date\" [field]=\"col.filterField\" [showTime]=\"col.filter.showTime\"></smz-column-filter>\r\n }\r\n @case (filterTypes.text) {\r\n <smz-column-filter type=\"text\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.boolean) {\r\n <smz-column-filter type=\"boolean\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.dropdown) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField + '.id'\" matchMode=\"dropdown\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-select appendTo=\"body\" [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></p-select>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"in\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect_array) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"array-some\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : true\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect_string) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"multiselectByString\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField : filterField : null : true : false : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n }\r\n }\r\n @if (context.state.caption.columnVisibility.showColumnHideButton) {\r\n <button pButton type=\"button\" icon=\"fa-solid fa-eye-slash\" class=\"p-button-rounded p-button-text p-button-plain\" (click)=\"hideColumn(col, context)\"></button>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible|| context.state.editable.isEditable) {\r\n <th [ngStyle]=\"context.state.editable.isEditable ? context.state.editable.ngStyle : context.state.actions.customActions.ngStyle\"></th>\r\n }\r\n </tr>\r\n @if (context.state.actions.batchActions.isVisible) {\r\n <tr>\r\n <th [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\"\r\n [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\r\n <div class=\"grid grid-nogutter items-center justify-start\">\r\n <p-tableHeaderCheckbox class=\"mr-4\"></p-tableHeaderCheckbox>\r\n @if (selectedItems?.length > 0) {\r\n @for (batchItem of context.state.actions.batchActions.items; track batchItem) {\r\n @if (batchItem.visible) {\r\n <button pButton [label]=\"batchItem.label\" class=\"p-button-rounded p-button-text p-button-plain animate__animated animate__fadeIn\" [ngClass]=\"batchItem.styleClass\" [icon]=\"batchItem.icon\" (click)=\"batchItem.command(selectedItems); selectedItems = [];\" [disabled]=\"batchItem.disabled\" [pTooltip]=\"batchItem.tooltip\"></button>\r\n }\r\n }\r\n }\r\n </div>\r\n </th>\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item let-editing=\"editing\" let-rowIndex=\"rowIndex\" let-columns=\"columns\">\r\n <tr #editableRowElement\r\n [pEditableRow]=\"item\"\r\n tableItemAction\r\n [isClickable]=\"context.state.actions.rowBehavior.isClickable\"\r\n [callback]=\"context.state.actions.rowBehavior.clickCallback\"\r\n [expandRowOnClick]=\"context.state.actions.rowBehavior.expandRowOnClick\"\r\n [item]=\"item\"\r\n class=\"p-selectable-row\"\r\n [ngClass]=\"{ 'highlight-row': item?.id === state.actions.rowBehavior.highlights, 'preserve-in-small': state.actions.rowBehavior.preserveLayoutInSmallDevices }\"\r\n >\r\n @if (context.state.caption.rowSelection.isEnabled && !clonedData.showSkeleton) {\r\n <td\r\n clickStopPropagation\r\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\r\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\"\r\n [ngStyle]=\"context.state.caption.rowSelection.ngStyle\"\r\n >\r\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n </td>\r\n }\r\n @if (context.state.rowExpansion.isEnabled && !clonedData.showSkeleton) {\r\n <td\r\n clickStopPropagation\r\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\r\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading, 'grid grid-nogutter justify-start items-center gap-2': context.state.rowExpansion.highlightNewItems && item._isNew }\"\r\n [ngStyle]=\"context.state.rowExpansion.ngStyle\"\r\n >\r\n <p-toggleButton [(ngModel)]=\"item._isExpanded\" [onIcon]=\"'fa-solid fa-chevron-down'\" [offIcon]=\"'fa-solid fa-chevron-right'\" (onChange)=\"item._isNew = false\"></p-toggleButton>\r\n @if (context.state.rowExpansion.highlightNewItems && item._isNew) {\r\n <div class=\"rounded bg-cyan-400 text-sm text-white px-2 py-0 smz-table-new-tag\" (click)=\"item._isNew = false\">{{ context.state.rowExpansion.highlightLabel }}</div>\r\n }\r\n </td>\r\n }\r\n @for (col of columns; track col) {\r\n @if (clonedData.showSkeleton) {\r\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngStyle]=\"col.content.ngStyle\"><p-skeleton width=\"100%\" height=\"1rem\"></p-skeleton></td>\r\n } @else {\r\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\" [ngStyle]=\"col.content.ngStyle\">\r\n <span class=\"p-column-title\">{{ col.header }}</span>\r\n <p-cellEditor>\r\n <!-- CELULAR COM EDITOR -->\r\n <ng-template pTemplate=\"input\">\r\n @switch (col.editable.type) {\r\n @case (editableTypes.none) {\r\n <smz-table-content class=\"cursor-default\" [ngClass]=\"col.content.contentStyleClass\" [col]=\"col\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\"></smz-table-content>\r\n }\r\n @case (editableTypes.custom) {\r\n <ng-container *ngTemplateOutlet=\"editableTemplate; context: { $implicit: item, col: col }\"></ng-container>\r\n }\r\n <!-- INPUT TEXT -->\r\n @case (editableTypes.text) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <input pInputText type=\"text\" [formControl]=\"$any(control)\" style=\"width: 100%;\">\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT NUMBER -->\r\n @case (editableTypes.number) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-inputNumber\r\n *ngVar=\"col.editable.data as numberData\"\r\n [formControl]=\"$any(control)\"\r\n [mode]=\"numberData.mode\"\r\n [minFractionDigits]=\"numberData.minFractionDigits\"\r\n [maxFractionDigits]=\"numberData.maxFractionDigits\"\r\n [currency]=\"numberData.currency\"\r\n [useGrouping]=\"numberData.useGrouping\"\r\n [allowEmpty]=\"numberData.allowEmpty\"\r\n [showClear]=\"numberData.showClear\"\r\n [showButtons]=\"numberData.showButtons\"\r\n [prefix]=\"numberData.prefix\"\r\n [suffix]=\"numberData.suffix\">\r\n </p-inputNumber>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT SWITCH -->\r\n @case (editableTypes.switch) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-toggleswitch [formControl]=\"$any(control)\"></p-toggleswitch>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT TEXT AREA -->\r\n @case (editableTypes.area) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <textarea pInputTextarea type=\"text\" [formControl]=\"$any(control)\" [rows]=\"$any(col.editable.data).rows\" required style=\"width: 100%;\"></textarea>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT DROPDOWN -->\r\n @case (editableTypes.dropdown) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-select appendTo=\"body\" [formControl]=\"$any(control)\" styleClass=\"w-full\" [options]=\"col.editable.data | editableSource\" optionLabel=\"name\" dataKey=\"id\" [placeholder]=\"$any(col.editable.data).placeholder\" [showClear]=\"!col.editable.validatorsPreset?.isRequired\" [filter]=\"true\"></p-select>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT CALENDAR -->\r\n @case (editableTypes.calendar) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-datepicker [formControl]=\"$any(control)\" appendTo=\"body\" styleClass=\"w-full\" [ngClass]=\"{ 'pl-5': !control.valid }\"></p-datepicker>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n </ng-template>\r\n <!-- CELULAR COM CONTE\u00DADO -->\r\n <ng-template pTemplate=\"output\">\r\n <smz-table-content\r\n [col]=\"col\"\r\n [pTooltip]=\"col.content.tooltip != null ? col.content.tooltip(item) : null\"\r\n tooltipPosition=\"left\"\r\n [ngClass]=\"col.content.contentStyleClass\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\">\r\n </smz-table-content>\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n }\r\n }\r\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) {\r\n <td [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\r\n <div class=\"grid grid-nogutter items-center justify-center\">\r\n @if (clonedData.showSkeleton) {\r\n <div class=\"w-full\">\r\n <p-skeleton width=\"100%\" height=\"1rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <!-- SEM EDITAR -->\r\n @if (!editing) {\r\n @if (context.state.editable.update.isButtonVisible) {\r\n <button pButton type=\"button\" icon=\"pi pi-pencil\" (click)=\"editableService.onRowEditInit(item)\" class=\"p-button-rounded p-button-text mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.update.isButtonDisabled || (!context.state.editable.update.condition(item))\" pInitEditableRow></button>\r\n }\r\n @if (context.state.editable.remove.isButtonVisible) {\r\n <button pButton type=\"button\" icon=\"pi pi-trash\" (click)=\"editableService.onRowRemove($event, table, item)\" class=\"p-button-rounded p-button-text p-button-secondary mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.remove.isButtonDisabled || (!context.state.editable.remove.condition(item))\"></button>\r\n }\r\n }\r\n <!-- EDITANDO -->\r\n @if (editing) {\r\n @if (editableService.context[item.id]; as editableContext) {\r\n <!-- COM LOADING -->\r\n @if (editableContext.isLoading) {\r\n <button pButton type=\"button\" icon=\"fa-solid fa-rotate fa-spin\" [disabled]=\"true\" class=\"p-button-rounded p-button-text p-button-info mr-2\"></button>\r\n }\r\n <!-- SEM LOADING -->\r\n @if (!editableContext.isLoading) {\r\n <!-- EDITANDO -->\r\n @if (!editableContext.hasErrors) {\r\n <!-- CRIANDO -->\r\n @if (item._context?.isCreating) {\r\n <button pButton type=\"button\" icon=\"pi pi-check\" (click)=\"editableService.onRowCreateSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"p-button-rounded p-button-text p-button-success mr-2\"></button>\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" class=\"p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n <!-- ATUALIZANDO -->\r\n @if (item._context?.isUpdating) {\r\n <button pButton type=\"button\" icon=\"pi pi-check\" (click)=\"editableService.onRowEditSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"p-button-rounded p-button-text p-button-success mr-2\"></button>\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowEditCancel($event, table, item)\" class=\"p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n }\r\n <!-- COM ERRORS -->\r\n @if (editableContext.hasErrors) {\r\n <p-overlayPanel #errorsOverlay appendTo=\"body\" [style]=\"{ width: '450px' }\">\r\n <ng-template pTemplate>\r\n <div [innerHtml]=\"editableContext.errors | contentErrors\"></div>\r\n </ng-template>\r\n </p-overlayPanel>\r\n <button pButton type=\"button\" icon=\"fas fa-exclamation-triangle\" [disabled]=\"false\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger mr-2\" (click)=\"errorsOverlay.toggle($event)\"></button>\r\n <!-- CRIANDO -->\r\n @if (item._context?.isCreating) {\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n <!-- ATUALIZANDO -->\r\n @if (item._context?.isUpdating) {\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowEditCancel($event, table, item)\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n <!-- CUSTOM MENU -->\r\n @if (context.state.actions.customActions.isVisible && !editing) {\r\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: item }\"></ng-container>\r\n }\r\n <!-- MENU -->\r\n @if (context.state.actions.menu.isVisible && !editing) {\r\n <smz-menu [callback]=\"context.state.actions.menu.callback\" [items]=\"context.state.actions.menu.items\" [data]=\"item\" [behavior]=\"context.state.actions.menu.behavior\" [ngClass]=\"{ 'ml-2': context.state.actions.customActions.isVisible }\" [icon]=\"context.state.actions.menu.styles.icon\" [styleClass]=\"context.state.actions.menu.styles.styleClass\" [buttonClass]=\"context.state.actions.menu.styles.buttonClass\"></smz-menu>\r\n }\r\n }\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n @if (item?._isExpanded) {\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\">\r\n <ng-container *ngTemplateOutlet=\"rowContentTemplate; context: { $implicit: item }\"></ng-container>\r\n </td>\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\" [ngStyle]=\"{ 'text-align': 'center' }\">\r\n <div [innerHtml]=\"context.state.emptyFeedback.message\"></div>\r\n @if (context.state.caption.clearFilters.isButtonVisible && hasFilters()) {\r\n <button pButton [label]=\"context.state.locale.clearFilters.label\" class=\"p-button-outlined mt-3\" icon=\"pi pi-filter-slash\" (click)=\"clear(table, context)\"></button>\r\n }\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n }\r\n} @else {\r\n @if (emptyStateTemplate != null) {\r\n <ng-container *ngTemplateOutlet=\"emptyStateTemplate; context: { $implicit: {} }\"></ng-container>\r\n }\r\n}\r\n\r\n" }]
|
|
17263
|
+
args: [{ selector: 'smz-ui-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TableEditableService, TableFormsService], standalone: false, template: "@if (state | tableContext; as context) {\r\n @if ((context.state.emptyFeedback != null && (context.state.emptyFeedback.extraInfo || context.state.emptyFeedback.image || context.state.emptyFeedback.actionButtons)) && (items != null && items.length === 0) && context.state.emptyFeedback.isFeatured) {\r\n <smz-data-info\r\n [image]=\"context.state.emptyFeedback.image\"\r\n [message]=\"context.state.emptyFeedback.message\"\r\n [callbackInfo]=\"context.state.emptyFeedback.extraInfo\"\r\n [actions]=\"context.state.emptyFeedback.actionButtons\">\r\n <ng-template pTemplate=\"actions\">\r\n <ng-container *ngTemplateOutlet=\"emptyActionsTemplate; context: { $implicit: {} }\"></ng-container>\r\n </ng-template>\r\n </smz-data-info>\r\n } @else {\r\n <ng-container *ngVar=\"state.source?.items$ != null ? (state.source.items$ | async) : null as observableSource\">\r\n <ng-container *ngVar=\"state.source?.signalItems != null ? state.source.signalItems() : null as signalSource\">\r\n @if (((observableSource ?? signalSource ?? items) | cloneTableItems : context: tableKey: context.state.rowExpansion.sincronize); as clonedData) {\r\n <p-table #dt\r\n dataKey=\"id\"\r\n editMode=\"row\"\r\n [stripedRows]=\"context.state.styles.striped\"\r\n [value]=\"clonedData.items\"\r\n [(selection)]=\"selectedItems\"\r\n [tableStyleClass]=\"context.state.styles.tableStyleClass\"\r\n [styleClass]=\"'p-datatable-smz-ui-table' + (context.state.styles.showGrid ? ' p-datatable-gridlines' : '') + (context.state.styles.size === 'extra-small' ? ' p-datatable-xs' : '') + (context.state.styles.size === 'small' ? ' p-datatable-sm' : '') + (context.state.styles.size === 'large' ? ' p-datatable-lg' : '')\"\r\n [rowHover]=\"context.state.actions.rowBehavior.hoverable\"\r\n [rows]=\"context.state.pagination.rows\"\r\n [showCurrentPageReport]=\"context.state.pagination.pageReport.isVisible\"\r\n [rowsPerPageOptions]=\"context.state.pagination.rowsPerPageOptions\"\r\n [loading]=\"loading\"\r\n [paginator]=\"context.state.pagination.isVisible\"\r\n paginatorDropdownAppendTo=\"body\"\r\n [currentPageReportTemplate]=\"context.state.locale.paginator.template\"\r\n [sortField]=\"context.state.sort.field\"\r\n [sortMode]=\"context.state.sort.mode\"\r\n [sortOrder]=\"context.state.sort.order\"\r\n [multiSortMeta]=\"context.state.sort.multiSortMeta\"\r\n [scrollable]=\"context.state.viewport.scrollable\"\r\n [scrollHeight]=\"context.state.viewport.scrollHeight\"\r\n [filterDelay]=\"0\"\r\n [globalFilterFields]=\"context.globalFilter\"\r\n [columns]=\"context.visibleColumns\"\r\n [frozenColumns]=\"context.frozenColumns\"\r\n [frozenWidth]=\"context.state.frozen.isEnabled ? context.state.frozen.width : null\"\r\n [resizableColumns]=\"context.state.viewport.resizableColumns\"\r\n [columnResizeMode]=\"context.state.viewport.columnResizeMode\"\r\n (onPage)=\"onPage($event)\"\r\n (onFilter)=\"onFilter($event)\"\r\n (selectionChange)=\"emitSelection($event)\"\r\n >\r\n @if (context.state.caption.isVisible) {\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"grid grid-nogutter items-center gap-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\r\n @if (context.state.caption.title != null) {\r\n <div class=\"col database-title\" [innerHTML]=\"context.state.caption.title\"></div>\r\n }\r\n <ng-container *ngTemplateOutlet=\"captionTemplate; context: { $implicit: dt }\"></ng-container>\r\n <smz-table-caption-buttons [buttons]=\"context.state.caption.buttons\"></smz-table-caption-buttons>\r\n @if (context.state.caption.exportToPdf.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.exportToPdf.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-file-pdf\" (click)=\"exportToPdf(context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.exportToExcel.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.exportToExcel.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-file-excel\" (click)=\"exportToExcel(table, context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.editable.creation.isButtonVisible) {\r\n <button pButton [label]=\"context.state.editable.creation.buttonLabel\" class=\"p-button-outlined\" icon=\"fa-solid fa-plus\" (click)=\"editableService.onRowCreateInit(table, context.columns)\" [disabled]=\"clonedData.showSkeleton || editableService.isEditing || editableService.isCreating || context.state.editable.creation.isButtonDisabled\"></button>\r\n }\r\n @if (context.state.caption.rowSelection.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.rowSelection.label\" class=\"p-button-outlined\" icon=\"fa-solid fa-check-double\" (click)=\"onRowSelection(context)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.clearFilters.isButtonVisible) {\r\n <button pButton [label]=\"context.state.locale.clearFilters.label\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table, context)\" [disabled]=\"clonedData.showSkeleton\"></button>\r\n }\r\n @if (context.state.caption.columnVisibility.showDropdownSelector) {\r\n <p-multiSelect\r\n #columnMultiselect\r\n class=\"ml-2 col-12 md:col-2\"\r\n styleClass=\"w-full\"\r\n [options]=\"context.hideableColumns\"\r\n [(ngModel)]=\"selectedColumns\"\r\n [placeholder]=\"context.state.locale.columnVisibility.placeholder\"\r\n [selectedItemsLabel]=\"context.state.locale.columnVisibility.selectedItemsLabel\"\r\n optionLabel=\"name\"\r\n dataKey=\"field\"\r\n optionLabel=\"header\"\r\n [filter]=\"true\"\r\n (onPanelHide)=\"updateColumnsVisibility(true)\"\r\n [pTooltip]=\"context.state.locale.columnVisibility.pTooltip\">\r\n </p-multiSelect>\r\n }\r\n @if (context.state.caption.globalFilter.isVisible) {\r\n <p-iconfield class=\"col-12\" [ngClass]=\"{ 'md:col-2': !context.state.caption.globalFilter.expanded }\">\r\n <p-inputicon styleClass=\"pi pi-search\" />\r\n <input #inputGlobal [(ngModel)]=\"globalSearchInput\" pInputText type=\"text\" styleClass=\"database-global-search\" (input)=\"updateGlobalFilter(inputGlobal.value)\" [disabled]=\"clonedData.showSkeleton\" [placeholder]=\"context.state.locale.globalFilter.placeholder\" />\r\n </p-iconfield>\r\n }\r\n </div>\r\n @if (toolbarTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center mt-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\r\n <ng-container *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n }\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr [ngClass]=\"{ 'invisible-header': !context.state.header.isVisible }\">\r\n @if (context.state.caption.rowSelection.isEnabled) {\r\n <th [ngStyle]=\"context.state.caption.rowSelection.ngStyle\">\r\n @if (!context.state.actions.batchActions.isVisible) {\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n }\r\n </th>\r\n }\r\n @if (context.state.rowExpansion.isEnabled) {\r\n <th [ngStyle]=\"context.state.rowExpansion.ngStyle\"></th>\r\n }\r\n @for (col of columns; track col) {\r\n @if (context.state.viewport.resizableColumns) {\r\n @if (col.isOrderable) {\r\n <th [pSortableColumn]=\"col.sortField\" pResizableColumn [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n @if (!col.isOrderable) {\r\n <th pResizableColumn [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n } @else {\r\n @if (col.isOrderable) {\r\n <th [pSortableColumn]=\"col.sortField\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n @if (!col.isOrderable) {\r\n <th [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\r\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\r\n </th>\r\n }\r\n }\r\n <ng-template #headerContent>\r\n <div class=\"flex justify-start items-center\">\r\n <span class=\"mr-1\">{{ col.header }}</span>\r\n @if (col.showHeaderActions) {\r\n <smz-table-header-actions clickStopPropagation class=\"ml-1 mt-1\" [col]=\"col\"></smz-table-header-actions>\r\n }\r\n @if (!clonedData.showSkeleton && col.isOrderable) {\r\n <p-sortIcon [field]=\"col.sortField\"></p-sortIcon>\r\n }\r\n @if (!clonedData.showSkeleton) {\r\n @switch (col.filter.type) {\r\n @case (filterTypes.currency) {\r\n <smz-column-filter type=\"numeric\" currency=\"BRL\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.numeric) {\r\n <smz-column-filter type=\"numeric\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.date) {\r\n <smz-column-filter type=\"date\" [field]=\"col.filterField\" [showTime]=\"col.filter.showTime\"></smz-column-filter>\r\n }\r\n @case (filterTypes.text) {\r\n <smz-column-filter type=\"text\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.boolean) {\r\n <smz-column-filter type=\"boolean\" [field]=\"col.filterField\"></smz-column-filter>\r\n }\r\n @case (filterTypes.dropdown) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField + '.id'\" matchMode=\"dropdown\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-select appendTo=\"body\" [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></p-select>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"in\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect_array) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"array-some\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : true\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n @case (filterTypes.multiselect_string) {\r\n @if (col.filterField | filterObject; as filterField) {\r\n <smz-column-filter [field]=\"filterField\" matchMode=\"multiselectByString\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"px-3 pt-3 pb-0\">\r\n <span class=\"p-text-bold\">{{ col.header }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filter\">\r\n <p-multiSelect [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField : filterField : null : true : false : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (onChange)=\"filter($event.value)\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></p-multiSelect>\r\n </ng-template>\r\n </smz-column-filter>\r\n }\r\n }\r\n }\r\n }\r\n @if (context.state.caption.columnVisibility.showColumnHideButton) {\r\n <button pButton type=\"button\" icon=\"fa-solid fa-eye-slash\" class=\"p-button-rounded p-button-text p-button-plain\" (click)=\"hideColumn(col, context)\"></button>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible|| context.state.editable.isEditable) {\r\n <th [ngStyle]=\"context.state.editable.isEditable ? context.state.editable.ngStyle : context.state.actions.customActions.ngStyle\"></th>\r\n }\r\n </tr>\r\n @if (context.state.actions.batchActions.isVisible) {\r\n <tr>\r\n <th [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\"\r\n [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\r\n <div class=\"grid grid-nogutter items-center justify-start\">\r\n <p-tableHeaderCheckbox class=\"mr-4\"></p-tableHeaderCheckbox>\r\n @if (selectedItems?.length > 0) {\r\n @for (batchItem of context.state.actions.batchActions.items; track batchItem) {\r\n @if (batchItem.visible) {\r\n <button pButton [label]=\"batchItem.label\" class=\"p-button-rounded p-button-text p-button-plain animate__animated animate__fadeIn\" [ngClass]=\"batchItem.styleClass\" [icon]=\"batchItem.icon\" (click)=\"batchItem.command(selectedItems); selectedItems = [];\" [disabled]=\"batchItem.disabled\" [pTooltip]=\"batchItem.tooltip\"></button>\r\n }\r\n }\r\n }\r\n </div>\r\n </th>\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-item let-editing=\"editing\" let-rowIndex=\"rowIndex\" let-columns=\"columns\">\r\n <tr #editableRowElement\r\n [pEditableRow]=\"item\"\r\n tableItemAction\r\n [isClickable]=\"context.state.actions.rowBehavior.isClickable\"\r\n [callback]=\"context.state.actions.rowBehavior.clickCallback\"\r\n [expandRowOnClick]=\"context.state.actions.rowBehavior.expandRowOnClick\"\r\n [item]=\"item\"\r\n class=\"p-selectable-row\"\r\n [ngClass]=\"{ 'highlight-row': item?.id === state.actions.rowBehavior.highlights, 'preserve-in-small': state.actions.rowBehavior.preserveLayoutInSmallDevices }\"\r\n >\r\n @if (context.state.caption.rowSelection.isEnabled && !clonedData.showSkeleton) {\r\n <td\r\n clickStopPropagation\r\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\r\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\"\r\n [ngStyle]=\"context.state.caption.rowSelection.ngStyle\"\r\n >\r\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n </td>\r\n }\r\n @if (context.state.rowExpansion.isEnabled && !clonedData.showSkeleton) {\r\n <td\r\n clickStopPropagation\r\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\r\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading, 'grid grid-nogutter justify-start items-center gap-2': context.state.rowExpansion.highlightNewItems && item._isNew }\"\r\n [ngStyle]=\"context.state.rowExpansion.ngStyle\"\r\n >\r\n <p-toggleButton [(ngModel)]=\"item._isExpanded\" [onIcon]=\"'fa-solid fa-chevron-down'\" [offIcon]=\"'fa-solid fa-chevron-right'\" (onChange)=\"item._isNew = false\"></p-toggleButton>\r\n @if (context.state.rowExpansion.highlightNewItems && item._isNew) {\r\n <div class=\"rounded bg-cyan-400 text-sm text-white px-2 py-0 smz-table-new-tag\" (click)=\"item._isNew = false\">{{ context.state.rowExpansion.highlightLabel }}</div>\r\n }\r\n </td>\r\n }\r\n @for (col of columns; track col) {\r\n @if (clonedData.showSkeleton) {\r\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngStyle]=\"col.content.ngStyle\"><p-skeleton width=\"100%\" height=\"1rem\"></p-skeleton></td>\r\n } @else {\r\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\" [ngStyle]=\"col.content.ngStyle\">\r\n <span class=\"p-column-title\">{{ col.header }}</span>\r\n <p-cellEditor>\r\n <!-- CELULAR COM EDITOR -->\r\n <ng-template pTemplate=\"input\">\r\n @switch (col.editable.type) {\r\n @case (editableTypes.none) {\r\n <smz-table-content class=\"cursor-default\" [ngClass]=\"col.content.contentStyleClass\" [col]=\"col\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\"></smz-table-content>\r\n }\r\n @case (editableTypes.custom) {\r\n <ng-container *ngTemplateOutlet=\"editableTemplate; context: { $implicit: item, col: col }\"></ng-container>\r\n }\r\n <!-- INPUT TEXT -->\r\n @case (editableTypes.text) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <input pInputText type=\"text\" [formControl]=\"$any(control)\" style=\"width: 100%;\">\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT NUMBER -->\r\n @case (editableTypes.number) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-inputNumber\r\n *ngVar=\"col.editable.data as numberData\"\r\n [formControl]=\"$any(control)\"\r\n [mode]=\"numberData.mode\"\r\n [minFractionDigits]=\"numberData.minFractionDigits\"\r\n [maxFractionDigits]=\"numberData.maxFractionDigits\"\r\n [currency]=\"numberData.currency\"\r\n [useGrouping]=\"numberData.useGrouping\"\r\n [allowEmpty]=\"numberData.allowEmpty\"\r\n [showClear]=\"numberData.showClear\"\r\n [showButtons]=\"numberData.showButtons\"\r\n [prefix]=\"numberData.prefix\"\r\n [suffix]=\"numberData.suffix\">\r\n </p-inputNumber>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT SWITCH -->\r\n @case (editableTypes.switch) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-toggleswitch [formControl]=\"$any(control)\"></p-toggleswitch>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT TEXT AREA -->\r\n @case (editableTypes.area) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <textarea pInputTextarea type=\"text\" [formControl]=\"$any(control)\" [rows]=\"$any(col.editable.data).rows\" required style=\"width: 100%;\"></textarea>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT DROPDOWN -->\r\n @case (editableTypes.dropdown) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-select appendTo=\"body\" [formControl]=\"$any(control)\" styleClass=\"w-full\" [options]=\"col.editable.data | editableSource\" optionLabel=\"name\" dataKey=\"id\" [placeholder]=\"$any(col.editable.data).placeholder\" [showClear]=\"!col.editable.validatorsPreset?.isRequired\" [filter]=\"true\"></p-select>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n <!-- INPUT CALENDAR -->\r\n @case (editableTypes.calendar) {\r\n @if (editableService.context[item.id]?.form; as form) {\r\n @if (form.controls[col.editable.property]; as control) {\r\n <div class=\"relative w-full\">\r\n <p-datepicker [formControl]=\"$any(control)\" appendTo=\"body\" styleClass=\"w-full\" [ngClass]=\"{ 'pl-5': !control.valid }\"></p-datepicker>\r\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n </ng-template>\r\n <!-- CELULAR COM CONTE\u00DADO -->\r\n <ng-template pTemplate=\"output\">\r\n <smz-table-content\r\n [col]=\"col\"\r\n [pTooltip]=\"col.content.tooltip != null ? col.content.tooltip(item) : null\"\r\n tooltipPosition=\"left\"\r\n [ngClass]=\"col.content.contentStyleClass\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\">\r\n </smz-table-content>\r\n </ng-template>\r\n </p-cellEditor>\r\n </td>\r\n }\r\n }\r\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) {\r\n <td [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\r\n <div class=\"grid grid-nogutter items-center justify-center\">\r\n @if (clonedData.showSkeleton) {\r\n <div class=\"w-full\">\r\n <p-skeleton width=\"100%\" height=\"1rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <!-- SEM EDITAR -->\r\n @if (!editing) {\r\n @if (context.state.editable.update.isButtonVisible) {\r\n <button pButton type=\"button\" icon=\"pi pi-pencil\" (click)=\"editableService.onRowEditInit(item)\" class=\"p-button-rounded p-button-text mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.update.isButtonDisabled || (!context.state.editable.update.condition(item))\" pInitEditableRow></button>\r\n }\r\n @if (context.state.editable.remove.isButtonVisible) {\r\n <button pButton type=\"button\" icon=\"pi pi-trash\" (click)=\"editableService.onRowRemove($event, table, item)\" class=\"p-button-rounded p-button-text p-button-secondary mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.remove.isButtonDisabled || (!context.state.editable.remove.condition(item))\"></button>\r\n }\r\n }\r\n <!-- EDITANDO -->\r\n @if (editing) {\r\n @if (editableService.context[item.id]; as editableContext) {\r\n <!-- COM LOADING -->\r\n @if (editableContext.isLoading) {\r\n <button pButton type=\"button\" icon=\"fa-solid fa-rotate fa-spin\" [disabled]=\"true\" class=\"p-button-rounded p-button-text p-button-info mr-2\"></button>\r\n }\r\n <!-- SEM LOADING -->\r\n @if (!editableContext.isLoading) {\r\n <!-- EDITANDO -->\r\n @if (!editableContext.hasErrors) {\r\n <!-- CRIANDO -->\r\n @if (item._context?.isCreating) {\r\n <button pButton type=\"button\" icon=\"pi pi-check\" (click)=\"editableService.onRowCreateSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"p-button-rounded p-button-text p-button-success mr-2\"></button>\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" class=\"p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n <!-- ATUALIZANDO -->\r\n @if (item._context?.isUpdating) {\r\n <button pButton type=\"button\" icon=\"pi pi-check\" (click)=\"editableService.onRowEditSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"p-button-rounded p-button-text p-button-success mr-2\"></button>\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowEditCancel($event, table, item)\" class=\"p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n }\r\n <!-- COM ERRORS -->\r\n @if (editableContext.hasErrors) {\r\n <p-popover #errorsOverlay appendTo=\"body\" [style]=\"{ width: '450px' }\">\r\n <div [innerHtml]=\"editableContext.errors | contentErrors\"></div>\r\n </p-popover>\r\n <button pButton type=\"button\" icon=\"fas fa-exclamation-triangle\" [disabled]=\"false\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger mr-2\" (click)=\"errorsOverlay.toggle($event)\"></button>\r\n <!-- CRIANDO -->\r\n @if (item._context?.isCreating) {\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n <!-- ATUALIZANDO -->\r\n @if (item._context?.isUpdating) {\r\n <button pButton type=\"button\" icon=\"pi pi-times\" (click)=\"editableService.onRowEditCancel($event, table, item)\" class=\"p-button-sm p-button-rounded p-button-text p-button-danger\"></button>\r\n }\r\n }\r\n }\r\n }\r\n }\r\n <!-- CUSTOM MENU -->\r\n @if (context.state.actions.customActions.isVisible && !editing) {\r\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: item }\"></ng-container>\r\n }\r\n <!-- MENU -->\r\n @if (context.state.actions.menu.isVisible && !editing) {\r\n <smz-menu [callback]=\"context.state.actions.menu.callback\" [items]=\"context.state.actions.menu.items\" [data]=\"item\" [behavior]=\"context.state.actions.menu.behavior\" [ngClass]=\"{ 'ml-2': context.state.actions.customActions.isVisible }\" [icon]=\"context.state.actions.menu.styles.icon\" [styleClass]=\"context.state.actions.menu.styles.styleClass\" [buttonClass]=\"context.state.actions.menu.styles.buttonClass\"></smz-menu>\r\n }\r\n }\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n @if (item?._isExpanded) {\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\">\r\n <ng-container *ngTemplateOutlet=\"rowContentTemplate; context: { $implicit: item }\"></ng-container>\r\n </td>\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\" [ngStyle]=\"{ 'text-align': 'center' }\">\r\n <div [innerHtml]=\"context.state.emptyFeedback.message\"></div>\r\n @if (context.state.caption.clearFilters.isButtonVisible && hasFilters()) {\r\n <button pButton [label]=\"context.state.locale.clearFilters.label\" class=\"p-button-outlined mt-3\" icon=\"pi pi-filter-slash\" (click)=\"clear(table, context)\"></button>\r\n }\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n }\r\n} @else {\r\n @if (emptyStateTemplate != null) {\r\n <ng-container *ngTemplateOutlet=\"emptyStateTemplate; context: { $implicit: {} }\"></ng-container>\r\n }\r\n}\r\n\r\n" }]
|
|
17593
17264
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TableEditableService }, { type: TableFormsService }, { type: TableHelperService }, { type: i1$6.Store }, { type: SmzExcelService }], propDecorators: { templates: [{
|
|
17594
17265
|
type: ContentChildren,
|
|
17595
17266
|
args: [PrimeTemplate]
|
|
@@ -23520,7 +23191,7 @@ class NgxSmzTablesModule {
|
|
|
23520
23191
|
TooltipModule,
|
|
23521
23192
|
SkeletonModule,
|
|
23522
23193
|
TextareaModule,
|
|
23523
|
-
|
|
23194
|
+
PopoverModule,
|
|
23524
23195
|
ReactiveFormsModule,
|
|
23525
23196
|
ToggleSwitchModule,
|
|
23526
23197
|
InputNumberModule,
|
|
@@ -23548,7 +23219,7 @@ class NgxSmzTablesModule {
|
|
|
23548
23219
|
TooltipModule,
|
|
23549
23220
|
SkeletonModule,
|
|
23550
23221
|
TextareaModule,
|
|
23551
|
-
|
|
23222
|
+
PopoverModule,
|
|
23552
23223
|
ReactiveFormsModule,
|
|
23553
23224
|
ToggleSwitchModule,
|
|
23554
23225
|
InputNumberModule,
|
|
@@ -23598,7 +23269,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
23598
23269
|
TooltipModule,
|
|
23599
23270
|
SkeletonModule,
|
|
23600
23271
|
TextareaModule,
|
|
23601
|
-
|
|
23272
|
+
PopoverModule,
|
|
23602
23273
|
ReactiveFormsModule,
|
|
23603
23274
|
ToggleSwitchModule,
|
|
23604
23275
|
InputNumberModule,
|
|
@@ -24333,7 +24004,6 @@ class NgxSmzDocumentsModule {
|
|
|
24333
24004
|
SmzDocumentHiddenBreakComponent], imports: [CommonModule,
|
|
24334
24005
|
FormsModule,
|
|
24335
24006
|
BadgeModule,
|
|
24336
|
-
OverlayPanelModule,
|
|
24337
24007
|
ButtonModule,
|
|
24338
24008
|
NgxSmzTablesModule,
|
|
24339
24009
|
InputTextModule,
|
|
@@ -24348,7 +24018,6 @@ class NgxSmzDocumentsModule {
|
|
|
24348
24018
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: NgxSmzDocumentsModule, imports: [CommonModule,
|
|
24349
24019
|
FormsModule,
|
|
24350
24020
|
BadgeModule,
|
|
24351
|
-
OverlayPanelModule,
|
|
24352
24021
|
ButtonModule,
|
|
24353
24022
|
NgxSmzTablesModule,
|
|
24354
24023
|
InputTextModule,
|
|
@@ -24368,7 +24037,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
24368
24037
|
CommonModule,
|
|
24369
24038
|
FormsModule,
|
|
24370
24039
|
BadgeModule,
|
|
24371
|
-
OverlayPanelModule,
|
|
24372
24040
|
ButtonModule,
|
|
24373
24041
|
NgxSmzTablesModule,
|
|
24374
24042
|
InputTextModule,
|
|
@@ -26991,13 +26659,24 @@ class SmzFormTreeBuilder extends SmzFormInputBuilder {
|
|
|
26991
26659
|
function extractUniqueTypesFromNodes(nodes) {
|
|
26992
26660
|
const types = [];
|
|
26993
26661
|
function traverseAndCollectTypes(currentNode) {
|
|
26994
|
-
|
|
26995
|
-
|
|
26662
|
+
const templateKey = currentNode.type != null && String(currentNode.type).length > 0
|
|
26663
|
+
? currentNode.type
|
|
26664
|
+
: 'default';
|
|
26665
|
+
if (!types.includes(templateKey)) {
|
|
26666
|
+
types.push(templateKey);
|
|
26996
26667
|
}
|
|
26997
|
-
currentNode.children?.forEach(childNode =>
|
|
26668
|
+
currentNode.children?.forEach(childNode => {
|
|
26669
|
+
if (childNode != null) {
|
|
26670
|
+
traverseAndCollectTypes(childNode);
|
|
26671
|
+
}
|
|
26672
|
+
});
|
|
26998
26673
|
}
|
|
26999
26674
|
// Inicia a travessia para cada nodo raiz no array
|
|
27000
|
-
nodes.forEach(node =>
|
|
26675
|
+
nodes.forEach(node => {
|
|
26676
|
+
if (node != null) {
|
|
26677
|
+
traverseAndCollectTypes(node);
|
|
26678
|
+
}
|
|
26679
|
+
});
|
|
27001
26680
|
return types;
|
|
27002
26681
|
}
|
|
27003
26682
|
|
|
@@ -29081,7 +28760,6 @@ class NgxSmzDialogsModule {
|
|
|
29081
28760
|
ReactiveFormsModule,
|
|
29082
28761
|
DialogModule,
|
|
29083
28762
|
// ngxsModuleForFeatureDialogsState,
|
|
29084
|
-
OverlayPanelModule,
|
|
29085
28763
|
TableModule$1,
|
|
29086
28764
|
ButtonModule,
|
|
29087
28765
|
MessageModule,
|
|
@@ -29102,7 +28780,6 @@ class NgxSmzDialogsModule {
|
|
|
29102
28780
|
ReactiveFormsModule,
|
|
29103
28781
|
DialogModule,
|
|
29104
28782
|
// ngxsModuleForFeatureDialogsState,
|
|
29105
|
-
OverlayPanelModule,
|
|
29106
28783
|
TableModule$1,
|
|
29107
28784
|
ButtonModule,
|
|
29108
28785
|
MessageModule,
|
|
@@ -29140,7 +28817,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
29140
28817
|
ReactiveFormsModule,
|
|
29141
28818
|
DialogModule,
|
|
29142
28819
|
// ngxsModuleForFeatureDialogsState,
|
|
29143
|
-
OverlayPanelModule,
|
|
29144
28820
|
TableModule$1,
|
|
29145
28821
|
ButtonModule,
|
|
29146
28822
|
MessageModule,
|
|
@@ -32287,7 +31963,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
32287
31963
|
args: [{ selector: 'smz-ui-users-page', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "\r\n<ng-container *ngVar=\"(users$ | async) as users\">\r\n\r\n <smz-ui-table #smzdt [items]=\"users\" [state]=\"tableState\" [loading]=\"false\">\r\n\r\n <ng-template pTemplate=\"caption\" let-primeTable>\r\n @for (action of (uiConfig.rbkUtils.authorization.users.pageActions | smzFlattenMenu : null); track action) {\r\n @if (action.visible) {\r\n <button pButton type=\"button\" smzMenuItemAction [item]=\"action\" [label]=\"action.label\" [icon]=\"action.icon\" [ngClass]=\"action.styleClass\" [disabled]=\"action.disabled\"></button>\r\n }\r\n }\r\n\r\n @if (uiConfig.rbkUtils.authorization.users.removalBehavior === 'deactivation') {\r\n <p-selectButton\r\n appendTo=\"body\"\r\n [options]=\"viewOptions\"\r\n [(ngModel)]=\"selectedView\"\r\n (onChange)=\"handleViewOptionChange($event.value)\"\r\n optionLabel=\"label\" optionValue=\"value\">\r\n </p-selectButton>\r\n }\r\n\r\n </ng-template>\r\n\r\n <!-- CONTE\u00DADOS COM OVERRIDE -->\r\n <ng-template pTemplate=\"content\" let-item let-col=\"col\">\r\n\r\n @switch (col.field) {\r\n @case ('displayName') {\r\n <div class=\"grid grid-nogutter items-center gap-3 justify-start\">\r\n <!-- CONTROLE DE ACESSO N\u00C3O ENCONTROU O IDENTIFICADOR DO USU\u00C1RIO -->\r\n @if (item.avatar == null) {\r\n <img\r\n [src]=\"uiConfig.rbkUtils.authorization.users.avatarPlaceholderPath\"\r\n class=\"w-14 align-middle\"\r\n />\r\n }\r\n <!-- USU\u00C1RIO COM AVATAR INFORMADO PELO CONTROLE DE ACESSO -->\r\n @if (item.avatar != null) {\r\n <img\r\n [src]=\"item.avatar\"\r\n (error)=\"handleMissingImage($event, item.name, item.avatar)\"\r\n class=\"w-14 align-middle\"\r\n />\r\n }\r\n <span>{{ item.displayName }}</span>\r\n </div>\r\n }\r\n @case ('role.name') {\r\n {{ item.role?.name }}\r\n }\r\n }\r\n\r\n </ng-template>\r\n\r\n </smz-ui-table>\r\n\r\n</ng-container>" }]
|
|
32288
31964
|
}], ctorParameters: () => [{ type: i1$6.Store }, { type: i0.ChangeDetectorRef }] });
|
|
32289
31965
|
|
|
32290
|
-
const routes$
|
|
31966
|
+
const routes$7 = [
|
|
32291
31967
|
{
|
|
32292
31968
|
path: '',
|
|
32293
31969
|
canActivate: [RbkDatabaseStateGuard],
|
|
@@ -32303,17 +31979,17 @@ const routes$9 = [
|
|
|
32303
31979
|
}
|
|
32304
31980
|
},
|
|
32305
31981
|
];
|
|
32306
|
-
const routerModuleForChildUsersModule = RouterModule.forChild(routes$
|
|
31982
|
+
const routerModuleForChildUsersModule = RouterModule.forChild(routes$7);
|
|
32307
31983
|
class UsersModule {
|
|
32308
31984
|
constructor() {
|
|
32309
31985
|
if (GlobalInjector.config.rbkUtils.authorization.users?.httpBehavior?.authentication)
|
|
32310
|
-
routes$
|
|
31986
|
+
routes$7[0].canActivate.push(RbkAuthGuard);
|
|
32311
31987
|
if (GlobalInjector.config.rbkUtils.authorization.users?.router?.claim)
|
|
32312
|
-
routes$
|
|
31988
|
+
routes$7[0].data['claim'] = GlobalInjector.config.rbkUtils.authorization.users.router.claim;
|
|
32313
31989
|
if (GlobalInjector.config.rbkUtils.authorization.users.title == null) {
|
|
32314
31990
|
throw Error('You need to specify the users title on gedi configuration.');
|
|
32315
31991
|
}
|
|
32316
|
-
routes$
|
|
31992
|
+
routes$7[0].data['title'] = GlobalInjector.config.rbkUtils.authorization.users.title;
|
|
32317
31993
|
}
|
|
32318
31994
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: UsersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
32319
31995
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: UsersModule, declarations: [UsersPageComponent, UserClaimsComponent], imports: [CommonModule, i1$9.RouterModule, FormsModule,
|
|
@@ -32500,7 +32176,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
32500
32176
|
args: [{ selector: 'app-claims-page', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<smz-ui-table [items]=\"claims$ | async\" [state]=\"tableState\">\r\n\r\n <ng-template pTemplate=\"caption\">\r\n <button pButton type=\"button\" class=\"p-button p-button-primary mx-1\" label=\"CRIAR\" (click)=\"showCreationDialog()\"></button>\r\n </ng-template>\r\n\r\n</smz-ui-table>\r\n" }]
|
|
32501
32177
|
}], ctorParameters: () => [{ type: i1$6.Store }, { type: SmzDialogsService }], propDecorators: { showDeleteConfirmation: [] } });
|
|
32502
32178
|
|
|
32503
|
-
const data$
|
|
32179
|
+
const data$5 = {
|
|
32504
32180
|
layout: {
|
|
32505
32181
|
mode: 'full',
|
|
32506
32182
|
contentPadding: '2em'
|
|
@@ -32510,7 +32186,7 @@ const data$7 = {
|
|
|
32510
32186
|
clearReusableRoutes: true,
|
|
32511
32187
|
requiredStates: [CLAIMS_STATE_NAME]
|
|
32512
32188
|
};
|
|
32513
|
-
const routes$
|
|
32189
|
+
const routes$6 = [
|
|
32514
32190
|
{
|
|
32515
32191
|
path: '',
|
|
32516
32192
|
children: [
|
|
@@ -32518,7 +32194,7 @@ const routes$8 = [
|
|
|
32518
32194
|
path: '',
|
|
32519
32195
|
canActivate: [RbkAuthGuard, RbkDatabaseStateGuard],
|
|
32520
32196
|
component: ClaimsPageComponent,
|
|
32521
|
-
data: data$
|
|
32197
|
+
data: data$5
|
|
32522
32198
|
},
|
|
32523
32199
|
]
|
|
32524
32200
|
},
|
|
@@ -32529,7 +32205,7 @@ class ClaimsModule {
|
|
|
32529
32205
|
NgxSmzDataPipesModule,
|
|
32530
32206
|
ButtonModule] });
|
|
32531
32207
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ClaimsModule, imports: [CommonModule,
|
|
32532
|
-
RouterModule.forChild(routes$
|
|
32208
|
+
RouterModule.forChild(routes$6),
|
|
32533
32209
|
NgxSmzTablesModule,
|
|
32534
32210
|
NgxSmzDataPipesModule,
|
|
32535
32211
|
ButtonModule] });
|
|
@@ -32539,7 +32215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
32539
32215
|
args: [{
|
|
32540
32216
|
imports: [
|
|
32541
32217
|
CommonModule,
|
|
32542
|
-
RouterModule.forChild(routes$
|
|
32218
|
+
RouterModule.forChild(routes$6),
|
|
32543
32219
|
NgxSmzTablesModule,
|
|
32544
32220
|
NgxSmzDataPipesModule,
|
|
32545
32221
|
ButtonModule
|
|
@@ -32771,7 +32447,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
32771
32447
|
args: [{ selector: 'app-roles-page', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<smz-ui-table [items]=\"roles$ | async\" [state]=\"tableState\">\r\n\r\n <ng-template pTemplate=\"caption\">\r\n <button pButton type=\"button\" class=\"p-button p-button-primary mx-1\" label=\"CRIAR\" (click)=\"showCreationDialog()\" [disabled]=\"!(canCreateClaims | rbkCanAccessAny)\"></button>\r\n </ng-template>\r\n\r\n <!-- CONTE\u00DADOS COM OVERRIDE -->\r\n <ng-template pTemplate=\"content\" let-item let-col=\"col\">\r\n\r\n @switch (col.field) {\r\n @case ('claims') {\r\n <div class=\"grid grid-nogutter items-start justify-start flex-col gap-1\">\r\n <ng-container *ngVar=\"(item.claims | smzInitial : 3) as limitedClaims\">\r\n <!-- <div [innerHTML]=\"limitedClaims | prettyjson\"></div> -->\r\n <ul class=\"list-disc\">\r\n @for (claim of limitedClaims; track claim) {\r\n <li class=\"\">{{ $any(claim).name }}</li>\r\n }\r\n @if (item.claims.length > 3) {\r\n <li>(...)</li>\r\n }\r\n </ul>\r\n @if (item.claims.length > 3) {\r\n <button\r\n type=\"button\"\r\n (click)=\"onShowRoleClaimsDialog(item)\"\r\n class=\"block rounded-md bg-amber-400 px-2.5 py-1.5 text-center text-sm font-semibold text-black shadow-sm hover:bg-amber-300 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-amber-500\">\r\n <i class=\"fa-solid fa-circle-info mr-2\"></i>Ver mais\r\n </button>\r\n }\r\n </ng-container>\r\n </div>\r\n }\r\n }\r\n\r\n </ng-template>\r\n\r\n</smz-ui-table>\r\n" }]
|
|
32772
32448
|
}], ctorParameters: () => [{ type: i1$6.Store }, { type: SmzDialogsService }], propDecorators: { showDeleteConfirmation: [] } });
|
|
32773
32449
|
|
|
32774
|
-
const data$
|
|
32450
|
+
const data$4 = {
|
|
32775
32451
|
layout: {
|
|
32776
32452
|
mode: 'full',
|
|
32777
32453
|
contentPadding: '2em'
|
|
@@ -32781,7 +32457,7 @@ const data$6 = {
|
|
|
32781
32457
|
clearReusableRoutes: true,
|
|
32782
32458
|
requiredStates: [ROLES_STATE_NAME, CLAIMS_STATE_NAME]
|
|
32783
32459
|
};
|
|
32784
|
-
const routes$
|
|
32460
|
+
const routes$5 = [
|
|
32785
32461
|
{
|
|
32786
32462
|
path: '',
|
|
32787
32463
|
children: [
|
|
@@ -32789,7 +32465,7 @@ const routes$7 = [
|
|
|
32789
32465
|
path: '',
|
|
32790
32466
|
canActivate: [RbkAuthGuard, RbkDatabaseStateGuard],
|
|
32791
32467
|
component: RolesPageComponent,
|
|
32792
|
-
data: data$
|
|
32468
|
+
data: data$4
|
|
32793
32469
|
},
|
|
32794
32470
|
]
|
|
32795
32471
|
},
|
|
@@ -32802,7 +32478,7 @@ class RolesModule {
|
|
|
32802
32478
|
ButtonModule,
|
|
32803
32479
|
RbkAccessControlModule] });
|
|
32804
32480
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: RolesModule, imports: [CommonModule,
|
|
32805
|
-
RouterModule.forChild(routes$
|
|
32481
|
+
RouterModule.forChild(routes$5),
|
|
32806
32482
|
NgxSmzTablesModule,
|
|
32807
32483
|
NgxSmzDataPipesModule,
|
|
32808
32484
|
NgVarModule,
|
|
@@ -32814,7 +32490,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
32814
32490
|
args: [{
|
|
32815
32491
|
imports: [
|
|
32816
32492
|
CommonModule,
|
|
32817
|
-
RouterModule.forChild(routes$
|
|
32493
|
+
RouterModule.forChild(routes$5),
|
|
32818
32494
|
NgxSmzTablesModule,
|
|
32819
32495
|
NgxSmzDataPipesModule,
|
|
32820
32496
|
NgVarModule,
|
|
@@ -33024,7 +32700,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
33024
32700
|
args: [{ selector: 'app-tenants-page', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<smz-ui-table [items]=\"tenants$ | async\" [state]=\"tableState\">\r\n\r\n <ng-template pTemplate=\"caption\">\r\n <button pButton type=\"button\" class=\"p-button p-button-primary mx-1\" label=\"CRIAR\" (click)=\"showCreationDialog()\"></button>\r\n </ng-template>\r\n\r\n</smz-ui-table>\r\n" }]
|
|
33025
32701
|
}], ctorParameters: () => [{ type: i1$6.Store }, { type: SmzDialogsService }] });
|
|
33026
32702
|
|
|
33027
|
-
const data$
|
|
32703
|
+
const data$3 = {
|
|
33028
32704
|
layout: {
|
|
33029
32705
|
mode: 'full',
|
|
33030
32706
|
contentPadding: '2em'
|
|
@@ -33034,7 +32710,7 @@ const data$5 = {
|
|
|
33034
32710
|
clearReusableRoutes: true,
|
|
33035
32711
|
requiredStates: [TENANTS_STATE_NAME]
|
|
33036
32712
|
};
|
|
33037
|
-
const routes$
|
|
32713
|
+
const routes$4 = [
|
|
33038
32714
|
{
|
|
33039
32715
|
path: '',
|
|
33040
32716
|
children: [
|
|
@@ -33042,7 +32718,7 @@ const routes$6 = [
|
|
|
33042
32718
|
path: '',
|
|
33043
32719
|
canActivate: [RbkAuthGuard, RbkDatabaseStateGuard],
|
|
33044
32720
|
component: TenantsPageComponent,
|
|
33045
|
-
data: data$
|
|
32721
|
+
data: data$3
|
|
33046
32722
|
},
|
|
33047
32723
|
]
|
|
33048
32724
|
},
|
|
@@ -33053,7 +32729,7 @@ class TenantsModule {
|
|
|
33053
32729
|
NgxSmzDataPipesModule,
|
|
33054
32730
|
ButtonModule] });
|
|
33055
32731
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TenantsModule, imports: [CommonModule,
|
|
33056
|
-
RouterModule.forChild(routes$
|
|
32732
|
+
RouterModule.forChild(routes$4),
|
|
33057
32733
|
NgxSmzTablesModule,
|
|
33058
32734
|
NgxSmzDataPipesModule,
|
|
33059
32735
|
ButtonModule] });
|
|
@@ -33063,7 +32739,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
33063
32739
|
args: [{
|
|
33064
32740
|
imports: [
|
|
33065
32741
|
CommonModule,
|
|
33066
|
-
RouterModule.forChild(routes$
|
|
32742
|
+
RouterModule.forChild(routes$4),
|
|
33067
32743
|
NgxSmzTablesModule,
|
|
33068
32744
|
NgxSmzDataPipesModule,
|
|
33069
32745
|
ButtonModule
|
|
@@ -33375,212 +33051,6 @@ function getRouteRoot(routes) {
|
|
|
33375
33051
|
return null;
|
|
33376
33052
|
}
|
|
33377
33053
|
|
|
33378
|
-
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type */
|
|
33379
|
-
class RouterDataListenerService {
|
|
33380
|
-
router;
|
|
33381
|
-
activatedRoute;
|
|
33382
|
-
dialogs;
|
|
33383
|
-
store;
|
|
33384
|
-
data = null;
|
|
33385
|
-
constructor(router, activatedRoute, dialogs, store) {
|
|
33386
|
-
this.router = router;
|
|
33387
|
-
this.activatedRoute = activatedRoute;
|
|
33388
|
-
this.dialogs = dialogs;
|
|
33389
|
-
this.store = store;
|
|
33390
|
-
if (GlobalInjector.config.layouts.debugMode)
|
|
33391
|
-
console.log('>> RouterDataListenerService constructor');
|
|
33392
|
-
if (GlobalInjector.config.layouts.debugMode)
|
|
33393
|
-
console.log('>> configuration', GlobalInjector.config);
|
|
33394
|
-
let currentRouteData = null;
|
|
33395
|
-
this.router.events
|
|
33396
|
-
.pipe(filter(event => event instanceof NavigationEnd), tap$1((event) => {
|
|
33397
|
-
if (GlobalInjector.config.layouts.debugMode)
|
|
33398
|
-
console.log('\n##########');
|
|
33399
|
-
if (GlobalInjector.config.layouts.debugMode)
|
|
33400
|
-
console.log('>> NavigationEnd');
|
|
33401
|
-
if (GlobalInjector.config.layouts.applicationActions.registerLogs) {
|
|
33402
|
-
if (GlobalInjector.config.layouts.debugMode)
|
|
33403
|
-
console.log('ApplicationActions.SetLogExtraData > urlAfterRedirects', event.urlAfterRedirects);
|
|
33404
|
-
this.store.dispatch(new ApplicationActions.SetLogExtraData(event.urlAfterRedirects));
|
|
33405
|
-
}
|
|
33406
|
-
if (GlobalInjector.config.layouts._internal?.specificThemeNavigationEndCallback != null) {
|
|
33407
|
-
GlobalInjector.config.layouts._internal.specificThemeNavigationEndCallback();
|
|
33408
|
-
}
|
|
33409
|
-
}), map((event) => {
|
|
33410
|
-
if (GlobalInjector.config.layouts.debugMode) {
|
|
33411
|
-
console.group('router.events > mapping');
|
|
33412
|
-
}
|
|
33413
|
-
let route = this.activatedRoute;
|
|
33414
|
-
while (route.firstChild) {
|
|
33415
|
-
route.firstChild.data.subscribe(r => {
|
|
33416
|
-
const layout = r['layout'];
|
|
33417
|
-
if (currentRouteData == null && layout !== null) {
|
|
33418
|
-
if (GlobalInjector.config.layouts.debugMode) {
|
|
33419
|
-
console.log('> currentRouteData', currentRouteData);
|
|
33420
|
-
console.log(' layout', layout);
|
|
33421
|
-
console.log(' applying', layout);
|
|
33422
|
-
}
|
|
33423
|
-
currentRouteData = layout;
|
|
33424
|
-
}
|
|
33425
|
-
else {
|
|
33426
|
-
currentRouteData = layout == null ? currentRouteData : this.mergeLayoutDatas(currentRouteData, layout);
|
|
33427
|
-
}
|
|
33428
|
-
});
|
|
33429
|
-
route = route.firstChild;
|
|
33430
|
-
}
|
|
33431
|
-
return { event, route };
|
|
33432
|
-
}), filter((event) => event.route.outlet === 'primary'), mergeMap((x) => x.route.data))
|
|
33433
|
-
.subscribe((data) => {
|
|
33434
|
-
this.data = {
|
|
33435
|
-
...data,
|
|
33436
|
-
layout: this.normalizeLayoutData(currentRouteData)
|
|
33437
|
-
};
|
|
33438
|
-
if (GlobalInjector.config.layouts.debugMode) {
|
|
33439
|
-
console.log('all routes layout data merged for this route', currentRouteData);
|
|
33440
|
-
console.log('final router data used', this.data);
|
|
33441
|
-
console.groupEnd();
|
|
33442
|
-
}
|
|
33443
|
-
if (GlobalInjector.config.layouts.applicationActions.registerLogs) {
|
|
33444
|
-
if (GlobalInjector.config.layouts.debugMode)
|
|
33445
|
-
console.log('ApplicationActions.SetLogApplicatinArea > appArea', data.appArea);
|
|
33446
|
-
this.store.dispatch(new ApplicationActions.SetLogApplicatinArea(data.appArea));
|
|
33447
|
-
}
|
|
33448
|
-
if (GlobalInjector.config.layouts.dialogs.closeAllAfterNavigate) {
|
|
33449
|
-
if (GlobalInjector.config.layouts.debugMode)
|
|
33450
|
-
console.log('>> Closing all dialogs');
|
|
33451
|
-
this.dialogs.closeAll();
|
|
33452
|
-
}
|
|
33453
|
-
if (GlobalInjector.config.layouts.debugMode)
|
|
33454
|
-
console.log('\n');
|
|
33455
|
-
this.store.dispatch(new LayoutUiActions.SetTopbarTitle(data.title));
|
|
33456
|
-
});
|
|
33457
|
-
}
|
|
33458
|
-
normalizeLayoutData(data) {
|
|
33459
|
-
return {
|
|
33460
|
-
mode: data?.mode ? data.mode : 'full',
|
|
33461
|
-
hideFooter: data?.hideFooter ?? false,
|
|
33462
|
-
contentPadding: data?.contentPadding ? data.contentPadding : '2em',
|
|
33463
|
-
contentStyleClass: data?.contentStyleClass ?? ''
|
|
33464
|
-
};
|
|
33465
|
-
}
|
|
33466
|
-
mergeLayoutDatas(before, current) {
|
|
33467
|
-
if (GlobalInjector.config.layouts.debugMode) {
|
|
33468
|
-
console.log('> mergeLayoutDatas');
|
|
33469
|
-
console.log(' before', before);
|
|
33470
|
-
console.log(' current', current);
|
|
33471
|
-
console.log(' merging', before, current, mergeClone(before, current));
|
|
33472
|
-
}
|
|
33473
|
-
return mergeClone(before, current);
|
|
33474
|
-
}
|
|
33475
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: RouterDataListenerService, deps: [{ token: i1$9.Router }, { token: i1$9.ActivatedRoute }, { token: SmzDialogsService }, { token: i1$6.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33476
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: RouterDataListenerService, providedIn: 'root' });
|
|
33477
|
-
}
|
|
33478
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: RouterDataListenerService, decorators: [{
|
|
33479
|
-
type: Injectable,
|
|
33480
|
-
args: [{
|
|
33481
|
-
providedIn: 'root'
|
|
33482
|
-
}]
|
|
33483
|
-
}], ctorParameters: () => [{ type: i1$9.Router }, { type: i1$9.ActivatedRoute }, { type: SmzDialogsService }, { type: i1$6.Store }] });
|
|
33484
|
-
|
|
33485
|
-
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type */
|
|
33486
|
-
class ErrorComponent {
|
|
33487
|
-
routerListener;
|
|
33488
|
-
store;
|
|
33489
|
-
uiConfig = GlobalInjector.config;
|
|
33490
|
-
constructor(routerListener, store) {
|
|
33491
|
-
this.routerListener = routerListener;
|
|
33492
|
-
this.store = store;
|
|
33493
|
-
}
|
|
33494
|
-
ngOnInit() {
|
|
33495
|
-
if (GlobalInjector.config.rbkUtils.errorsConfig.clearBehaviors.method === 'onError') {
|
|
33496
|
-
this.clear();
|
|
33497
|
-
}
|
|
33498
|
-
}
|
|
33499
|
-
redirect(button) {
|
|
33500
|
-
if (button.callback != null) {
|
|
33501
|
-
button.callback();
|
|
33502
|
-
}
|
|
33503
|
-
else {
|
|
33504
|
-
this.store.dispatch(new Navigate([button.redirectTo]));
|
|
33505
|
-
if (GlobalInjector.config.rbkUtils.errorsConfig.clearBehaviors.method === 'onRedirect') {
|
|
33506
|
-
this.clear();
|
|
33507
|
-
}
|
|
33508
|
-
}
|
|
33509
|
-
}
|
|
33510
|
-
clear() {
|
|
33511
|
-
if (GlobalInjector.config.rbkUtils.errorsConfig.clearBehaviors.globalStates) {
|
|
33512
|
-
this.store.dispatch(new GlobalActions.Clear());
|
|
33513
|
-
}
|
|
33514
|
-
if (GlobalInjector.config.rbkUtils.errorsConfig.clearBehaviors.databaseStates) {
|
|
33515
|
-
this.store.dispatch(new DatabaseActions.Clear());
|
|
33516
|
-
}
|
|
33517
|
-
if (GlobalInjector.config.rbkUtils.errorsConfig.clearBehaviors.featuresStates) {
|
|
33518
|
-
this.store.dispatch(new FeaturesActions.Clear());
|
|
33519
|
-
}
|
|
33520
|
-
switch (GlobalInjector.config.rbkUtils.errorsConfig.clearBehaviors.localStorage) {
|
|
33521
|
-
case 'appPrefix':
|
|
33522
|
-
forIn(window.localStorage, (value, objKey) => {
|
|
33523
|
-
if (true === startsWith(objKey, GlobalInjector.config.rbkUtils.authentication.localStoragePrefix)) {
|
|
33524
|
-
window.localStorage.removeItem(objKey);
|
|
33525
|
-
}
|
|
33526
|
-
});
|
|
33527
|
-
break;
|
|
33528
|
-
case 'none':
|
|
33529
|
-
break;
|
|
33530
|
-
}
|
|
33531
|
-
if (GlobalInjector.config.rbkUtils.errorsConfig.clearBehaviors.navigationHistory) {
|
|
33532
|
-
window.history.pushState('', '', '');
|
|
33533
|
-
}
|
|
33534
|
-
}
|
|
33535
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ErrorComponent, deps: [{ token: RouterDataListenerService }, { token: i1$6.Store }], target: i0.ɵɵFactoryTarget.Component });
|
|
33536
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ErrorComponent, isStandalone: false, selector: "smz-ui-error", ngImport: i0, template: "\r\n<!-- VERS\u00C3O DESKTOP -->\r\n<div class=\"grid justify-center items-center vertical-container exception-page\">\r\n\r\n <div class=\"grid justify-center items-center col-12 lg:col-6 grid-nogutter h-full bg-surface-ground\">\r\n <div class=\"grid col-8 items-center\">\r\n <div class=\"col-12 exception-label-error\">{{ uiConfig.rbkUtils.errorsConfig.page.title }}</div>\r\n <div class=\"col-4 exception-separator\"></div>\r\n <div class=\"col-12 exception-label-message\">{{ uiConfig.rbkUtils.errorsConfig.page.message }}</div>\r\n <div class=\"grid grid-nogutter items-center justify-start gap-2\">\r\n @for (button of uiConfig.rbkUtils.errorsConfig.page.buttons; track button) {\r\n @if (button.isVisible()) {\r\n <button [ngClass]=\"button.styleClass\" pButton type=\"button\" [label]=\"button.label\" (click)=\"redirect(button)\"></button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 lg:col-6 exception-image-container\">\r\n <img [src]=\"uiConfig.rbkUtils.errorsConfig.page.imagePath\" alt=\"mirage-layout\" />\r\n </div>\r\n</div>", styles: [".exception-page{overflow:hidden;margin:0;padding:0;height:100vh;width:100vw;position:relative}.exception-image-container{margin:0;padding:0}.exception-image-container img{height:100vh;width:100%;object-fit:cover}.exception-full-image-container{position:absolute;inset:0;margin:0;padding:0;z-index:-1}.exception-full-image-container img{height:100vh;width:100vw;object-fit:cover}.exception-label-error{font-size:5em;color:var(--text-color-secondary);padding:0}.exception-separator{border-bottom:4px #f44336 solid;width:30%;border-radius:4px;margin-bottom:2em;padding:0}.exception-separator.exception-light{border-bottom:4px var(--primary-color) solid}.exception-label-message{font-size:1.4em;color:var(--primary-color);margin-bottom:2em;padding:0}.exception-light{color:var(--primary-color)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }] });
|
|
33537
|
-
}
|
|
33538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ErrorComponent, decorators: [{
|
|
33539
|
-
type: Component,
|
|
33540
|
-
args: [{ selector: 'smz-ui-error', standalone: false, template: "\r\n<!-- VERS\u00C3O DESKTOP -->\r\n<div class=\"grid justify-center items-center vertical-container exception-page\">\r\n\r\n <div class=\"grid justify-center items-center col-12 lg:col-6 grid-nogutter h-full bg-surface-ground\">\r\n <div class=\"grid col-8 items-center\">\r\n <div class=\"col-12 exception-label-error\">{{ uiConfig.rbkUtils.errorsConfig.page.title }}</div>\r\n <div class=\"col-4 exception-separator\"></div>\r\n <div class=\"col-12 exception-label-message\">{{ uiConfig.rbkUtils.errorsConfig.page.message }}</div>\r\n <div class=\"grid grid-nogutter items-center justify-start gap-2\">\r\n @for (button of uiConfig.rbkUtils.errorsConfig.page.buttons; track button) {\r\n @if (button.isVisible()) {\r\n <button [ngClass]=\"button.styleClass\" pButton type=\"button\" [label]=\"button.label\" (click)=\"redirect(button)\"></button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 lg:col-6 exception-image-container\">\r\n <img [src]=\"uiConfig.rbkUtils.errorsConfig.page.imagePath\" alt=\"mirage-layout\" />\r\n </div>\r\n</div>", styles: [".exception-page{overflow:hidden;margin:0;padding:0;height:100vh;width:100vw;position:relative}.exception-image-container{margin:0;padding:0}.exception-image-container img{height:100vh;width:100%;object-fit:cover}.exception-full-image-container{position:absolute;inset:0;margin:0;padding:0;z-index:-1}.exception-full-image-container img{height:100vh;width:100vw;object-fit:cover}.exception-label-error{font-size:5em;color:var(--text-color-secondary);padding:0}.exception-separator{border-bottom:4px #f44336 solid;width:30%;border-radius:4px;margin-bottom:2em;padding:0}.exception-separator.exception-light{border-bottom:4px var(--primary-color) solid}.exception-label-message{font-size:1.4em;color:var(--primary-color);margin-bottom:2em;padding:0}.exception-light{color:var(--primary-color)}\n"] }]
|
|
33541
|
-
}], ctorParameters: () => [{ type: RouterDataListenerService }, { type: i1$6.Store }] });
|
|
33542
|
-
|
|
33543
|
-
const data$4 = {
|
|
33544
|
-
layout: {
|
|
33545
|
-
mode: 'none'
|
|
33546
|
-
},
|
|
33547
|
-
title: 'Erro',
|
|
33548
|
-
appArea: 'error',
|
|
33549
|
-
clearReusableRoutes: true,
|
|
33550
|
-
requiredStates: []
|
|
33551
|
-
};
|
|
33552
|
-
const routes$5 = [
|
|
33553
|
-
{
|
|
33554
|
-
path: '',
|
|
33555
|
-
canActivate: [],
|
|
33556
|
-
component: ErrorComponent,
|
|
33557
|
-
data: data$4
|
|
33558
|
-
},
|
|
33559
|
-
];
|
|
33560
|
-
const routerModuleForChildErrorModule = RouterModule.forChild(routes$5);
|
|
33561
|
-
class ErrorModule {
|
|
33562
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
33563
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: ErrorModule, declarations: [ErrorComponent], imports: [CommonModule, i1$9.RouterModule, ButtonModule,
|
|
33564
|
-
NgxSmzFormsModule] });
|
|
33565
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ErrorModule, imports: [CommonModule,
|
|
33566
|
-
routerModuleForChildErrorModule,
|
|
33567
|
-
ButtonModule,
|
|
33568
|
-
NgxSmzFormsModule] });
|
|
33569
|
-
}
|
|
33570
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ErrorModule, decorators: [{
|
|
33571
|
-
type: NgModule,
|
|
33572
|
-
args: [{
|
|
33573
|
-
declarations: [ErrorComponent],
|
|
33574
|
-
imports: [
|
|
33575
|
-
CommonModule,
|
|
33576
|
-
routerModuleForChildErrorModule,
|
|
33577
|
-
ButtonModule,
|
|
33578
|
-
NgxSmzFormsModule,
|
|
33579
|
-
],
|
|
33580
|
-
exports: []
|
|
33581
|
-
}]
|
|
33582
|
-
}] });
|
|
33583
|
-
|
|
33584
33054
|
var SmzContentTheme;
|
|
33585
33055
|
(function (SmzContentTheme) {
|
|
33586
33056
|
SmzContentTheme["ARYA_BLUE"] = "arya-blue/theme.css";
|
|
@@ -34535,7 +34005,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
34535
34005
|
args: [{ selector: 'smz-ui-login-page', standalone: false, template: "<smz-ui-login [state]=\"state\"></smz-ui-login>" }]
|
|
34536
34006
|
}], ctorParameters: () => [{ type: i1$6.Store }] });
|
|
34537
34007
|
|
|
34538
|
-
const data$
|
|
34008
|
+
const data$2 = {
|
|
34539
34009
|
layout: {
|
|
34540
34010
|
mode: 'none'
|
|
34541
34011
|
},
|
|
@@ -34544,20 +34014,20 @@ const data$3 = {
|
|
|
34544
34014
|
clearReusableRoutes: true,
|
|
34545
34015
|
requiredStates: []
|
|
34546
34016
|
};
|
|
34547
|
-
const routes$
|
|
34017
|
+
const routes$3 = [
|
|
34548
34018
|
{
|
|
34549
34019
|
path: '',
|
|
34550
34020
|
canActivate: [RbkDatabaseStateGuard],
|
|
34551
34021
|
component: LoginComponent,
|
|
34552
|
-
data: data$
|
|
34022
|
+
data: data$2
|
|
34553
34023
|
},
|
|
34554
34024
|
];
|
|
34555
|
-
const routerModuleForChildLoginModule = RouterModule.forChild(routes$
|
|
34025
|
+
const routerModuleForChildLoginModule = RouterModule.forChild(routes$3);
|
|
34556
34026
|
class LoginModule {
|
|
34557
34027
|
constructor() {
|
|
34558
34028
|
const config = GlobalInjector.config;
|
|
34559
34029
|
if (!config.rbkUtils.authentication.useSingleTenantAplication) {
|
|
34560
|
-
data$
|
|
34030
|
+
data$2.requiredStates.push(TENANTS_STATE_NAME);
|
|
34561
34031
|
}
|
|
34562
34032
|
}
|
|
34563
34033
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: LoginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -34592,64 +34062,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
34592
34062
|
}]
|
|
34593
34063
|
}], ctorParameters: () => [] });
|
|
34594
34064
|
|
|
34595
|
-
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type */
|
|
34596
|
-
class NotFoundComponent {
|
|
34597
|
-
uiConfig = GlobalInjector.config;
|
|
34598
|
-
constructor() {
|
|
34599
|
-
}
|
|
34600
|
-
ngOnInit() {
|
|
34601
|
-
}
|
|
34602
|
-
clear() {
|
|
34603
|
-
}
|
|
34604
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: NotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34605
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: NotFoundComponent, isStandalone: false, selector: "smz-ui-not-found", ngImport: i0, template: "<!-- VERS\u00C3O DESKTOP -->\r\n<div class=\"grid justify-center items-center vertical-container exception-page\">\r\n\r\n <div class=\"grid justify-center items-center col-12 lg:col-6 grid-nogutter\">\r\n <div class=\"grid col-8 items-center\">\r\n <div class=\"col-12 exception-label-error\">{{ uiConfig.layouts.pages.notFoundTitle }}</div>\r\n <div class=\"col-4 exception-separator\"></div>\r\n <div class=\"col-12 exception-label-message\">{{ uiConfig.layouts.pages.notFoundMessage }}</div>\r\n <button class=\"col-4 p-button-lg p-button-ghost\" pButton type=\"button\" [routerLink]=\"uiConfig.rbkUtils.authentication.authenticatedRoot\" label=\"Ir para Home\"></button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 lg:col-6 exception-image-container\">\r\n <img [src]=\"uiConfig.layouts.pages.notFoundImagePath\"/>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1$9.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }] });
|
|
34606
|
-
}
|
|
34607
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: NotFoundComponent, decorators: [{
|
|
34608
|
-
type: Component,
|
|
34609
|
-
args: [{ selector: 'smz-ui-not-found', standalone: false, template: "<!-- VERS\u00C3O DESKTOP -->\r\n<div class=\"grid justify-center items-center vertical-container exception-page\">\r\n\r\n <div class=\"grid justify-center items-center col-12 lg:col-6 grid-nogutter\">\r\n <div class=\"grid col-8 items-center\">\r\n <div class=\"col-12 exception-label-error\">{{ uiConfig.layouts.pages.notFoundTitle }}</div>\r\n <div class=\"col-4 exception-separator\"></div>\r\n <div class=\"col-12 exception-label-message\">{{ uiConfig.layouts.pages.notFoundMessage }}</div>\r\n <button class=\"col-4 p-button-lg p-button-ghost\" pButton type=\"button\" [routerLink]=\"uiConfig.rbkUtils.authentication.authenticatedRoot\" label=\"Ir para Home\"></button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 lg:col-6 exception-image-container\">\r\n <img [src]=\"uiConfig.layouts.pages.notFoundImagePath\"/>\r\n </div>\r\n</div>" }]
|
|
34610
|
-
}], ctorParameters: () => [] });
|
|
34611
|
-
|
|
34612
|
-
const data$2 = {
|
|
34613
|
-
layout: {
|
|
34614
|
-
mode: 'none'
|
|
34615
|
-
},
|
|
34616
|
-
title: 'Rota não encontrada',
|
|
34617
|
-
appArea: 'not-found',
|
|
34618
|
-
clearReusableRoutes: true,
|
|
34619
|
-
requiredStates: []
|
|
34620
|
-
};
|
|
34621
|
-
const routes$3 = [
|
|
34622
|
-
{
|
|
34623
|
-
path: '',
|
|
34624
|
-
canActivate: [],
|
|
34625
|
-
component: NotFoundComponent,
|
|
34626
|
-
data: data$2
|
|
34627
|
-
},
|
|
34628
|
-
];
|
|
34629
|
-
const routerModuleForChildNotFoundModule = RouterModule.forChild(routes$3);
|
|
34630
|
-
class NotFoundModule {
|
|
34631
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: NotFoundModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
34632
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: NotFoundModule, declarations: [NotFoundComponent], imports: [CommonModule, i1$9.RouterModule, ButtonModule,
|
|
34633
|
-
NgxSmzFormsModule] });
|
|
34634
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: NotFoundModule, imports: [CommonModule,
|
|
34635
|
-
routerModuleForChildNotFoundModule,
|
|
34636
|
-
ButtonModule,
|
|
34637
|
-
NgxSmzFormsModule] });
|
|
34638
|
-
}
|
|
34639
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: NotFoundModule, decorators: [{
|
|
34640
|
-
type: NgModule,
|
|
34641
|
-
args: [{
|
|
34642
|
-
declarations: [NotFoundComponent],
|
|
34643
|
-
imports: [
|
|
34644
|
-
CommonModule,
|
|
34645
|
-
routerModuleForChildNotFoundModule,
|
|
34646
|
-
ButtonModule,
|
|
34647
|
-
NgxSmzFormsModule,
|
|
34648
|
-
],
|
|
34649
|
-
exports: []
|
|
34650
|
-
}]
|
|
34651
|
-
}] });
|
|
34652
|
-
|
|
34653
34065
|
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type */
|
|
34654
34066
|
class SuperuserLoginComponent {
|
|
34655
34067
|
store;
|
|
@@ -35164,13 +34576,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
35164
34576
|
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type */
|
|
35165
34577
|
function getLoginModule() { return LoginModule; }
|
|
35166
34578
|
function getSuperuserLoginModule() { return SuperuserLoginModule; }
|
|
35167
|
-
function getErrorModule() { return ErrorModule; }
|
|
35168
|
-
function getNotFoundModule() { return NotFoundModule; }
|
|
34579
|
+
// export function getErrorModule() { return ErrorModule; }
|
|
34580
|
+
// export function getNotFoundModule() { return NotFoundModule; }
|
|
35169
34581
|
function getDiagnosticsDataCollectModule() { return DiagnosticsDataCollectModule; }
|
|
35170
34582
|
const routes = [
|
|
35171
|
-
{ path: 'error', loadChildren: getErrorModule },
|
|
35172
34583
|
{ path: 'diagnostics-data-collect', loadChildren: getDiagnosticsDataCollectModule },
|
|
35173
|
-
{ path: 'notfound', loadChildren: getNotFoundModule },
|
|
35174
34584
|
{ path: '**', redirectTo: 'notfound' },
|
|
35175
34585
|
];
|
|
35176
34586
|
const routerModuleForRootNgxSmzLayoutsModule = RouterModule.forRoot(routes, { paramsInheritanceStrategy: 'always' });
|
|
@@ -36414,6 +35824,113 @@ __decorate([
|
|
|
36414
35824
|
Selector([UiHephaestusState])
|
|
36415
35825
|
], UiHephaestusSelectors, "layout", null);
|
|
36416
35826
|
|
|
35827
|
+
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type */
|
|
35828
|
+
class RouterDataListenerService {
|
|
35829
|
+
router;
|
|
35830
|
+
activatedRoute;
|
|
35831
|
+
dialogs;
|
|
35832
|
+
store;
|
|
35833
|
+
data = null;
|
|
35834
|
+
constructor(router, activatedRoute, dialogs, store) {
|
|
35835
|
+
this.router = router;
|
|
35836
|
+
this.activatedRoute = activatedRoute;
|
|
35837
|
+
this.dialogs = dialogs;
|
|
35838
|
+
this.store = store;
|
|
35839
|
+
if (GlobalInjector.config.layouts.debugMode)
|
|
35840
|
+
console.log('>> RouterDataListenerService constructor');
|
|
35841
|
+
if (GlobalInjector.config.layouts.debugMode)
|
|
35842
|
+
console.log('>> configuration', GlobalInjector.config);
|
|
35843
|
+
let currentRouteData = null;
|
|
35844
|
+
this.router.events
|
|
35845
|
+
.pipe(filter(event => event instanceof NavigationEnd), tap$1((event) => {
|
|
35846
|
+
if (GlobalInjector.config.layouts.debugMode)
|
|
35847
|
+
console.log('\n##########');
|
|
35848
|
+
if (GlobalInjector.config.layouts.debugMode)
|
|
35849
|
+
console.log('>> NavigationEnd');
|
|
35850
|
+
if (GlobalInjector.config.layouts.applicationActions.registerLogs) {
|
|
35851
|
+
if (GlobalInjector.config.layouts.debugMode)
|
|
35852
|
+
console.log('ApplicationActions.SetLogExtraData > urlAfterRedirects', event.urlAfterRedirects);
|
|
35853
|
+
this.store.dispatch(new ApplicationActions.SetLogExtraData(event.urlAfterRedirects));
|
|
35854
|
+
}
|
|
35855
|
+
if (GlobalInjector.config.layouts._internal?.specificThemeNavigationEndCallback != null) {
|
|
35856
|
+
GlobalInjector.config.layouts._internal.specificThemeNavigationEndCallback();
|
|
35857
|
+
}
|
|
35858
|
+
}), map((event) => {
|
|
35859
|
+
if (GlobalInjector.config.layouts.debugMode) {
|
|
35860
|
+
console.group('router.events > mapping');
|
|
35861
|
+
}
|
|
35862
|
+
let route = this.activatedRoute;
|
|
35863
|
+
while (route.firstChild) {
|
|
35864
|
+
route.firstChild.data.subscribe(r => {
|
|
35865
|
+
const layout = r['layout'];
|
|
35866
|
+
if (currentRouteData == null && layout !== null) {
|
|
35867
|
+
if (GlobalInjector.config.layouts.debugMode) {
|
|
35868
|
+
console.log('> currentRouteData', currentRouteData);
|
|
35869
|
+
console.log(' layout', layout);
|
|
35870
|
+
console.log(' applying', layout);
|
|
35871
|
+
}
|
|
35872
|
+
currentRouteData = layout;
|
|
35873
|
+
}
|
|
35874
|
+
else {
|
|
35875
|
+
currentRouteData = layout == null ? currentRouteData : this.mergeLayoutDatas(currentRouteData, layout);
|
|
35876
|
+
}
|
|
35877
|
+
});
|
|
35878
|
+
route = route.firstChild;
|
|
35879
|
+
}
|
|
35880
|
+
return { event, route };
|
|
35881
|
+
}), filter((event) => event.route.outlet === 'primary'), mergeMap((x) => x.route.data))
|
|
35882
|
+
.subscribe((data) => {
|
|
35883
|
+
this.data = {
|
|
35884
|
+
...data,
|
|
35885
|
+
layout: this.normalizeLayoutData(currentRouteData)
|
|
35886
|
+
};
|
|
35887
|
+
if (GlobalInjector.config.layouts.debugMode) {
|
|
35888
|
+
console.log('all routes layout data merged for this route', currentRouteData);
|
|
35889
|
+
console.log('final router data used', this.data);
|
|
35890
|
+
console.groupEnd();
|
|
35891
|
+
}
|
|
35892
|
+
if (GlobalInjector.config.layouts.applicationActions.registerLogs) {
|
|
35893
|
+
if (GlobalInjector.config.layouts.debugMode)
|
|
35894
|
+
console.log('ApplicationActions.SetLogApplicatinArea > appArea', data.appArea);
|
|
35895
|
+
this.store.dispatch(new ApplicationActions.SetLogApplicatinArea(data.appArea));
|
|
35896
|
+
}
|
|
35897
|
+
if (GlobalInjector.config.layouts.dialogs.closeAllAfterNavigate) {
|
|
35898
|
+
if (GlobalInjector.config.layouts.debugMode)
|
|
35899
|
+
console.log('>> Closing all dialogs');
|
|
35900
|
+
this.dialogs.closeAll();
|
|
35901
|
+
}
|
|
35902
|
+
if (GlobalInjector.config.layouts.debugMode)
|
|
35903
|
+
console.log('\n');
|
|
35904
|
+
this.store.dispatch(new LayoutUiActions.SetTopbarTitle(data.title));
|
|
35905
|
+
});
|
|
35906
|
+
}
|
|
35907
|
+
normalizeLayoutData(data) {
|
|
35908
|
+
return {
|
|
35909
|
+
mode: data?.mode ? data.mode : 'full',
|
|
35910
|
+
hideFooter: data?.hideFooter ?? false,
|
|
35911
|
+
contentPadding: data?.contentPadding ? data.contentPadding : '2em',
|
|
35912
|
+
contentStyleClass: data?.contentStyleClass ?? ''
|
|
35913
|
+
};
|
|
35914
|
+
}
|
|
35915
|
+
mergeLayoutDatas(before, current) {
|
|
35916
|
+
if (GlobalInjector.config.layouts.debugMode) {
|
|
35917
|
+
console.log('> mergeLayoutDatas');
|
|
35918
|
+
console.log(' before', before);
|
|
35919
|
+
console.log(' current', current);
|
|
35920
|
+
console.log(' merging', before, current, mergeClone(before, current));
|
|
35921
|
+
}
|
|
35922
|
+
return mergeClone(before, current);
|
|
35923
|
+
}
|
|
35924
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: RouterDataListenerService, deps: [{ token: i1$9.Router }, { token: i1$9.ActivatedRoute }, { token: SmzDialogsService }, { token: i1$6.Store }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35925
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: RouterDataListenerService, providedIn: 'root' });
|
|
35926
|
+
}
|
|
35927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: RouterDataListenerService, decorators: [{
|
|
35928
|
+
type: Injectable,
|
|
35929
|
+
args: [{
|
|
35930
|
+
providedIn: 'root'
|
|
35931
|
+
}]
|
|
35932
|
+
}], ctorParameters: () => [{ type: i1$9.Router }, { type: i1$9.ActivatedRoute }, { type: SmzDialogsService }, { type: i1$6.Store }] });
|
|
35933
|
+
|
|
36417
35934
|
class PrimeConfigService {
|
|
36418
35935
|
filterUtils;
|
|
36419
35936
|
primeConfig = inject(PrimeNG);
|
|
@@ -38273,11 +37790,11 @@ class OutletComponent {
|
|
|
38273
37790
|
});
|
|
38274
37791
|
}
|
|
38275
37792
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OutletComponent, deps: [{ token: RouterDataListenerService }, { token: i1$6.Store }, { token: PrimeConfigService }, { token: i1$a.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
38276
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: OutletComponent, isStandalone: false, selector: "smz-ui-outlet", inputs: { menu: "menu" }, host: { listeners: { "mouseleave": "onMouseLeave()", "mouseenter": "onBeforeUnload()" } }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], ngImport: i0, template: "\r\n@switch (routerListener.data?.layout?.mode) {\r\n <!-- LAYOUT SIMPLES -->\r\n @case ('none') {\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n }\r\n <!-- LAYOUT COMPLETO -->\r\n @case ('full') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n <!-- LAYOUT APENAS COM MENU LATERAL -->\r\n @case ('menu-only') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n <!-- LAYOUT APENAS COM BARRA SUPERIOR -->\r\n @case ('topbar-only') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n @default {\r\n <!-- Nenhum tipo de layout foi encontrado. -->\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n }\r\n}\r\n\r\n<smz-ui-theme-manager></smz-ui-theme-manager>\r\n<smz-ui-global-loader></smz-ui-global-loader>\r\n<smz-ui-dock></smz-ui-dock>\r\n<smz-ui-block></smz-ui-block>\r\n<smz-export-dialog></smz-export-dialog>\r\n
|
|
37793
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: OutletComponent, isStandalone: false, selector: "smz-ui-outlet", inputs: { menu: "menu" }, host: { listeners: { "mouseleave": "onMouseLeave()", "mouseenter": "onBeforeUnload()" } }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], ngImport: i0, template: "\r\n@switch (routerListener.data?.layout?.mode) {\r\n <!-- LAYOUT SIMPLES -->\r\n @case ('none') {\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n }\r\n <!-- LAYOUT COMPLETO -->\r\n @case ('full') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n <!-- LAYOUT APENAS COM MENU LATERAL -->\r\n @case ('menu-only') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n <!-- LAYOUT APENAS COM BARRA SUPERIOR -->\r\n @case ('topbar-only') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n @default {\r\n <!-- Nenhum tipo de layout foi encontrado. -->\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n }\r\n}\r\n\r\n<smz-ui-theme-manager></smz-ui-theme-manager>\r\n<smz-ui-global-loader></smz-ui-global-loader>\r\n<smz-ui-dock></smz-ui-dock>\r\n<smz-ui-block></smz-ui-block>\r\n<smz-export-dialog></smz-export-dialog>\r\n<p-toast position=\"bottom-right\"></p-toast>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThemeManagerComponent, selector: "smz-ui-theme-manager" }, { kind: "component", type: GlobalLoaderComponent, selector: "smz-ui-global-loader", inputs: ["template"] }, { kind: "component", type: SmzDockComponent, selector: "smz-ui-dock" }, { kind: "component", type: SmzUiBlockComponent, selector: "smz-ui-block" }, { kind: "component", type: SmzExportDialogComponent, selector: "smz-export-dialog" }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "motionOptions", "breakpoints"], outputs: ["onClose"] }] });
|
|
38277
37794
|
}
|
|
38278
37795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OutletComponent, decorators: [{
|
|
38279
37796
|
type: Component,
|
|
38280
|
-
args: [{ selector: 'smz-ui-outlet', standalone: false, template: "\r\n@switch (routerListener.data?.layout?.mode) {\r\n <!-- LAYOUT SIMPLES -->\r\n @case ('none') {\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n }\r\n <!-- LAYOUT COMPLETO -->\r\n @case ('full') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n <!-- LAYOUT APENAS COM MENU LATERAL -->\r\n @case ('menu-only') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n <!-- LAYOUT APENAS COM BARRA SUPERIOR -->\r\n @case ('topbar-only') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n @default {\r\n <!-- Nenhum tipo de layout foi encontrado. -->\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n }\r\n}\r\n\r\n<smz-ui-theme-manager></smz-ui-theme-manager>\r\n<smz-ui-global-loader></smz-ui-global-loader>\r\n<smz-ui-dock></smz-ui-dock>\r\n<smz-ui-block></smz-ui-block>\r\n<smz-export-dialog></smz-export-dialog>\r\n
|
|
37797
|
+
args: [{ selector: 'smz-ui-outlet', standalone: false, template: "\r\n@switch (routerListener.data?.layout?.mode) {\r\n <!-- LAYOUT SIMPLES -->\r\n @case ('none') {\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n }\r\n <!-- LAYOUT COMPLETO -->\r\n @case ('full') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n <!-- LAYOUT APENAS COM MENU LATERAL -->\r\n @case ('menu-only') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n <!-- LAYOUT APENAS COM BARRA SUPERIOR -->\r\n @case ('topbar-only') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n @case ('custom') {\r\n <ng-container *ngTemplateOutlet=\"layoutTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n }\r\n @default {\r\n <!-- Nenhum tipo de layout foi encontrado. -->\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n }\r\n}\r\n\r\n<smz-ui-theme-manager></smz-ui-theme-manager>\r\n<smz-ui-global-loader></smz-ui-global-loader>\r\n<smz-ui-dock></smz-ui-dock>\r\n<smz-ui-block></smz-ui-block>\r\n<smz-export-dialog></smz-export-dialog>\r\n<p-toast position=\"bottom-right\"></p-toast>" }]
|
|
38281
37798
|
}], ctorParameters: () => [{ type: RouterDataListenerService }, { type: i1$6.Store }, { type: PrimeConfigService }, { type: i1$a.BreakpointObserver }], propDecorators: { templates: [{
|
|
38282
37799
|
type: ContentChildren,
|
|
38283
37800
|
args: [PrimeTemplate]
|
|
@@ -38741,17 +38258,17 @@ class SmzTenantSwitchComponent {
|
|
|
38741
38258
|
showSwitchTenantDialog();
|
|
38742
38259
|
}
|
|
38743
38260
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzTenantSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38744
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzTenantSwitchComponent, isStandalone: true, selector: "smz-tenant-switch", host: { classAttribute: "
|
|
38261
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzTenantSwitchComponent, isStandalone: true, selector: "smz-tenant-switch", host: { classAttribute: "h-full relative" }, ngImport: i0, template: `
|
|
38745
38262
|
@if ((isAuthenticated$ | async) && (isSuperuserLogged$ | async) === false && showTenantSwitch) {
|
|
38746
|
-
<p-select appendTo="body" [options]="userAllowedTenants$ | async" styleClass="smz-tenant-switch-small
|
|
38263
|
+
<p-select appendTo="body" [options]="userAllowedTenants$ | async" styleClass="smz-tenant-switch-small" optionLabel="alias" dataKey="name" [(ngModel)]="selected" (onChange)="onSelectorChange($event)"></p-select>
|
|
38747
38264
|
}
|
|
38748
38265
|
`, isInline: true, styles: [".smz-tenant-switch-small .p-inputtext{padding:.5rem .75rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i4$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SharedModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
38749
38266
|
}
|
|
38750
38267
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzTenantSwitchComponent, decorators: [{
|
|
38751
38268
|
type: Component,
|
|
38752
|
-
args: [{ selector: 'smz-tenant-switch', imports: [CommonModule, SelectModule, FormsModule, SharedModule], host: { class: '
|
|
38269
|
+
args: [{ selector: 'smz-tenant-switch', imports: [CommonModule, SelectModule, FormsModule, SharedModule], host: { class: 'h-full relative' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: `
|
|
38753
38270
|
@if ((isAuthenticated$ | async) && (isSuperuserLogged$ | async) === false && showTenantSwitch) {
|
|
38754
|
-
<p-select appendTo="body" [options]="userAllowedTenants$ | async" styleClass="smz-tenant-switch-small
|
|
38271
|
+
<p-select appendTo="body" [options]="userAllowedTenants$ | async" styleClass="smz-tenant-switch-small" optionLabel="alias" dataKey="name" [(ngModel)]="selected" (onChange)="onSelectorChange($event)"></p-select>
|
|
38755
38272
|
}
|
|
38756
38273
|
`, styles: [".smz-tenant-switch-small .p-inputtext{padding:.5rem .75rem!important}\n"] }]
|
|
38757
38274
|
}], ctorParameters: () => [] });
|
|
@@ -39476,7 +38993,7 @@ class HephaestusSidebarComponent {
|
|
|
39476
38993
|
templates;
|
|
39477
38994
|
layout$ = inject(Store).select(UiHephaestusSelectors.layout);
|
|
39478
38995
|
appName$ = inject(Store).select(LayoutUiSelectors.appName);
|
|
39479
|
-
currentRoute$ = inject(Store).select(RouterState.state);
|
|
38996
|
+
currentRoute$ = inject(Store).select(RouterState.state());
|
|
39480
38997
|
appLayoutLogo$ = inject(Store).select(LayoutUiSelectors.appDarkLogo);
|
|
39481
38998
|
headerExtrasTemplate;
|
|
39482
38999
|
menu;
|
|
@@ -40003,14 +39520,16 @@ class OutletModule {
|
|
|
40003
39520
|
GlobalLoaderModule,
|
|
40004
39521
|
NgxSmzDockModule,
|
|
40005
39522
|
NgxSmzUiBlockModule,
|
|
40006
|
-
SmzExportDialogModule
|
|
39523
|
+
SmzExportDialogModule,
|
|
39524
|
+
ToastModule], exports: [OutletComponent] });
|
|
40007
39525
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OutletModule, imports: [CommonModule,
|
|
40008
39526
|
SharedModule,
|
|
40009
39527
|
SmzThemeManagerModule,
|
|
40010
39528
|
GlobalLoaderModule,
|
|
40011
39529
|
NgxSmzDockModule,
|
|
40012
39530
|
NgxSmzUiBlockModule,
|
|
40013
|
-
SmzExportDialogModule
|
|
39531
|
+
SmzExportDialogModule,
|
|
39532
|
+
ToastModule] });
|
|
40014
39533
|
}
|
|
40015
39534
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: OutletModule, decorators: [{
|
|
40016
39535
|
type: NgModule,
|
|
@@ -40023,7 +39542,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
40023
39542
|
GlobalLoaderModule,
|
|
40024
39543
|
NgxSmzDockModule,
|
|
40025
39544
|
NgxSmzUiBlockModule,
|
|
40026
|
-
SmzExportDialogModule
|
|
39545
|
+
SmzExportDialogModule,
|
|
39546
|
+
ToastModule
|
|
40027
39547
|
],
|
|
40028
39548
|
exports: [OutletComponent]
|
|
40029
39549
|
}]
|
|
@@ -41524,11 +41044,11 @@ class SmzNotificationsComponent {
|
|
|
41524
41044
|
showNotificationsDialog();
|
|
41525
41045
|
}
|
|
41526
41046
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzNotificationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41527
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzNotificationsComponent, isStandalone: false, selector: "smz-ui-notifications", ngImport: i0, template: "@if (notifications$ | async; as notifications) {\r\n <smz-responsive class=\"col grid grid-nogutter w-full items-center justify-start\">\r\n <!-- LANDSCAPE -->\r\n <ng-template pTemplate=\"landscape\">\r\n <i class=\"pi pi-bell badge-color regular-badge\" pBadge [value]=\"(newCount$ | async).toString()\">\r\n <div class=\"absolute inset-0 notification-container cursor-pointer\" (click)=\"op.toggle($event)\"></div>\r\n </i>\r\n <p-
|
|
41047
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzNotificationsComponent, isStandalone: false, selector: "smz-ui-notifications", ngImport: i0, template: "@if (notifications$ | async; as notifications) {\r\n <smz-responsive class=\"col grid grid-nogutter w-full items-center justify-start\">\r\n <!-- LANDSCAPE -->\r\n <ng-template pTemplate=\"landscape\">\r\n <i class=\"pi pi-bell badge-color regular-badge\" pBadge [value]=\"(newCount$ | async).toString()\">\r\n <div class=\"absolute inset-0 notification-container cursor-pointer\" (click)=\"op.toggle($event)\"></div>\r\n </i>\r\n <p-popover #op [style]=\"{ 'width': uiConfig.rbkUtils.notifications.width, 'z-index': uiConfig.rbkUtils.notifications.zIndex }\" [ngClass]=\"uiConfig.rbkUtils.notifications.styleClass\" appendTo=\"body\" [autoZIndex]=\"false\">\r\n <smz-notifications-list></smz-notifications-list>\r\n </p-popover>\r\n </ng-template>\r\n <!-- PORTRAIT -->\r\n <ng-template pTemplate=\"portrait\">\r\n <i class=\"pi pi-bell badge-color regular-badge\" pBadge [value]=\"(newCount$ | async).toString()\">\r\n <div class=\"absolute inset-0 notification-container cursor-pointer\" (click)=\"showDialog()\"></div>\r\n </i>\r\n </ng-template>\r\n </smz-responsive>\r\n}", styles: ["smz-ui-notifications .notification-container{min-width:40px}smz-ui-notifications .badge-color{color:var(--text-color-secondary)}smz-ui-notifications .p-badge{background:var(--surface-a);color:var(--primary-color)}smz-ui-notifications .regular-badge{font-size:1.6rem;line-height:1.6rem}smz-ui-notifications .regular-badge .p-badge{font-size:.8rem;font-weight:700;min-width:1.1rem;height:1.1rem;line-height:1.1rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$8.BadgeDirective, selector: "[pBadge]", inputs: ["ptBadgeDirective", "pBadgePT", "pBadgeUnstyled", "badgeDisabled", "badgeSize", "size", "severity", "value", "badgeStyle", "badgeStyleClass"] }, { kind: "directive", type: i1$7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: SmzResponsiveComponent, selector: "smz-responsive" }, { kind: "component", type: NotificationsListComponent, selector: "smz-notifications-list" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
41528
41048
|
}
|
|
41529
41049
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzNotificationsComponent, decorators: [{
|
|
41530
41050
|
type: Component,
|
|
41531
|
-
args: [{ selector: 'smz-ui-notifications', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (notifications$ | async; as notifications) {\r\n <smz-responsive class=\"col grid grid-nogutter w-full items-center justify-start\">\r\n <!-- LANDSCAPE -->\r\n <ng-template pTemplate=\"landscape\">\r\n <i class=\"pi pi-bell badge-color regular-badge\" pBadge [value]=\"(newCount$ | async).toString()\">\r\n <div class=\"absolute inset-0 notification-container cursor-pointer\" (click)=\"op.toggle($event)\"></div>\r\n </i>\r\n <p-
|
|
41051
|
+
args: [{ selector: 'smz-ui-notifications', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (notifications$ | async; as notifications) {\r\n <smz-responsive class=\"col grid grid-nogutter w-full items-center justify-start\">\r\n <!-- LANDSCAPE -->\r\n <ng-template pTemplate=\"landscape\">\r\n <i class=\"pi pi-bell badge-color regular-badge\" pBadge [value]=\"(newCount$ | async).toString()\">\r\n <div class=\"absolute inset-0 notification-container cursor-pointer\" (click)=\"op.toggle($event)\"></div>\r\n </i>\r\n <p-popover #op [style]=\"{ 'width': uiConfig.rbkUtils.notifications.width, 'z-index': uiConfig.rbkUtils.notifications.zIndex }\" [ngClass]=\"uiConfig.rbkUtils.notifications.styleClass\" appendTo=\"body\" [autoZIndex]=\"false\">\r\n <smz-notifications-list></smz-notifications-list>\r\n </p-popover>\r\n </ng-template>\r\n <!-- PORTRAIT -->\r\n <ng-template pTemplate=\"portrait\">\r\n <i class=\"pi pi-bell badge-color regular-badge\" pBadge [value]=\"(newCount$ | async).toString()\">\r\n <div class=\"absolute inset-0 notification-container cursor-pointer\" (click)=\"showDialog()\"></div>\r\n </i>\r\n </ng-template>\r\n </smz-responsive>\r\n}", styles: ["smz-ui-notifications .notification-container{min-width:40px}smz-ui-notifications .badge-color{color:var(--text-color-secondary)}smz-ui-notifications .p-badge{background:var(--surface-a);color:var(--primary-color)}smz-ui-notifications .regular-badge{font-size:1.6rem;line-height:1.6rem}smz-ui-notifications .regular-badge .p-badge{font-size:.8rem;font-weight:700;min-width:1.1rem;height:1.1rem;line-height:1.1rem}\n"] }]
|
|
41532
41052
|
}], ctorParameters: () => [] });
|
|
41533
41053
|
|
|
41534
41054
|
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @typescript-eslint/no-empty-object-type */
|
|
@@ -41916,7 +41436,7 @@ class AthenaHorizontalMenuComponent {
|
|
|
41916
41436
|
appLogo$ = inject(Store).select(LayoutUiSelectors.appContentLogo);
|
|
41917
41437
|
layout$ = inject(Store).select(UiAthenaSelectors$1.layout);
|
|
41918
41438
|
appName$ = inject(Store).select(LayoutUiSelectors.appName);
|
|
41919
|
-
currentRoute$ = inject(Store).select(RouterState.state);
|
|
41439
|
+
currentRoute$ = inject(Store).select(RouterState.state());
|
|
41920
41440
|
menu;
|
|
41921
41441
|
isAnyMenuExpanded = false;
|
|
41922
41442
|
menuType = MenuType;
|
|
@@ -42089,7 +41609,7 @@ class SmzNotificationsModule {
|
|
|
42089
41609
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: SmzNotificationsModule, declarations: [SmzNotificationsComponent, NotificationsListComponent, NotificationItemComponent], imports: [CommonModule,
|
|
42090
41610
|
FormsModule,
|
|
42091
41611
|
BadgeModule,
|
|
42092
|
-
|
|
41612
|
+
PopoverModule,
|
|
42093
41613
|
ButtonModule,
|
|
42094
41614
|
NgxSmzTablesModule,
|
|
42095
41615
|
InputTextModule,
|
|
@@ -42105,7 +41625,7 @@ class SmzNotificationsModule {
|
|
|
42105
41625
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzNotificationsModule, imports: [CommonModule,
|
|
42106
41626
|
FormsModule,
|
|
42107
41627
|
BadgeModule,
|
|
42108
|
-
|
|
41628
|
+
PopoverModule,
|
|
42109
41629
|
ButtonModule,
|
|
42110
41630
|
NgxSmzTablesModule,
|
|
42111
41631
|
InputTextModule,
|
|
@@ -42124,7 +41644,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
42124
41644
|
CommonModule,
|
|
42125
41645
|
FormsModule,
|
|
42126
41646
|
BadgeModule,
|
|
42127
|
-
|
|
41647
|
+
PopoverModule,
|
|
42128
41648
|
ButtonModule,
|
|
42129
41649
|
NgxSmzTablesModule,
|
|
42130
41650
|
InputTextModule,
|
|
@@ -43032,12 +42552,12 @@ class AthenaTopbarActionsComponent {
|
|
|
43032
42552
|
|
|
43033
42553
|
<div id="smz-ui-topbar"></div>
|
|
43034
42554
|
|
|
43035
|
-
<smz-responsive class="col grid grid-nogutter w-full items-center justify-start">
|
|
42555
|
+
<smz-responsive class="col grid grid-nogutter w-full items-center justify-start gap-5">
|
|
43036
42556
|
|
|
43037
42557
|
<!-- LANDSCAPE -->
|
|
43038
42558
|
<ng-template pTemplate="landscape">
|
|
43039
42559
|
|
|
43040
|
-
<span class="col extras-container justify-end extras-container
|
|
42560
|
+
<span class="col extras-container justify-end extras-container">
|
|
43041
42561
|
@if (headerExtrasTemplate != null) {
|
|
43042
42562
|
<ng-container *ngTemplateOutlet="headerExtrasTemplate"></ng-container>
|
|
43043
42563
|
}
|
|
@@ -43053,11 +42573,11 @@ class AthenaTopbarActionsComponent {
|
|
|
43053
42573
|
|
|
43054
42574
|
|
|
43055
42575
|
@if (showLocalizationSwitch) {
|
|
43056
|
-
<smz-localization-switch
|
|
42576
|
+
<smz-localization-switch></smz-localization-switch>
|
|
43057
42577
|
}
|
|
43058
42578
|
|
|
43059
42579
|
@if (showTenantSwitch) {
|
|
43060
|
-
<smz-tenant-switch
|
|
42580
|
+
<smz-tenant-switch></smz-tenant-switch>
|
|
43061
42581
|
}
|
|
43062
42582
|
|
|
43063
42583
|
@if (profile != null) {
|
|
@@ -43069,7 +42589,7 @@ class AthenaTopbarActionsComponent {
|
|
|
43069
42589
|
<!-- PORTRAIT -->
|
|
43070
42590
|
<ng-template pTemplate="portrait">
|
|
43071
42591
|
|
|
43072
|
-
<span class="col extras-container justify-end extras-container
|
|
42592
|
+
<span class="col extras-container justify-end extras-container">
|
|
43073
42593
|
@if (headerExtrasTemplate != null) {
|
|
43074
42594
|
<ng-container *ngTemplateOutlet="headerExtrasTemplate"></ng-container>
|
|
43075
42595
|
}
|
|
@@ -43085,7 +42605,7 @@ class AthenaTopbarActionsComponent {
|
|
|
43085
42605
|
|
|
43086
42606
|
|
|
43087
42607
|
@if (showTenantSwitch) {
|
|
43088
|
-
<smz-tenant-switch
|
|
42608
|
+
<smz-tenant-switch></smz-tenant-switch>
|
|
43089
42609
|
}
|
|
43090
42610
|
|
|
43091
42611
|
@if (profile != null) {
|
|
@@ -43105,12 +42625,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
43105
42625
|
|
|
43106
42626
|
<div id="smz-ui-topbar"></div>
|
|
43107
42627
|
|
|
43108
|
-
<smz-responsive class="col grid grid-nogutter w-full items-center justify-start">
|
|
42628
|
+
<smz-responsive class="col grid grid-nogutter w-full items-center justify-start gap-5">
|
|
43109
42629
|
|
|
43110
42630
|
<!-- LANDSCAPE -->
|
|
43111
42631
|
<ng-template pTemplate="landscape">
|
|
43112
42632
|
|
|
43113
|
-
<span class="col extras-container justify-end extras-container
|
|
42633
|
+
<span class="col extras-container justify-end extras-container">
|
|
43114
42634
|
@if (headerExtrasTemplate != null) {
|
|
43115
42635
|
<ng-container *ngTemplateOutlet="headerExtrasTemplate"></ng-container>
|
|
43116
42636
|
}
|
|
@@ -43126,11 +42646,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
43126
42646
|
|
|
43127
42647
|
|
|
43128
42648
|
@if (showLocalizationSwitch) {
|
|
43129
|
-
<smz-localization-switch
|
|
42649
|
+
<smz-localization-switch></smz-localization-switch>
|
|
43130
42650
|
}
|
|
43131
42651
|
|
|
43132
42652
|
@if (showTenantSwitch) {
|
|
43133
|
-
<smz-tenant-switch
|
|
42653
|
+
<smz-tenant-switch></smz-tenant-switch>
|
|
43134
42654
|
}
|
|
43135
42655
|
|
|
43136
42656
|
@if (profile != null) {
|
|
@@ -43142,7 +42662,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
43142
42662
|
<!-- PORTRAIT -->
|
|
43143
42663
|
<ng-template pTemplate="portrait">
|
|
43144
42664
|
|
|
43145
|
-
<span class="col extras-container justify-end extras-container
|
|
42665
|
+
<span class="col extras-container justify-end extras-container">
|
|
43146
42666
|
@if (headerExtrasTemplate != null) {
|
|
43147
42667
|
<ng-container *ngTemplateOutlet="headerExtrasTemplate"></ng-container>
|
|
43148
42668
|
}
|
|
@@ -43158,7 +42678,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
43158
42678
|
|
|
43159
42679
|
|
|
43160
42680
|
@if (showTenantSwitch) {
|
|
43161
|
-
<smz-tenant-switch
|
|
42681
|
+
<smz-tenant-switch></smz-tenant-switch>
|
|
43162
42682
|
}
|
|
43163
42683
|
|
|
43164
42684
|
@if (profile != null) {
|
|
@@ -43474,11 +42994,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
43474
42994
|
class NewAthenaHorizontalMenuComponent {
|
|
43475
42995
|
_eref;
|
|
43476
42996
|
templates;
|
|
43477
|
-
|
|
43478
|
-
|
|
43479
|
-
|
|
43480
|
-
|
|
43481
|
-
|
|
42997
|
+
store = inject(Store);
|
|
42998
|
+
topbarTitle$ = this.store.select(LayoutUiSelectors.topbarTitle);
|
|
42999
|
+
appLogo$ = this.store.select(LayoutUiSelectors.appContentLogo);
|
|
43000
|
+
layout$ = this.store.select(UiAthenaSelectors.layout);
|
|
43001
|
+
appName$ = this.store.select(LayoutUiSelectors.appName);
|
|
43002
|
+
currentRoute$ = this.store.select(RouterState.state());
|
|
43482
43003
|
menu;
|
|
43483
43004
|
isAnyMenuExpanded = false;
|
|
43484
43005
|
menuType = MenuType;
|
|
@@ -43486,8 +43007,6 @@ class NewAthenaHorizontalMenuComponent {
|
|
|
43486
43007
|
constructor(_eref) {
|
|
43487
43008
|
this._eref = _eref;
|
|
43488
43009
|
}
|
|
43489
|
-
ngOnInit() {
|
|
43490
|
-
}
|
|
43491
43010
|
ngAfterContentInit() {
|
|
43492
43011
|
this.templates.forEach((item) => {
|
|
43493
43012
|
switch (item.getType()) {
|
|
@@ -44366,7 +43885,7 @@ class TreeHelperService {
|
|
|
44366
43885
|
this.add(key, result);
|
|
44367
43886
|
}
|
|
44368
43887
|
else {
|
|
44369
|
-
const resultCloned = cloneDeep
|
|
43888
|
+
const resultCloned = cloneDeep(result);
|
|
44370
43889
|
synchronizeTrees(resultCloned, this.trees[key]);
|
|
44371
43890
|
this.trees[key] = resultCloned;
|
|
44372
43891
|
}
|
|
@@ -44860,7 +44379,7 @@ class SmzTreeComponent {
|
|
|
44860
44379
|
}
|
|
44861
44380
|
}
|
|
44862
44381
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzTreeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TreeHelperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
44863
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzTreeComponent, isStandalone: false, selector: "smz-ui-tree", inputs: { state: "state", items: "items", loading: "loading", styleClass: "styleClass", inlineStyle: "inlineStyle", appendTo: "appendTo", selection: "selection", selectionKey: "selectionKey" }, outputs: { selectedNodes: "selectedNodes", selectionChange: "selectionChange", parentChange: "parentChange", reorder: "reorder", blockedDrop: "blockedDrop", nodeExpanded: "nodeExpanded", nodeCollapsed: "nodeCollapsed", treeExpanded: "treeExpanded", nodeDropped: "nodeDropped" }, providers: [TreeDragDropService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "dt", first: true, predicate: Tree, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (state) {\r\n @if ((state.emptyFeedback?.isFeatured) && (treeItems != null && treeItems.length === 0)) {\r\n <smz-data-info\r\n [image]=\"state.emptyFeedback.image\"\r\n [message]=\"state.emptyFeedback.message\"\r\n [callbackInfo]=\"state.emptyFeedback.extraInfo\"\r\n [callbackLabel]=\"state.emptyFeedback.actionButton?.label\"\r\n (clicked)=\"state.emptyFeedback.actionButton?.callback($event)\">\r\n <ng-template pTemplate=\"actions\">\r\n <ng-container *ngTemplateOutlet=\"emptyActionsTemplate; context: { $implicit: {} }\"></ng-container>\r\n </ng-template>\r\n </smz-data-info>\r\n } @else {\r\n @if (treeItems != null) {\r\n <p-contextMenu #cm [model]=\"menuItems\" [appendTo]=\"appendTo\" [styleClass]=\"menuItems == null || menuItems?.length === 0 ? 'invisible-important' : ''\"></p-contextMenu>\r\n <p-menu #rowMenu [model]=\"menuItems\" [popup]=\"true\" appendTo=\"body\" />\r\n <p-tree #dt [value]=\"treeItems\"\r\n scrollHeight=\"flex\"\r\n [contextMenu]=\"state.menu.behavior === 'context-menu' ? cm : null\"\r\n [selectionMode]=\"state.selection.mode\"\r\n [(selection)]=\"primeSelection\"\r\n layout=\"vertical\"\r\n [style]=\"inlineStyle\"\r\n [styleClass]=\"styleClass\"\r\n [propagateSelectionUp]=\"state.selection.propagateUp\"\r\n [propagateSelectionDown]=\"state.selection.propagateDown\"\r\n [loading]=\"state.loading.isLoading\"\r\n [loadingIcon]=\"state.loading.icon\"\r\n [filter]=\"false\"\r\n [filterMode]=\"state.filter.mode\"\r\n [filterPlaceholder]=\"state.filter.textPlaceholder\"\r\n [draggableNodes]=\"state.dragAndDrop.draggable\"\r\n [droppableNodes]=\"state.dragAndDrop.droppable\"\r\n [validateDrop]=\"state.dragAndDrop.validateDrop\"\r\n (onNodeContextMenuSelect)=\"onContextMenuOpen($event)\"\r\n (onNodeSelect)=\"onSelected($event)\"\r\n (onNodeUnselect)=\"onUnselected($event)\"\r\n (onNodeExpand)=\"onExpanded($event)\"\r\n (onNodeCollapse)=\"onCollapsed($event)\"\r\n (onNodeDrop)=\"onDropped($event)\"\r\n (onFilter)=\"onFiltered($event)\">\r\n @if (state.header.isVisible) {\r\n <ng-template pTemplate=\"header\">\r\n @if (state.header.toolbar; as toolbar) {\r\n @if (headerTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center w-full justify-start\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n <div class=\"grid grid-nogutter justify-start items-center mb-2 gap-2\">\r\n @if (state.header.title != null) {\r\n <h3 class=\"m-2 col\">{{state.header.title}}</h3>\r\n }\r\n <div class=\"grid grid-nogutter justify-start items-center gap-2\">\r\n @for (button of state.header.toolbar.items; track button; let i = $index) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': button.color === 'secondary', 'p-button-success': button.color === 'success', 'p-button-info': button.color === 'info', 'p-button-warning': button.color === 'warning', 'p-button-help': button.color === 'help', 'p-button-danger': button.color === 'danger' }\"\r\n [label]=\"button.label\"\r\n [icon]=\"button.icon\"\r\n (click)=\"onToolbarButtonClick($event, button, treeItems)\"\r\n [pTooltip]=\"button.tooltip\">\r\n </button>\r\n }\r\n @if (toolbar.nodeExpandButtons.isVisible === true) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': true }\"\r\n [label]=\"toolbar.nodeExpandButtons.expandLabel\"\r\n icon=\"fa-solid fa-angle-down\"\r\n (click)=\"expandNode()\"\r\n [pTooltip]=\"selection != null ? toolbar.nodeExpandButtons.expandTooltip : toolbar.nodeExpandButtons.disabledTooltip\"\r\n [disabled]=\"selection == null\">\r\n </button>\r\n }\r\n @if (toolbar.nodeExpandButtons.isVisible === true) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': true }\"\r\n [label]=\"toolbar.nodeExpandButtons.collapseLabel\"\r\n icon=\"fa-solid fa-angle-up\"\r\n (click)=\"collapseNode()\"\r\n [pTooltip]=\"selection != null ? toolbar.nodeExpandButtons.collapseTooltip : toolbar.nodeExpandButtons.disabledTooltip\"\r\n [disabled]=\"selection == null\">\r\n </button>\r\n }\r\n @if (toolbar.treeExpandButtons.isVisible === true) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': true }\"\r\n [label]=\"toolbar.treeExpandButtons.expandLabel\"\r\n icon=\"fa-solid fa-angles-down\"\r\n (click)=\"expandAll()\"\r\n [pTooltip]=\"\">\r\n </button>\r\n }\r\n @if (toolbar.treeExpandButtons.isVisible === true) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': true }\"\r\n [label]=\"toolbar.treeExpandButtons.collapseLabel\"\r\n icon=\"fa-solid fa-angles-up\"\r\n (click)=\"collapseAll()\"\r\n [pTooltip]=\"\">\r\n </button>\r\n }\r\n @if (actionsTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center justify-start\">\r\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (state.filter.show) {\r\n <p-iconfield class=\"col-12\" [ngClass]=\"state.filter.styleClass\">\r\n <p-inputicon styleClass=\"pi pi-search\" />\r\n <input #inputGlobal pInputText type=\"text\" (input)=\"dt._filter(inputGlobal.value)\" [placeholder]=\"state.filter.textPlaceholder\" />\r\n </p-iconfield>\r\n }\r\n </div>\r\n @if (toolbarTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center mt-2\"\r\n [ngClass]=\"'justify-' + state.header.toolbar.alignment\">\r\n <ng-container *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n }\r\n </ng-template>\r\n }\r\n @if (state.footer.isVisible) {\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"grid grid-nogutter justify-start items-center\">\r\n <span class=\"col mr-2\">FOOTER</span>\r\n </div>\r\n </ng-template>\r\n }\r\n @for (content of contentTemplates; track content) {\r\n <ng-template let-node [pTemplate]=\"content.type\">\r\n <div class=\"grid grid-nogutter items-center justify-start gap-2\">\r\n @if (content.template != null) {\r\n <ng-container *ngTemplateOutlet=\"content.template; context: { $implicit: node }\"></ng-container>\r\n } @else {\r\n <div>{{ node.label }}</div>\r\n }\r\n @if (state.menu.behavior === 'row-menu') {\r\n <p-button clickStopPropagation (onClick)=\"onRowMenuOpen(node, rowMenu, $event)\" [icon]=\"state.menu.rowMenuIcon\" [rounded]=\"true\" [text]=\"true\" [severity]=\"state.menu.rowMenuIconSeverity\"/>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n <ng-template let-node pTemplate=\"Check\">\r\n <div class=\"grid grid-nogutter items-center justify-start gap-2\">\r\n <div>{{ node.label }}</div>\r\n @if (state.menu.behavior === 'row-menu') {\r\n <p-button clickStopPropagation (onClick)=\"onRowMenuOpen(node, rowMenu, $event)\" [icon]=\"state.menu.rowMenuIcon\" [rounded]=\"true\" [text]=\"true\" [severity]=\"state.menu.rowMenuIconSeverity\"/>\r\n }\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"empty\">\r\n @if (!state.emptyFeedback.isFeatured) {\r\n <div>{{ state.emptyFeedback.message }}</div>\r\n }\r\n </ng-template>\r\n </p-tree>\r\n }\r\n }\r\n} @else {\r\n @if (emptyStateTemplate != null) {\r\n <ng-container *ngTemplateOutlet=\"emptyStateTemplate; context: { $implicit: {} }\"></ng-container>\r\n }\r\n}\r\n\r\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: ClickStopPropagationDirective, selector: "[clickStopPropagation]" }, { kind: "component", type: SmzDataInfoComponent, selector: "smz-data-info", inputs: ["image", "message", "actions", "callbackInfo", "callbackLabel"], outputs: ["clicked"] }, { kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: i8$1.ContextMenu, selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "autoZIndex", "baseZIndex", "id", "breakpoint", "ariaLabel", "ariaLabelledBy", "pressDelay", "appendTo", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i9.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "styleClass", "contextMenu", "contextMenuSelectionMode", "contextMenuSelection", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterInputAutoFocus", "filterBy", "filterMode", "filterOptions", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "highlightOnSelect"], outputs: ["selectionChange", "contextMenuSelectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDoubleClick", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: i11.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo", "motionOptions"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i27.IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: i28.InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["hostName", "styleClass"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
44382
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzTreeComponent, isStandalone: false, selector: "smz-ui-tree", inputs: { state: "state", items: "items", loading: "loading", styleClass: "styleClass", inlineStyle: "inlineStyle", appendTo: "appendTo", selection: "selection", selectionKey: "selectionKey" }, outputs: { selectedNodes: "selectedNodes", selectionChange: "selectionChange", parentChange: "parentChange", reorder: "reorder", blockedDrop: "blockedDrop", nodeExpanded: "nodeExpanded", nodeCollapsed: "nodeCollapsed", treeExpanded: "treeExpanded", nodeDropped: "nodeDropped" }, providers: [TreeDragDropService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "dt", first: true, predicate: Tree, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (state) {\r\n @if ((state.emptyFeedback?.isFeatured) && (treeItems != null && treeItems.length === 0)) {\r\n <smz-data-info\r\n [image]=\"state.emptyFeedback.image\"\r\n [message]=\"state.emptyFeedback.message\"\r\n [callbackInfo]=\"state.emptyFeedback.extraInfo\"\r\n [callbackLabel]=\"state.emptyFeedback.actionButton?.label\"\r\n (clicked)=\"state.emptyFeedback.actionButton?.callback($event)\">\r\n <ng-template pTemplate=\"actions\">\r\n <ng-container *ngTemplateOutlet=\"emptyActionsTemplate; context: { $implicit: {} }\"></ng-container>\r\n </ng-template>\r\n </smz-data-info>\r\n } @else {\r\n @if (treeItems != null) {\r\n <p-contextMenu #cm [model]=\"menuItems\" [appendTo]=\"appendTo\" [styleClass]=\"menuItems == null || menuItems?.length === 0 ? 'invisible-important' : ''\"></p-contextMenu>\r\n <p-menu #rowMenu [model]=\"menuItems\" [popup]=\"true\" appendTo=\"body\" />\r\n <p-tree #dt [value]=\"treeItems\"\r\n scrollHeight=\"flex\"\r\n [contextMenu]=\"state.menu.behavior === 'context-menu' ? cm : null\"\r\n [selectionMode]=\"state.selection.mode\"\r\n [(selection)]=\"primeSelection\"\r\n layout=\"vertical\"\r\n [style]=\"inlineStyle\"\r\n [styleClass]=\"styleClass\"\r\n [propagateSelectionUp]=\"state.selection.propagateUp\"\r\n [propagateSelectionDown]=\"state.selection.propagateDown\"\r\n [loading]=\"state.loading.isLoading\"\r\n [loadingIcon]=\"state.loading.icon\"\r\n [filter]=\"false\"\r\n [filterMode]=\"state.filter.mode\"\r\n [filterPlaceholder]=\"state.filter.textPlaceholder\"\r\n [draggableNodes]=\"state.dragAndDrop.draggable\"\r\n [droppableNodes]=\"state.dragAndDrop.droppable\"\r\n [validateDrop]=\"state.dragAndDrop.validateDrop\"\r\n (onNodeContextMenuSelect)=\"onContextMenuOpen($event)\"\r\n (onNodeSelect)=\"onSelected($event)\"\r\n (onNodeUnselect)=\"onUnselected($event)\"\r\n (onNodeExpand)=\"onExpanded($event)\"\r\n (onNodeCollapse)=\"onCollapsed($event)\"\r\n (onNodeDrop)=\"onDropped($event)\"\r\n (onFilter)=\"onFiltered($event)\">\r\n @if (state.header.isVisible) {\r\n <ng-template pTemplate=\"header\">\r\n @if (state.header.toolbar; as toolbar) {\r\n @if (headerTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center w-full justify-start\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n <div class=\"grid grid-nogutter justify-start items-center mb-2 gap-2\">\r\n @if (state.header.title != null) {\r\n <h3 class=\"m-2 col\">{{state.header.title}}</h3>\r\n }\r\n <div class=\"grid grid-nogutter justify-start items-center gap-2\">\r\n @for (button of state.header.toolbar.items; track button; let i = $index) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': button.color === 'secondary', 'p-button-success': button.color === 'success', 'p-button-info': button.color === 'info', 'p-button-warning': button.color === 'warning', 'p-button-help': button.color === 'help', 'p-button-danger': button.color === 'danger' }\"\r\n [label]=\"button.label\"\r\n [icon]=\"button.icon\"\r\n (click)=\"onToolbarButtonClick($event, button, treeItems)\"\r\n [pTooltip]=\"button.tooltip\">\r\n </button>\r\n }\r\n @if (toolbar.nodeExpandButtons.isVisible === true) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': true }\"\r\n [label]=\"toolbar.nodeExpandButtons.expandLabel\"\r\n icon=\"fa-solid fa-angle-down\"\r\n (click)=\"expandNode()\"\r\n [pTooltip]=\"selection != null ? toolbar.nodeExpandButtons.expandTooltip : toolbar.nodeExpandButtons.disabledTooltip\"\r\n [disabled]=\"selection == null\">\r\n </button>\r\n }\r\n @if (toolbar.nodeExpandButtons.isVisible === true) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': true }\"\r\n [label]=\"toolbar.nodeExpandButtons.collapseLabel\"\r\n icon=\"fa-solid fa-angle-up\"\r\n (click)=\"collapseNode()\"\r\n [pTooltip]=\"selection != null ? toolbar.nodeExpandButtons.collapseTooltip : toolbar.nodeExpandButtons.disabledTooltip\"\r\n [disabled]=\"selection == null\">\r\n </button>\r\n }\r\n @if (toolbar.treeExpandButtons.isVisible === true) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': true }\"\r\n [label]=\"toolbar.treeExpandButtons.expandLabel\"\r\n icon=\"fa-solid fa-angles-down\"\r\n (click)=\"expandAll()\"\r\n [pTooltip]=\"\">\r\n </button>\r\n }\r\n @if (toolbar.treeExpandButtons.isVisible === true) {\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n [ngClass]=\"{ 'p-button-text': toolbar.buttonType.endsWith('borderless'), 'p-button-outlined': toolbar.buttonType.endsWith('outlined'), 'p-button-rounded': toolbar.buttonType.startsWith('rounded'), 'p-button-secondary': true }\"\r\n [label]=\"toolbar.treeExpandButtons.collapseLabel\"\r\n icon=\"fa-solid fa-angles-up\"\r\n (click)=\"collapseAll()\"\r\n [pTooltip]=\"\">\r\n </button>\r\n }\r\n @if (actionsTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center justify-start\">\r\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (state.filter.show) {\r\n <p-iconfield class=\"col-12\" [ngClass]=\"state.filter.styleClass\">\r\n <p-inputicon styleClass=\"pi pi-search\" />\r\n <input #inputGlobal pInputText type=\"text\" (input)=\"dt._filter(inputGlobal.value)\" [placeholder]=\"state.filter.textPlaceholder\" />\r\n </p-iconfield>\r\n }\r\n </div>\r\n @if (toolbarTemplate != null) {\r\n <div class=\"grid grid-nogutter items-center mt-2\"\r\n [ngClass]=\"'justify-' + state.header.toolbar.alignment\">\r\n <ng-container *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: dt }\"></ng-container>\r\n </div>\r\n }\r\n }\r\n </ng-template>\r\n }\r\n @if (state.footer.isVisible) {\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"grid grid-nogutter justify-start items-center\">\r\n <span class=\"col mr-2\">FOOTER</span>\r\n </div>\r\n </ng-template>\r\n }\r\n @for (content of contentTemplates; track content) {\r\n <ng-template let-node [pTemplate]=\"content.type\">\r\n <div class=\"grid grid-nogutter items-center justify-start gap-2\">\r\n @if (content.template != null) {\r\n <ng-container *ngTemplateOutlet=\"content.template; context: { $implicit: node }\"></ng-container>\r\n } @else {\r\n <div>{{ node.label }}</div>\r\n }\r\n @if (state.menu.behavior === 'row-menu') {\r\n <p-button clickStopPropagation (onClick)=\"onRowMenuOpen(node, rowMenu, $event)\" [icon]=\"state.menu.rowMenuIcon\" [rounded]=\"true\" [text]=\"true\" [severity]=\"state.menu.rowMenuIconSeverity\"/>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n <ng-template let-node pTemplate=\"Check\">\r\n <div class=\"grid grid-nogutter items-center justify-start gap-2\">\r\n <div>{{ node.label }}</div>\r\n @if (state.menu.behavior === 'row-menu') {\r\n <p-button clickStopPropagation (onClick)=\"onRowMenuOpen(node, rowMenu, $event)\" [icon]=\"state.menu.rowMenuIcon\" [rounded]=\"true\" [text]=\"true\" [severity]=\"state.menu.rowMenuIconSeverity\"/>\r\n }\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"empty\">\r\n @if (!state.emptyFeedback.isFeatured) {\r\n <div>{{ state.emptyFeedback.message }}</div>\r\n }\r\n </ng-template>\r\n </p-tree>\r\n }\r\n }\r\n} @else {\r\n @if (emptyStateTemplate != null) {\r\n <ng-container *ngTemplateOutlet=\"emptyStateTemplate; context: { $implicit: {} }\"></ng-container>\r\n }\r\n}\r\n\r\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: ClickStopPropagationDirective, selector: "[clickStopPropagation]" }, { kind: "component", type: SmzDataInfoComponent, selector: "smz-data-info", inputs: ["image", "message", "actions", "callbackInfo", "callbackLabel"], outputs: ["clicked"] }, { kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "showOnEllipsis", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo", "ptTooltip", "pTooltipPT", "pTooltipUnstyled"] }, { kind: "component", type: i8$1.ContextMenu, selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "autoZIndex", "baseZIndex", "id", "breakpoint", "ariaLabel", "ariaLabelledBy", "pressDelay", "appendTo", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i9.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "styleClass", "contextMenu", "contextMenuSelectionMode", "contextMenuSelection", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterInputAutoFocus", "filterBy", "filterMode", "filterOptions", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "highlightOnSelect"], outputs: ["selectionChange", "contextMenuSelectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDoubleClick", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: i11$1.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo", "motionOptions"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i27.IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["hostName", "iconPosition", "styleClass"] }, { kind: "component", type: i28.InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["hostName", "styleClass"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
44864
44383
|
}
|
|
44865
44384
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzTreeComponent, decorators: [{
|
|
44866
44385
|
type: Component,
|
|
@@ -46549,7 +46068,6 @@ class NgxSmzCommentsModule {
|
|
|
46549
46068
|
ButtonModule,
|
|
46550
46069
|
FormsModule,
|
|
46551
46070
|
RbkPipesModule,
|
|
46552
|
-
OverlayPanelModule,
|
|
46553
46071
|
NgxSmzFormsModule,
|
|
46554
46072
|
TreeModule,
|
|
46555
46073
|
NgxSmzDataPipesModule,
|
|
@@ -46559,7 +46077,6 @@ class NgxSmzCommentsModule {
|
|
|
46559
46077
|
ButtonModule,
|
|
46560
46078
|
FormsModule,
|
|
46561
46079
|
RbkPipesModule,
|
|
46562
|
-
OverlayPanelModule,
|
|
46563
46080
|
NgxSmzFormsModule,
|
|
46564
46081
|
TreeModule,
|
|
46565
46082
|
NgxSmzDataPipesModule,
|
|
@@ -46574,7 +46091,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
46574
46091
|
ButtonModule,
|
|
46575
46092
|
FormsModule,
|
|
46576
46093
|
RbkPipesModule,
|
|
46577
|
-
OverlayPanelModule,
|
|
46578
46094
|
NgxSmzFormsModule,
|
|
46579
46095
|
TreeModule,
|
|
46580
46096
|
NgxSmzDataPipesModule,
|
|
@@ -47450,7 +46966,7 @@ class SmzToastComponent {
|
|
|
47450
46966
|
</div>
|
|
47451
46967
|
</ng-template>
|
|
47452
46968
|
</p-toast>
|
|
47453
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ToastModule }, { kind: "component", type:
|
|
46969
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ToastModule }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "motionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: ProgressBarModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
47454
46970
|
}
|
|
47455
46971
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzToastComponent, decorators: [{
|
|
47456
46972
|
type: Component,
|
|
@@ -49364,14 +48880,14 @@ class SmzSvgComponent {
|
|
|
49364
48880
|
this.state.dispatch.setScopes.unsubscribe();
|
|
49365
48881
|
}
|
|
49366
48882
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzSvgComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
49367
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: SmzSvgComponent, isStandalone: false, selector: "smz-svg", inputs: { state: "state" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate:
|
|
48883
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: SmzSvgComponent, isStandalone: false, selector: "smz-svg", inputs: { state: "state" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: Popover, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"smz-svg-container\" [ngClass]=\"state?.containerClass\">\r\n <div id=\"smz-svg-map\" [ngClass]=\"{ 'border-2 border-red-800 border-solid': state?.isDebug }\"></div>\r\n</div>\r\n\r\n<p-popover #op appendTo=\"body\">\r\n <div class=\"grid grid-nogutter items-center justify-start gap-2\">\r\n <i class=\"fa-solid fa-map-pin text-blue-200 text-2xl\"></i>\r\n <div>{{ tooltipContent }}</div>\r\n </div>\r\n</p-popover>\r\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions", "motionOptions"], outputs: ["onShow", "onHide"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
49368
48884
|
}
|
|
49369
48885
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzSvgComponent, decorators: [{
|
|
49370
48886
|
type: Component,
|
|
49371
|
-
args: [{ selector: 'smz-svg', changeDetection: ChangeDetectionStrategy.Default, standalone: false, template: "<div id=\"smz-svg-container\" [ngClass]=\"state?.containerClass\">\r\n <div id=\"smz-svg-map\" [ngClass]=\"{ 'border-2 border-red-800 border-solid': state?.isDebug }\"></div>\r\n</div>\r\n\r\n<p-
|
|
48887
|
+
args: [{ selector: 'smz-svg', changeDetection: ChangeDetectionStrategy.Default, standalone: false, template: "<div id=\"smz-svg-container\" [ngClass]=\"state?.containerClass\">\r\n <div id=\"smz-svg-map\" [ngClass]=\"{ 'border-2 border-red-800 border-solid': state?.isDebug }\"></div>\r\n</div>\r\n\r\n<p-popover #op appendTo=\"body\">\r\n <div class=\"grid grid-nogutter items-center justify-start gap-2\">\r\n <i class=\"fa-solid fa-map-pin text-blue-200 text-2xl\"></i>\r\n <div>{{ tooltipContent }}</div>\r\n </div>\r\n</p-popover>\r\n" }]
|
|
49372
48888
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { overlayPanel: [{
|
|
49373
48889
|
type: ViewChild,
|
|
49374
|
-
args: [
|
|
48890
|
+
args: [Popover]
|
|
49375
48891
|
}], state: [{
|
|
49376
48892
|
type: Input
|
|
49377
48893
|
}] } });
|
|
@@ -49381,11 +48897,11 @@ class SmzSvgModule {
|
|
|
49381
48897
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.1", ngImport: i0, type: SmzSvgModule, declarations: [SmzSvgComponent], imports: [CommonModule,
|
|
49382
48898
|
FormsModule,
|
|
49383
48899
|
RbkPipesModule,
|
|
49384
|
-
|
|
48900
|
+
PopoverModule], exports: [SmzSvgComponent] });
|
|
49385
48901
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzSvgModule, imports: [CommonModule,
|
|
49386
48902
|
FormsModule,
|
|
49387
48903
|
RbkPipesModule,
|
|
49388
|
-
|
|
48904
|
+
PopoverModule] });
|
|
49389
48905
|
}
|
|
49390
48906
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzSvgModule, decorators: [{
|
|
49391
48907
|
type: NgModule,
|
|
@@ -49394,7 +48910,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
49394
48910
|
CommonModule,
|
|
49395
48911
|
FormsModule,
|
|
49396
48912
|
RbkPipesModule,
|
|
49397
|
-
|
|
48913
|
+
PopoverModule
|
|
49398
48914
|
],
|
|
49399
48915
|
exports: [
|
|
49400
48916
|
SmzSvgComponent
|