@byuhbll/components 4.3.1 → 4.3.2

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,94 @@
1
+ import { booleanAttribute, Component, Input } from '@angular/core';
2
+ import { CommonModule, NgIf } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ /**
6
+ * A button that indicates status with color and icon.
7
+ * Status can be one of: 'success', 'info', 'warning', 'error', or 'disabled'.
8
+ * Each status has a default left icon, but a custom left icon can be provided.
9
+ * A right icon can also be provided, defaulting to 'chevron_right'.
10
+ * The left and right icons can be hidden with the `hideLeftIcon` and `hideRightIcon` boolean inputs.
11
+ * A label input is required.
12
+ */
13
+ export class StatusButtonComponent {
14
+ constructor() {
15
+ this._status = 'info';
16
+ this._leftIcon = '';
17
+ this._rightIcon = '';
18
+ this._hideLeftIcon = false;
19
+ this._hideRightIcon = false;
20
+ }
21
+ set status(value) {
22
+ this._status = value || 'info';
23
+ }
24
+ get status() {
25
+ return this._status;
26
+ }
27
+ set leftIcon(value) {
28
+ this._leftIcon = value;
29
+ }
30
+ get leftIcon() {
31
+ if (this._hideLeftIcon)
32
+ return '';
33
+ return this._leftIcon || this.getDefaultLeftIcon(this._status);
34
+ }
35
+ set rightIcon(value) {
36
+ this._rightIcon = value;
37
+ }
38
+ get rightIcon() {
39
+ if (this._hideRightIcon)
40
+ return '';
41
+ return this._rightIcon || 'chevron_right';
42
+ }
43
+ set hideLeftIcon(value) {
44
+ this._hideLeftIcon = value;
45
+ }
46
+ get hideLeftIcon() {
47
+ return this._hideLeftIcon;
48
+ }
49
+ set hideRightIcon(value) {
50
+ this._hideRightIcon = value;
51
+ }
52
+ get hideRightIcon() {
53
+ return this._hideRightIcon;
54
+ }
55
+ /** helper for default left icons */
56
+ getDefaultLeftIcon(status) {
57
+ switch (status) {
58
+ case 'success':
59
+ return 'check';
60
+ case 'info':
61
+ return 'info';
62
+ case 'warning':
63
+ return 'warning';
64
+ case 'error':
65
+ return 'error';
66
+ case 'disabled':
67
+ return 'block';
68
+ default:
69
+ return '';
70
+ }
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StatusButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.0", type: StatusButtonComponent, isStandalone: true, selector: "lib-status-button", inputs: { label: "label", status: "status", leftIcon: "leftIcon", rightIcon: "rightIcon", hideLeftIcon: ["hideLeftIcon", "hideLeftIcon", booleanAttribute], hideRightIcon: ["hideRightIcon", "hideRightIcon", booleanAttribute] }, ngImport: i0, template: "<button\n type=\"button\"\n [className]=\"status\"\n>\n <span *ngIf=\"leftIcon\" class=\"icon material-symbols-outlined\">{{ leftIcon }}</span>\n {{ label }}\n <span *ngIf=\"rightIcon\" class=\"icon material-symbols-outlined\">{{ rightIcon }}</span>\n</button>\n", styles: ["button{align-items:center;background-color:#ecf2f6;border:1px solid #457fa6;border-radius:4px;color:#3e7295;display:inline-flex;flex-shrink:0;font-size:16px;font-weight:400;gap:8px;height:36px;justify-content:center;padding:4px 8px}button .icon{font-size:20px}button:focus{outline:2px solid #b967c7;outline-offset:2px}button:hover{background-color:#a2bfd3;color:#26485f;cursor:pointer}button.success{background-color:#ebf6ee;border:1px solid #3ba35a;color:#1d562e}button.success:hover{background-color:#9dd1ac;color:#1d562e}button.info{background-color:#ecf2f6;border:1px solid #457fa6;color:#3e7295}button.info:hover{background-color:#a2bfd3;color:#26485f}button.warning{background-color:#faf9ec;border:1px solid #d1c844;color:#635f04}button.warning:hover{background-color:#e8e3a1;color:#635f04}button.error{background-color:#f9ecec;border:1px solid #c73e3d;color:#702121}button.error:hover{background-color:#e39e9e;color:#702121}button.disabled{background-color:#e7e7e7;border:1px solid #8f8f8f;color:#767676}button.disabled:hover{background-color:#d0d0d0;color:#141414}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StatusButtonComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'lib-status-button', standalone: true, imports: [CommonModule, NgIf], template: "<button\n type=\"button\"\n [className]=\"status\"\n>\n <span *ngIf=\"leftIcon\" class=\"icon material-symbols-outlined\">{{ leftIcon }}</span>\n {{ label }}\n <span *ngIf=\"rightIcon\" class=\"icon material-symbols-outlined\">{{ rightIcon }}</span>\n</button>\n", styles: ["button{align-items:center;background-color:#ecf2f6;border:1px solid #457fa6;border-radius:4px;color:#3e7295;display:inline-flex;flex-shrink:0;font-size:16px;font-weight:400;gap:8px;height:36px;justify-content:center;padding:4px 8px}button .icon{font-size:20px}button:focus{outline:2px solid #b967c7;outline-offset:2px}button:hover{background-color:#a2bfd3;color:#26485f;cursor:pointer}button.success{background-color:#ebf6ee;border:1px solid #3ba35a;color:#1d562e}button.success:hover{background-color:#9dd1ac;color:#1d562e}button.info{background-color:#ecf2f6;border:1px solid #457fa6;color:#3e7295}button.info:hover{background-color:#a2bfd3;color:#26485f}button.warning{background-color:#faf9ec;border:1px solid #d1c844;color:#635f04}button.warning:hover{background-color:#e8e3a1;color:#635f04}button.error{background-color:#f9ecec;border:1px solid #c73e3d;color:#702121}button.error:hover{background-color:#e39e9e;color:#702121}button.disabled{background-color:#e7e7e7;border:1px solid #8f8f8f;color:#767676}button.disabled:hover{background-color:#d0d0d0;color:#141414}\n"] }]
78
+ }], propDecorators: { label: [{
79
+ type: Input,
80
+ args: [{ required: true }]
81
+ }], status: [{
82
+ type: Input
83
+ }], leftIcon: [{
84
+ type: Input
85
+ }], rightIcon: [{
86
+ type: Input
87
+ }], hideLeftIcon: [{
88
+ type: Input,
89
+ args: [{ transform: booleanAttribute }]
90
+ }], hideRightIcon: [{
91
+ type: Input,
92
+ args: [{ transform: booleanAttribute }]
93
+ }] } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc3RhdHVzLWJ1dHRvbi9zdGF0dXMtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zdGF0dXMtYnV0dG9uL3N0YXR1cy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXJEOzs7Ozs7O0dBT0c7QUFRSCxNQUFNLE9BQU8scUJBQXFCO0lBUGxDO1FBUVksWUFBTyxHQUEwRCxNQUFNLENBQUM7UUFDeEUsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0ErRGxDO0lBM0RHLElBQ0ksTUFBTSxDQUFDLEtBQTREO1FBQ25FLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxJQUFJLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUNJLFFBQVEsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixJQUFJLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQ0ksU0FBUyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksU0FBUztRQUNULElBQUksSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksZUFBZSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUNJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQ0ksYUFBYSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsb0NBQW9DO0lBQzVCLGtCQUFrQixDQUFDLE1BQTJCO1FBQ2xELFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDYixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxPQUFPLENBQUM7WUFDbkIsS0FBSyxNQUFNO2dCQUNQLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLEtBQUssU0FBUztnQkFDVixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLE9BQU87Z0JBQ1IsT0FBTyxPQUFPLENBQUM7WUFDbkIsS0FBSyxVQUFVO2dCQUNYLE9BQU8sT0FBTyxDQUFDO1lBQ25CO2dCQUNJLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDOzhHQW5FUSxxQkFBcUI7a0dBQXJCLHFCQUFxQiw4TEFtQ1YsZ0JBQWdCLHFEQVFoQixnQkFBZ0IsNkJDN0R4Qyx1UkFRQSwybUNETWMsWUFBWTs7MkZBSWIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDOzhCQVdGLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUdyQixNQUFNO3NCQURULEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSztnQkFVRixZQUFZO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBU2xDLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEEgYnV0dG9uIHRoYXQgaW5kaWNhdGVzIHN0YXR1cyB3aXRoIGNvbG9yIGFuZCBpY29uLlxuICogU3RhdHVzIGNhbiBiZSBvbmUgb2Y6ICdzdWNjZXNzJywgJ2luZm8nLCAnd2FybmluZycsICdlcnJvcicsIG9yICdkaXNhYmxlZCcuXG4gKiBFYWNoIHN0YXR1cyBoYXMgYSBkZWZhdWx0IGxlZnQgaWNvbiwgYnV0IGEgY3VzdG9tIGxlZnQgaWNvbiBjYW4gYmUgcHJvdmlkZWQuXG4gKiBBIHJpZ2h0IGljb24gY2FuIGFsc28gYmUgcHJvdmlkZWQsIGRlZmF1bHRpbmcgdG8gJ2NoZXZyb25fcmlnaHQnLlxuICogVGhlIGxlZnQgYW5kIHJpZ2h0IGljb25zIGNhbiBiZSBoaWRkZW4gd2l0aCB0aGUgYGhpZGVMZWZ0SWNvbmAgYW5kIGBoaWRlUmlnaHRJY29uYCBib29sZWFuIGlucHV0cy5cbiAqIEEgbGFiZWwgaW5wdXQgaXMgcmVxdWlyZWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXN0YXR1cy1idXR0b24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJZl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0YXR1cy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zdGF0dXMtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdHVzQnV0dG9uQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIF9zdGF0dXM6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnZGlzYWJsZWQnID0gJ2luZm8nO1xuICAgIHByaXZhdGUgX2xlZnRJY29uID0gJyc7XG4gICAgcHJpdmF0ZSBfcmlnaHRJY29uID0gJyc7XG4gICAgcHJpdmF0ZSBfaGlkZUxlZnRJY29uID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaGlkZVJpZ2h0SWNvbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbGFiZWwhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0dXModmFsdWU6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnZGlzYWJsZWQnKSB7XG4gICAgICAgIHRoaXMuX3N0YXR1cyA9IHZhbHVlIHx8ICdpbmZvJztcbiAgICB9XG4gICAgZ2V0IHN0YXR1cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsZWZ0SWNvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xlZnRJY29uID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBsZWZ0SWNvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2hpZGVMZWZ0SWNvbikgcmV0dXJuICcnO1xuICAgICAgICByZXR1cm4gdGhpcy5fbGVmdEljb24gfHwgdGhpcy5nZXREZWZhdWx0TGVmdEljb24odGhpcy5fc3RhdHVzKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCByaWdodEljb24odmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9yaWdodEljb24gPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHJpZ2h0SWNvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2hpZGVSaWdodEljb24pIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JpZ2h0SWNvbiB8fCAnY2hldnJvbl9yaWdodCc7XG4gICAgfVxuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGhpZGVMZWZ0SWNvbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oaWRlTGVmdEljb24gPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhpZGVMZWZ0SWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVMZWZ0SWNvbjtcbiAgICB9XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgaGlkZVJpZ2h0SWNvbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oaWRlUmlnaHRJY29uID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBoaWRlUmlnaHRJY29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZVJpZ2h0SWNvbjtcbiAgICB9XG5cbiAgICAvKiogaGVscGVyIGZvciBkZWZhdWx0IGxlZnQgaWNvbnMgKi9cbiAgICBwcml2YXRlIGdldERlZmF1bHRMZWZ0SWNvbihzdGF0dXM6IHR5cGVvZiB0aGlzLl9zdGF0dXMpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdjaGVjayc7XG4gICAgICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2luZm8nO1xuICAgICAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd3YXJuaW5nJztcbiAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgICAgIGNhc2UgJ2Rpc2FibGVkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Jsb2NrJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtjbGFzc05hbWVdPVwic3RhdHVzXCJcbj5cbiAgICA8c3BhbiAqbmdJZj1cImxlZnRJY29uXCIgY2xhc3M9XCJpY29uIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57eyBsZWZ0SWNvbiB9fTwvc3Bhbj5cbiAgICB7eyBsYWJlbCB9fVxuICAgIDxzcGFuICpuZ0lmPVwicmlnaHRJY29uXCIgY2xhc3M9XCJpY29uIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57eyByaWdodEljb24gfX08L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
@@ -13,4 +13,5 @@ export * from './lib/ss-search-bar/models/search-scope.model';
13
13
  export * from './lib/ss-search-bar/models/search-config.model';
14
14
  export { getUserStatusFromRoles } from './lib/contact-utils';
15
15
  export { ADVANCED_SEARCH_QUALIFIER_MAP, ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_OPTIONS, } from './lib/ss-search-bar/constants';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IseUJBQXlCLEVBQ3pCLHVCQUF1QixHQUMxQixNQUFNLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb21wb25lbnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGJsbC1oZWFkZXIvaGJsbC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2hibGwtaXRlbS10eXBlLWljb24ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oYmxsLWZvb3Rlci9oYmxsLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyLXdpdGgtaW1wZXJzb25hdGlvbi9oZWFkZXItd2l0aC1pbXBlcnNvbmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbXBlcnNvbmF0ZS1tb2RhbC9pbXBlcnNvbmF0ZS1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1wZXJzb25hdGlvbi1iYW5uZXIvaW1wZXJzb25hdGlvbi1iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzLXNlYXJjaC1iYXIvc3Mtc2VhcmNoLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3Mtc2VhcmNoLWJhci9tb2RlbHMvYWR2YW5jZWQtc2VhcmNoLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzLXNlYXJjaC1iYXIvbW9kZWxzL3NlYXJjaC1zY29wZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcy1zZWFyY2gtYmFyL21vZGVscy9zZWFyY2gtY29uZmlnLm1vZGVsJztcbmV4cG9ydCB7IGdldFVzZXJTdGF0dXNGcm9tUm9sZXMgfSBmcm9tICcuL2xpYi9jb250YWN0LXV0aWxzJztcbmV4cG9ydCB7XG4gICAgQURWQU5DRURfU0VBUkNIX1FVQUxJRklFUl9NQVAsXG4gICAgQURWQU5DRURfU0VBUkNIX0ZJRUxEX01BUCxcbiAgICBBRFZBTkNFRF9TRUFSQ0hfT1BUSU9OUyxcbn0gZnJvbSAnLi9saWIvc3Mtc2VhcmNoLWJhci9jb25zdGFudHMnO1xuIl19
16
+ export * from './lib/status-button/status-button.component';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IseUJBQXlCLEVBQ3pCLHVCQUF1QixHQUMxQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLGNBQWMsNkNBQTZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oYmxsLWhlYWRlci9oYmxsLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvaGJsbC1pdGVtLXR5cGUtaWNvbi5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hibGwtZm9vdGVyL2hibGwtZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWFkZXItd2l0aC1pbXBlcnNvbmF0aW9uL2hlYWRlci13aXRoLWltcGVyc29uYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ltcGVyc29uYXRlLW1vZGFsL2ltcGVyc29uYXRlLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbXBlcnNvbmF0aW9uLWJhbm5lci9pbXBlcnNvbmF0aW9uLWJhbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3Mtc2VhcmNoLWJhci9zcy1zZWFyY2gtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcy1zZWFyY2gtYmFyL21vZGVscy9hZHZhbmNlZC1zZWFyY2gubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3Mtc2VhcmNoLWJhci9tb2RlbHMvc2VhcmNoLXNjb3BlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzLXNlYXJjaC1iYXIvbW9kZWxzL3NlYXJjaC1jb25maWcubW9kZWwnO1xuZXhwb3J0IHsgZ2V0VXNlclN0YXR1c0Zyb21Sb2xlcyB9IGZyb20gJy4vbGliL2NvbnRhY3QtdXRpbHMnO1xuZXhwb3J0IHtcbiAgICBBRFZBTkNFRF9TRUFSQ0hfUVVBTElGSUVSX01BUCxcbiAgICBBRFZBTkNFRF9TRUFSQ0hfRklFTERfTUFQLFxuICAgIEFEVkFOQ0VEX1NFQVJDSF9PUFRJT05TLFxufSBmcm9tICcuL2xpYi9zcy1zZWFyY2gtYmFyL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0dXMtYnV0dG9uL3N0YXR1cy1idXR0b24uY29tcG9uZW50JztcbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  import * as i1 from '@angular/common';
2
- import { CommonModule, DatePipe, DOCUMENT, LowerCasePipe } from '@angular/common';
2
+ import { CommonModule, DatePipe, DOCUMENT, LowerCasePipe, NgIf } from '@angular/common';
3
3
  import { toSignal, toObservable } from '@angular/core/rxjs-interop';
4
4
  import { HttpClient } from '@angular/common/http';
5
5
  import * as i0 from '@angular/core';
6
- import { Component, ChangeDetectionStrategy, ViewChild, Input, input, EventEmitter, Output, inject, computed, ViewChildren, Pipe, Renderer2, viewChild, HostListener, ElementRef, ViewEncapsulation } from '@angular/core';
6
+ import { Component, ChangeDetectionStrategy, ViewChild, Input, input, EventEmitter, Output, inject, computed, ViewChildren, Pipe, Renderer2, viewChild, HostListener, ElementRef, ViewEncapsulation, booleanAttribute } from '@angular/core';
7
7
  import { trigger, transition, group, style, query, animateChild, animate } from '@angular/animations';
8
8
  import { map, of, switchMap, shareReplay, combineLatest, Subject, Subscription } from 'rxjs';
9
9
  import { BreakpointObserver } from '@angular/cdk/layout';
@@ -2172,6 +2172,96 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
2172
2172
  const searchScopeValues = ['local', 'external'];
2173
2173
  const isSearchScope = (scope) => searchScopeValues.includes(scope);
2174
2174
 
2175
+ /**
2176
+ * A button that indicates status with color and icon.
2177
+ * Status can be one of: 'success', 'info', 'warning', 'error', or 'disabled'.
2178
+ * Each status has a default left icon, but a custom left icon can be provided.
2179
+ * A right icon can also be provided, defaulting to 'chevron_right'.
2180
+ * The left and right icons can be hidden with the `hideLeftIcon` and `hideRightIcon` boolean inputs.
2181
+ * A label input is required.
2182
+ */
2183
+ class StatusButtonComponent {
2184
+ constructor() {
2185
+ this._status = 'info';
2186
+ this._leftIcon = '';
2187
+ this._rightIcon = '';
2188
+ this._hideLeftIcon = false;
2189
+ this._hideRightIcon = false;
2190
+ }
2191
+ set status(value) {
2192
+ this._status = value || 'info';
2193
+ }
2194
+ get status() {
2195
+ return this._status;
2196
+ }
2197
+ set leftIcon(value) {
2198
+ this._leftIcon = value;
2199
+ }
2200
+ get leftIcon() {
2201
+ if (this._hideLeftIcon)
2202
+ return '';
2203
+ return this._leftIcon || this.getDefaultLeftIcon(this._status);
2204
+ }
2205
+ set rightIcon(value) {
2206
+ this._rightIcon = value;
2207
+ }
2208
+ get rightIcon() {
2209
+ if (this._hideRightIcon)
2210
+ return '';
2211
+ return this._rightIcon || 'chevron_right';
2212
+ }
2213
+ set hideLeftIcon(value) {
2214
+ this._hideLeftIcon = value;
2215
+ }
2216
+ get hideLeftIcon() {
2217
+ return this._hideLeftIcon;
2218
+ }
2219
+ set hideRightIcon(value) {
2220
+ this._hideRightIcon = value;
2221
+ }
2222
+ get hideRightIcon() {
2223
+ return this._hideRightIcon;
2224
+ }
2225
+ /** helper for default left icons */
2226
+ getDefaultLeftIcon(status) {
2227
+ switch (status) {
2228
+ case 'success':
2229
+ return 'check';
2230
+ case 'info':
2231
+ return 'info';
2232
+ case 'warning':
2233
+ return 'warning';
2234
+ case 'error':
2235
+ return 'error';
2236
+ case 'disabled':
2237
+ return 'block';
2238
+ default:
2239
+ return '';
2240
+ }
2241
+ }
2242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StatusButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.0", type: StatusButtonComponent, isStandalone: true, selector: "lib-status-button", inputs: { label: "label", status: "status", leftIcon: "leftIcon", rightIcon: "rightIcon", hideLeftIcon: ["hideLeftIcon", "hideLeftIcon", booleanAttribute], hideRightIcon: ["hideRightIcon", "hideRightIcon", booleanAttribute] }, ngImport: i0, template: "<button\n type=\"button\"\n [className]=\"status\"\n>\n <span *ngIf=\"leftIcon\" class=\"icon material-symbols-outlined\">{{ leftIcon }}</span>\n {{ label }}\n <span *ngIf=\"rightIcon\" class=\"icon material-symbols-outlined\">{{ rightIcon }}</span>\n</button>\n", styles: ["button{align-items:center;background-color:#ecf2f6;border:1px solid #457fa6;border-radius:4px;color:#3e7295;display:inline-flex;flex-shrink:0;font-size:16px;font-weight:400;gap:8px;height:36px;justify-content:center;padding:4px 8px}button .icon{font-size:20px}button:focus{outline:2px solid #b967c7;outline-offset:2px}button:hover{background-color:#a2bfd3;color:#26485f;cursor:pointer}button.success{background-color:#ebf6ee;border:1px solid #3ba35a;color:#1d562e}button.success:hover{background-color:#9dd1ac;color:#1d562e}button.info{background-color:#ecf2f6;border:1px solid #457fa6;color:#3e7295}button.info:hover{background-color:#a2bfd3;color:#26485f}button.warning{background-color:#faf9ec;border:1px solid #d1c844;color:#635f04}button.warning:hover{background-color:#e8e3a1;color:#635f04}button.error{background-color:#f9ecec;border:1px solid #c73e3d;color:#702121}button.error:hover{background-color:#e39e9e;color:#702121}button.disabled{background-color:#e7e7e7;border:1px solid #8f8f8f;color:#767676}button.disabled:hover{background-color:#d0d0d0;color:#141414}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
2244
+ }
2245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StatusButtonComponent, decorators: [{
2246
+ type: Component,
2247
+ args: [{ selector: 'lib-status-button', standalone: true, imports: [CommonModule, NgIf], template: "<button\n type=\"button\"\n [className]=\"status\"\n>\n <span *ngIf=\"leftIcon\" class=\"icon material-symbols-outlined\">{{ leftIcon }}</span>\n {{ label }}\n <span *ngIf=\"rightIcon\" class=\"icon material-symbols-outlined\">{{ rightIcon }}</span>\n</button>\n", styles: ["button{align-items:center;background-color:#ecf2f6;border:1px solid #457fa6;border-radius:4px;color:#3e7295;display:inline-flex;flex-shrink:0;font-size:16px;font-weight:400;gap:8px;height:36px;justify-content:center;padding:4px 8px}button .icon{font-size:20px}button:focus{outline:2px solid #b967c7;outline-offset:2px}button:hover{background-color:#a2bfd3;color:#26485f;cursor:pointer}button.success{background-color:#ebf6ee;border:1px solid #3ba35a;color:#1d562e}button.success:hover{background-color:#9dd1ac;color:#1d562e}button.info{background-color:#ecf2f6;border:1px solid #457fa6;color:#3e7295}button.info:hover{background-color:#a2bfd3;color:#26485f}button.warning{background-color:#faf9ec;border:1px solid #d1c844;color:#635f04}button.warning:hover{background-color:#e8e3a1;color:#635f04}button.error{background-color:#f9ecec;border:1px solid #c73e3d;color:#702121}button.error:hover{background-color:#e39e9e;color:#702121}button.disabled{background-color:#e7e7e7;border:1px solid #8f8f8f;color:#767676}button.disabled:hover{background-color:#d0d0d0;color:#141414}\n"] }]
2248
+ }], propDecorators: { label: [{
2249
+ type: Input,
2250
+ args: [{ required: true }]
2251
+ }], status: [{
2252
+ type: Input
2253
+ }], leftIcon: [{
2254
+ type: Input
2255
+ }], rightIcon: [{
2256
+ type: Input
2257
+ }], hideLeftIcon: [{
2258
+ type: Input,
2259
+ args: [{ transform: booleanAttribute }]
2260
+ }], hideRightIcon: [{
2261
+ type: Input,
2262
+ args: [{ transform: booleanAttribute }]
2263
+ }] } });
2264
+
2175
2265
  /*
2176
2266
  * Public API Surface of components
2177
2267
  */
@@ -2180,5 +2270,5 @@ const isSearchScope = (scope) => searchScopeValues.includes(scope);
2180
2270
  * Generated bundle index. Do not edit.
2181
2271
  */
2182
2272
 
2183
- export { ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_OPTIONS, ADVANCED_SEARCH_QUALIFIER_MAP, HbllFooterComponent, HbllHeaderComponent, HbllItemTypeIconPipe, HeaderWithImpersonationComponent, ImpersonateModalComponent, ImpersonateUserPipe, ImpersonationBannerComponent, LIBRARY_HOURS_API_URL, SsSearchBarComponent, defaultOidcBaseUri, defaultOidcDefaultIdp, getUserStatusFromRoles, isAdvancedSearchExternalFieldOption, isAdvancedSearchFieldOption, isAdvancedSearchLocalFieldOption, isSearchScope };
2273
+ export { ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_OPTIONS, ADVANCED_SEARCH_QUALIFIER_MAP, HbllFooterComponent, HbllHeaderComponent, HbllItemTypeIconPipe, HeaderWithImpersonationComponent, ImpersonateModalComponent, ImpersonateUserPipe, ImpersonationBannerComponent, LIBRARY_HOURS_API_URL, SsSearchBarComponent, StatusButtonComponent, defaultOidcBaseUri, defaultOidcDefaultIdp, getUserStatusFromRoles, isAdvancedSearchExternalFieldOption, isAdvancedSearchFieldOption, isAdvancedSearchLocalFieldOption, isSearchScope };
2184
2274
  //# sourceMappingURL=byuhbll-components.mjs.map