@tekus/design-system 0.0.71 → 0.0.72

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,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@tekus/design-system/components/search-bar" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './search-bar.component';
@@ -0,0 +1,26 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SearchBarComponent {
4
+ inputValue: string;
5
+ isSearchBarExpanded: boolean;
6
+ readonly faXmark: import("@fortawesome/fontawesome-common-types").IconDefinition;
7
+ readonly faMagnifyingGlass: import("@fortawesome/fontawesome-common-types").IconDefinition;
8
+ /**
9
+ * Search bar hint label
10
+ */
11
+ hintLabel: string;
12
+ /**
13
+ * What background color to use
14
+ */
15
+ backgroundColor?: string;
16
+ /**
17
+ * Input changes handler
18
+ */
19
+ inputValueChange: EventEmitter<string>;
20
+ onInputChange(): void;
21
+ onClickClearInput(): void;
22
+ onMouseEnter(): void;
23
+ onMouseLeave(): void;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<SearchBarComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<SearchBarComponent, "lib-tks-search-bar", never, { "hintLabel": { "alias": "hintLabel"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; }, { "inputValueChange": "inputValueChange"; }, never, never, true, never>;
26
+ }
@@ -0,0 +1,2 @@
1
+ export * from './search-bar.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1zeXN0ZW0vY29tcG9uZW50cy9zZWFyY2gtYmFyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWJhci5jb21wb25lbnQnO1xyXG4iXX0=
@@ -0,0 +1,102 @@
1
+ import { FormsModule } from '@angular/forms';
2
+ import { NgClass, NgStyle, NgIf } from '@angular/common';
3
+ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
4
+ import { Input, Output, Component, EventEmitter } from '@angular/core';
5
+ import { faMagnifyingGlass, faXmark } from '@fortawesome/pro-solid-svg-icons';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "@fortawesome/angular-fontawesome";
9
+ export class SearchBarComponent {
10
+ constructor() {
11
+ this.inputValue = '';
12
+ this.isSearchBarExpanded = false;
13
+ this.faXmark = faXmark;
14
+ this.faMagnifyingGlass = faMagnifyingGlass;
15
+ /**
16
+ * Search bar hint label
17
+ */
18
+ this.hintLabel = '';
19
+ /**
20
+ * Input changes handler
21
+ */
22
+ this.inputValueChange = new EventEmitter();
23
+ }
24
+ onInputChange() {
25
+ console.log('Input value has changed');
26
+ this.inputValueChange.emit(this.inputValue);
27
+ }
28
+ onClickClearInput() {
29
+ console.log('Input has been cleared');
30
+ this.inputValue = '';
31
+ this.inputValueChange.emit(this.inputValue);
32
+ }
33
+ onMouseEnter() {
34
+ console.log('Mouse has entered');
35
+ if (this.isSearchBarExpanded === false) {
36
+ this.isSearchBarExpanded = true;
37
+ }
38
+ }
39
+ onMouseLeave() {
40
+ console.log('Mouse has left');
41
+ if (this.inputValue === '') {
42
+ this.isSearchBarExpanded = false;
43
+ }
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SearchBarComponent, isStandalone: true, selector: "lib-tks-search-bar", inputs: { hintLabel: "hintLabel", backgroundColor: "backgroundColor" }, outputs: { inputValueChange: "inputValueChange" }, ngImport: i0, template: `<div
47
+ (mouseenter)="onMouseEnter()"
48
+ (mouseleave)="onMouseLeave()"
49
+ [ngStyle]="{ 'background-color': backgroundColor }"
50
+ [ngClass]="
51
+ isSearchBarExpanded ? 'search__bar search__bar--opened' : 'search__bar'
52
+ "
53
+ >
54
+ <input
55
+ class="search__bar__input"
56
+ type="text"
57
+ [(ngModel)]="inputValue"
58
+ [placeholder]="hintLabel"
59
+ (input)="onInputChange()"
60
+ />
61
+ <fa-icon
62
+ class="search__bar__clear__mark__icon"
63
+ [icon]="faXmark"
64
+ *ngIf="inputValue !== ''"
65
+ (click)="onClickClearInput()"
66
+ ></fa-icon>
67
+ <fa-icon [icon]="faMagnifyingGlass"></fa-icon>
68
+ </div>`, isInline: true, styles: ["*{margin:0;padding:0;box-sizing:border-box}.search__bar{display:flex;cursor:pointer;max-width:15rem;padding:.3rem 0;width:-moz-fit-content;width:fit-content;align-items:center;justify-content:center;background-color:#fff}.search__bar--opened{width:13rem;border-bottom:2px solid black;background-color:#0ff}.search__bar__input{width:0;border:none;outline:none;font-weight:500;background:transparent;transition:all ease-in-out .5s;font-size:clamp(.8rem,.675rem + .333vw,.975rem)}.search__bar__clear__mark__icon{margin:0 .5rem}.search__bar__clear__mark__icon:hover{scale:1.3;transition:all ease-in-out .1s}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchBarComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'lib-tks-search-bar', standalone: true, imports: [NgIf, NgClass, NgStyle, FormsModule, FontAwesomeModule], template: `<div
73
+ (mouseenter)="onMouseEnter()"
74
+ (mouseleave)="onMouseLeave()"
75
+ [ngStyle]="{ 'background-color': backgroundColor }"
76
+ [ngClass]="
77
+ isSearchBarExpanded ? 'search__bar search__bar--opened' : 'search__bar'
78
+ "
79
+ >
80
+ <input
81
+ class="search__bar__input"
82
+ type="text"
83
+ [(ngModel)]="inputValue"
84
+ [placeholder]="hintLabel"
85
+ (input)="onInputChange()"
86
+ />
87
+ <fa-icon
88
+ class="search__bar__clear__mark__icon"
89
+ [icon]="faXmark"
90
+ *ngIf="inputValue !== ''"
91
+ (click)="onClickClearInput()"
92
+ ></fa-icon>
93
+ <fa-icon [icon]="faMagnifyingGlass"></fa-icon>
94
+ </div>`, styles: ["*{margin:0;padding:0;box-sizing:border-box}.search__bar{display:flex;cursor:pointer;max-width:15rem;padding:.3rem 0;width:-moz-fit-content;width:fit-content;align-items:center;justify-content:center;background-color:#fff}.search__bar--opened{width:13rem;border-bottom:2px solid black;background-color:#0ff}.search__bar__input{width:0;border:none;outline:none;font-weight:500;background:transparent;transition:all ease-in-out .5s;font-size:clamp(.8rem,.675rem + .333vw,.975rem)}.search__bar__clear__mark__icon{margin:0 .5rem}.search__bar__clear__mark__icon:hover{scale:1.3;transition:all ease-in-out .1s}\n"] }]
95
+ }], propDecorators: { hintLabel: [{
96
+ type: Input
97
+ }], backgroundColor: [{
98
+ type: Input
99
+ }], inputValueChange: [{
100
+ type: Output
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tc3lzdGVtL2NvbXBvbmVudHMvc2VhcmNoLWJhci9zZWFyY2gtYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUErQjlFLE1BQU0sT0FBTyxrQkFBa0I7SUE3Qi9CO1FBOEJTLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFFdEQ7O1dBRUc7UUFFSCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBUWY7O1dBRUc7UUFFSCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBMEIvQztJQXhCUSxhQUFhO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEtBQUssS0FBSyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzsrR0EvQ1Usa0JBQWtCO21HQUFsQixrQkFBa0IseU1BekJuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQXNCSCx1cUJBdkJHLElBQUksNkZBQUUsT0FBTyxvRkFBRSxPQUFPLDBFQUFFLFdBQVcsOG1CQUFFLGlCQUFpQjs7NEZBMEJyRCxrQkFBa0I7a0JBN0I5QixTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsWUFDdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FzQkg7OEJBYVAsU0FBUztzQkFEUixLQUFLO2dCQU9OLGVBQWU7c0JBRGQsS0FBSztnQkFPTixnQkFBZ0I7c0JBRGYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XHJcbmltcG9ydCB7IElucHV0LCBPdXRwdXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZhTWFnbmlmeWluZ0dsYXNzLCBmYVhtYXJrIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3Byby1zb2xpZC1zdmctaWNvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGtzLXNlYXJjaC1iYXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nSWYsIE5nQ2xhc3MsIE5nU3R5bGUsIEZvcm1zTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZV0sXHJcbiAgdGVtcGxhdGU6IGA8ZGl2XHJcbiAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiXHJcbiAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiXHJcbiAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogYmFja2dyb3VuZENvbG9yIH1cIlxyXG4gICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgIGlzU2VhcmNoQmFyRXhwYW5kZWQgPyAnc2VhcmNoX19iYXIgc2VhcmNoX19iYXItLW9wZW5lZCcgOiAnc2VhcmNoX19iYXInXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cInNlYXJjaF9fYmFyX19pbnB1dFwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImhpbnRMYWJlbFwiXHJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKClcIlxyXG4gICAgLz5cclxuICAgIDxmYS1pY29uXHJcbiAgICAgIGNsYXNzPVwic2VhcmNoX19iYXJfX2NsZWFyX19tYXJrX19pY29uXCJcclxuICAgICAgW2ljb25dPVwiZmFYbWFya1wiXHJcbiAgICAgICpuZ0lmPVwiaW5wdXRWYWx1ZSAhPT0gJydcIlxyXG4gICAgICAoY2xpY2spPVwib25DbGlja0NsZWFySW5wdXQoKVwiXHJcbiAgICA+PC9mYS1pY29uPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiZmFNYWduaWZ5aW5nR2xhc3NcIj48L2ZhLWljb24+XHJcbiAgPC9kaXY+YCxcclxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtYmFyLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaEJhckNvbXBvbmVudCB7XHJcbiAgcHVibGljIGlucHV0VmFsdWUgPSAnJztcclxuICBwdWJsaWMgaXNTZWFyY2hCYXJFeHBhbmRlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZWFkb25seSBmYVhtYXJrID0gZmFYbWFyaztcclxuICBwdWJsaWMgcmVhZG9ubHkgZmFNYWduaWZ5aW5nR2xhc3MgPSBmYU1hZ25pZnlpbmdHbGFzcztcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIGJhciBoaW50IGxhYmVsXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBoaW50TGFiZWwgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogV2hhdCBiYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBjaGFuZ2VzIGhhbmRsZXJcclxuICAgKi9cclxuICBAT3V0cHV0KClcclxuICBpbnB1dFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHB1YmxpYyBvbklucHV0Q2hhbmdlKCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ0lucHV0IHZhbHVlIGhhcyBjaGFuZ2VkJyk7XHJcbiAgICB0aGlzLmlucHV0VmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmlucHV0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xpY2tDbGVhcklucHV0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ0lucHV0IGhhcyBiZWVuIGNsZWFyZWQnKTtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlQ2hhbmdlLmVtaXQodGhpcy5pbnB1dFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnTW91c2UgaGFzIGVudGVyZWQnKTtcclxuICAgIGlmICh0aGlzLmlzU2VhcmNoQmFyRXhwYW5kZWQgPT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hCYXJFeHBhbmRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ01vdXNlIGhhcyBsZWZ0Jyk7XHJcbiAgICBpZiAodGhpcy5pbnB1dFZhbHVlID09PSAnJykge1xyXG4gICAgICB0aGlzLmlzU2VhcmNoQmFyRXhwYW5kZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVrdXMtZGVzaWduLXN5c3RlbS1jb21wb25lbnRzLXNlYXJjaC1iYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tc3lzdGVtL2NvbXBvbmVudHMvc2VhcmNoLWJhci90ZWt1cy1kZXNpZ24tc3lzdGVtLWNvbXBvbmVudHMtc2VhcmNoLWJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,109 @@
1
+ import * as i1 from '@angular/forms';
2
+ import { FormsModule } from '@angular/forms';
3
+ import { NgIf, NgClass, NgStyle } from '@angular/common';
4
+ import * as i2 from '@fortawesome/angular-fontawesome';
5
+ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
6
+ import * as i0 from '@angular/core';
7
+ import { EventEmitter, Component, Input, Output } from '@angular/core';
8
+ import { faXmark, faMagnifyingGlass } from '@fortawesome/pro-solid-svg-icons';
9
+
10
+ class SearchBarComponent {
11
+ constructor() {
12
+ this.inputValue = '';
13
+ this.isSearchBarExpanded = false;
14
+ this.faXmark = faXmark;
15
+ this.faMagnifyingGlass = faMagnifyingGlass;
16
+ /**
17
+ * Search bar hint label
18
+ */
19
+ this.hintLabel = '';
20
+ /**
21
+ * Input changes handler
22
+ */
23
+ this.inputValueChange = new EventEmitter();
24
+ }
25
+ onInputChange() {
26
+ console.log('Input value has changed');
27
+ this.inputValueChange.emit(this.inputValue);
28
+ }
29
+ onClickClearInput() {
30
+ console.log('Input has been cleared');
31
+ this.inputValue = '';
32
+ this.inputValueChange.emit(this.inputValue);
33
+ }
34
+ onMouseEnter() {
35
+ console.log('Mouse has entered');
36
+ if (this.isSearchBarExpanded === false) {
37
+ this.isSearchBarExpanded = true;
38
+ }
39
+ }
40
+ onMouseLeave() {
41
+ console.log('Mouse has left');
42
+ if (this.inputValue === '') {
43
+ this.isSearchBarExpanded = false;
44
+ }
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SearchBarComponent, isStandalone: true, selector: "lib-tks-search-bar", inputs: { hintLabel: "hintLabel", backgroundColor: "backgroundColor" }, outputs: { inputValueChange: "inputValueChange" }, ngImport: i0, template: `<div
48
+ (mouseenter)="onMouseEnter()"
49
+ (mouseleave)="onMouseLeave()"
50
+ [ngStyle]="{ 'background-color': backgroundColor }"
51
+ [ngClass]="
52
+ isSearchBarExpanded ? 'search__bar search__bar--opened' : 'search__bar'
53
+ "
54
+ >
55
+ <input
56
+ class="search__bar__input"
57
+ type="text"
58
+ [(ngModel)]="inputValue"
59
+ [placeholder]="hintLabel"
60
+ (input)="onInputChange()"
61
+ />
62
+ <fa-icon
63
+ class="search__bar__clear__mark__icon"
64
+ [icon]="faXmark"
65
+ *ngIf="inputValue !== ''"
66
+ (click)="onClickClearInput()"
67
+ ></fa-icon>
68
+ <fa-icon [icon]="faMagnifyingGlass"></fa-icon>
69
+ </div>`, isInline: true, styles: ["*{margin:0;padding:0;box-sizing:border-box}.search__bar{display:flex;cursor:pointer;max-width:15rem;padding:.3rem 0;width:-moz-fit-content;width:fit-content;align-items:center;justify-content:center;background-color:#fff}.search__bar--opened{width:13rem;border-bottom:2px solid black;background-color:#0ff}.search__bar__input{width:0;border:none;outline:none;font-weight:500;background:transparent;transition:all ease-in-out .5s;font-size:clamp(.8rem,.675rem + .333vw,.975rem)}.search__bar__clear__mark__icon{margin:0 .5rem}.search__bar__clear__mark__icon:hover{scale:1.3;transition:all ease-in-out .1s}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchBarComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'lib-tks-search-bar', standalone: true, imports: [NgIf, NgClass, NgStyle, FormsModule, FontAwesomeModule], template: `<div
74
+ (mouseenter)="onMouseEnter()"
75
+ (mouseleave)="onMouseLeave()"
76
+ [ngStyle]="{ 'background-color': backgroundColor }"
77
+ [ngClass]="
78
+ isSearchBarExpanded ? 'search__bar search__bar--opened' : 'search__bar'
79
+ "
80
+ >
81
+ <input
82
+ class="search__bar__input"
83
+ type="text"
84
+ [(ngModel)]="inputValue"
85
+ [placeholder]="hintLabel"
86
+ (input)="onInputChange()"
87
+ />
88
+ <fa-icon
89
+ class="search__bar__clear__mark__icon"
90
+ [icon]="faXmark"
91
+ *ngIf="inputValue !== ''"
92
+ (click)="onClickClearInput()"
93
+ ></fa-icon>
94
+ <fa-icon [icon]="faMagnifyingGlass"></fa-icon>
95
+ </div>`, styles: ["*{margin:0;padding:0;box-sizing:border-box}.search__bar{display:flex;cursor:pointer;max-width:15rem;padding:.3rem 0;width:-moz-fit-content;width:fit-content;align-items:center;justify-content:center;background-color:#fff}.search__bar--opened{width:13rem;border-bottom:2px solid black;background-color:#0ff}.search__bar__input{width:0;border:none;outline:none;font-weight:500;background:transparent;transition:all ease-in-out .5s;font-size:clamp(.8rem,.675rem + .333vw,.975rem)}.search__bar__clear__mark__icon{margin:0 .5rem}.search__bar__clear__mark__icon:hover{scale:1.3;transition:all ease-in-out .1s}\n"] }]
96
+ }], propDecorators: { hintLabel: [{
97
+ type: Input
98
+ }], backgroundColor: [{
99
+ type: Input
100
+ }], inputValueChange: [{
101
+ type: Output
102
+ }] } });
103
+
104
+ /**
105
+ * Generated bundle index. Do not edit.
106
+ */
107
+
108
+ export { SearchBarComponent };
109
+ //# sourceMappingURL=tekus-design-system-components-search-bar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tekus-design-system-components-search-bar.mjs","sources":["../../../projects/design-system/components/search-bar/search-bar.component.ts","../../../projects/design-system/components/search-bar/tekus-design-system-components-search-bar.ts"],"sourcesContent":["import { FormsModule } from '@angular/forms';\r\nimport { NgClass, NgStyle, NgIf } from '@angular/common';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { Input, Output, Component, EventEmitter } from '@angular/core';\r\nimport { faMagnifyingGlass, faXmark } from '@fortawesome/pro-solid-svg-icons';\r\n\r\n@Component({\r\n selector: 'lib-tks-search-bar',\r\n standalone: true,\r\n imports: [NgIf, NgClass, NgStyle, FormsModule, FontAwesomeModule],\r\n template: `<div\r\n (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n [ngStyle]=\"{ 'background-color': backgroundColor }\"\r\n [ngClass]=\"\r\n isSearchBarExpanded ? 'search__bar search__bar--opened' : 'search__bar'\r\n \"\r\n >\r\n <input\r\n class=\"search__bar__input\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputValue\"\r\n [placeholder]=\"hintLabel\"\r\n (input)=\"onInputChange()\"\r\n />\r\n <fa-icon\r\n class=\"search__bar__clear__mark__icon\"\r\n [icon]=\"faXmark\"\r\n *ngIf=\"inputValue !== ''\"\r\n (click)=\"onClickClearInput()\"\r\n ></fa-icon>\r\n <fa-icon [icon]=\"faMagnifyingGlass\"></fa-icon>\r\n </div>`,\r\n styleUrls: ['./search-bar.component.css'],\r\n})\r\nexport class SearchBarComponent {\r\n public inputValue = '';\r\n public isSearchBarExpanded = false;\r\n public readonly faXmark = faXmark;\r\n public readonly faMagnifyingGlass = faMagnifyingGlass;\r\n\r\n /**\r\n * Search bar hint label\r\n */\r\n @Input()\r\n hintLabel = '';\r\n\r\n /**\r\n * What background color to use\r\n */\r\n @Input()\r\n backgroundColor?: string;\r\n\r\n /**\r\n * Input changes handler\r\n */\r\n @Output()\r\n inputValueChange = new EventEmitter<string>();\r\n\r\n public onInputChange(): void {\r\n console.log('Input value has changed');\r\n this.inputValueChange.emit(this.inputValue);\r\n }\r\n\r\n public onClickClearInput(): void {\r\n console.log('Input has been cleared');\r\n this.inputValue = '';\r\n this.inputValueChange.emit(this.inputValue);\r\n }\r\n\r\n public onMouseEnter(): void {\r\n console.log('Mouse has entered');\r\n if (this.isSearchBarExpanded === false) {\r\n this.isSearchBarExpanded = true;\r\n }\r\n }\r\n\r\n public onMouseLeave(): void {\r\n console.log('Mouse has left');\r\n if (this.inputValue === '') {\r\n this.isSearchBarExpanded = false;\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekus/design-system",
3
- "version": "0.0.71",
3
+ "version": "0.0.72",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^16.2.0",
6
6
  "@angular/common": "^16.2.0"
@@ -20,6 +20,12 @@
20
20
  "esm2022": "./esm2022/tekus-design-system.mjs",
21
21
  "esm": "./esm2022/tekus-design-system.mjs",
22
22
  "default": "./fesm2022/tekus-design-system.mjs"
23
+ },
24
+ "./components/search-bar": {
25
+ "types": "./components/search-bar/index.d.ts",
26
+ "esm2022": "./esm2022/components/search-bar/tekus-design-system-components-search-bar.mjs",
27
+ "esm": "./esm2022/components/search-bar/tekus-design-system-components-search-bar.mjs",
28
+ "default": "./fesm2022/tekus-design-system-components-search-bar.mjs"
23
29
  }
24
30
  }
25
31
  }