@softpak/components 0.0.0-beta.18 → 0.0.0-beta.20

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.
@@ -0,0 +1,2 @@
1
+ export * from './spx-number-check.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtbnVtYmVyLWNoZWNrL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3B4LW51bWJlci1jaGVjay5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHBhay1jb21wb25lbnRzLXNweC1udW1iZXItY2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LW51bWJlci1jaGVjay9zb2Z0cGFrLWNvbXBvbmVudHMtc3B4LW51bWJlci1jaGVjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,192 @@
1
+ import { NgIf } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
5
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ export class SpxNumberCheckComponent {
9
+ get ctrl1() { return this.form.get('ctrl1'); }
10
+ get ctrl2() { return this.form.get('ctrl2'); }
11
+ get ctrl3() { return this.form.get('ctrl3'); }
12
+ get ctrl4() { return this.form.get('ctrl4'); }
13
+ constructor(formBuilder) {
14
+ this.formBuilder = formBuilder;
15
+ this.spxCancel = new EventEmitter();
16
+ this.spxConfirm = new EventEmitter();
17
+ this.severityError = SpxSeverityEnum.error;
18
+ this.severityWarning = SpxSeverityEnum.warning;
19
+ this.accepted = false;
20
+ this.denied = false;
21
+ this.form = this.formBuilder.group({
22
+ ctrl1: [null, []],
23
+ ctrl2: [null, []],
24
+ ctrl3: [null, []],
25
+ ctrl4: [null, []],
26
+ });
27
+ }
28
+ ngOnInit() {
29
+ this.listenToTyping = this.form.valueChanges.subscribe(() => {
30
+ this.accepted = false;
31
+ this.denied = false;
32
+ if (this.ctrl1.value && this.ctrl2.value && this.ctrl3.value && this.ctrl4.value) {
33
+ this.checkPincode();
34
+ }
35
+ });
36
+ }
37
+ ngOnDestroy() {
38
+ if (this.listenToTyping) {
39
+ this.listenToTyping.unsubscribe();
40
+ }
41
+ }
42
+ handleCancel() {
43
+ console.log('spxContainerConfirm: spxCancel');
44
+ this.spxCancel.emit();
45
+ }
46
+ handleReset() {
47
+ this.ctrl1.reset();
48
+ this.ctrl2.reset();
49
+ this.ctrl3.reset();
50
+ this.ctrl4.reset();
51
+ this.viewChild1.nativeElement.focus();
52
+ this.accepted = false;
53
+ this.denied = false;
54
+ }
55
+ onDigitInput(event) {
56
+ let element;
57
+ if (event.code === 'Digit0' ||
58
+ event.code === 'Digit1' ||
59
+ event.code === 'Digit2' ||
60
+ event.code === 'Digit3' ||
61
+ event.code === 'Digit4' ||
62
+ event.code === 'Digit5' ||
63
+ event.code === 'Digit6' ||
64
+ event.code === 'Digit7' ||
65
+ event.code === 'Digit8' ||
66
+ event.code === 'Digit9' ||
67
+ event.code === 'Numpad0' ||
68
+ event.code === 'Numpad1' ||
69
+ event.code === 'Numpad2' ||
70
+ event.code === 'Numpad3' ||
71
+ event.code === 'Numpad4' ||
72
+ event.code === 'Numpad5' ||
73
+ event.code === 'Numpad6' ||
74
+ event.code === 'Numpad7' ||
75
+ event.code === 'Numpad8' ||
76
+ event.code === 'Numpad9') {
77
+ element = event.srcElement.nextElementSibling;
78
+ }
79
+ if (element == null) {
80
+ return;
81
+ }
82
+ else {
83
+ setTimeout(() => { element.focus(); });
84
+ }
85
+ }
86
+ onBackspace(event) {
87
+ event.srcElement.previousElementSibling.focus();
88
+ }
89
+ checkPincode() {
90
+ if (this.spxPincode === `${this.ctrl1.value}${this.ctrl2.value}${this.ctrl3.value}${this.ctrl4.value}`) {
91
+ this.accepted = true;
92
+ setTimeout(() => {
93
+ console.log('spxContainerConfirm: spxConfirm');
94
+ this.spxConfirm.emit();
95
+ }, 500);
96
+ }
97
+ else {
98
+ this.denied = true;
99
+ }
100
+ }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNumberCheckComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNumberCheckComponent, isStandalone: true, selector: "spx-container-confirm", inputs: { spxAction: "spxAction", spxPincode: "spxPincode", txtCancel: "txtCancel", txtConfirmMessage: "txtConfirmMessage", txtReset: "txtReset" }, outputs: { spxCancel: "spxCancel", spxConfirm: "spxConfirm" }, host: { listeners: { "spxChange": "handleChangeEvent($event)" } }, viewQueries: [{ propertyName: "viewChild1", first: true, predicate: ["viewChild1"], descendants: true }], ngImport: i0, template: `
103
+ <div class="absolute top-0 left-0 right-0 bottom-0 z-40 bg-black/60">
104
+ <div class="mx-auto mt-8 max-w-96 bg-black rounded-lg">
105
+ <div class="flex flex-col gap-3 p-3">
106
+ <div class="bg-yellow-300 text-black text-center rounded p-3 text-xl">
107
+ <div class="font-bold">{{ this.spxAction }}</div>
108
+ {{ this.txtConfirmMessage }}
109
+ </div>
110
+ <form class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
111
+ <input #viewChild1 [formControl]="ctrl1" type="text" autofocus class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" />
112
+ <input [formControl]="ctrl2" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
113
+ <input [formControl]="ctrl3" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
114
+ <input [formControl]="ctrl4" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
115
+ </form>
116
+ <spx-button
117
+ [spxFullWidth]="true"
118
+ [spxSeverity]="this.severityWarning"
119
+ (spxClick)="this.handleReset()"
120
+ >{{ this.txtReset }}</spx-button>
121
+ <spx-button
122
+ [spxFullWidth]="true"
123
+ [spxSeverity]="this.severityError"
124
+ (spxClick)="this.handleCancel()"
125
+ >{{ this.txtCancel }}</spx-button>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ `, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
130
+ }
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNumberCheckComponent, decorators: [{
132
+ type: Component,
133
+ args: [{
134
+ selector: 'spx-container-confirm',
135
+ standalone: true,
136
+ host: {
137
+ '(spxChange)': 'handleChangeEvent($event)'
138
+ },
139
+ imports: [
140
+ NgIf,
141
+ SpxButtonComponent,
142
+ FormsModule,
143
+ ReactiveFormsModule,
144
+ ],
145
+ template: `
146
+ <div class="absolute top-0 left-0 right-0 bottom-0 z-40 bg-black/60">
147
+ <div class="mx-auto mt-8 max-w-96 bg-black rounded-lg">
148
+ <div class="flex flex-col gap-3 p-3">
149
+ <div class="bg-yellow-300 text-black text-center rounded p-3 text-xl">
150
+ <div class="font-bold">{{ this.spxAction }}</div>
151
+ {{ this.txtConfirmMessage }}
152
+ </div>
153
+ <form class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
154
+ <input #viewChild1 [formControl]="ctrl1" type="text" autofocus class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" />
155
+ <input [formControl]="ctrl2" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
156
+ <input [formControl]="ctrl3" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
157
+ <input [formControl]="ctrl4" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
158
+ </form>
159
+ <spx-button
160
+ [spxFullWidth]="true"
161
+ [spxSeverity]="this.severityWarning"
162
+ (spxClick)="this.handleReset()"
163
+ >{{ this.txtReset }}</spx-button>
164
+ <spx-button
165
+ [spxFullWidth]="true"
166
+ [spxSeverity]="this.severityError"
167
+ (spxClick)="this.handleCancel()"
168
+ >{{ this.txtCancel }}</spx-button>
169
+ </div>
170
+ </div>
171
+ </div>
172
+ `,
173
+ }]
174
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { spxAction: [{
175
+ type: Input
176
+ }], spxPincode: [{
177
+ type: Input
178
+ }], txtCancel: [{
179
+ type: Input
180
+ }], txtConfirmMessage: [{
181
+ type: Input
182
+ }], txtReset: [{
183
+ type: Input
184
+ }], spxCancel: [{
185
+ type: Output
186
+ }], spxConfirm: [{
187
+ type: Output
188
+ }], viewChild1: [{
189
+ type: ViewChild,
190
+ args: ['viewChild1']
191
+ }] } });
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LW51bWJlci1jaGVjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LW51bWJlci1jaGVjay9zcHgtbnVtYmVyLWNoZWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBdUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUE0Q2xFLE1BQU0sT0FBTyx1QkFBdUI7SUFnQmxDLElBQUksS0FBSyxLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDMUUsSUFBSSxLQUFLLEtBQWtCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFnQixDQUFDLENBQUMsQ0FBQztJQUMxRSxJQUFJLEtBQUssS0FBa0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQzFFLElBQUksS0FBSyxLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7SUFFMUUsWUFBNkIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFmM0MsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBUSxD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SCxDQUFDOzhHQTVHVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixpZEE3QnhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsNERBL0JDLGtCQUFrQixvT0FDbEIsV0FBVyw4ekJBQ1gsbUJBQW1COzsyRkErQlYsdUJBQXVCO2tCQXpDbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSwyQkFBMkI7cUJBQzNDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxJQUFJO3dCQUNKLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxtQkFBbUI7cUJBQ3BCO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUO2lCQUNGO2dGQUVVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDa0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcbmltcG9ydCB7IFNweFNldmVyaXR5RW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1jb250YWluZXItY29uZmlybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnKHNweENoYW5nZSknOiAnaGFuZGxlQ2hhbmdlRXZlbnQoJGV2ZW50KSdcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCByaWdodC0wIGJvdHRvbS0wIHotNDAgYmctYmxhY2svNjBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJteC1hdXRvIG10LTggbWF4LXctOTYgYmctYmxhY2sgcm91bmRlZC1sZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMyBwLTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmcteWVsbG93LTMwMCB0ZXh0LWJsYWNrIHRleHQtY2VudGVyIHJvdW5kZWQgcC0zIHRleHQteGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj57eyB0aGlzLnNweEFjdGlvbiB9fTwvZGl2PlxuICAgICAgICAgICAge3sgdGhpcy50eHRDb25maXJtTWVzc2FnZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxmb3JtIGNsYXNzPVwiYmxvY2sgZ3JpZCBncmlkLWNvbHMtNCBnYXAtM1wiIFtmb3JtR3JvdXBdPVwidGhpcy5mb3JtXCIgKG5nU3VibWl0KT1cIm51bGxcIj5cbiAgICAgICAgICAgIDxpbnB1dCAjdmlld0NoaWxkMSBbZm9ybUNvbnRyb2xdPVwiY3RybDFcIiB0eXBlPVwidGV4dFwiIGF1dG9mb2N1cyBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMFwiIFtjbGFzcy5iZy1yZWQtMjAwXT1cInRoaXMuZGVuaWVkXCIgW2NsYXNzLmJnLXRlYWwtMjAwXT1cInRoaXMuYWNjZXB0ZWRcIiBtYXhsZW5ndGg9XCIxXCIgKGtleXByZXNzKT1cIm9uRGlnaXRJbnB1dCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybDJcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwidy1mdWxsIHRleHQtY2VudGVyIGZvbnQtYm9sZCB0ZXh0LTJ4bCBwLTMgcm91bmRlZC1sZyBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMiBmb2N1czpyaW5nLWJsdWUtNTAwXCIgW2NsYXNzLmJnLXJlZC0yMDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC0yMDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAoa2V5dXAuYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIiAvPlxuICAgICAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsM1wiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJ3LWZ1bGwgdGV4dC1jZW50ZXIgZm9udC1ib2xkIHRleHQtMnhsIHAtMyByb3VuZGVkLWxnIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLW9mZnNldC0yIGZvY3VzOnJpbmctYmx1ZS01MDBcIiBbY2xhc3MuYmctcmVkLTIwMF09XCJ0aGlzLmRlbmllZFwiIFtjbGFzcy5iZy10ZWFsLTIwMF09XCJ0aGlzLmFjY2VwdGVkXCIgbWF4bGVuZ3RoPVwiMVwiIChrZXlwcmVzcyk9XCJvbkRpZ2l0SW5wdXQoJGV2ZW50KVwiIChrZXl1cC5iYWNrc3BhY2UpPVwib25CYWNrc3BhY2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmw0XCIgdHlwZT1cInRleHRcIiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMFwiIFtjbGFzcy5iZy1yZWQtMjAwXT1cInRoaXMuZGVuaWVkXCIgW2NsYXNzLmJnLXRlYWwtMjAwXT1cInRoaXMuYWNjZXB0ZWRcIiBtYXhsZW5ndGg9XCIxXCIgKGtleXByZXNzKT1cIm9uRGlnaXRJbnB1dCgkZXZlbnQpXCIgKGtleXVwLmJhY2tzcGFjZSk9XCJvbkJhY2tzcGFjZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPHNweC1idXR0b25cbiAgICAgICAgICAgIFtzcHhGdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc3B4U2V2ZXJpdHldPVwidGhpcy5zZXZlcml0eVdhcm5pbmdcIlxuICAgICAgICAgICAgKHNweENsaWNrKT1cInRoaXMuaGFuZGxlUmVzZXQoKVwiXG4gICAgICAgICAgICA+e3sgdGhpcy50eHRSZXNldCB9fTwvc3B4LWJ1dHRvbj5cbiAgICAgICAgICA8c3B4LWJ1dHRvblxuICAgICAgICAgICAgW3NweEZ1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzcHhTZXZlcml0eV09XCJ0aGlzLnNldmVyaXR5RXJyb3JcIlxuICAgICAgICAgICAgKHNweENsaWNrKT1cInRoaXMuaGFuZGxlQ2FuY2VsKClcIlxuICAgICAgICAgICAgPnt7IHRoaXMudHh0Q2FuY2VsIH19PC9zcHgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhOdW1iZXJDaGVja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgc3B4QWN0aW9uITogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhQaW5jb2RlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDYW5jZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbmZpcm1NZXNzYWdlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRSZXNldCE6IHN0cmluZztcbiAgQE91dHB1dCgpIHNweENhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3B4Q29uZmlybTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAVmlld0NoaWxkKCd2aWV3Q2hpbGQxJykgdmlld0NoaWxkMSE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIGZvcm0hOiBGb3JtR3JvdXA7XG4gIHNldmVyaXR5RXJyb3IgPSBTcHhTZXZlcml0eUVudW0uZXJyb3I7XG4gIHNldmVyaXR5V2FybmluZyA9IFNweFNldmVyaXR5RW51bS53YXJuaW5nO1xuICBhY2NlcHRlZCA9IGZhbHNlO1xuICBkZW5pZWQgPSBmYWxzZTtcbiAgbGlzdGVuVG9UeXBpbmc/OiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGN0cmwxKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2N0cmwxJykgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmwyKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2N0cmwyJykgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmwzKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2N0cmwzJykgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmw0KCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2N0cmw0JykgYXMgRm9ybUNvbnRyb2w7IH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgY3RybDE6IFtudWxsLCBbXV0sXG4gICAgICBjdHJsMjogW251bGwsIFtdXSxcbiAgICAgIGN0cmwzOiBbbnVsbCwgW11dLFxuICAgICAgY3RybDQ6IFtudWxsLCBbXV0sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvVHlwaW5nID0gIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYWNjZXB0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGVuaWVkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5jdHJsMS52YWx1ZSAmJiB0aGlzLmN0cmwyLnZhbHVlICYmIHRoaXMuY3RybDMudmFsdWUgJiYgdGhpcy5jdHJsNC52YWx1ZSkge1xuICAgICAgICB0aGlzLmNoZWNrUGluY29kZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdGVuVG9UeXBpbmcpIHtcbiAgICAgIHRoaXMubGlzdGVuVG9UeXBpbmcudW5zdWJzY3JpYmUoKTtcbiAgICB9IFxuICB9XG5cbiAgaGFuZGxlQ2FuY2VsKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdzcHhDb250YWluZXJDb25maXJtOiBzcHhDYW5jZWwnKTtcbiAgICB0aGlzLnNweENhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVSZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmN0cmwxLnJlc2V0KCk7XG4gICAgdGhpcy5jdHJsMi5yZXNldCgpO1xuICAgIHRoaXMuY3RybDMucmVzZXQoKTtcbiAgICB0aGlzLmN0cmw0LnJlc2V0KCk7XG4gICAgdGhpcy52aWV3Q2hpbGQxLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLmFjY2VwdGVkID0gZmFsc2U7XG4gICAgdGhpcy5kZW5pZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRGlnaXRJbnB1dChldmVudDogYW55KSB7XG4gICAgbGV0IGVsZW1lbnQ6IGFueTtcbiAgICBpZiAoXG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQwJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0MScgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDInIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQzJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0NCcgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDUnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQ2JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0NycgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDgnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQ5JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDAnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkMScgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQyJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDMnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkNCcgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQ1JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDYnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkNycgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQ4JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDknKSB7XG4gICAgICAgIGVsZW1lbnQgPSBldmVudC5zcmNFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBlbGVtZW50LmZvY3VzKCk7IH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQmFja3NwYWNlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zcmNFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tQaW5jb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNweFBpbmNvZGUgPT09IGAke3RoaXMuY3RybDEudmFsdWV9JHt0aGlzLmN0cmwyLnZhbHVlfSR7dGhpcy5jdHJsMy52YWx1ZX0ke3RoaXMuY3RybDQudmFsdWV9YCkge1xuICAgICAgdGhpcy5hY2NlcHRlZCA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ3NweENvbnRhaW5lckNvbmZpcm06IHNweENvbmZpcm0nKTtcbiAgICAgICAgdGhpcy5zcHhDb25maXJtLmVtaXQoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVuaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,199 @@
1
+ import { NgIf } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter, Component, Input, Output, ViewChild } from '@angular/core';
4
+ import * as i1 from '@angular/forms';
5
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
7
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
8
+
9
+ class SpxNumberCheckComponent {
10
+ get ctrl1() { return this.form.get('ctrl1'); }
11
+ get ctrl2() { return this.form.get('ctrl2'); }
12
+ get ctrl3() { return this.form.get('ctrl3'); }
13
+ get ctrl4() { return this.form.get('ctrl4'); }
14
+ constructor(formBuilder) {
15
+ this.formBuilder = formBuilder;
16
+ this.spxCancel = new EventEmitter();
17
+ this.spxConfirm = new EventEmitter();
18
+ this.severityError = SpxSeverityEnum.error;
19
+ this.severityWarning = SpxSeverityEnum.warning;
20
+ this.accepted = false;
21
+ this.denied = false;
22
+ this.form = this.formBuilder.group({
23
+ ctrl1: [null, []],
24
+ ctrl2: [null, []],
25
+ ctrl3: [null, []],
26
+ ctrl4: [null, []],
27
+ });
28
+ }
29
+ ngOnInit() {
30
+ this.listenToTyping = this.form.valueChanges.subscribe(() => {
31
+ this.accepted = false;
32
+ this.denied = false;
33
+ if (this.ctrl1.value && this.ctrl2.value && this.ctrl3.value && this.ctrl4.value) {
34
+ this.checkPincode();
35
+ }
36
+ });
37
+ }
38
+ ngOnDestroy() {
39
+ if (this.listenToTyping) {
40
+ this.listenToTyping.unsubscribe();
41
+ }
42
+ }
43
+ handleCancel() {
44
+ console.log('spxContainerConfirm: spxCancel');
45
+ this.spxCancel.emit();
46
+ }
47
+ handleReset() {
48
+ this.ctrl1.reset();
49
+ this.ctrl2.reset();
50
+ this.ctrl3.reset();
51
+ this.ctrl4.reset();
52
+ this.viewChild1.nativeElement.focus();
53
+ this.accepted = false;
54
+ this.denied = false;
55
+ }
56
+ onDigitInput(event) {
57
+ let element;
58
+ if (event.code === 'Digit0' ||
59
+ event.code === 'Digit1' ||
60
+ event.code === 'Digit2' ||
61
+ event.code === 'Digit3' ||
62
+ event.code === 'Digit4' ||
63
+ event.code === 'Digit5' ||
64
+ event.code === 'Digit6' ||
65
+ event.code === 'Digit7' ||
66
+ event.code === 'Digit8' ||
67
+ event.code === 'Digit9' ||
68
+ event.code === 'Numpad0' ||
69
+ event.code === 'Numpad1' ||
70
+ event.code === 'Numpad2' ||
71
+ event.code === 'Numpad3' ||
72
+ event.code === 'Numpad4' ||
73
+ event.code === 'Numpad5' ||
74
+ event.code === 'Numpad6' ||
75
+ event.code === 'Numpad7' ||
76
+ event.code === 'Numpad8' ||
77
+ event.code === 'Numpad9') {
78
+ element = event.srcElement.nextElementSibling;
79
+ }
80
+ if (element == null) {
81
+ return;
82
+ }
83
+ else {
84
+ setTimeout(() => { element.focus(); });
85
+ }
86
+ }
87
+ onBackspace(event) {
88
+ event.srcElement.previousElementSibling.focus();
89
+ }
90
+ checkPincode() {
91
+ if (this.spxPincode === `${this.ctrl1.value}${this.ctrl2.value}${this.ctrl3.value}${this.ctrl4.value}`) {
92
+ this.accepted = true;
93
+ setTimeout(() => {
94
+ console.log('spxContainerConfirm: spxConfirm');
95
+ this.spxConfirm.emit();
96
+ }, 500);
97
+ }
98
+ else {
99
+ this.denied = true;
100
+ }
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNumberCheckComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNumberCheckComponent, isStandalone: true, selector: "spx-container-confirm", inputs: { spxAction: "spxAction", spxPincode: "spxPincode", txtCancel: "txtCancel", txtConfirmMessage: "txtConfirmMessage", txtReset: "txtReset" }, outputs: { spxCancel: "spxCancel", spxConfirm: "spxConfirm" }, host: { listeners: { "spxChange": "handleChangeEvent($event)" } }, viewQueries: [{ propertyName: "viewChild1", first: true, predicate: ["viewChild1"], descendants: true }], ngImport: i0, template: `
104
+ <div class="absolute top-0 left-0 right-0 bottom-0 z-40 bg-black/60">
105
+ <div class="mx-auto mt-8 max-w-96 bg-black rounded-lg">
106
+ <div class="flex flex-col gap-3 p-3">
107
+ <div class="bg-yellow-300 text-black text-center rounded p-3 text-xl">
108
+ <div class="font-bold">{{ this.spxAction }}</div>
109
+ {{ this.txtConfirmMessage }}
110
+ </div>
111
+ <form class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
112
+ <input #viewChild1 [formControl]="ctrl1" type="text" autofocus class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" />
113
+ <input [formControl]="ctrl2" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
114
+ <input [formControl]="ctrl3" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
115
+ <input [formControl]="ctrl4" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
116
+ </form>
117
+ <spx-button
118
+ [spxFullWidth]="true"
119
+ [spxSeverity]="this.severityWarning"
120
+ (spxClick)="this.handleReset()"
121
+ >{{ this.txtReset }}</spx-button>
122
+ <spx-button
123
+ [spxFullWidth]="true"
124
+ [spxSeverity]="this.severityError"
125
+ (spxClick)="this.handleCancel()"
126
+ >{{ this.txtCancel }}</spx-button>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ `, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
131
+ }
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNumberCheckComponent, decorators: [{
133
+ type: Component,
134
+ args: [{
135
+ selector: 'spx-container-confirm',
136
+ standalone: true,
137
+ host: {
138
+ '(spxChange)': 'handleChangeEvent($event)'
139
+ },
140
+ imports: [
141
+ NgIf,
142
+ SpxButtonComponent,
143
+ FormsModule,
144
+ ReactiveFormsModule,
145
+ ],
146
+ template: `
147
+ <div class="absolute top-0 left-0 right-0 bottom-0 z-40 bg-black/60">
148
+ <div class="mx-auto mt-8 max-w-96 bg-black rounded-lg">
149
+ <div class="flex flex-col gap-3 p-3">
150
+ <div class="bg-yellow-300 text-black text-center rounded p-3 text-xl">
151
+ <div class="font-bold">{{ this.spxAction }}</div>
152
+ {{ this.txtConfirmMessage }}
153
+ </div>
154
+ <form class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
155
+ <input #viewChild1 [formControl]="ctrl1" type="text" autofocus class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" />
156
+ <input [formControl]="ctrl2" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
157
+ <input [formControl]="ctrl3" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
158
+ <input [formControl]="ctrl4" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
159
+ </form>
160
+ <spx-button
161
+ [spxFullWidth]="true"
162
+ [spxSeverity]="this.severityWarning"
163
+ (spxClick)="this.handleReset()"
164
+ >{{ this.txtReset }}</spx-button>
165
+ <spx-button
166
+ [spxFullWidth]="true"
167
+ [spxSeverity]="this.severityError"
168
+ (spxClick)="this.handleCancel()"
169
+ >{{ this.txtCancel }}</spx-button>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ `,
174
+ }]
175
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { spxAction: [{
176
+ type: Input
177
+ }], spxPincode: [{
178
+ type: Input
179
+ }], txtCancel: [{
180
+ type: Input
181
+ }], txtConfirmMessage: [{
182
+ type: Input
183
+ }], txtReset: [{
184
+ type: Input
185
+ }], spxCancel: [{
186
+ type: Output
187
+ }], spxConfirm: [{
188
+ type: Output
189
+ }], viewChild1: [{
190
+ type: ViewChild,
191
+ args: ['viewChild1']
192
+ }] } });
193
+
194
+ /**
195
+ * Generated bundle index. Do not edit.
196
+ */
197
+
198
+ export { SpxNumberCheckComponent };
199
+ //# sourceMappingURL=softpak-components-spx-number-check.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"softpak-components-spx-number-check.mjs","sources":["../../../../projects/softpak/components/spx-number-check/spx-number-check.component.ts","../../../../projects/softpak/components/spx-number-check/softpak-components-spx-number-check.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpxButtonComponent } from '@softpak/components/spx-button';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'spx-container-confirm',\n standalone: true,\n host: {\n '(spxChange)': 'handleChangeEvent($event)'\n },\n imports: [\n NgIf,\n SpxButtonComponent,\n FormsModule,\n ReactiveFormsModule,\n ],\n template: `\n <div class=\"absolute top-0 left-0 right-0 bottom-0 z-40 bg-black/60\">\n <div class=\"mx-auto mt-8 max-w-96 bg-black rounded-lg\">\n <div class=\"flex flex-col gap-3 p-3\">\n <div class=\"bg-yellow-300 text-black text-center rounded p-3 text-xl\">\n <div class=\"font-bold\">{{ this.spxAction }}</div>\n {{ this.txtConfirmMessage }}\n </div>\n <form class=\"block grid grid-cols-4 gap-3\" [formGroup]=\"this.form\" (ngSubmit)=\"null\">\n <input #viewChild1 [formControl]=\"ctrl1\" type=\"text\" autofocus class=\"w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\" [class.bg-red-200]=\"this.denied\" [class.bg-teal-200]=\"this.accepted\" maxlength=\"1\" (keypress)=\"onDigitInput($event)\" />\n <input [formControl]=\"ctrl2\" type=\"text\" class=\"w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\" [class.bg-red-200]=\"this.denied\" [class.bg-teal-200]=\"this.accepted\" maxlength=\"1\" (keypress)=\"onDigitInput($event)\" (keyup.backspace)=\"onBackspace($event)\" />\n <input [formControl]=\"ctrl3\" type=\"text\" class=\"w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\" [class.bg-red-200]=\"this.denied\" [class.bg-teal-200]=\"this.accepted\" maxlength=\"1\" (keypress)=\"onDigitInput($event)\" (keyup.backspace)=\"onBackspace($event)\" />\n <input [formControl]=\"ctrl4\" type=\"text\" class=\"w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\" [class.bg-red-200]=\"this.denied\" [class.bg-teal-200]=\"this.accepted\" maxlength=\"1\" (keypress)=\"onDigitInput($event)\" (keyup.backspace)=\"onBackspace($event)\" />\n </form>\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"this.severityWarning\"\n (spxClick)=\"this.handleReset()\"\n >{{ this.txtReset }}</spx-button>\n <spx-button\n [spxFullWidth]=\"true\"\n [spxSeverity]=\"this.severityError\"\n (spxClick)=\"this.handleCancel()\"\n >{{ this.txtCancel }}</spx-button>\n </div>\n </div>\n </div>\n `,\n})\nexport class SpxNumberCheckComponent implements OnInit, OnDestroy {\n @Input() spxAction!: string;\n @Input() spxPincode!: string;\n @Input() txtCancel!: string;\n @Input() txtConfirmMessage!: string;\n @Input() txtReset!: string;\n @Output() spxCancel: EventEmitter<void> = new EventEmitter<void>();\n @Output() spxConfirm: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('viewChild1') viewChild1!: ElementRef<HTMLInputElement>;\n form!: FormGroup;\n severityError = SpxSeverityEnum.error;\n severityWarning = SpxSeverityEnum.warning;\n accepted = false;\n denied = false;\n listenToTyping?: Subscription;\n\n get ctrl1(): FormControl { return this.form.get('ctrl1') as FormControl; }\n get ctrl2(): FormControl { return this.form.get('ctrl2') as FormControl; }\n get ctrl3(): FormControl { return this.form.get('ctrl3') as FormControl; }\n get ctrl4(): FormControl { return this.form.get('ctrl4') as FormControl; }\n\n constructor(private readonly formBuilder: FormBuilder) {\n this.form = this.formBuilder.group({\n ctrl1: [null, []],\n ctrl2: [null, []],\n ctrl3: [null, []],\n ctrl4: [null, []],\n });\n }\n\n ngOnInit(): void {\n this.listenToTyping = this.form.valueChanges.subscribe(() => {\n this.accepted = false;\n this.denied = false;\n if (this.ctrl1.value && this.ctrl2.value && this.ctrl3.value && this.ctrl4.value) {\n this.checkPincode();\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.listenToTyping) {\n this.listenToTyping.unsubscribe();\n } \n }\n\n handleCancel(): void {\n console.log('spxContainerConfirm: spxCancel');\n this.spxCancel.emit();\n }\n\n handleReset(): void {\n this.ctrl1.reset();\n this.ctrl2.reset();\n this.ctrl3.reset();\n this.ctrl4.reset();\n this.viewChild1.nativeElement.focus();\n this.accepted = false;\n this.denied = false;\n }\n\n onDigitInput(event: any) {\n let element: any;\n if (\n event.code === 'Digit0' ||\n event.code === 'Digit1' ||\n event.code === 'Digit2' ||\n event.code === 'Digit3' ||\n event.code === 'Digit4' ||\n event.code === 'Digit5' ||\n event.code === 'Digit6' ||\n event.code === 'Digit7' ||\n event.code === 'Digit8' ||\n event.code === 'Digit9' ||\n event.code === 'Numpad0' ||\n event.code === 'Numpad1' ||\n event.code === 'Numpad2' ||\n event.code === 'Numpad3' ||\n event.code === 'Numpad4' ||\n event.code === 'Numpad5' ||\n event.code === 'Numpad6' ||\n event.code === 'Numpad7' ||\n event.code === 'Numpad8' ||\n event.code === 'Numpad9') {\n element = event.srcElement.nextElementSibling;\n }\n if (element == null) {\n return;\n }\n else {\n setTimeout(() => { element.focus(); });\n }\n }\n\n onBackspace(event: any) {\n event.srcElement.previousElementSibling.focus();\n }\n\n private checkPincode(): void {\n if (this.spxPincode === `${this.ctrl1.value}${this.ctrl2.value}${this.ctrl3.value}${this.ctrl4.value}`) {\n this.accepted = true;\n setTimeout(() => {\n console.log('spxContainerConfirm: spxConfirm');\n this.spxConfirm.emit();\n }, 500);\n } else {\n this.denied = true;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softpak/components",
3
- "version": "0.0.0-beta.18",
3
+ "version": "0.0.0-beta.20",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^17.x.x",
@@ -47,18 +47,18 @@
47
47
  "esm": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
48
48
  "default": "./fesm2022/softpak-components-spx-capitalize.mjs"
49
49
  },
50
- "./spx-check-digit": {
51
- "types": "./spx-check-digit/index.d.ts",
52
- "esm2022": "./esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs",
53
- "esm": "./esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs",
54
- "default": "./fesm2022/softpak-components-spx-check-digit.mjs"
55
- },
56
50
  "./spx-channel-selection": {
57
51
  "types": "./spx-channel-selection/index.d.ts",
58
52
  "esm2022": "./esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs",
59
53
  "esm": "./esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs",
60
54
  "default": "./fesm2022/softpak-components-spx-channel-selection.mjs"
61
55
  },
56
+ "./spx-check-digit": {
57
+ "types": "./spx-check-digit/index.d.ts",
58
+ "esm2022": "./esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs",
59
+ "esm": "./esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs",
60
+ "default": "./fesm2022/softpak-components-spx-check-digit.mjs"
61
+ },
62
62
  "./spx-form-section": {
63
63
  "types": "./spx-form-section/index.d.ts",
64
64
  "esm2022": "./esm2022/spx-form-section/softpak-components-spx-form-section.mjs",
@@ -83,6 +83,12 @@
83
83
  "esm": "./esm2022/spx-navigation/softpak-components-spx-navigation.mjs",
84
84
  "default": "./fesm2022/softpak-components-spx-navigation.mjs"
85
85
  },
86
+ "./spx-number-check": {
87
+ "types": "./spx-number-check/index.d.ts",
88
+ "esm2022": "./esm2022/spx-number-check/softpak-components-spx-number-check.mjs",
89
+ "esm": "./esm2022/spx-number-check/softpak-components-spx-number-check.mjs",
90
+ "default": "./fesm2022/softpak-components-spx-number-check.mjs"
91
+ },
86
92
  "./spx-patch": {
87
93
  "types": "./spx-patch/index.d.ts",
88
94
  "esm2022": "./esm2022/spx-patch/softpak-components-spx-patch.mjs",
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@softpak/components/spx-number-check" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './spx-number-check.component';
@@ -0,0 +1,36 @@
1
+ import { ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
3
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
4
+ import { Subscription } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export declare class SpxNumberCheckComponent implements OnInit, OnDestroy {
7
+ private readonly formBuilder;
8
+ spxAction: string;
9
+ spxPincode: string;
10
+ txtCancel: string;
11
+ txtConfirmMessage: string;
12
+ txtReset: string;
13
+ spxCancel: EventEmitter<void>;
14
+ spxConfirm: EventEmitter<void>;
15
+ viewChild1: ElementRef<HTMLInputElement>;
16
+ form: FormGroup;
17
+ severityError: SpxSeverityEnum;
18
+ severityWarning: SpxSeverityEnum;
19
+ accepted: boolean;
20
+ denied: boolean;
21
+ listenToTyping?: Subscription;
22
+ get ctrl1(): FormControl;
23
+ get ctrl2(): FormControl;
24
+ get ctrl3(): FormControl;
25
+ get ctrl4(): FormControl;
26
+ constructor(formBuilder: FormBuilder);
27
+ ngOnInit(): void;
28
+ ngOnDestroy(): void;
29
+ handleCancel(): void;
30
+ handleReset(): void;
31
+ onDigitInput(event: any): void;
32
+ onBackspace(event: any): void;
33
+ private checkPincode;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<SpxNumberCheckComponent, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpxNumberCheckComponent, "spx-container-confirm", never, { "spxAction": { "alias": "spxAction"; "required": false; }; "spxPincode": { "alias": "spxPincode"; "required": false; }; "txtCancel": { "alias": "txtCancel"; "required": false; }; "txtConfirmMessage": { "alias": "txtConfirmMessage"; "required": false; }; "txtReset": { "alias": "txtReset"; "required": false; }; }, { "spxCancel": "spxCancel"; "spxConfirm": "spxConfirm"; }, never, never, true, never>;
36
+ }
package/tailwind.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-16{bottom:4rem}.left-0{left:0}.right-0{right:0}.z-20{z-index:20}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-2\.5{margin-top:.625rem;margin-bottom:.625rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mt-3{margin-top:.75rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.w-full{width:100%}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-end{align-items:flex-end}.items-center{align-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.self-center{align-self:center}.overflow-hidden,.truncate{overflow:hidden}.truncate{white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-t-4{border-top-width:4px}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity))}.border-cyan-500{--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-lime-500{--tw-border-opacity:1;border-color:rgb(132 204 22/var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity))}.bg-lime-100{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity))}.bg-lime-600{--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity))}.bg-teal-500{--tw-bg-opacity:1;background-color:rgb(20 184 166/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity))}.text-cyan-900{--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity))}.text-lime-900{--tw-text-opacity:1;color:rgb(54 83 20/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.ring-offset-2{--tw-ring-offset-width:2px}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity))}.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}.hover\:bg-amber-800:hover{--tw-bg-opacity:1;background-color:rgb(146 64 14/var(--tw-bg-opacity))}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity))}.hover\:bg-cyan-200:hover{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-lime-200:hover{--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity))}.hover\:bg-lime-600:hover{--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity))}.hover\:bg-lime-800:hover{--tw-bg-opacity:1;background-color:rgb(63 98 18/var(--tw-bg-opacity))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.hover\:bg-red-800:hover{--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity))}.hover\:bg-sky-200:hover{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-amber-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(245 158 11/var(--tw-ring-opacity))}.focus\:ring-amber-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(217 119 6/var(--tw-ring-opacity))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.focus\:ring-cyan-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(8 145 178/var(--tw-ring-opacity))}.focus\:ring-lime-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(132 204 22/var(--tw-ring-opacity))}.focus\:ring-lime-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(101 163 13/var(--tw-ring-opacity))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity))}.focus\:ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity))}.focus\:ring-sky-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(186 230 253/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:bg-sky-300:active{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity))}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
1
+ /*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-2\.5{margin-top:.625rem;margin-bottom:.625rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mt-3{margin-top:.75rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.w-full{width:100%}.max-w-96{max-width:24rem}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.items-end{align-items:flex-end}.items-center{align-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.self-center{align-self:center}.overflow-hidden,.truncate{overflow:hidden}.truncate{white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-t-4{border-top-width:4px}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity))}.border-cyan-500{--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-lime-500{--tw-border-opacity:1;border-color:rgb(132 204 22/var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-black\/60{background-color:#0009}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity))}.bg-lime-100{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity))}.bg-lime-600{--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity))}.bg-teal-200{--tw-bg-opacity:1;background-color:rgb(153 246 228/var(--tw-bg-opacity))}.bg-teal-500{--tw-bg-opacity:1;background-color:rgb(20 184 166/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity))}.text-cyan-900{--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity))}.text-lime-900{--tw-text-opacity:1;color:rgb(54 83 20/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.ring-offset-2{--tw-ring-offset-width:2px}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity))}.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}.hover\:bg-amber-800:hover{--tw-bg-opacity:1;background-color:rgb(146 64 14/var(--tw-bg-opacity))}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity))}.hover\:bg-cyan-200:hover{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-lime-200:hover{--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity))}.hover\:bg-lime-600:hover{--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity))}.hover\:bg-lime-800:hover{--tw-bg-opacity:1;background-color:rgb(63 98 18/var(--tw-bg-opacity))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.hover\:bg-red-800:hover{--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity))}.hover\:bg-sky-200:hover{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-amber-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(245 158 11/var(--tw-ring-opacity))}.focus\:ring-amber-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(217 119 6/var(--tw-ring-opacity))}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.focus\:ring-cyan-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(8 145 178/var(--tw-ring-opacity))}.focus\:ring-lime-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(132 204 22/var(--tw-ring-opacity))}.focus\:ring-lime-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(101 163 13/var(--tw-ring-opacity))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity))}.focus\:ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity))}.focus\:ring-sky-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(186 230 253/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:bg-sky-300:active{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity))}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}