nath-angular-ui 0.3.0 → 0.4.1
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.
|
@@ -10,13 +10,13 @@ import { RouterModule, Router, NavigationEnd, RouterLink, RouterLinkActive } fro
|
|
|
10
10
|
import * as i1$2 from '@angular/forms';
|
|
11
11
|
import { FormsModule, FormControl, FormGroup, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
12
12
|
import { BasePortalOutlet, CdkPortalOutlet, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
|
|
13
|
-
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
13
|
+
import { toObservable, toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
14
14
|
import * as i1$3 from '@angular/cdk/drag-drop';
|
|
15
15
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
16
16
|
import { filter } from 'rxjs/operators';
|
|
17
|
+
import { of, fromEvent } from 'rxjs';
|
|
17
18
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
18
19
|
import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
|
|
19
|
-
import { fromEvent } from 'rxjs';
|
|
20
20
|
import { Tabs, TabList, Tab, TabPanel, TabContent } from '@angular/aria/tabs';
|
|
21
21
|
|
|
22
22
|
class NathAutocomplete {
|
|
@@ -641,7 +641,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
641
641
|
`, encapsulation: ViewEncapsulation.None, host: {}, styles: ["nath-dialog-container,.nath-dialog-theme{--nath-dialog-bg: #ffffff;--nath-dialog-border: var(--color-zinc-200, oklch(92% .004 286.32));--nath-dialog-radius: .75rem;--nath-dialog-shadow: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--nath-dialog-mask-bg: rgba(0, 0, 0, .4);--nath-dialog-mask-blur: 4px;--nath-dialog-header-border: var(--color-zinc-100, oklch(96.7% .001 286.375));--nath-dialog-text-main: var(--color-zinc-900, oklch(21% .006 285.885));--nath-dialog-text-muted: var(--color-zinc-500, oklch(55.2% .016 285.938));--nath-dialog-text-title: var(--color-zinc-900, oklch(21% .006 285.885));--nath-dialog-btn-hover-bg: var(--color-zinc-100, oklch(96.7% .001 286.375));--nath-dialog-btn-icon-color: var(--color-zinc-400, oklch(70.5% .015 286.067));--nath-dialog-btn-icon-hover: var(--color-zinc-600, oklch(44.2% .017 285.786));--nath-dialog-btn-default-bg: var(--color-zinc-100, oklch(96.7% .001 286.375));--nath-dialog-btn-default-text: var(--color-zinc-800, oklch(27.4% .006 286.033));--nath-dialog-btn-default-hover: var(--color-zinc-200, oklch(92% .004 286.32))}.dark nath-dialog-container,.dark .nath-dialog-theme{--nath-dialog-bg: var(--color-zinc-900, oklch(14.1% .005 285.823));--nath-dialog-border: var(--color-zinc-800, oklch(27.4% .006 286.033));--nath-dialog-header-border: var(--color-zinc-800, oklch(27.4% .006 286.033));--nath-dialog-text-main: var(--color-zinc-100, oklch(96.7% .001 286.375));--nath-dialog-text-muted: var(--color-zinc-400, oklch(70.5% .015 286.067));--nath-dialog-text-title: #ffffff;--nath-dialog-btn-hover-bg: var(--color-zinc-800, oklch(27.4% .006 286.033));--nath-dialog-btn-icon-hover: var(--color-zinc-200, oklch(92% .004 286.32));--nath-dialog-btn-default-bg: var(--color-zinc-800, oklch(27.4% .006 286.033));--nath-dialog-btn-default-text: var(--color-zinc-200, oklch(92% .004 286.32));--nath-dialog-btn-default-hover: var(--color-zinc-700, oklch(37% .013 285.805))}nath-dialog-container{display:contents}.nath-dialog-mask{position:fixed;inset:0;z-index:50;background-color:var(--nath-dialog-mask-bg);-webkit-backdrop-filter:blur(var(--nath-dialog-mask-blur));backdrop-filter:blur(var(--nath-dialog-mask-blur));display:flex;align-items:center;justify-content:center;padding:1rem}.nath-dialog-window{background-color:var(--nath-dialog-bg);color:var(--nath-dialog-text-main);border:1px solid var(--nath-dialog-border);border-radius:var(--nath-dialog-radius);box-shadow:var(--nath-dialog-shadow);max-width:90vw;max-height:90vh;display:flex;flex-direction:column;pointer-events:auto;cursor:default;overflow:hidden}.nath-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--nath-dialog-header-border);cursor:move;-webkit-user-select:none;user-select:none;flex-shrink:0}.nath-dialog-title{font-size:1.125rem;font-weight:600;line-height:1.75rem;letter-spacing:-.025em;color:var(--nath-dialog-text-title);margin:0}.nath-dialog-header-actions{display:flex;gap:.5rem}.nath-dialog-action-btn{color:var(--nath-dialog-btn-icon-color);border-radius:.5rem;padding:.25rem;transition:colors .2s;cursor:pointer;background:transparent;border:none;display:flex;align-items:center;justify-content:center}.nath-dialog-action-btn:hover{color:var(--nath-dialog-btn-icon-hover);background-color:var(--nath-dialog-btn-hover-bg)}.nath-dialog-body{padding:1rem;overflow-y:auto;flex-grow:1}.nath-dialog-footer{padding:1rem;display:flex;justify-content:end;gap:1rem;position:sticky;bottom:-1px;background-color:var(--nath-dialog-bg)}.nath-dialog-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:.5rem;transition:colors .2s;cursor:pointer;border:none;display:inline-flex;align-items:center;justify-content:center}.nath-dialog-btn--default{background-color:var(--nath-dialog-btn-default-bg);color:var(--nath-dialog-btn-default-text)}.nath-dialog-btn--default:hover{background-color:var(--nath-dialog-btn-default-hover)}.nath-dialog-window.dialog-maximized{max-width:100vw!important;max-height:100vh!important;width:100vw!important;height:100vh!important;border-radius:0!important;transform:none!important}.nath-dialog-content-text{font-size:.875rem;color:var(--nath-dialog-text-muted)}.nath-confirmation-dialog{display:flex;flex-direction:column;gap:1rem}\n"] }]
|
|
642
642
|
}], propDecorators: { portalOutlet: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkPortalOutlet), { isSignal: true }] }] } });
|
|
643
643
|
|
|
644
|
-
class
|
|
644
|
+
class NathDialogService {
|
|
645
645
|
injector = inject(Injector);
|
|
646
646
|
environmentInjector = inject(EnvironmentInjector);
|
|
647
647
|
appRef = inject(ApplicationRef);
|
|
@@ -709,10 +709,10 @@ class DialogService {
|
|
|
709
709
|
containerRef.destroy();
|
|
710
710
|
}
|
|
711
711
|
}
|
|
712
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type:
|
|
713
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type:
|
|
712
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
713
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathDialogService, providedIn: 'root' });
|
|
714
714
|
}
|
|
715
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type:
|
|
715
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathDialogService, decorators: [{
|
|
716
716
|
type: Injectable,
|
|
717
717
|
args: [{
|
|
718
718
|
providedIn: 'root',
|
|
@@ -822,7 +822,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
822
822
|
}] });
|
|
823
823
|
|
|
824
824
|
class ConfirmationService {
|
|
825
|
-
dialogService = inject(
|
|
825
|
+
dialogService = inject(NathDialogService);
|
|
826
826
|
/** Spawns a type-safe confirmation window */
|
|
827
827
|
confirm(config) {
|
|
828
828
|
return this.dialogService.open(NathConfirmationDialog, {
|
|
@@ -1103,38 +1103,75 @@ class NathShowErrors {
|
|
|
1103
1103
|
maxValue: (message) => message,
|
|
1104
1104
|
integer: () => `Must be an integer`,
|
|
1105
1105
|
};
|
|
1106
|
-
signalField = input
|
|
1107
|
-
...(ngDevMode ? [{ debugName: "signalField" }] : /* istanbul ignore next */ []));
|
|
1106
|
+
signalField = input(/* @ts-ignore */
|
|
1107
|
+
...(ngDevMode ? [undefined, { debugName: "signalField" }] : /* istanbul ignore next */ []));
|
|
1108
|
+
control = input(/* @ts-ignore */
|
|
1109
|
+
...(ngDevMode ? [undefined, { debugName: "control" }] : /* istanbul ignore next */ []));
|
|
1110
|
+
controlValue = toSignal(this.control()?.valueChanges ?? of(null));
|
|
1111
|
+
controlErrors = computed(() => {
|
|
1112
|
+
this.controlValue();
|
|
1113
|
+
return this.listOfErrors();
|
|
1114
|
+
}, /* @ts-ignore */
|
|
1115
|
+
...(ngDevMode ? [{ debugName: "controlErrors" }] : /* istanbul ignore next */ []));
|
|
1108
1116
|
static getMessage(type, params) {
|
|
1109
1117
|
return NathShowErrors.errorMessages[type](params);
|
|
1110
1118
|
}
|
|
1111
1119
|
shouldShowErrors() {
|
|
1112
1120
|
const fieldState = this.signalField();
|
|
1113
|
-
|
|
1121
|
+
const control = this.control();
|
|
1122
|
+
return ((!!fieldState && !!fieldState.errors() && (fieldState.dirty() || fieldState.touched())) ||
|
|
1123
|
+
(!!control && !!control.errors && (control.dirty || control.touched)));
|
|
1124
|
+
}
|
|
1125
|
+
listOfErrors() {
|
|
1126
|
+
const result = [];
|
|
1127
|
+
const control = this.control();
|
|
1128
|
+
if (control?.errors) {
|
|
1129
|
+
for (const errorsKey in control.errors) {
|
|
1130
|
+
result.push({
|
|
1131
|
+
kind: errorsKey,
|
|
1132
|
+
message: NathShowErrors.getMessage(errorsKey, control?.errors?.[errorsKey]),
|
|
1133
|
+
});
|
|
1134
|
+
}
|
|
1135
|
+
}
|
|
1136
|
+
return result;
|
|
1114
1137
|
}
|
|
1115
1138
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathShowErrors, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1116
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: NathShowErrors, isStandalone: true, selector: "nath-show-errors", inputs: { signalField: { classPropertyName: "signalField", publicName: "signalField", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
1117
|
-
@if (shouldShowErrors()) {
|
|
1118
|
-
<div class="nath-show-errors-container">
|
|
1119
|
-
@
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1139
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: NathShowErrors, isStandalone: true, selector: "nath-show-errors", inputs: { signalField: { classPropertyName: "signalField", publicName: "signalField", isSignal: true, isRequired: false, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1140
|
+
@if (shouldShowErrors()) {
|
|
1141
|
+
<div class="nath-show-errors-container">
|
|
1142
|
+
@if (signalField()) {
|
|
1143
|
+
@for (error of signalField()!.errors(); track error.kind) {
|
|
1144
|
+
<div class="nath-show-errors-item">{{ error.message }}</div>
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
@if (control()) {
|
|
1148
|
+
@for (error of controlErrors(); track error.message) {
|
|
1149
|
+
<div class="nath-show-errors-item">{{ error.message }}</div>
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
</div>
|
|
1153
|
+
}
|
|
1124
1154
|
`, isInline: true, styles: ["nath-show-errors,.nath-show-errors-theme{--nath-show-errors-gap: .5rem;--nath-show-errors-text: var(--color-danger-500, oklch(55% .22 25));display:block;padding:0}.dark nath-show-errors,.dark .nath-show-errors-theme{--nath-show-errors-text: var(--color-danger-400, oklch(65% .22 25))}.nath-show-errors-container{display:flex;flex-direction:column;gap:var(--nath-show-errors-gap)}.nath-show-errors-item{color:var(--nath-show-errors-text)}.ng-invalid.ng-dirty+nath-show-errors,.ng-invalid.ng-touched+nath-show-errors{color:var(--nath-show-errors-text)}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
1125
1155
|
}
|
|
1126
1156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathShowErrors, decorators: [{
|
|
1127
1157
|
type: Component,
|
|
1128
|
-
args: [{ selector: 'nath-show-errors', imports: [], template: `
|
|
1129
|
-
@if (shouldShowErrors()) {
|
|
1130
|
-
<div class="nath-show-errors-container">
|
|
1131
|
-
@
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1158
|
+
args: [{ selector: 'nath-show-errors', imports: [], template: `
|
|
1159
|
+
@if (shouldShowErrors()) {
|
|
1160
|
+
<div class="nath-show-errors-container">
|
|
1161
|
+
@if (signalField()) {
|
|
1162
|
+
@for (error of signalField()!.errors(); track error.kind) {
|
|
1163
|
+
<div class="nath-show-errors-item">{{ error.message }}</div>
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
@if (control()) {
|
|
1167
|
+
@for (error of controlErrors(); track error.message) {
|
|
1168
|
+
<div class="nath-show-errors-item">{{ error.message }}</div>
|
|
1169
|
+
}
|
|
1170
|
+
}
|
|
1171
|
+
</div>
|
|
1172
|
+
}
|
|
1136
1173
|
`, encapsulation: ViewEncapsulation.None, styles: ["nath-show-errors,.nath-show-errors-theme{--nath-show-errors-gap: .5rem;--nath-show-errors-text: var(--color-danger-500, oklch(55% .22 25));display:block;padding:0}.dark nath-show-errors,.dark .nath-show-errors-theme{--nath-show-errors-text: var(--color-danger-400, oklch(65% .22 25))}.nath-show-errors-container{display:flex;flex-direction:column;gap:var(--nath-show-errors-gap)}.nath-show-errors-item{color:var(--nath-show-errors-text)}.ng-invalid.ng-dirty+nath-show-errors,.ng-invalid.ng-touched+nath-show-errors{color:var(--nath-show-errors-text)}\n"] }]
|
|
1137
|
-
}], propDecorators: { signalField: [{ type: i0.Input, args: [{ isSignal: true, alias: "signalField", required: true }] }] } });
|
|
1174
|
+
}], propDecorators: { signalField: [{ type: i0.Input, args: [{ isSignal: true, alias: "signalField", required: false }] }], control: [{ type: i0.Input, args: [{ isSignal: true, alias: "control", required: false }] }] } });
|
|
1138
1175
|
|
|
1139
1176
|
class NathFormField {
|
|
1140
1177
|
inputId = input(null, /* @ts-ignore */
|
|
@@ -1172,7 +1209,7 @@ class NathFormField {
|
|
|
1172
1209
|
<nath-show-errors [signalField]="signalField()!" />
|
|
1173
1210
|
}
|
|
1174
1211
|
</div>
|
|
1175
|
-
`, isInline: true, styles: ["nath-form-field,.nath-form-field-theme{--nath-form-field-gap: .5rem;--nath-form-field-label-color: var(--color-zinc-900, oklch(21% .006 285.885));--nath-form-field-label-font-size: .875rem;--nath-form-field-label-font-weight: 500;--nath-form-field-required-color: var(--color-red-500, oklch(63.7% .237 25.331));--nath-form-field-error-color: var(--color-red-600, oklch(57.7% .245 27.325))}.dark nath-form-field,.dark .nath-form-field-theme{--nath-form-field-label-color: var(--color-zinc-200, oklch(92% .004 286.32))}nath-form-field{display:block}.nath-form-field-container{display:flex;width:100%;flex-direction:column;gap:var(--nath-form-field-gap)}.nath-form-field-label{width:100%;color:var(--nath-form-field-label-color);font-size:var(--nath-form-field-label-font-size);font-weight:var(--nath-form-field-label-font-weight)}.nath-form-field-label--required:after{content:\"*\";margin-left:.25rem;color:var(--nath-form-field-required-color)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: NathShowErrors, selector: "nath-show-errors", inputs: ["signalField"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
1212
|
+
`, isInline: true, styles: ["nath-form-field,.nath-form-field-theme{--nath-form-field-gap: .5rem;--nath-form-field-label-color: var(--color-zinc-900, oklch(21% .006 285.885));--nath-form-field-label-font-size: .875rem;--nath-form-field-label-font-weight: 500;--nath-form-field-required-color: var(--color-red-500, oklch(63.7% .237 25.331));--nath-form-field-error-color: var(--color-red-600, oklch(57.7% .245 27.325))}.dark nath-form-field,.dark .nath-form-field-theme{--nath-form-field-label-color: var(--color-zinc-200, oklch(92% .004 286.32))}nath-form-field{display:block}.nath-form-field-container{display:flex;width:100%;flex-direction:column;gap:var(--nath-form-field-gap)}.nath-form-field-label{width:100%;color:var(--nath-form-field-label-color);font-size:var(--nath-form-field-label-font-size);font-weight:var(--nath-form-field-label-font-weight)}.nath-form-field-label--required:after{content:\"*\";margin-left:.25rem;color:var(--nath-form-field-required-color)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: NathShowErrors, selector: "nath-show-errors", inputs: ["signalField", "control"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
1176
1213
|
}
|
|
1177
1214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NathFormField, decorators: [{
|
|
1178
1215
|
type: Component,
|
|
@@ -5484,5 +5521,5 @@ function isSortOrderValid(order) {
|
|
|
5484
5521
|
* Generated bundle index. Do not edit.
|
|
5485
5522
|
*/
|
|
5486
5523
|
|
|
5487
|
-
export { BreadcrumbService, ConfirmationService, DARK_THEME_CLASS, DIALOG_DATA, DialogRef,
|
|
5524
|
+
export { BreadcrumbService, ConfirmationService, DARK_THEME_CLASS, DIALOG_DATA, DialogRef, NathAutocomplete, NathBooleanControl, NathBreadcrumbs, NathCodeViewer, NathConfirmationDialog, NathDatepicker, NathDialogContainer, NathDialogService, NathDrawer, NathFileUpload, NathFloatingLabel, NathFormField, NathImagePreview, NathMenu, NathMenuList, NathMultiselect, NathPaginatedView, NathPaginator, NathPanel, NathPickList, NathProgressBar, NathProgressCircle, NathRadioButtonGroup, NathRatingHeart, NathRatingInput, NathSelect, NathShowErrors, NathSkeleton, NathSlider, NathSortIcon, NathSplitButton, NathTabs, NathThemeSwitch, NathToastContainer, NathToc, NathTooltipContainer, NathTooltipDirective, ORDER, RATING_MAP, THEME_CONFIG, TabDirective, TabPanelDirective, ThemeService, ToastService, getRatingColor, hasRequiredValidator, isRequired, isSortOrderValid, isTruthy, next, provideThemeConfig, rangeMinMax, rangeNotMinMax, validateAllFormFields };
|
|
5488
5525
|
//# sourceMappingURL=nath-angular-ui.mjs.map
|