@softpak/components 0.0.0-beta.18 → 0.0.0-beta.181
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/esm2022/spx-button/spx-button.component.mjs +12 -3
- package/esm2022/spx-change-details/public-api.mjs +2 -0
- package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
- package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
- package/esm2022/spx-change-details/spx-change-details.component.mjs +166 -0
- package/esm2022/spx-channel-selection/src/spx-channel-selection.component.mjs +1 -1
- package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +2 -2
- package/esm2022/spx-check-digit/spx-check-digit.component.mjs +12 -4
- package/esm2022/spx-form-section/spx-form-section.component.mjs +9 -9
- package/esm2022/spx-form-view/public-api.mjs +4 -0
- package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
- package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +119 -0
- package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
- package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
- package/esm2022/spx-form-view/spx-form-view.component.mjs +215 -0
- package/esm2022/spx-inputs/spx-dropdown.component.mjs +94 -0
- package/esm2022/spx-inputs/spx-input-box.component.mjs +70 -46
- package/esm2022/spx-inputs/spx-input-date.component.mjs +1 -1
- package/esm2022/spx-inputs/spx-input-float.component.mjs +10 -5
- package/esm2022/spx-inputs/spx-input-number.component.mjs +10 -5
- package/esm2022/spx-inputs/spx-input-radio.component.mjs +93 -27
- package/esm2022/spx-inputs/spx-input-text.component.mjs +21 -32
- package/esm2022/spx-inputs/spx-input-type.enum.mjs +3 -1
- package/esm2022/spx-inputs/spx-input.component.mjs +48 -13
- package/esm2022/spx-navigation/spx-home-tile.component.mjs +29 -10
- package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +1 -1
- package/esm2022/spx-navigation/spx-navigation.component.mjs +11 -5
- package/esm2022/spx-number-check/public-api.mjs +2 -0
- package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +5 -0
- package/esm2022/spx-number-check/spx-number-check.component.mjs +259 -0
- package/esm2022/spx-suggestion/spx-suggestion.component.mjs +28 -10
- package/esm2022/spx-update/src/spx-update-info.component.mjs +1 -1
- package/fesm2022/softpak-components-spx-button.mjs +11 -2
- package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-change-details.mjs +173 -0
- package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-channel-selection.mjs +2 -2
- package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-check-digit.mjs +11 -3
- package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-section.mjs +8 -8
- package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-form-view.mjs +334 -0
- package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-inputs.mjs +332 -118
- package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-navigation.mjs +37 -12
- package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-number-check.mjs +266 -0
- package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -0
- package/fesm2022/softpak-components-spx-suggestion.mjs +27 -9
- package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
- package/fesm2022/softpak-components-spx-update.mjs +1 -1
- package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
- package/package.json +30 -12
- package/spx-button/spx-button.component.d.ts +3 -1
- package/spx-change-details/index.d.ts +5 -0
- package/spx-change-details/public-api.d.ts +1 -0
- package/spx-change-details/spx-change-details-value.interface.d.ts +7 -0
- package/spx-change-details/spx-change-details.component.d.ts +54 -0
- package/spx-check-digit/spx-check-digit.component.d.ts +3 -1
- package/spx-form-view/index.d.ts +5 -0
- package/spx-form-view/public-api.d.ts +3 -0
- package/spx-form-view/spx-autocomplete-search.component.d.ts +43 -0
- package/spx-form-view/spx-form-field.interface.d.ts +16 -0
- package/spx-form-view/spx-form-section.interface.d.ts +9 -0
- package/spx-form-view/spx-form-view.component.d.ts +37 -0
- package/spx-inputs/spx-dropdown.component.d.ts +18 -0
- package/spx-inputs/spx-input-box.component.d.ts +14 -7
- package/spx-inputs/spx-input-float.component.d.ts +3 -2
- package/spx-inputs/spx-input-number.component.d.ts +3 -2
- package/spx-inputs/spx-input-radio.component.d.ts +13 -5
- package/spx-inputs/spx-input-text.component.d.ts +3 -2
- package/spx-inputs/spx-input-type.enum.d.ts +3 -1
- package/spx-inputs/spx-input.component.d.ts +11 -3
- package/spx-navigation/spx-home-tile.component.d.ts +5 -1
- package/spx-navigation/spx-navigation-item.interface.d.ts +1 -0
- package/spx-navigation/spx-navigation.component.d.ts +4 -1
- package/spx-number-check/index.d.ts +5 -0
- package/spx-number-check/public-api.d.ts +1 -0
- package/spx-number-check/spx-number-check.component.d.ts +48 -0
- package/spx-suggestion/spx-suggestion.component.d.ts +3 -1
- package/tailwind.css +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, ContentChild, EventEmitter, Input, Output, ViewChildren } from '@angular/core';
|
|
2
2
|
import { CommonModule, NgFor } from '@angular/common';
|
|
3
3
|
import { TranslateModule } from '@ngx-translate/core';
|
|
4
4
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
@@ -14,11 +14,14 @@ export class SpxNavigationComponent {
|
|
|
14
14
|
this.navItems = [];
|
|
15
15
|
this.spxClick = new EventEmitter();
|
|
16
16
|
}
|
|
17
|
+
setFocus() {
|
|
18
|
+
this.tiles?.first.setFocus();
|
|
19
|
+
}
|
|
17
20
|
onNavigate(link) {
|
|
18
21
|
this.spxClick.emit(link);
|
|
19
22
|
}
|
|
20
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNavigationComponent, isStandalone: true, selector: "spx-navigation", inputs: { navItems: "navItems" }, outputs: { spxClick: "spxClick" }, queries: [{ propertyName: "iconTemplateRef", first: true, predicate: ["icon"], descendants: true }], ngImport: i0, template: "<spx-home-tiles>\n <spx-home-tile *ngFor=\"let item of navItems\" (click)=\"onNavigate(item.routerLink)\"\n [spxClass]=\"item.tileClasses ? item.tileClasses : undefined\"
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNavigationComponent, isStandalone: true, selector: "spx-navigation", inputs: { navItems: "navItems" }, outputs: { spxClick: "spxClick" }, queries: [{ propertyName: "iconTemplateRef", first: true, predicate: ["icon"], descendants: true }], viewQueries: [{ propertyName: "tiles", predicate: ["tiles"], descendants: true }], ngImport: i0, template: "<spx-home-tiles>\n <spx-home-tile #tiles *ngFor=\"let item of navItems; let i = index\" (click)=\"onNavigate(item.routerLink)\"\n [spxAutofocus]=\"i === 0\"\n [spxClass]=\"item.tileClasses ? item.tileClasses : undefined\"\n [spxTitle]=\"item.title | translate | capitalize\"\n [spxSubtitle]=\"item.subtite ? (item.subtite | translate | capitalize) : undefined\">\n <fa-icon [icon]=\"item.icon\"></fa-icon>\n </spx-home-tile>\n</spx-home-tiles>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxHomeTilesComponent, selector: "spx-home-tiles" }, { kind: "component", type: SpxHomeTileComponent, selector: "spx-home-tile", inputs: ["spxAutofocus", "spxClass", "spxSubtitle", "spxTitle"] }] }); }
|
|
22
25
|
}
|
|
23
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNavigationComponent, decorators: [{
|
|
24
27
|
type: Component,
|
|
@@ -30,8 +33,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
30
33
|
SpxHomeTilesComponent,
|
|
31
34
|
SpxHomeTileComponent,
|
|
32
35
|
NgFor,
|
|
33
|
-
], template: "<spx-home-tiles>\n <spx-home-tile *ngFor=\"let item of navItems\" (click)=\"onNavigate(item.routerLink)\"\n [spxClass]=\"item.tileClasses ? item.tileClasses : undefined\"
|
|
34
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
36
|
+
], template: "<spx-home-tiles>\n <spx-home-tile #tiles *ngFor=\"let item of navItems; let i = index\" (click)=\"onNavigate(item.routerLink)\"\n [spxAutofocus]=\"i === 0\"\n [spxClass]=\"item.tileClasses ? item.tileClasses : undefined\"\n [spxTitle]=\"item.title | translate | capitalize\"\n [spxSubtitle]=\"item.subtite ? (item.subtite | translate | capitalize) : undefined\">\n <fa-icon [icon]=\"item.icon\"></fa-icon>\n </spx-home-tile>\n</spx-home-tiles>\n" }]
|
|
37
|
+
}], ctorParameters: () => [], propDecorators: { tiles: [{
|
|
38
|
+
type: ViewChildren,
|
|
39
|
+
args: ['tiles']
|
|
40
|
+
}], iconTemplateRef: [{
|
|
35
41
|
type: ContentChild,
|
|
36
42
|
args: ['icon', { static: false }]
|
|
37
43
|
}], navItems: [{
|
|
@@ -39,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
39
45
|
}], spxClick: [{
|
|
40
46
|
type: Output
|
|
41
47
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1uYXZpZ2F0aW9uL3NweC1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtbmF2aWdhdGlvbi9zcHgtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMEIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQWdCakUsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQztRQUhTLGFBQVEsR0FBeUIsRUFBRSxDQUFDO1FBQ25DLGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUduRSxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQWZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHVVQ3ZCbkMsZ2RBU0EsMkNES0ksWUFBWSwySkFDWixlQUFlLDJGQUNmLGlCQUFpQiw4UkFDakIsaUJBQWlCLG1EQUNqQixxQkFBcUIsMkRBQ3JCLG9CQUFvQjs7MkZBSVgsc0JBQXNCO2tCQWRsQyxTQUFTOytCQUNFLGdCQUFnQixjQUVkLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixLQUFLO3FCQUNOO3dEQUdzQixLQUFLO3NCQUEzQixZQUFZO3VCQUFDLE9BQU87Z0JBQ2lCLGVBQWU7c0JBQXBELFlBQVk7dUJBQUMsTUFBTSxFQUFDLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDM0IsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhOYXZpZ2F0aW9uSXRlbUkgfSBmcm9tICcuL3NweC1uYXZpZ2F0aW9uLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IFNweENhcGl0YWxpemVQaXBlIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtY2FwaXRhbGl6ZSc7XG5pbXBvcnQgeyBTcHhIb21lVGlsZXNDb21wb25lbnQgfSBmcm9tICcuL3NweC1ob21lLXRpbGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcHhIb21lVGlsZUNvbXBvbmVudCB9IGZyb20gJy4vc3B4LWhvbWUtdGlsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtbmF2aWdhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcHgtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxuICAgIFNweENhcGl0YWxpemVQaXBlLFxuICAgIFNweEhvbWVUaWxlc0NvbXBvbmVudCxcbiAgICBTcHhIb21lVGlsZUNvbXBvbmVudCxcbiAgICBOZ0ZvcixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3B4TmF2aWdhdGlvbkNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGRyZW4oJ3RpbGVzJykgdGlsZXM/OiBRdWVyeUxpc3Q8U3B4SG9tZVRpbGVDb21wb25lbnQ+O1xuICBAQ29udGVudENoaWxkKCdpY29uJyx7c3RhdGljOiBmYWxzZX0pIGljb25UZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIG5hdkl0ZW1zOiBTcHhOYXZpZ2F0aW9uSXRlbUlbXSA9IFtdO1xuICBAT3V0cHV0KCkgc3B4Q2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICkge31cblxuICBzZXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnRpbGVzPy5maXJzdC5zZXRGb2N1cygpO1xuICB9XG5cbiAgb25OYXZpZ2F0ZShsaW5rOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNweENsaWNrLmVtaXQobGluayk7XG4gIH1cbn1cbiIsIjxzcHgtaG9tZS10aWxlcz5cbiAgPHNweC1ob21lLXRpbGUgI3RpbGVzICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5hdkl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgKGNsaWNrKT1cIm9uTmF2aWdhdGUoaXRlbS5yb3V0ZXJMaW5rKVwiXG4gICAgW3NweEF1dG9mb2N1c109XCJpID09PSAwXCJcbiAgICBbc3B4Q2xhc3NdPVwiaXRlbS50aWxlQ2xhc3NlcyA/IGl0ZW0udGlsZUNsYXNzZXMgOiB1bmRlZmluZWRcIlxuICAgIFtzcHhUaXRsZV09XCJpdGVtLnRpdGxlIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZVwiXG4gICAgW3NweFN1YnRpdGxlXT1cIml0ZW0uc3VidGl0ZSA/IChpdGVtLnN1YnRpdGUgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplKSA6IHVuZGVmaW5lZFwiPlxuICAgIDxmYS1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPjwvZmEtaWNvbj5cbiAgPC9zcHgtaG9tZS10aWxlPlxuPC9zcHgtaG9tZS10aWxlcz5cbiJdfQ==
|
|
@@ -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,259 @@
|
|
|
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.spxSimpleMode = false;
|
|
16
|
+
this.spxCancel = new EventEmitter();
|
|
17
|
+
this.spxConfirm = new EventEmitter();
|
|
18
|
+
this.severityError = SpxSeverityEnum.error;
|
|
19
|
+
this.severitySuccess = SpxSeverityEnum.success;
|
|
20
|
+
this.severityWarning = SpxSeverityEnum.warning;
|
|
21
|
+
this.accepted = false;
|
|
22
|
+
this.denied = false;
|
|
23
|
+
this.form = this.formBuilder.group({
|
|
24
|
+
ctrl1: [null, []],
|
|
25
|
+
ctrl2: [null, []],
|
|
26
|
+
ctrl3: [null, []],
|
|
27
|
+
ctrl4: [null, []],
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this.listenToTyping = this.form.valueChanges.subscribe(() => {
|
|
32
|
+
this.accepted = false;
|
|
33
|
+
this.denied = false;
|
|
34
|
+
if (this.ctrl1.value && this.ctrl2.value && this.ctrl3.value && this.ctrl4.value) {
|
|
35
|
+
this.checkPincode();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
this.listenToCtrl1 = this.ctrl1.valueChanges.subscribe(value => {
|
|
39
|
+
if (value) {
|
|
40
|
+
this.viewChild2.nativeElement.focus();
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
this.listenToCtrl2 = this.ctrl2.valueChanges.subscribe(value => {
|
|
46
|
+
if (value) {
|
|
47
|
+
this.viewChild3.nativeElement.focus();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
this.listenToCtrl3 = this.ctrl3.valueChanges.subscribe(value => {
|
|
53
|
+
if (value) {
|
|
54
|
+
this.viewChild4.nativeElement.focus();
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
ngOnChanges(changes) {
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
if (this?.viewChild1?.nativeElement) {
|
|
63
|
+
this.viewChild1.nativeElement.focus();
|
|
64
|
+
}
|
|
65
|
+
}, 0);
|
|
66
|
+
}
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
if (this.listenToTyping) {
|
|
69
|
+
this.listenToTyping.unsubscribe();
|
|
70
|
+
}
|
|
71
|
+
if (this.listenToCtrl1) {
|
|
72
|
+
this.listenToCtrl1.unsubscribe();
|
|
73
|
+
}
|
|
74
|
+
if (this.listenToCtrl2) {
|
|
75
|
+
this.listenToCtrl2.unsubscribe();
|
|
76
|
+
}
|
|
77
|
+
if (this.listenToCtrl3) {
|
|
78
|
+
this.listenToCtrl3.unsubscribe();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
handleCancel() {
|
|
82
|
+
this.spxCancel.emit();
|
|
83
|
+
}
|
|
84
|
+
handleConfirm() {
|
|
85
|
+
this.spxConfirm.emit();
|
|
86
|
+
}
|
|
87
|
+
handleReset() {
|
|
88
|
+
this.ctrl1.reset();
|
|
89
|
+
this.ctrl2.reset();
|
|
90
|
+
this.ctrl3.reset();
|
|
91
|
+
this.ctrl4.reset();
|
|
92
|
+
this.viewChild1.nativeElement.focus();
|
|
93
|
+
this.accepted = false;
|
|
94
|
+
this.denied = false;
|
|
95
|
+
}
|
|
96
|
+
onDigitInput(event) {
|
|
97
|
+
let element;
|
|
98
|
+
if (event.code === 'Digit0' ||
|
|
99
|
+
event.code === 'Digit1' ||
|
|
100
|
+
event.code === 'Digit2' ||
|
|
101
|
+
event.code === 'Digit3' ||
|
|
102
|
+
event.code === 'Digit4' ||
|
|
103
|
+
event.code === 'Digit5' ||
|
|
104
|
+
event.code === 'Digit6' ||
|
|
105
|
+
event.code === 'Digit7' ||
|
|
106
|
+
event.code === 'Digit8' ||
|
|
107
|
+
event.code === 'Digit9' ||
|
|
108
|
+
event.code === 'Numpad0' ||
|
|
109
|
+
event.code === 'Numpad1' ||
|
|
110
|
+
event.code === 'Numpad2' ||
|
|
111
|
+
event.code === 'Numpad3' ||
|
|
112
|
+
event.code === 'Numpad4' ||
|
|
113
|
+
event.code === 'Numpad5' ||
|
|
114
|
+
event.code === 'Numpad6' ||
|
|
115
|
+
event.code === 'Numpad7' ||
|
|
116
|
+
event.code === 'Numpad8' ||
|
|
117
|
+
event.code === 'Numpad9') {
|
|
118
|
+
element = event.srcElement.nextElementSibling;
|
|
119
|
+
}
|
|
120
|
+
if (element == null) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// setTimeout(() => { element.focus(); });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
onBackspace(event) {
|
|
128
|
+
event.srcElement.previousElementSibling.focus();
|
|
129
|
+
}
|
|
130
|
+
checkPincode() {
|
|
131
|
+
if (this.spxPincode === `${this.ctrl1.value}${this.ctrl2.value}${this.ctrl3.value}${this.ctrl4.value}`) {
|
|
132
|
+
this.accepted = true;
|
|
133
|
+
setTimeout(() => {
|
|
134
|
+
this.spxConfirm.emit();
|
|
135
|
+
}, 500);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.denied = true;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
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 }); }
|
|
142
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNumberCheckComponent, isStandalone: true, selector: "spx-number-check", inputs: { spxAction: "spxAction", spxSimpleMode: "spxSimpleMode", spxPincode: "spxPincode", txtCancel: "txtCancel", txtConfirm: "txtConfirm", txtConfirmMessage: "txtConfirmMessage", txtReset: "txtReset" }, outputs: { spxCancel: "spxCancel", spxConfirm: "spxConfirm" }, host: { listeners: { "spxChange": "handleChangeEvent($event)" } }, viewQueries: [{ propertyName: "viewChild1", first: true, predicate: ["viewChild1"], descendants: true }, { propertyName: "viewChild2", first: true, predicate: ["viewChild2"], descendants: true }, { propertyName: "viewChild3", first: true, predicate: ["viewChild3"], descendants: true }, { propertyName: "viewChild4", first: true, predicate: ["viewChild4"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
143
|
+
<div class="fixed top-0 left-0 right-0 bottom-0 z-40 bg-black">
|
|
144
|
+
<div class="mx-auto mt-32 max-w-96 bg-black rounded-lg">
|
|
145
|
+
<div class="flex flex-col gap-3 p-3">
|
|
146
|
+
<div class="bg-yellow-300 text-black text-center rounded p-3 text-xl">
|
|
147
|
+
<div class="font-bold">{{ this.spxAction }}</div>
|
|
148
|
+
{{ this.txtConfirmMessage }}
|
|
149
|
+
</div>
|
|
150
|
+
<form *ngIf="!this.spxSimpleMode" class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
|
|
151
|
+
<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 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" pattern="[0-9]*" inputmode="numeric" />
|
|
152
|
+
<input #viewChild2 [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 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
|
|
153
|
+
<input #viewChild3 [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 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
|
|
154
|
+
<input #viewChild4 [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 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
|
|
155
|
+
</form>
|
|
156
|
+
<spx-button
|
|
157
|
+
*ngIf="this.spxSimpleMode"
|
|
158
|
+
[spxFullWidth]="true"
|
|
159
|
+
[spxSeverity]="this.severitySuccess"
|
|
160
|
+
(spxClick)="this.handleConfirm()"
|
|
161
|
+
>{{ this.txtConfirm }}</spx-button>
|
|
162
|
+
<spx-button
|
|
163
|
+
*ngIf="!this.spxSimpleMode"
|
|
164
|
+
[spxFullWidth]="true"
|
|
165
|
+
[spxSeverity]="this.severityWarning"
|
|
166
|
+
(spxClick)="this.handleReset()"
|
|
167
|
+
>{{ this.txtReset }}</spx-button>
|
|
168
|
+
<spx-button
|
|
169
|
+
[spxFullWidth]="true"
|
|
170
|
+
[spxSeverity]="this.severityError"
|
|
171
|
+
(spxClick)="this.handleCancel()"
|
|
172
|
+
>{{ this.txtCancel }}</spx-button>
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { 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"] }] }); }
|
|
177
|
+
}
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNumberCheckComponent, decorators: [{
|
|
179
|
+
type: Component,
|
|
180
|
+
args: [{
|
|
181
|
+
selector: 'spx-number-check',
|
|
182
|
+
standalone: true,
|
|
183
|
+
host: {
|
|
184
|
+
'(spxChange)': 'handleChangeEvent($event)'
|
|
185
|
+
},
|
|
186
|
+
imports: [
|
|
187
|
+
NgIf,
|
|
188
|
+
SpxButtonComponent,
|
|
189
|
+
FormsModule,
|
|
190
|
+
ReactiveFormsModule,
|
|
191
|
+
],
|
|
192
|
+
template: `
|
|
193
|
+
<div class="fixed top-0 left-0 right-0 bottom-0 z-40 bg-black">
|
|
194
|
+
<div class="mx-auto mt-32 max-w-96 bg-black rounded-lg">
|
|
195
|
+
<div class="flex flex-col gap-3 p-3">
|
|
196
|
+
<div class="bg-yellow-300 text-black text-center rounded p-3 text-xl">
|
|
197
|
+
<div class="font-bold">{{ this.spxAction }}</div>
|
|
198
|
+
{{ this.txtConfirmMessage }}
|
|
199
|
+
</div>
|
|
200
|
+
<form *ngIf="!this.spxSimpleMode" class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
|
|
201
|
+
<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 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" pattern="[0-9]*" inputmode="numeric" />
|
|
202
|
+
<input #viewChild2 [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 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
|
|
203
|
+
<input #viewChild3 [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 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
|
|
204
|
+
<input #viewChild4 [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 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
|
|
205
|
+
</form>
|
|
206
|
+
<spx-button
|
|
207
|
+
*ngIf="this.spxSimpleMode"
|
|
208
|
+
[spxFullWidth]="true"
|
|
209
|
+
[spxSeverity]="this.severitySuccess"
|
|
210
|
+
(spxClick)="this.handleConfirm()"
|
|
211
|
+
>{{ this.txtConfirm }}</spx-button>
|
|
212
|
+
<spx-button
|
|
213
|
+
*ngIf="!this.spxSimpleMode"
|
|
214
|
+
[spxFullWidth]="true"
|
|
215
|
+
[spxSeverity]="this.severityWarning"
|
|
216
|
+
(spxClick)="this.handleReset()"
|
|
217
|
+
>{{ this.txtReset }}</spx-button>
|
|
218
|
+
<spx-button
|
|
219
|
+
[spxFullWidth]="true"
|
|
220
|
+
[spxSeverity]="this.severityError"
|
|
221
|
+
(spxClick)="this.handleCancel()"
|
|
222
|
+
>{{ this.txtCancel }}</spx-button>
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
`,
|
|
227
|
+
}]
|
|
228
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { spxAction: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], spxSimpleMode: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], spxPincode: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], txtCancel: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], txtConfirm: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], txtConfirmMessage: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], txtReset: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], spxCancel: [{
|
|
243
|
+
type: Output
|
|
244
|
+
}], spxConfirm: [{
|
|
245
|
+
type: Output
|
|
246
|
+
}], viewChild1: [{
|
|
247
|
+
type: ViewChild,
|
|
248
|
+
args: ['viewChild1']
|
|
249
|
+
}], viewChild2: [{
|
|
250
|
+
type: ViewChild,
|
|
251
|
+
args: ['viewChild2']
|
|
252
|
+
}], viewChild3: [{
|
|
253
|
+
type: ViewChild,
|
|
254
|
+
args: ['viewChild3']
|
|
255
|
+
}], viewChild4: [{
|
|
256
|
+
type: ViewChild,
|
|
257
|
+
args: ['viewChild4']
|
|
258
|
+
}] } });
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LW51bWJlci1jaGVjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LW51bWJlci1jaGVjay9zcHgtbnVtYmVyLWNoZWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQXVDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBbURsRSxNQUFNLE9BQU8sdUJBQXVCO0lBMEJsQyxJQUFJLEtBQUssS0FBa0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQzFFLElBQUksS0FBSyxLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDMUUsSUFBSSxLQUFLLEtBQWtCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFnQixDQUFDLENBQUMsQ0FBQztJQUMxRSxJQUFJLEtBQUssS0FBa0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBRTFFLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBN0I1QyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQU1y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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcbmltcG9ydCB7IFNweFNldmVyaXR5RW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1udW1iZXItY2hlY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJyhzcHhDaGFuZ2UpJzogJ2hhbmRsZUNoYW5nZUV2ZW50KCRldmVudCknXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmaXhlZCB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBib3R0b20tMCB6LTQwIGJnLWJsYWNrXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibXgtYXV0byBtdC0zMiBtYXgtdy05NiBiZy1ibGFjayByb3VuZGVkLWxnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHAtM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy15ZWxsb3ctMzAwIHRleHQtYmxhY2sgdGV4dC1jZW50ZXIgcm91bmRlZCBwLTMgdGV4dC14bFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IHRoaXMuc3B4QWN0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICB7eyB0aGlzLnR4dENvbmZpcm1NZXNzYWdlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGZvcm0gKm5nSWY9XCIhdGhpcy5zcHhTaW1wbGVNb2RlXCIgY2xhc3M9XCJibG9jayBncmlkIGdyaWQtY29scy00IGdhcC0zXCIgW2Zvcm1Hcm91cF09XCJ0aGlzLmZvcm1cIiAobmdTdWJtaXQpPVwibnVsbFwiPlxuICAgICAgICAgICAgPGlucHV0ICN2aWV3Q2hpbGQxIFtmb3JtQ29udHJvbF09XCJjdHJsMVwiIHR5cGU9XCJ0ZXh0XCIgYXV0b2ZvY3VzIGNsYXNzPVwidy1mdWxsIHRleHQtY2VudGVyIGZvbnQtYm9sZCB0ZXh0LTJ4bCBwLTMgcm91bmRlZC1sZyBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMiBmb2N1czpyaW5nLWJsdWUtNTAwIHRleHQtd2hpdGUgYmctbmV1dHJhbC03MDBcIiBbY2xhc3MuYmctcmVkLTcwMF09XCJ0aGlzLmRlbmllZFwiIFtjbGFzcy5iZy10ZWFsLTcwMF09XCJ0aGlzLmFjY2VwdGVkXCIgbWF4bGVuZ3RoPVwiMVwiIChrZXlwcmVzcyk9XCJvbkRpZ2l0SW5wdXQoJGV2ZW50KVwiIHBhdHRlcm49XCJbMC05XSpcIiBpbnB1dG1vZGU9XCJudW1lcmljXCIgIC8+XG4gICAgICAgICAgICA8aW5wdXQgI3ZpZXdDaGlsZDIgW2Zvcm1Db250cm9sXT1cImN0cmwyXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMCB0ZXh0LXdoaXRlIGJnLW5ldXRyYWwtNzAwXCIgW2NsYXNzLmJnLXJlZC03MDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC03MDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAoa2V5dXAuYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIiBwYXR0ZXJuPVwiWzAtOV0qXCIgaW5wdXRtb2RlPVwibnVtZXJpY1wiIC8+XG4gICAgICAgICAgICA8aW5wdXQgI3ZpZXdDaGlsZDMgW2Zvcm1Db250cm9sXT1cImN0cmwzXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMCB0ZXh0LXdoaXRlIGJnLW5ldXRyYWwtNzAwXCIgW2NsYXNzLmJnLXJlZC03MDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC03MDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAoa2V5dXAuYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIiBwYXR0ZXJuPVwiWzAtOV0qXCIgaW5wdXRtb2RlPVwibnVtZXJpY1wiIC8+XG4gICAgICAgICAgICA8aW5wdXQgI3ZpZXdDaGlsZDQgW2Zvcm1Db250cm9sXT1cImN0cmw0XCIgdHlwZT1cInRleHRcIiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMCB0ZXh0LXdoaXRlIGJnLW5ldXRyYWwtNzAwXCIgW2NsYXNzLmJnLXJlZC03MDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC03MDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAoa2V5dXAuYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIiBwYXR0ZXJuPVwiWzAtOV0qXCIgaW5wdXRtb2RlPVwibnVtZXJpY1wiIC8+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgIDxzcHgtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInRoaXMuc3B4U2ltcGxlTW9kZVwiXG4gICAgICAgICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgW3NweFNldmVyaXR5XT1cInRoaXMuc2V2ZXJpdHlTdWNjZXNzXCJcbiAgICAgICAgICAgIChzcHhDbGljayk9XCJ0aGlzLmhhbmRsZUNvbmZpcm0oKVwiXG4gICAgICAgICAgICA+e3sgdGhpcy50eHRDb25maXJtIH19PC9zcHgtYnV0dG9uPlxuICAgICAgICAgIDxzcHgtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiF0aGlzLnNweFNpbXBsZU1vZGVcIlxuICAgICAgICAgICAgW3NweEZ1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzcHhTZXZlcml0eV09XCJ0aGlzLnNldmVyaXR5V2FybmluZ1wiXG4gICAgICAgICAgICAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVSZXNldCgpXCJcbiAgICAgICAgICAgID57eyB0aGlzLnR4dFJlc2V0IH19PC9zcHgtYnV0dG9uPlxuICAgICAgICAgIDxzcHgtYnV0dG9uXG4gICAgICAgICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgW3NweFNldmVyaXR5XT1cInRoaXMuc2V2ZXJpdHlFcnJvclwiXG4gICAgICAgICAgICAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVDYW5jZWwoKVwiXG4gICAgICAgICAgICA+e3sgdGhpcy50eHRDYW5jZWwgfX08L3NweC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNweE51bWJlckNoZWNrQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHNweEFjdGlvbiE6IHN0cmluZztcbiAgQElucHV0KCkgc3B4U2ltcGxlTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhQaW5jb2RlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDYW5jZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbmZpcm0hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbmZpcm1NZXNzYWdlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRSZXNldCE6IHN0cmluZztcbiAgQE91dHB1dCgpIHNweENhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3B4Q29uZmlybTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAVmlld0NoaWxkKCd2aWV3Q2hpbGQxJykgdmlld0NoaWxkMSE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3ZpZXdDaGlsZDInKSB2aWV3Q2hpbGQyITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgndmlld0NoaWxkMycpIHZpZXdDaGlsZDMhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCd2aWV3Q2hpbGQ0Jykgdmlld0NoaWxkNCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIGZvcm0hOiBGb3JtR3JvdXA7XG4gIHNldmVyaXR5RXJyb3IgPSBTcHhTZXZlcml0eUVudW0uZXJyb3I7XG4gIHNldmVyaXR5U3VjY2VzcyA9IFNweFNldmVyaXR5RW51bS5zdWNjZXNzO1xuICBzZXZlcml0eVdhcm5pbmcgPSBTcHhTZXZlcml0eUVudW0ud2FybmluZztcbiAgYWNjZXB0ZWQgPSBmYWxzZTtcbiAgZGVuaWVkID0gZmFsc2U7XG4gIGxpc3RlblRvQ3RybDE/OiBTdWJzY3JpcHRpb247XG4gIGxpc3RlblRvQ3RybDI/OiBTdWJzY3JpcHRpb247XG4gIGxpc3RlblRvQ3RybDM/OiBTdWJzY3JpcHRpb247XG4gIGxpc3RlblRvQ3RybDQ/OiBTdWJzY3JpcHRpb247XG4gIGxpc3RlblRvVHlwaW5nPzogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBjdHJsMSgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdHJsMScpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsMigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdHJsMicpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsMygpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdHJsMycpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsNCgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdHJsNCcpIGFzIEZvcm1Db250cm9sOyB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGN0cmwxOiBbbnVsbCwgW11dLFxuICAgICAgY3RybDI6IFtudWxsLCBbXV0sXG4gICAgICBjdHJsMzogW251bGwsIFtdXSxcbiAgICAgIGN0cmw0OiBbbnVsbCwgW11dLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub1R5cGluZyA9ICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmFjY2VwdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmRlbmllZCA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuY3RybDEudmFsdWUgJiYgdGhpcy5jdHJsMi52YWx1ZSAmJiB0aGlzLmN0cmwzLnZhbHVlICYmIHRoaXMuY3RybDQudmFsdWUpIHtcbiAgICAgICAgdGhpcy5jaGVja1BpbmNvZGUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuVG9DdHJsMSA9IHRoaXMuY3RybDEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy52aWV3Q2hpbGQyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuVG9DdHJsMiA9IHRoaXMuY3RybDIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy52aWV3Q2hpbGQzLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuVG9DdHJsMyA9IHRoaXMuY3RybDMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy52aWV3Q2hpbGQ0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzPy52aWV3Q2hpbGQxPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMudmlld0NoaWxkMS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5saXN0ZW5Ub1R5cGluZykge1xuICAgICAgdGhpcy5saXN0ZW5Ub1R5cGluZy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5saXN0ZW5Ub0N0cmwxKSB7XG4gICAgICB0aGlzLmxpc3RlblRvQ3RybDEudW5zdWJzY3JpYmUoKTtcbiAgICB9IFxuICAgIGlmICh0aGlzLmxpc3RlblRvQ3RybDIpIHtcbiAgICAgIHRoaXMubGlzdGVuVG9DdHJsMi51bnN1YnNjcmliZSgpO1xuICAgIH0gXG4gICAgaWYgKHRoaXMubGlzdGVuVG9DdHJsMykge1xuICAgICAgdGhpcy5saXN0ZW5Ub0N0cmwzLnVuc3Vic2NyaWJlKCk7XG4gICAgfSBcbiAgfVxuXG4gIGhhbmRsZUNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNweENhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVDb25maXJtKCk6IHZvaWQge1xuICAgIHRoaXMuc3B4Q29uZmlybS5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVSZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmN0cmwxLnJlc2V0KCk7XG4gICAgdGhpcy5jdHJsMi5yZXNldCgpO1xuICAgIHRoaXMuY3RybDMucmVzZXQoKTtcbiAgICB0aGlzLmN0cmw0LnJlc2V0KCk7XG4gICAgdGhpcy52aWV3Q2hpbGQxLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLmFjY2VwdGVkID0gZmFsc2U7XG4gICAgdGhpcy5kZW5pZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRGlnaXRJbnB1dChldmVudDogYW55KSB7XG4gICAgbGV0IGVsZW1lbnQ6IGFueTtcbiAgICBpZiAoXG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQwJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0MScgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDInIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQzJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0NCcgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDUnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQ2JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0NycgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDgnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQ5JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDAnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkMScgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQyJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDMnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkNCcgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQ1JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDYnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkNycgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQ4JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDknKSB7XG4gICAgICAgIGVsZW1lbnQgPSBldmVudC5zcmNFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4geyBlbGVtZW50LmZvY3VzKCk7IH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQmFja3NwYWNlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zcmNFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tQaW5jb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNweFBpbmNvZGUgPT09IGAke3RoaXMuY3RybDEudmFsdWV9JHt0aGlzLmN0cmwyLnZhbHVlfSR7dGhpcy5jdHJsMy52YWx1ZX0ke3RoaXMuY3RybDQudmFsdWV9YCkge1xuICAgICAgdGhpcy5hY2NlcHRlZCA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zcHhDb25maXJtLmVtaXQoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVuaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,14 +3,17 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export class SpxSuggestionComponent {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.spxDisabled = false;
|
|
6
|
+
this.spxFocused = false;
|
|
6
7
|
this.spxSelected = false;
|
|
8
|
+
this.spxTabbable = false;
|
|
7
9
|
}
|
|
8
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxSuggestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxSuggestionComponent, isStandalone: true, selector: "spx-suggestion", inputs: { spxDisabled: "spxDisabled", spxSelected: "spxSelected" }, ngImport: i0, template: `<button
|
|
10
|
-
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxSuggestionComponent, isStandalone: true, selector: "spx-suggestion", inputs: { spxDisabled: "spxDisabled", spxFocused: "spxFocused", spxSelected: "spxSelected", spxTabbable: "spxTabbable" }, ngImport: i0, template: `<button
|
|
12
|
+
type="button"
|
|
13
|
+
class="spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none"
|
|
11
14
|
[class.bg-sky-100]="!this.spxSelected && !this.spxDisabled"
|
|
12
|
-
[class.focus:ring-sky-
|
|
13
|
-
[class.hover:bg-sky-
|
|
15
|
+
[class.focus:ring-sky-300]="!this.spxSelected && !this.spxDisabled"
|
|
16
|
+
[class.hover:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
|
|
14
17
|
[class.active:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
|
|
15
18
|
[class.bg-gray-200]="this.spxDisabled && !this.spxSelected"
|
|
16
19
|
[class.bg-gray-400]="this.spxDisabled && this.spxSelected"
|
|
@@ -18,7 +21,12 @@ export class SpxSuggestionComponent {
|
|
|
18
21
|
[class.opacity-60]="this.spxDisabled"
|
|
19
22
|
[class.bg-teal-500]="this.spxSelected && !this.spxDisabled"
|
|
20
23
|
[class.font-bold]="this.spxSelected"
|
|
21
|
-
[attr.tabindex]="
|
|
24
|
+
[attr.tabindex]="this.spxTabbable && !this.spxDisabled ? 0 : -1"
|
|
25
|
+
[class.ring-2]="this.spxFocused && this.spxTabbable && !this.spxDisabled"
|
|
26
|
+
[class.ring-offset-2]="this.spxFocused && this.spxTabbable && !this.spxDisabled"
|
|
27
|
+
[class.ring-blue-500]="this.spxFocused && this.spxTabbable && !this.spxDisabled">
|
|
28
|
+
<div class="text-ellipsis overflow-hidden whitespace-nowrap"><ng-content></ng-content></div>
|
|
29
|
+
</button>`, isInline: true }); }
|
|
22
30
|
}
|
|
23
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxSuggestionComponent, decorators: [{
|
|
24
32
|
type: Component,
|
|
@@ -26,10 +34,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
26
34
|
selector: 'spx-suggestion',
|
|
27
35
|
standalone: true,
|
|
28
36
|
template: `<button
|
|
29
|
-
|
|
37
|
+
type="button"
|
|
38
|
+
class="spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none"
|
|
30
39
|
[class.bg-sky-100]="!this.spxSelected && !this.spxDisabled"
|
|
31
|
-
[class.focus:ring-sky-
|
|
32
|
-
[class.hover:bg-sky-
|
|
40
|
+
[class.focus:ring-sky-300]="!this.spxSelected && !this.spxDisabled"
|
|
41
|
+
[class.hover:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
|
|
33
42
|
[class.active:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
|
|
34
43
|
[class.bg-gray-200]="this.spxDisabled && !this.spxSelected"
|
|
35
44
|
[class.bg-gray-400]="this.spxDisabled && this.spxSelected"
|
|
@@ -37,11 +46,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
37
46
|
[class.opacity-60]="this.spxDisabled"
|
|
38
47
|
[class.bg-teal-500]="this.spxSelected && !this.spxDisabled"
|
|
39
48
|
[class.font-bold]="this.spxSelected"
|
|
40
|
-
[attr.tabindex]="-1"
|
|
49
|
+
[attr.tabindex]="this.spxTabbable && !this.spxDisabled ? 0 : -1"
|
|
50
|
+
[class.ring-2]="this.spxFocused && this.spxTabbable && !this.spxDisabled"
|
|
51
|
+
[class.ring-offset-2]="this.spxFocused && this.spxTabbable && !this.spxDisabled"
|
|
52
|
+
[class.ring-blue-500]="this.spxFocused && this.spxTabbable && !this.spxDisabled">
|
|
53
|
+
<div class="text-ellipsis overflow-hidden whitespace-nowrap"><ng-content></ng-content></div>
|
|
54
|
+
</button>`,
|
|
41
55
|
}]
|
|
42
56
|
}], propDecorators: { spxDisabled: [{
|
|
43
57
|
type: Input
|
|
58
|
+
}], spxFocused: [{
|
|
59
|
+
type: Input
|
|
44
60
|
}], spxSelected: [{
|
|
45
61
|
type: Input
|
|
62
|
+
}], spxTabbable: [{
|
|
63
|
+
type: Input
|
|
46
64
|
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXN1Z2dlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1zdWdnZXN0aW9uL3NweC1zdWdnZXN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF5QmpELE1BQU0sT0FBTyxzQkFBc0I7SUF2Qm5DO1FBd0JXLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0FDOUI7OEdBTFksc0JBQXNCO2tHQUF0QixzQkFBc0Isb01BcEJ2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBa0JFOzsyRkFFRCxzQkFBc0I7a0JBdkJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQWtCRTtpQkFDYjs4QkFFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtc3VnZ2VzdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic3B4LXN1Z2dlc3Rpb24gYmxvY2sgcm91bmRlZCB0ZXh0LWdyYXktOTAwIHRleHQtc20gcC0zIHctZnVsbCB0ZXh0LWxlZnQgdHJ1bmNhdGUgb3V0bGluZS1ub25lXCJcbiAgICBbY2xhc3MuYmctc2t5LTEwMF09XCIhdGhpcy5zcHhTZWxlY3RlZCAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmZvY3VzOnJpbmctc2t5LTMwMF09XCIhdGhpcy5zcHhTZWxlY3RlZCAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmhvdmVyOmJnLXNreS0zMDBdPVwiIXRoaXMuc3B4U2VsZWN0ZWQgJiYgIXRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5hY3RpdmU6Ymctc2t5LTMwMF09XCIhdGhpcy5zcHhTZWxlY3RlZCAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmJnLWdyYXktMjAwXT1cInRoaXMuc3B4RGlzYWJsZWQgJiYgIXRoaXMuc3B4U2VsZWN0ZWRcIlxuICAgIFtjbGFzcy5iZy1ncmF5LTQwMF09XCJ0aGlzLnNweERpc2FibGVkICYmIHRoaXMuc3B4U2VsZWN0ZWRcIlxuICAgIFtjbGFzcy5jdXJzb3Itbm90LWFsbG93ZWRdPVwidGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLm9wYWNpdHktNjBdPVwidGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmJnLXRlYWwtNTAwXT1cInRoaXMuc3B4U2VsZWN0ZWQgJiYgIXRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5mb250LWJvbGRdPVwidGhpcy5zcHhTZWxlY3RlZFwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGhpcy5zcHhUYWJiYWJsZSAmJiAhdGhpcy5zcHhEaXNhYmxlZCA/IDAgOiAtMVwiXG4gICAgW2NsYXNzLnJpbmctMl09XCJ0aGlzLnNweEZvY3VzZWQgJiYgdGhpcy5zcHhUYWJiYWJsZSAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLnJpbmctb2Zmc2V0LTJdPVwidGhpcy5zcHhGb2N1c2VkICYmIHRoaXMuc3B4VGFiYmFibGUgJiYgIXRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5yaW5nLWJsdWUtNTAwXT1cInRoaXMuc3B4Rm9jdXNlZCAmJiB0aGlzLnNweFRhYmJhYmxlICYmICF0aGlzLnNweERpc2FibGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtZWxsaXBzaXMgb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuICAgIDwvYnV0dG9uPmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweFN1Z2dlc3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBzcHhEaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweFNlbGVjdGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweFRhYmJhYmxlID0gZmFsc2U7XG59XG4iXX0=
|
|
@@ -49,7 +49,7 @@ export class SpxUpdateInfoComponent {
|
|
|
49
49
|
<spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | capitalize"
|
|
50
50
|
[spxReadonly]="true"></spx-input>
|
|
51
51
|
</div>
|
|
52
|
-
</form>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
|
|
52
|
+
</form>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
|
|
53
53
|
}
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxUpdateInfoComponent, decorators: [{
|
|
55
55
|
type: Component,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgClass } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { EventEmitter, Component, HostBinding, Input, Output } from '@angular/core';
|
|
3
|
+
import { EventEmitter, Component, HostBinding, Input, Output, ViewChild } from '@angular/core';
|
|
4
4
|
import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
|
|
5
5
|
|
|
6
6
|
class SpxButtonComponent {
|
|
@@ -26,9 +26,14 @@ class SpxButtonComponent {
|
|
|
26
26
|
get severityInfo() { return this.spxSeverity === SpxSeverityEnum.info; }
|
|
27
27
|
get severitySuccess() { return this.spxSeverity === SpxSeverityEnum.success; }
|
|
28
28
|
get severityWarning() { return this.spxSeverity === SpxSeverityEnum.warning; }
|
|
29
|
+
spxSetFocus() {
|
|
30
|
+
console.log(this.buttonRef);
|
|
31
|
+
this.buttonRef?.nativeElement?.focus();
|
|
32
|
+
}
|
|
29
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxButtonComponent, isStandalone: true, selector: "spx-button", inputs: { spxDisabled: "spxDisabled", spxClass: "spxClass", spxClassObject: "spxClassObject", spxForm: "spxForm", spxFullHeight: "spxFullHeight", spxFullWidth: "spxFullWidth", spxSeverity: "spxSeverity", spxSize: "spxSize", spxTabIndex: "spxTabIndex", spxType: "spxType" }, outputs: { spxClick: "spxClick" }, host: { properties: { "class.block": "this.hostClassBlock", "class.h-full": "this.hostClassHFull", "class.w-full": "this.hostClassWFull" } }, ngImport: i0, template: `
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxButtonComponent, isStandalone: true, selector: "spx-button", inputs: { spxDisabled: "spxDisabled", spxClass: "spxClass", spxClassObject: "spxClassObject", spxForm: "spxForm", spxFullHeight: "spxFullHeight", spxFullWidth: "spxFullWidth", spxSeverity: "spxSeverity", spxSize: "spxSize", spxTabIndex: "spxTabIndex", spxType: "spxType" }, outputs: { spxClick: "spxClick" }, host: { properties: { "class.block": "this.hostClassBlock", "class.h-full": "this.hostClassHFull", "class.w-full": "this.hostClassWFull" } }, viewQueries: [{ propertyName: "buttonRef", first: true, predicate: ["buttonRef"], descendants: true, static: true }], ngImport: i0, template: `
|
|
31
35
|
<button
|
|
36
|
+
#buttonRef
|
|
32
37
|
class="border border-transparent font-bold px-4 py-2 relative rounded text-center text-white focus:outline-none focus:ring-2 focus:ring-offset-2"
|
|
33
38
|
[class.h-full]="this.spxFullHeight"
|
|
34
39
|
[class.w-full]="this.spxFullWidth"
|
|
@@ -72,6 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
72
77
|
],
|
|
73
78
|
template: `
|
|
74
79
|
<button
|
|
80
|
+
#buttonRef
|
|
75
81
|
class="border border-transparent font-bold px-4 py-2 relative rounded text-center text-white focus:outline-none focus:ring-2 focus:ring-offset-2"
|
|
76
82
|
[class.h-full]="this.spxFullHeight"
|
|
77
83
|
[class.w-full]="this.spxFullWidth"
|
|
@@ -136,6 +142,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
136
142
|
type: Input
|
|
137
143
|
}], spxClick: [{
|
|
138
144
|
type: Output
|
|
145
|
+
}], buttonRef: [{
|
|
146
|
+
type: ViewChild,
|
|
147
|
+
args: ['buttonRef', { static: true }]
|
|
139
148
|
}] } });
|
|
140
149
|
|
|
141
150
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"softpak-components-spx-button.mjs","sources":["../../../../projects/softpak/components/spx-button/spx-button.component.ts","../../../../projects/softpak/components/spx-button/softpak-components-spx-button.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\n\n@Component({\n selector: 'spx-button',\n standalone: true,\n imports: [\n NgClass,\n ],\n template: `\n <button\n class=\"border border-transparent font-bold px-4 py-2 relative rounded text-center text-white focus:outline-none focus:ring-2 focus:ring-offset-2\"\n [class.h-full]=\"this.spxFullHeight\"\n [class.w-full]=\"this.spxFullWidth\"\n [class.bg-blue-600]=\"!this.spxSeverity || this.severityInfo\"\n [class.focus:ring-blue-500]=\"!this.spxSeverity || this.severityInfo\"\n [class.hover:bg-blue-800]=\"!this.spxSeverity || this.severityInfo\"\n [class.bg-red-600]=\"this.severityError\"\n [class.focus:ring-red-500]=\"this.severityError\"\n [class.hover:bg-red-800]=\"this.severityError\"\n [class.bg-lime-600]=\"this.severitySuccess\"\n [class.focus:ring-lime-500]=\"this.severitySuccess\"\n [class.hover:bg-lime-800]=\"this.severitySuccess\"\n [class.bg-amber-600]=\"this.severityWarning\"\n [class.focus:ring-amber-500]=\"this.severityWarning\"\n [class.hover:bg-amber-800]=\"this.severityWarning\"\n [class.text-xl]=\"this.spxSize === 'xl'\"\n [class.text-lg]=\"this.spxSize === 'lg'\"\n [class.cursor-pointer]=\"!this.spxDisabled\"\n [class.cursor-not-allowed]=\"this.spxDisabled\"\n [class.opacity-50]=\"this.spxDisabled\"\n [class.focus:ring-0]=\"this.spxDisabled\"\n [class.hover:bg-red-600]=\"this.spxDisabled && this.severityError\"\n [class.hover:bg-blue-600]=\"this.spxDisabled && this.severityInfo\"\n [class.hover:bg-lime-600]=\"this.spxDisabled && this.severitySuccess\"\n [class.hover:bg-amber-600]=\"this.spxDisabled && this.severityWarning\"\n [ngClass]=\"this.spxClass ? this.spxClass : undefined\"\n [attr.disabled]=\"this.spxDisabled ? this.spxDisabled : undefined\"\n [attr.form]=\"this.spxForm ? this.spxForm : undefined\"\n [attr.tabindex]=\"this.spxTabIndex ? this.spxTabIndex : undefined\"\n [attr.type]=\"this.spxType ? this.spxType : undefined\"\n (click)=\"this.handleClick()\"\n part=\"button\"><ng-content></ng-content></button>`,\n})\nexport class SpxButtonComponent {\n @HostBinding('class.block') get hostClassBlock() { return this.spxFullWidth; }\n @HostBinding('class.h-full') get hostClassHFull() { return this.spxFullHeight; }\n @HostBinding('class.w-full') get hostClassWFull() { return this.spxFullWidth; }\n @Input() spxDisabled = false;\n @Input() spxClass?: string;\n @Input() spxClassObject?: object;\n @Input() spxForm?: string;\n @Input() spxFullHeight?: boolean;\n @Input() spxFullWidth?: boolean;\n @Input() spxSeverity: SpxSeverityEnum = SpxSeverityEnum.info;\n @Input() spxSize: 'lg' | 'xl' = 'lg';\n @Input() spxTabIndex?: number;\n @Input() spxType: 'button' | 'submit' = 'submit';\n @Output() spxClick: EventEmitter<void> = new EventEmitter<void>();\n\n get severityError() { return this.spxSeverity === SpxSeverityEnum.error; }\n get severityInfo() { return this.spxSeverity === SpxSeverityEnum.info; }\n get severitySuccess() { return this.spxSeverity === SpxSeverityEnum.success; }\n get severityWarning() { return this.spxSeverity === SpxSeverityEnum.warning; }\n\n hasShadowDom = (el: HTMLElement) => {\n return !!el.shadowRoot && !!(el as any).attachShadow;\n };\n handleClick = () => {\n if (!this.spxDisabled) {\n this.spxClick.emit();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-button.mjs","sources":["../../../../projects/softpak/components/spx-button/spx-button.component.ts","../../../../projects/softpak/components/spx-button/softpak-components-spx-button.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';\nimport { SpxSeverityEnum } from '@softpak/components/spx-helpers';\n\n@Component({\n selector: 'spx-button',\n standalone: true,\n imports: [\n NgClass,\n ],\n template: `\n <button\n #buttonRef\n class=\"border border-transparent font-bold px-4 py-2 relative rounded text-center text-white focus:outline-none focus:ring-2 focus:ring-offset-2\"\n [class.h-full]=\"this.spxFullHeight\"\n [class.w-full]=\"this.spxFullWidth\"\n [class.bg-blue-600]=\"!this.spxSeverity || this.severityInfo\"\n [class.focus:ring-blue-500]=\"!this.spxSeverity || this.severityInfo\"\n [class.hover:bg-blue-800]=\"!this.spxSeverity || this.severityInfo\"\n [class.bg-red-600]=\"this.severityError\"\n [class.focus:ring-red-500]=\"this.severityError\"\n [class.hover:bg-red-800]=\"this.severityError\"\n [class.bg-lime-600]=\"this.severitySuccess\"\n [class.focus:ring-lime-500]=\"this.severitySuccess\"\n [class.hover:bg-lime-800]=\"this.severitySuccess\"\n [class.bg-amber-600]=\"this.severityWarning\"\n [class.focus:ring-amber-500]=\"this.severityWarning\"\n [class.hover:bg-amber-800]=\"this.severityWarning\"\n [class.text-xl]=\"this.spxSize === 'xl'\"\n [class.text-lg]=\"this.spxSize === 'lg'\"\n [class.cursor-pointer]=\"!this.spxDisabled\"\n [class.cursor-not-allowed]=\"this.spxDisabled\"\n [class.opacity-50]=\"this.spxDisabled\"\n [class.focus:ring-0]=\"this.spxDisabled\"\n [class.hover:bg-red-600]=\"this.spxDisabled && this.severityError\"\n [class.hover:bg-blue-600]=\"this.spxDisabled && this.severityInfo\"\n [class.hover:bg-lime-600]=\"this.spxDisabled && this.severitySuccess\"\n [class.hover:bg-amber-600]=\"this.spxDisabled && this.severityWarning\"\n [ngClass]=\"this.spxClass ? this.spxClass : undefined\"\n [attr.disabled]=\"this.spxDisabled ? this.spxDisabled : undefined\"\n [attr.form]=\"this.spxForm ? this.spxForm : undefined\"\n [attr.tabindex]=\"this.spxTabIndex ? this.spxTabIndex : undefined\"\n [attr.type]=\"this.spxType ? this.spxType : undefined\"\n (click)=\"this.handleClick()\"\n part=\"button\"><ng-content></ng-content></button>`,\n})\nexport class SpxButtonComponent {\n @HostBinding('class.block') get hostClassBlock() { return this.spxFullWidth; }\n @HostBinding('class.h-full') get hostClassHFull() { return this.spxFullHeight; }\n @HostBinding('class.w-full') get hostClassWFull() { return this.spxFullWidth; }\n @Input() spxDisabled = false;\n @Input() spxClass?: string;\n @Input() spxClassObject?: object;\n @Input() spxForm?: string;\n @Input() spxFullHeight?: boolean;\n @Input() spxFullWidth?: boolean;\n @Input() spxSeverity: SpxSeverityEnum = SpxSeverityEnum.info;\n @Input() spxSize: 'lg' | 'xl' = 'lg';\n @Input() spxTabIndex?: number;\n @Input() spxType: 'button' | 'submit' = 'submit';\n @Output() spxClick: EventEmitter<void> = new EventEmitter<void>();\n @ViewChild('buttonRef', { static: true }) buttonRef?: ElementRef<HTMLInputElement>;\n\n get severityError() { return this.spxSeverity === SpxSeverityEnum.error; }\n get severityInfo() { return this.spxSeverity === SpxSeverityEnum.info; }\n get severitySuccess() { return this.spxSeverity === SpxSeverityEnum.success; }\n get severityWarning() { return this.spxSeverity === SpxSeverityEnum.warning; }\n\n hasShadowDom = (el: HTMLElement) => {\n return !!el.shadowRoot && !!(el as any).attachShadow;\n };\n handleClick = () => {\n if (!this.spxDisabled) {\n this.spxClick.emit();\n }\n }\n\n spxSetFocus(): void {\n console.log(this.buttonRef);\n this.buttonRef?.nativeElement?.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|