suis 0.6.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -16,6 +16,8 @@ Modern UI component library. Supports Angular in version 16 and uses its latest
16
16
  | Button | SuisButton | button[suisButton] | 0.5.0 |
17
17
  | ButtonOutlined | SuisButtonOutlined | button[suisButtonOutlined] | 0.5.0 |
18
18
  | Icon | SuisIcon | suis-icon | 0.6.0 |
19
+ | Chip | SuisChip | suis-chip | 0.7.0 |
20
+ | InputChips | SuisInputChips | suis-input-chips | 0.8.0 |
19
21
 
20
22
  ## Pipes
21
23
 
@@ -1,2 +1,3 @@
1
1
  export * from './suis-button.base';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jbGFzc2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N1aXMtYnV0dG9uLmJhc2UnO1xuIl19
2
+ export * from './suis-input.base';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jbGFzc2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3Vpcy1idXR0b24uYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3N1aXMtaW5wdXQuYmFzZSc7XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { ChangeDetectorRef, Directive, EventEmitter, Input, Output, inject, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class SuisInputBase {
4
+ constructor() {
5
+ /** @internal */
6
+ this.cdRef = inject(ChangeDetectorRef);
7
+ /**
8
+ * Sets input disabled state. By default set to false.
9
+ */
10
+ this.readonly = false;
11
+ /**
12
+ * Adds invalid styling to the input. By default set to false.
13
+ */
14
+ this.invalid = false;
15
+ /**
16
+ * Emits on value changed.
17
+ */
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ this.changed = new EventEmitter();
20
+ /**
21
+ * Emits on input touched.
22
+ */
23
+ this.touched = new EventEmitter();
24
+ // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
25
+ this._onChange = (value) => { };
26
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
27
+ this._onTouched = () => { };
28
+ }
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+ registerOnChange(fn) {
31
+ this._onChange = fn;
32
+ }
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ registerOnTouched(fn) {
35
+ this._onTouched = fn;
36
+ }
37
+ /** @internal */
38
+ onTouch() {
39
+ this._onTouched();
40
+ this.touched.emit();
41
+ this.cdRef.markForCheck();
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: SuisInputBase, inputs: { readonly: "readonly", invalid: "invalid" }, outputs: { changed: "changed", touched: "touched" }, ngImport: i0 }); }
45
+ }
46
+ export { SuisInputBase };
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputBase, decorators: [{
48
+ type: Directive
49
+ }], propDecorators: { readonly: [{
50
+ type: Input
51
+ }], invalid: [{
52
+ type: Input
53
+ }], changed: [{
54
+ type: Output
55
+ }], touched: [{
56
+ type: Output
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vpcy1pbnB1dC5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zdWlzL3NyYy9saWIvY2xhc3Nlcy9zdWlzLWlucHV0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQUd2QixNQUNzQixhQUFhO0lBRG5DO1FBRUUsZ0JBQWdCO1FBQ0csVUFBSyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXJEOztXQUVHO1FBQ00sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7V0FFRztRQUNNLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbEM7O1dBRUc7UUFDSCw4REFBOEQ7UUFDcEQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFNUM7O1dBRUc7UUFDTyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU3Qyx1SUFBdUk7UUFDdkksY0FBUyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFL0IsZ0VBQWdFO1FBQ2hFLGVBQVUsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7S0FxQnZCO0lBbkJDLDhEQUE4RDtJQUM5RCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBS0QsZ0JBQWdCO0lBQ2hCLE9BQU87UUFDTCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBakRtQixhQUFhO2tHQUFiLGFBQWE7O1NBQWIsYUFBYTsyRkFBYixhQUFhO2tCQURsQyxTQUFTOzhCQVFDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQU1JLE9BQU87c0JBQWhCLE1BQU07Z0JBS0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdWlzSW5wdXRCYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLyoqXG4gICAqIFNldHMgaW5wdXQgZGlzYWJsZWQgc3RhdGUuIEJ5IGRlZmF1bHQgc2V0IHRvIGZhbHNlLlxuICAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQWRkcyBpbnZhbGlkIHN0eWxpbmcgdG8gdGhlIGlucHV0LiBCeSBkZWZhdWx0IHNldCB0byBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRW1pdHMgb24gdmFsdWUgY2hhbmdlZC5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIEBPdXRwdXQoKSBjaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIG9uIGlucHV0IHRvdWNoZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgdG91Y2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgX29uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgX29uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBhYnN0cmFjdCB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZDtcblxuICAvKiogQGludGVybmFsICovXG4gIG9uVG91Y2goKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgdGhpcy50b3VjaGVkLmVtaXQoKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,9 @@
1
1
  export * from './suis-box';
2
2
  export * from './suis-button';
3
+ export * from './suis-chip';
3
4
  export * from './suis-form-field';
4
5
  export * from './suis-icon';
6
+ export * from './suis-input-chips';
5
7
  export * from './suis-input-text';
6
8
  export * from './suis-label';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3Vpcy1ib3gnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N1aXMtYnV0dG9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdWlzLWZvcm0tZmllbGQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N1aXMtaWNvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3Vpcy1pbnB1dC10ZXh0JztcclxuZXhwb3J0ICogZnJvbSAnLi9zdWlzLWxhYmVsJztcclxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdWlzLWJveCc7XG5leHBvcnQgKiBmcm9tICcuL3N1aXMtYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vpcy1jaGlwJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vpcy1mb3JtLWZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vpcy1pY29uJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vpcy1pbnB1dC1jaGlwcyc7XG5leHBvcnQgKiBmcm9tICcuL3N1aXMtaW5wdXQtdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL3N1aXMtbGFiZWwnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './suis-chip.component';
2
+ export * from './suis-chip.types';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL3N1aXMtY2hpcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N1aXMtY2hpcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWlzLWNoaXAudHlwZXMnO1xuIl19
@@ -0,0 +1,48 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SuisIconComponent, SuisIconType } from '../suis-icon';
4
+ import { SuisNgClassPipe } from '../../pipes/suis-ng-class.pipe';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ class SuisChipComponent {
8
+ constructor() {
9
+ /** @internal */
10
+ this.SuisIconType = SuisIconType;
11
+ /**
12
+ * Sets the color pallette of the chip. Type of SuisChipColor. By default set to 'primary'.
13
+ */
14
+ this.color = 'primary';
15
+ /**
16
+ * Sets the color of the cross icon. Visible only if removable set to true. Type of SuisIconColor. By default set to 'white'.
17
+ */
18
+ this.iconColor = 'white';
19
+ /**
20
+ * Shows cross icon with remove action. By default set to false.
21
+ */
22
+ this.removable = false;
23
+ /**
24
+ * Emits on cross icon click.
25
+ */
26
+ this.remove = new EventEmitter();
27
+ }
28
+ /** @internal */
29
+ onRemove() {
30
+ this.remove.emit();
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisChipComponent, isStandalone: true, selector: "suis-chip", inputs: { color: "color", iconColor: "iconColor", removable: "removable" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color\">\n <ng-content></ng-content>\n <button\n *ngIf=\"removable\"\n class=\"suis-chip__remove\"\n type=\"button\"\n (click)=\"onRemove()\"\n >\n <suis-icon\n [color]=\"iconColor\"\n [type]=\"SuisIconType.CROSS\"\n [pointer]=\"true\"\n [size]=\"'lg'\"\n ></suis-icon>\n </button>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-chip{display:flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;border-radius:1rem;font-size:.875rem;padding:.25rem .5rem;color:#fff}.suis-chip__remove{border:none;background-color:transparent}.suis-chip--primary{background-color:#192a56}.suis-chip--secondary{background-color:#273c75}.suis-chip--tertiary{background-color:#dcdde1;color:#2f3640}.suis-chip--complementary{background-color:#f5f6fa;color:#2f3640}.suis-chip--success{background-color:#2ed573}.suis-chip--warning{background-color:#ffa502}.suis-chip--danger{background-color:#ff4757}.suis-chip--gray{background-color:#bcbcbc}.suis-chip--white{background-color:#fff;color:#2f3640}.suis-chip--dark{background-color:#000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ }
35
+ export { SuisChipComponent };
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisChipComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'suis-chip', standalone: true, imports: [CommonModule, SuisIconComponent, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color\">\n <ng-content></ng-content>\n <button\n *ngIf=\"removable\"\n class=\"suis-chip__remove\"\n type=\"button\"\n (click)=\"onRemove()\"\n >\n <suis-icon\n [color]=\"iconColor\"\n [type]=\"SuisIconType.CROSS\"\n [pointer]=\"true\"\n [size]=\"'lg'\"\n ></suis-icon>\n </button>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-chip{display:flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;border-radius:1rem;font-size:.875rem;padding:.25rem .5rem;color:#fff}.suis-chip__remove{border:none;background-color:transparent}.suis-chip--primary{background-color:#192a56}.suis-chip--secondary{background-color:#273c75}.suis-chip--tertiary{background-color:#dcdde1;color:#2f3640}.suis-chip--complementary{background-color:#f5f6fa;color:#2f3640}.suis-chip--success{background-color:#2ed573}.suis-chip--warning{background-color:#ffa502}.suis-chip--danger{background-color:#ff4757}.suis-chip--gray{background-color:#bcbcbc}.suis-chip--white{background-color:#fff;color:#2f3640}.suis-chip--dark{background-color:#000}\n"] }]
39
+ }], propDecorators: { color: [{
40
+ type: Input
41
+ }], iconColor: [{
42
+ type: Input
43
+ }], removable: [{
44
+ type: Input
45
+ }], remove: [{
46
+ type: Output
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vpcy1jaGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3Vpcy9zcmMvbGliL2NvbXBvbmVudHMvc3Vpcy1jaGlwL3N1aXMtY2hpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL3N1aXMtY2hpcC9zdWlzLWNoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBRWpFLE1BUWEsaUJBQWlCO0lBUjlCO1FBU0UsZ0JBQWdCO1FBQ1AsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFFckM7O1dBRUc7UUFDTSxVQUFLLEdBQWtCLFNBQVMsQ0FBQztRQUUxQzs7V0FFRztRQUNNLGNBQVMsR0FBa0IsT0FBTyxDQUFDO1FBRTVDOztXQUVHO1FBQ00sY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVwQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBTTdDO0lBSkMsZ0JBQWdCO0lBQ2hCLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBM0JVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGdMQ3BCOUIsZ1pBZ0JBLHd6QkREWSxZQUFZLGlPQUFFLGlCQUFpQixxSEFBRSxlQUFlOztTQUsvQyxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxtQkFHMUMsdUJBQXVCLENBQUMsTUFBTTs4QkFTdEMsS0FBSztzQkFBYixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFN1aXNJY29uQ29sb3IsIFN1aXNJY29uQ29tcG9uZW50LCBTdWlzSWNvblR5cGUgfSBmcm9tICcuLi9zdWlzLWljb24nO1xuaW1wb3J0IHsgU3Vpc0NoaXBDb2xvciB9IGZyb20gJy4vc3Vpcy1jaGlwLnR5cGVzJztcbmltcG9ydCB7IFN1aXNOZ0NsYXNzUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3N1aXMtbmctY2xhc3MucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N1aXMtY2hpcCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFN1aXNJY29uQ29tcG9uZW50LCBTdWlzTmdDbGFzc1BpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Vpcy1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Vpcy1jaGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTdWlzQ2hpcENvbXBvbmVudCB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcmVhZG9ubHkgU3Vpc0ljb25UeXBlID0gU3Vpc0ljb25UeXBlO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb2xvciBwYWxsZXR0ZSBvZiB0aGUgY2hpcC4gVHlwZSBvZiBTdWlzQ2hpcENvbG9yLiBCeSBkZWZhdWx0IHNldCB0byAncHJpbWFyeScuXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcjogU3Vpc0NoaXBDb2xvciA9ICdwcmltYXJ5JztcblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sb3Igb2YgdGhlIGNyb3NzIGljb24uIFZpc2libGUgb25seSBpZiByZW1vdmFibGUgc2V0IHRvIHRydWUuIFR5cGUgb2YgU3Vpc0ljb25Db2xvci4gQnkgZGVmYXVsdCBzZXQgdG8gJ3doaXRlJy5cbiAgICovXG4gIEBJbnB1dCgpIGljb25Db2xvcjogU3Vpc0ljb25Db2xvciA9ICd3aGl0ZSc7XG5cbiAgLyoqXG4gICAqIFNob3dzIGNyb3NzIGljb24gd2l0aCByZW1vdmUgYWN0aW9uLiBCeSBkZWZhdWx0IHNldCB0byBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpIHJlbW92YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBvbiBjcm9zcyBpY29uIGNsaWNrLlxuICAgKi9cbiAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQGludGVybmFsICovXG4gIG9uUmVtb3ZlKCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInN1aXMtY2hpcFwiIFtuZ0NsYXNzXT1cIidzdWlzLWNoaXAnIHwgc3Vpc05nQ2xhc3MgOiBjb2xvclwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cInJlbW92YWJsZVwiXG4gICAgY2xhc3M9XCJzdWlzLWNoaXBfX3JlbW92ZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cIm9uUmVtb3ZlKClcIlxuICA+XG4gICAgPHN1aXMtaWNvblxuICAgICAgW2NvbG9yXT1cImljb25Db2xvclwiXG4gICAgICBbdHlwZV09XCJTdWlzSWNvblR5cGUuQ1JPU1NcIlxuICAgICAgW3BvaW50ZXJdPVwidHJ1ZVwiXG4gICAgICBbc2l6ZV09XCInbGcnXCJcbiAgICA+PC9zdWlzLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vpcy1jaGlwLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zdWlzL3NyYy9saWIvY29tcG9uZW50cy9zdWlzLWNoaXAvc3Vpcy1jaGlwLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWlzQ29sb3IgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFN1aXNDaGlwQ29sb3IgPSBTdWlzQ29sb3IgfCAnZ3JheScgfCAnZGFyaycgfCAnd2hpdGUnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './suis-input-chips.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL3N1aXMtaW5wdXQtY2hpcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3Vpcy1pbnB1dC1jaGlwcy5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,92 @@
1
+ import { ChangeDetectionStrategy, Component, ElementRef, HostListener, Input, ViewChild, forwardRef, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
4
+ import { SuisChipComponent } from '../suis-chip';
5
+ import { SuisInputTextComponent } from '../suis-input-text';
6
+ import { SuisInputBase } from '../../classes/suis-input.base';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
10
+ class SuisInputChipsComponent extends SuisInputBase {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * Placeholder text displayed in input. By default set to empty string.
15
+ */
16
+ this.placeholder = '';
17
+ /**
18
+ * Sets the color pallette of the chips. Type of SuisChipColor. By default set to 'primary'.
19
+ */
20
+ this.chipColor = 'primary';
21
+ /**
22
+ * Sets the color of the chips' cross icon. Type of SuisIconColor. By default set to 'white'.
23
+ */
24
+ this.chipIconColor = 'white';
25
+ /** @internal */
26
+ this.value = [];
27
+ /** @internal */
28
+ this.inputControl = new FormControl('', { nonNullable: true });
29
+ }
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ writeValue(obj) {
32
+ this.value = obj || [];
33
+ this._onChange(this.value);
34
+ this.cdRef.markForCheck();
35
+ }
36
+ addItem(value) {
37
+ const values = value.split(',').filter((v) => !!v);
38
+ this.value = this.value.concat(values);
39
+ this._onChange(this.value);
40
+ this.changed.emit(this.value);
41
+ this.cdRef.markForCheck();
42
+ }
43
+ removeItem(value) {
44
+ this.value = this.value.filter((v) => v !== value);
45
+ }
46
+ submitValue() {
47
+ const inputValue = this.inputControl.value;
48
+ this.inputControl.reset();
49
+ this.addItem(inputValue);
50
+ }
51
+ onDocumentClick(event) {
52
+ if (!this.inputEl?.nativeElement.contains(event.target))
53
+ this.submitValue();
54
+ }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputChipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisInputChipsComponent, isStandalone: true, selector: "suis-input-chips", inputs: { placeholder: "placeholder", chipColor: "chipColor", chipIconColor: "chipIconColor" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, providers: [
57
+ {
58
+ provide: NG_VALUE_ACCESSOR,
59
+ multi: true,
60
+ useExisting: forwardRef(() => SuisInputChipsComponent),
61
+ },
62
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-input-chips\">\n <div #input class=\"suis-input-chips__input\">\n <suis-input-text\n [formControl]=\"inputControl\"\n [readonly]=\"readonly\"\n [invalid]=\"invalid\"\n [placeholder]=\"placeholder\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input-text>\n </div>\n <div *ngIf=\"value.length\" class=\"suis-input-chips__chips\">\n <suis-chip\n [removable]=\"readonly ? false : true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"removeItem(item)\"\n *ngFor=\"let item of value\"\n >\n {{ item }}\n </suis-chip>\n </div>\n</div>\n", styles: [".suis-input-chips__chips{margin-top:.375rem;display:flex;flex-wrap:wrap}.suis-input-chips__chips suis-chip:not(:last-child){margin-right:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SuisChipComponent, selector: "suis-chip", inputs: ["color", "iconColor", "removable"], outputs: ["remove"] }, { kind: "component", type: SuisInputTextComponent, selector: "suis-input-text", inputs: ["type", "placeholder"], outputs: ["enterPressed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
+ }
64
+ export { SuisInputChipsComponent };
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputChipsComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'suis-input-chips', standalone: true, imports: [
68
+ CommonModule,
69
+ ReactiveFormsModule,
70
+ SuisChipComponent,
71
+ SuisInputTextComponent,
72
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
73
+ {
74
+ provide: NG_VALUE_ACCESSOR,
75
+ multi: true,
76
+ useExisting: forwardRef(() => SuisInputChipsComponent),
77
+ },
78
+ ], template: "<div class=\"suis-input-chips\">\n <div #input class=\"suis-input-chips__input\">\n <suis-input-text\n [formControl]=\"inputControl\"\n [readonly]=\"readonly\"\n [invalid]=\"invalid\"\n [placeholder]=\"placeholder\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input-text>\n </div>\n <div *ngIf=\"value.length\" class=\"suis-input-chips__chips\">\n <suis-chip\n [removable]=\"readonly ? false : true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"removeItem(item)\"\n *ngFor=\"let item of value\"\n >\n {{ item }}\n </suis-chip>\n </div>\n</div>\n", styles: [".suis-input-chips__chips{margin-top:.375rem;display:flex;flex-wrap:wrap}.suis-input-chips__chips suis-chip:not(:last-child){margin-right:.25rem}\n"] }]
79
+ }], propDecorators: { inputEl: [{
80
+ type: ViewChild,
81
+ args: ['input']
82
+ }], placeholder: [{
83
+ type: Input
84
+ }], chipColor: [{
85
+ type: Input
86
+ }], chipIconColor: [{
87
+ type: Input
88
+ }], onDocumentClick: [{
89
+ type: HostListener,
90
+ args: ['document:click', ['$event']]
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vpcy1pbnB1dC1jaGlwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL3N1aXMtaW5wdXQtY2hpcHMvc3Vpcy1pbnB1dC1jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL3N1aXMtaW5wdXQtY2hpcHMvc3Vpcy1pbnB1dC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUc5RCxNQW9CYSx1QkFBd0IsU0FBUSxhQUFhO0lBcEIxRDs7UUF3QkU7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUVsQzs7V0FFRztRQUNNLGNBQVMsR0FBa0IsU0FBUyxDQUFDO1FBRTlDOztXQUVHO1FBQ00sa0JBQWEsR0FBa0IsT0FBTyxDQUFDO1FBRWhELGdCQUFnQjtRQUNoQixVQUFLLEdBQWEsRUFBRSxDQUFDO1FBRXJCLGdCQUFnQjtRQUNoQixpQkFBWSxHQUFHLElBQUksV0FBVyxDQUFTLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBK0JuRTtJQTdCQyw4REFBOEQ7SUFDOUQsVUFBVSxDQUFDLEdBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFhO1FBQ25CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFHRCxlQUFlLENBQUMsS0FBWTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUUsQ0FBQzs4R0FyRFUsdUJBQXVCO2tHQUF2Qix1QkFBdUIscU9BUnZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzthQUN2RDtTQUNGLG1KQ3RDSCxzcUJBdUJBLDJNRENJLFlBQVksK1BBQ1osbUJBQW1CLDBUQUNuQixpQkFBaUIsd0hBQ2pCLHNCQUFzQjs7U0FhYix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFwQm5DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixzQkFBc0I7cUJBQ3ZCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDO3lCQUN2RDtxQkFDRjs4QkFJbUIsT0FBTztzQkFBMUIsU0FBUzt1QkFBQyxPQUFPO2dCQUtULFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQWtDTixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEZvcm1Db250cm9sLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vpc0NoaXBDb2xvciwgU3Vpc0NoaXBDb21wb25lbnQgfSBmcm9tICcuLi9zdWlzLWNoaXAnO1xuaW1wb3J0IHsgU3Vpc0lucHV0VGV4dENvbXBvbmVudCB9IGZyb20gJy4uL3N1aXMtaW5wdXQtdGV4dCc7XG5pbXBvcnQgeyBTdWlzSW5wdXRCYXNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9zdWlzLWlucHV0LmJhc2UnO1xuaW1wb3J0IHsgU3Vpc0ljb25Db2xvciB9IGZyb20gJy4uL3N1aXMtaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N1aXMtaW5wdXQtY2hpcHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3Vpc0NoaXBDb21wb25lbnQsXG4gICAgU3Vpc0lucHV0VGV4dENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1aXMtaW5wdXQtY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdWlzLWlucHV0LWNoaXBzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3Vpc0lucHV0Q2hpcHNDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN1aXNJbnB1dENoaXBzQ29tcG9uZW50IGV4dGVuZHMgU3Vpc0lucHV0QmFzZSB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dEVsPzogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogUGxhY2Vob2xkZXIgdGV4dCBkaXNwbGF5ZWQgaW4gaW5wdXQuIEJ5IGRlZmF1bHQgc2V0IHRvIGVtcHR5IHN0cmluZy5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sb3IgcGFsbGV0dGUgb2YgdGhlIGNoaXBzLiBUeXBlIG9mIFN1aXNDaGlwQ29sb3IuIEJ5IGRlZmF1bHQgc2V0IHRvICdwcmltYXJ5Jy5cbiAgICovXG4gIEBJbnB1dCgpIGNoaXBDb2xvcjogU3Vpc0NoaXBDb2xvciA9ICdwcmltYXJ5JztcblxuICAvKipcbiAgICogU2V0cyB0aGUgY29sb3Igb2YgdGhlIGNoaXBzJyBjcm9zcyBpY29uLiBUeXBlIG9mIFN1aXNJY29uQ29sb3IuIEJ5IGRlZmF1bHQgc2V0IHRvICd3aGl0ZScuXG4gICAqL1xuICBASW5wdXQoKSBjaGlwSWNvbkNvbG9yOiBTdWlzSWNvbkNvbG9yID0gJ3doaXRlJztcblxuICAvKiogQGludGVybmFsICovXG4gIHZhbHVlOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG9iaiB8fCBbXTtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYWRkSXRlbSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWUuc3BsaXQoJywnKS5maWx0ZXIoKHYpID0+ICEhdik7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuY29uY2F0KHZhbHVlcyk7XG4gICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0odmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcigodikgPT4gdiAhPT0gdmFsdWUpO1xuICB9XG5cbiAgc3VibWl0VmFsdWUoKSB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9IHRoaXMuaW5wdXRDb250cm9sLnZhbHVlO1xuICAgIHRoaXMuaW5wdXRDb250cm9sLnJlc2V0KCk7XG4gICAgdGhpcy5hZGRJdGVtKGlucHV0VmFsdWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlucHV0RWw/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgdGhpcy5zdWJtaXRWYWx1ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3Vpcy1pbnB1dC1jaGlwc1wiPlxuICA8ZGl2ICNpbnB1dCBjbGFzcz1cInN1aXMtaW5wdXQtY2hpcHNfX2lucHV0XCI+XG4gICAgPHN1aXMtaW5wdXQtdGV4dFxuICAgICAgW2Zvcm1Db250cm9sXT1cImlucHV0Q29udHJvbFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2ludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgKHRvdWNoZWQpPVwib25Ub3VjaCgpXCJcbiAgICAgIChlbnRlclByZXNzZWQpPVwic3VibWl0VmFsdWUoKVwiXG4gICAgPjwvc3Vpcy1pbnB1dC10ZXh0PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInZhbHVlLmxlbmd0aFwiIGNsYXNzPVwic3Vpcy1pbnB1dC1jaGlwc19fY2hpcHNcIj5cbiAgICA8c3Vpcy1jaGlwXG4gICAgICBbcmVtb3ZhYmxlXT1cInJlYWRvbmx5ID8gZmFsc2UgOiB0cnVlXCJcbiAgICAgIFtjb2xvcl09XCJjaGlwQ29sb3JcIlxuICAgICAgW2ljb25Db2xvcl09XCJjaGlwSWNvbkNvbG9yXCJcbiAgICAgIChyZW1vdmUpPVwicmVtb3ZlSXRlbShpdGVtKVwiXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZVwiXG4gICAgPlxuICAgICAge3sgaXRlbSB9fVxuICAgIDwvc3Vpcy1jaGlwPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,10 +1,11 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, forwardRef, inject, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { SuisInputBase } from '../../classes/suis-input.base';
4
5
  import * as i0 from "@angular/core";
5
- class SuisInputTextComponent {
6
+ class SuisInputTextComponent extends SuisInputBase {
6
7
  constructor() {
7
- this.cdRef = inject(ChangeDetectorRef);
8
+ super(...arguments);
8
9
  /**
9
10
  * Sets input's type to one of the accepted values - 'text' or 'password'. By default set to 'text'.
10
11
  */
@@ -14,29 +15,11 @@ class SuisInputTextComponent {
14
15
  */
15
16
  this.placeholder = '';
16
17
  /**
17
- * Sets input disabled state. By default set to false.
18
+ * Emits on keydown enter input event.
18
19
  */
19
- this.readonly = false;
20
- /**
21
- * Adds invalid styling to the input. By default set to false.
22
- */
23
- this.invalid = false;
20
+ this.enterPressed = new EventEmitter();
24
21
  /** @internal */
25
22
  this.value = '';
26
- // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars
27
- this._onChange = (value) => { };
28
- // eslint-disable-next-line @typescript-eslint/no-empty-function
29
- this._onTouched = () => { };
30
- }
31
- onChange(event) {
32
- const target = event.target;
33
- this.value = target.value;
34
- this._onChange(this.value);
35
- this.cdRef.markForCheck();
36
- }
37
- onTouch() {
38
- this._onTouched();
39
- this.cdRef.markForCheck();
40
23
  }
41
24
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
25
  writeValue(obj) {
@@ -44,22 +27,24 @@ class SuisInputTextComponent {
44
27
  this._onChange(this.value);
45
28
  this.cdRef.markForCheck();
46
29
  }
47
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
- registerOnChange(fn) {
49
- this._onChange = fn;
30
+ onChange(event) {
31
+ const target = event.target;
32
+ this.value = target.value;
33
+ this._onChange(this.value);
34
+ this.changed.emit(this.value);
35
+ this.cdRef.markForCheck();
50
36
  }
51
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
- registerOnTouched(fn) {
53
- this._onTouched = fn;
37
+ onEnter() {
38
+ this.enterPressed.emit();
54
39
  }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisInputTextComponent, isStandalone: true, selector: "suis-input-text", inputs: { type: "type", placeholder: "placeholder", readonly: "readonly", invalid: "invalid" }, providers: [
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisInputTextComponent, isStandalone: true, selector: "suis-input-text", inputs: { type: "type", placeholder: "placeholder" }, outputs: { enterPressed: "enterPressed" }, providers: [
57
42
  {
58
43
  provide: NG_VALUE_ACCESSOR,
59
44
  multi: true,
60
45
  useExisting: forwardRef(() => SuisInputTextComponent),
61
46
  },
62
- ], ngImport: i0, template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-input{background-color:#fff;box-shadow:0 2px 5px #00000080;border-radius:.25rem;padding:.5rem 1rem;border:0;width:100%}.suis-input:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
+ ], usesInheritance: true, ngImport: i0, template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-input{background-color:#fff;box-shadow:0 2px 5px #00000080;border-radius:.25rem;padding:.5rem 1rem;border:0;width:100%}.suis-input:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
48
  }
64
49
  export { SuisInputTextComponent };
65
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputTextComponent, decorators: [{
@@ -70,14 +55,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
70
55
  multi: true,
71
56
  useExisting: forwardRef(() => SuisInputTextComponent),
72
57
  },
73
- ], template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-input{background-color:#fff;box-shadow:0 2px 5px #00000080;border-radius:.25rem;padding:.5rem 1rem;border:0;width:100%}.suis-input:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{box-shadow:0 2px 5px #ff4757bf}\n"] }]
58
+ ], template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-input{background-color:#fff;box-shadow:0 2px 5px #00000080;border-radius:.25rem;padding:.5rem 1rem;border:0;width:100%}.suis-input:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{box-shadow:0 2px 5px #ff4757bf}\n"] }]
74
59
  }], propDecorators: { type: [{
75
60
  type: Input
76
61
  }], placeholder: [{
77
62
  type: Input
78
- }], readonly: [{
79
- type: Input
80
- }], invalid: [{
81
- type: Input
63
+ }], enterPressed: [{
64
+ type: Output
82
65
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vpcy1pbnB1dC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3Vpcy9zcmMvbGliL2NvbXBvbmVudHMvc3Vpcy1pbnB1dC10ZXh0L3N1aXMtaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL3N1aXMtaW5wdXQtdGV4dC9zdWlzLWlucHV0LXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBQ1YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3pFLE1BZWEsc0JBQXNCO0lBZm5DO1FBZ0JtQixVQUFLLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbkQ7O1dBRUc7UUFDTSxTQUFJLEdBQXNCLE1BQU0sQ0FBQztRQUUxQzs7V0FFRztRQUNNLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRWxDOztXQUVHO1FBQ00sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7V0FFRztRQUNNLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbEMsZ0JBQWdCO1FBQ2hCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFbkIsbUdBQW1HO1FBQ25HLGNBQVMsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2xDLGdFQUFnRTtRQUNoRSxlQUFVLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBOEJ2QjtJQTVCQyxRQUFRLENBQUMsS0FBWTtRQUNuQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsOERBQThEO0lBQzlELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OEdBMURVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDhKQVJ0QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDdEQ7U0FDRiwwQkN6QkgsOE9BVUEscVZES1ksWUFBWTs7U0FZWCxzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFmbEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzt5QkFDdEQ7cUJBQ0Y7OEJBUVEsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vpc0lucHV0VGV4dFR5cGUgfSBmcm9tICcuL3N1aXMtaW5wdXQtdGV4dC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N1aXMtaW5wdXQtdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Vpcy1pbnB1dC10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Vpcy1pbnB1dC10ZXh0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3Vpc0lucHV0VGV4dENvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3Vpc0lucHV0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLyoqXG4gICAqIFNldHMgaW5wdXQncyB0eXBlIHRvIG9uZSBvZiB0aGUgYWNjZXB0ZWQgdmFsdWVzIC0gJ3RleHQnIG9yICdwYXNzd29yZCcuIEJ5IGRlZmF1bHQgc2V0IHRvICd0ZXh0Jy5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IFN1aXNJbnB1dFRleHRUeXBlID0gJ3RleHQnO1xuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlciB0ZXh0IGRpc3BsYXllZCBpbiBpbnB1dC4gQnkgZGVmYXVsdCBzZXQgdG8gZW1wdHkgc3RyaW5nLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBTZXRzIGlucHV0IGRpc2FibGVkIHN0YXRlLiBCeSBkZWZhdWx0IHNldCB0byBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFkZHMgaW52YWxpZCBzdHlsaW5nIHRvIHRoZSBpbnB1dC4gQnkgZGVmYXVsdCBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBASW5wdXQoKSBpbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICB2YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiwgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9vbkNoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBfb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy52YWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Ub3VjaCgpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cbn1cbiIsIjxpbnB1dFxuICBjbGFzcz1cInN1aXMtaW5wdXRcIlxuICBbY2xhc3Muc3Vpcy1pbnB1dC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgW3R5cGVdPVwidHlwZVwiXG4gIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gIChpbnB1dCk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgKGZvY3VzKT1cIm9uVG91Y2goKVwiXG4vPlxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vpcy1pbnB1dC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3Vpcy9zcmMvbGliL2NvbXBvbmVudHMvc3Vpcy1pbnB1dC10ZXh0L3N1aXMtaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL3N1aXMtaW5wdXQtdGV4dC9zdWlzLWlucHV0LXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRTlELE1BZWEsc0JBQXVCLFNBQVEsYUFBYTtJQWZ6RDs7UUFnQkU7O1dBRUc7UUFDTSxTQUFJLEdBQXNCLE1BQU0sQ0FBQztRQUUxQzs7V0FFRztRQUNNLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRWxDOztXQUVHO1FBQ08saUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxELGdCQUFnQjtRQUNoQixVQUFLLEdBQVcsRUFBRSxDQUFDO0tBb0JwQjtJQWxCQyw4REFBOEQ7SUFDOUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQXBDVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwrSkFSdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3REO1NBQ0YsaURDMUJILCtRQVdBLHFWREtZLFlBQVk7O1NBWVgsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBZmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7eUJBQ3REO3FCQUNGOzhCQU1RLElBQUk7c0JBQVosS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vpc0lucHV0VGV4dFR5cGUgfSBmcm9tICcuL3N1aXMtaW5wdXQtdGV4dC50eXBlcyc7XG5pbXBvcnQgeyBTdWlzSW5wdXRCYXNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9zdWlzLWlucHV0LmJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdWlzLWlucHV0LXRleHQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1aXMtaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1aXMtaW5wdXQtdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN1aXNJbnB1dFRleHRDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN1aXNJbnB1dFRleHRDb21wb25lbnQgZXh0ZW5kcyBTdWlzSW5wdXRCYXNlIHtcbiAgLyoqXG4gICAqIFNldHMgaW5wdXQncyB0eXBlIHRvIG9uZSBvZiB0aGUgYWNjZXB0ZWQgdmFsdWVzIC0gJ3RleHQnIG9yICdwYXNzd29yZCcuIEJ5IGRlZmF1bHQgc2V0IHRvICd0ZXh0Jy5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IFN1aXNJbnB1dFRleHRUeXBlID0gJ3RleHQnO1xuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlciB0ZXh0IGRpc3BsYXllZCBpbiBpbnB1dC4gQnkgZGVmYXVsdCBzZXQgdG8gZW1wdHkgc3RyaW5nLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBvbiBrZXlkb3duIGVudGVyIGlucHV0IGV2ZW50LlxuICAgKi9cbiAgQE91dHB1dCgpIGVudGVyUHJlc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQGludGVybmFsICovXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICB3cml0ZVZhbHVlKG9iajogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG9iajtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy52YWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25FbnRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmVudGVyUHJlc3NlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxpbnB1dFxuICBjbGFzcz1cInN1aXMtaW5wdXRcIlxuICBbY2xhc3Muc3Vpcy1pbnB1dC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgW3R5cGVdPVwidHlwZVwiXG4gIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gIChpbnB1dCk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgKGZvY3VzKT1cIm9uVG91Y2goKVwiXG4gIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIoKVwiXG4vPlxuIl19
package/fesm2022/suis.mjs CHANGED
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, Input, inject, ElementRef, Renderer2, Directive, ViewEncapsulation, HostListener, Pipe, ChangeDetectorRef, forwardRef } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, Input, inject, ElementRef, Renderer2, Directive, ChangeDetectorRef, EventEmitter, Output, ViewEncapsulation, HostListener, Pipe, forwardRef, ViewChild } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import * as i2 from '@angular/forms';
6
+ import { NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule } from '@angular/forms';
6
7
 
7
8
  class SuisBoxComponent {
8
9
  constructor() {
@@ -53,6 +54,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
53
54
  type: Input
54
55
  }] } });
55
56
 
57
+ class SuisInputBase {
58
+ constructor() {
59
+ /** @internal */
60
+ this.cdRef = inject(ChangeDetectorRef);
61
+ /**
62
+ * Sets input disabled state. By default set to false.
63
+ */
64
+ this.readonly = false;
65
+ /**
66
+ * Adds invalid styling to the input. By default set to false.
67
+ */
68
+ this.invalid = false;
69
+ /**
70
+ * Emits on value changed.
71
+ */
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ this.changed = new EventEmitter();
74
+ /**
75
+ * Emits on input touched.
76
+ */
77
+ this.touched = new EventEmitter();
78
+ // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
79
+ this._onChange = (value) => { };
80
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
81
+ this._onTouched = () => { };
82
+ }
83
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
+ registerOnChange(fn) {
85
+ this._onChange = fn;
86
+ }
87
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
+ registerOnTouched(fn) {
89
+ this._onTouched = fn;
90
+ }
91
+ /** @internal */
92
+ onTouch() {
93
+ this._onTouched();
94
+ this.touched.emit();
95
+ this.cdRef.markForCheck();
96
+ }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
98
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: SuisInputBase, inputs: { readonly: "readonly", invalid: "invalid" }, outputs: { changed: "changed", touched: "touched" }, ngImport: i0 }); }
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputBase, decorators: [{
101
+ type: Directive
102
+ }], propDecorators: { readonly: [{
103
+ type: Input
104
+ }], invalid: [{
105
+ type: Input
106
+ }], changed: [{
107
+ type: Output
108
+ }], touched: [{
109
+ type: Output
110
+ }] } });
111
+
56
112
  class SuisButtonComponent extends SuisButtonBase {
57
113
  ngAfterViewInit() {
58
114
  this.renderer2.addClass(this.elementRef.nativeElement, 'suis-button');
@@ -107,25 +163,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
107
163
  args: ['click']
108
164
  }] } });
109
165
 
110
- class SuisFormFieldComponent {
111
- constructor() {
112
- /**
113
- * Adds a bottom margin below the field. By default set to false.
114
- */
115
- this.spacing = false;
116
- }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisFormFieldComponent, isStandalone: true, selector: "suis-form-field", inputs: { errorTemplate: "errorTemplate", spacing: "spacing" }, ngImport: i0, template: "<div class=\"suis-form-field\" [class.suis-form-field--spacing]=\"spacing\">\n <ng-content></ng-content>\n <div *ngIf=\"errorTemplate\" class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate\"></ng-container>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-form-field{width:100%}.suis-form-field__error{color:#ff4757;margin-top:.25rem;font-size:.75rem}.suis-form-field--spacing{margin-bottom:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
- }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisFormFieldComponent, decorators: [{
121
- type: Component,
122
- args: [{ selector: 'suis-form-field', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-form-field\" [class.suis-form-field--spacing]=\"spacing\">\n <ng-content></ng-content>\n <div *ngIf=\"errorTemplate\" class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate\"></ng-container>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-form-field{width:100%}.suis-form-field__error{color:#ff4757;margin-top:.25rem;font-size:.75rem}.suis-form-field--spacing{margin-bottom:.75rem}\n"] }]
123
- }], propDecorators: { errorTemplate: [{
124
- type: Input
125
- }], spacing: [{
126
- type: Input
127
- }] } });
128
-
129
166
  var SuisIconType;
130
167
  (function (SuisIconType) {
131
168
  SuisIconType["INFO"] = "info";
@@ -242,9 +279,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
242
279
  type: Input
243
280
  }] } });
244
281
 
245
- class SuisInputTextComponent {
282
+ class SuisChipComponent {
246
283
  constructor() {
247
- this.cdRef = inject(ChangeDetectorRef);
284
+ /** @internal */
285
+ this.SuisIconType = SuisIconType;
286
+ /**
287
+ * Sets the color pallette of the chip. Type of SuisChipColor. By default set to 'primary'.
288
+ */
289
+ this.color = 'primary';
290
+ /**
291
+ * Sets the color of the cross icon. Visible only if removable set to true. Type of SuisIconColor. By default set to 'white'.
292
+ */
293
+ this.iconColor = 'white';
294
+ /**
295
+ * Shows cross icon with remove action. By default set to false.
296
+ */
297
+ this.removable = false;
298
+ /**
299
+ * Emits on cross icon click.
300
+ */
301
+ this.remove = new EventEmitter();
302
+ }
303
+ /** @internal */
304
+ onRemove() {
305
+ this.remove.emit();
306
+ }
307
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
308
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisChipComponent, isStandalone: true, selector: "suis-chip", inputs: { color: "color", iconColor: "iconColor", removable: "removable" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color\">\n <ng-content></ng-content>\n <button\n *ngIf=\"removable\"\n class=\"suis-chip__remove\"\n type=\"button\"\n (click)=\"onRemove()\"\n >\n <suis-icon\n [color]=\"iconColor\"\n [type]=\"SuisIconType.CROSS\"\n [pointer]=\"true\"\n [size]=\"'lg'\"\n ></suis-icon>\n </button>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-chip{display:flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;border-radius:1rem;font-size:.875rem;padding:.25rem .5rem;color:#fff}.suis-chip__remove{border:none;background-color:transparent}.suis-chip--primary{background-color:#192a56}.suis-chip--secondary{background-color:#273c75}.suis-chip--tertiary{background-color:#dcdde1;color:#2f3640}.suis-chip--complementary{background-color:#f5f6fa;color:#2f3640}.suis-chip--success{background-color:#2ed573}.suis-chip--warning{background-color:#ffa502}.suis-chip--danger{background-color:#ff4757}.suis-chip--gray{background-color:#bcbcbc}.suis-chip--white{background-color:#fff;color:#2f3640}.suis-chip--dark{background-color:#000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer"] }, { kind: "pipe", type: SuisNgClassPipe, name: "suisNgClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
309
+ }
310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisChipComponent, decorators: [{
311
+ type: Component,
312
+ args: [{ selector: 'suis-chip', standalone: true, imports: [CommonModule, SuisIconComponent, SuisNgClassPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color\">\n <ng-content></ng-content>\n <button\n *ngIf=\"removable\"\n class=\"suis-chip__remove\"\n type=\"button\"\n (click)=\"onRemove()\"\n >\n <suis-icon\n [color]=\"iconColor\"\n [type]=\"SuisIconType.CROSS\"\n [pointer]=\"true\"\n [size]=\"'lg'\"\n ></suis-icon>\n </button>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-chip{display:flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;border-radius:1rem;font-size:.875rem;padding:.25rem .5rem;color:#fff}.suis-chip__remove{border:none;background-color:transparent}.suis-chip--primary{background-color:#192a56}.suis-chip--secondary{background-color:#273c75}.suis-chip--tertiary{background-color:#dcdde1;color:#2f3640}.suis-chip--complementary{background-color:#f5f6fa;color:#2f3640}.suis-chip--success{background-color:#2ed573}.suis-chip--warning{background-color:#ffa502}.suis-chip--danger{background-color:#ff4757}.suis-chip--gray{background-color:#bcbcbc}.suis-chip--white{background-color:#fff;color:#2f3640}.suis-chip--dark{background-color:#000}\n"] }]
313
+ }], propDecorators: { color: [{
314
+ type: Input
315
+ }], iconColor: [{
316
+ type: Input
317
+ }], removable: [{
318
+ type: Input
319
+ }], remove: [{
320
+ type: Output
321
+ }] } });
322
+
323
+ class SuisFormFieldComponent {
324
+ constructor() {
325
+ /**
326
+ * Adds a bottom margin below the field. By default set to false.
327
+ */
328
+ this.spacing = false;
329
+ }
330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
331
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisFormFieldComponent, isStandalone: true, selector: "suis-form-field", inputs: { errorTemplate: "errorTemplate", spacing: "spacing" }, ngImport: i0, template: "<div class=\"suis-form-field\" [class.suis-form-field--spacing]=\"spacing\">\n <ng-content></ng-content>\n <div *ngIf=\"errorTemplate\" class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate\"></ng-container>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-form-field{width:100%}.suis-form-field__error{color:#ff4757;margin-top:.25rem;font-size:.75rem}.suis-form-field--spacing{margin-bottom:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
332
+ }
333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisFormFieldComponent, decorators: [{
334
+ type: Component,
335
+ args: [{ selector: 'suis-form-field', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"suis-form-field\" [class.suis-form-field--spacing]=\"spacing\">\n <ng-content></ng-content>\n <div *ngIf=\"errorTemplate\" class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate\"></ng-container>\n </div>\n</div>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-form-field{width:100%}.suis-form-field__error{color:#ff4757;margin-top:.25rem;font-size:.75rem}.suis-form-field--spacing{margin-bottom:.75rem}\n"] }]
336
+ }], propDecorators: { errorTemplate: [{
337
+ type: Input
338
+ }], spacing: [{
339
+ type: Input
340
+ }] } });
341
+
342
+ class SuisInputTextComponent extends SuisInputBase {
343
+ constructor() {
344
+ super(...arguments);
248
345
  /**
249
346
  * Sets input's type to one of the accepted values - 'text' or 'password'. By default set to 'text'.
250
347
  */
@@ -254,29 +351,11 @@ class SuisInputTextComponent {
254
351
  */
255
352
  this.placeholder = '';
256
353
  /**
257
- * Sets input disabled state. By default set to false.
258
- */
259
- this.readonly = false;
260
- /**
261
- * Adds invalid styling to the input. By default set to false.
354
+ * Emits on keydown enter input event.
262
355
  */
263
- this.invalid = false;
356
+ this.enterPressed = new EventEmitter();
264
357
  /** @internal */
265
358
  this.value = '';
266
- // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars
267
- this._onChange = (value) => { };
268
- // eslint-disable-next-line @typescript-eslint/no-empty-function
269
- this._onTouched = () => { };
270
- }
271
- onChange(event) {
272
- const target = event.target;
273
- this.value = target.value;
274
- this._onChange(this.value);
275
- this.cdRef.markForCheck();
276
- }
277
- onTouch() {
278
- this._onTouched();
279
- this.cdRef.markForCheck();
280
359
  }
281
360
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
282
361
  writeValue(obj) {
@@ -284,22 +363,24 @@ class SuisInputTextComponent {
284
363
  this._onChange(this.value);
285
364
  this.cdRef.markForCheck();
286
365
  }
287
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
288
- registerOnChange(fn) {
289
- this._onChange = fn;
366
+ onChange(event) {
367
+ const target = event.target;
368
+ this.value = target.value;
369
+ this._onChange(this.value);
370
+ this.changed.emit(this.value);
371
+ this.cdRef.markForCheck();
290
372
  }
291
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
292
- registerOnTouched(fn) {
293
- this._onTouched = fn;
373
+ onEnter() {
374
+ this.enterPressed.emit();
294
375
  }
295
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
296
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisInputTextComponent, isStandalone: true, selector: "suis-input-text", inputs: { type: "type", placeholder: "placeholder", readonly: "readonly", invalid: "invalid" }, providers: [
376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisInputTextComponent, isStandalone: true, selector: "suis-input-text", inputs: { type: "type", placeholder: "placeholder" }, outputs: { enterPressed: "enterPressed" }, providers: [
297
378
  {
298
379
  provide: NG_VALUE_ACCESSOR,
299
380
  multi: true,
300
381
  useExisting: forwardRef(() => SuisInputTextComponent),
301
382
  },
302
- ], ngImport: i0, template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-input{background-color:#fff;box-shadow:0 2px 5px #00000080;border-radius:.25rem;padding:.5rem 1rem;border:0;width:100%}.suis-input:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
383
+ ], usesInheritance: true, ngImport: i0, template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-input{background-color:#fff;box-shadow:0 2px 5px #00000080;border-radius:.25rem;padding:.5rem 1rem;border:0;width:100%}.suis-input:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{box-shadow:0 2px 5px #ff4757bf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
303
384
  }
304
385
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputTextComponent, decorators: [{
305
386
  type: Component,
@@ -309,15 +390,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
309
390
  multi: true,
310
391
  useExisting: forwardRef(() => SuisInputTextComponent),
311
392
  },
312
- ], template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-input{background-color:#fff;box-shadow:0 2px 5px #00000080;border-radius:.25rem;padding:.5rem 1rem;border:0;width:100%}.suis-input:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{box-shadow:0 2px 5px #ff4757bf}\n"] }]
393
+ ], template: "<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}.suis-input{background-color:#fff;box-shadow:0 2px 5px #00000080;border-radius:.25rem;padding:.5rem 1rem;border:0;width:100%}.suis-input:focus{box-shadow:0 2px 5px #192a56bf;outline:none}.suis-input--invalid{box-shadow:0 2px 5px #ff4757bf}\n"] }]
313
394
  }], propDecorators: { type: [{
314
395
  type: Input
315
396
  }], placeholder: [{
316
397
  type: Input
317
- }], readonly: [{
398
+ }], enterPressed: [{
399
+ type: Output
400
+ }] } });
401
+
402
+ class SuisInputChipsComponent extends SuisInputBase {
403
+ constructor() {
404
+ super(...arguments);
405
+ /**
406
+ * Placeholder text displayed in input. By default set to empty string.
407
+ */
408
+ this.placeholder = '';
409
+ /**
410
+ * Sets the color pallette of the chips. Type of SuisChipColor. By default set to 'primary'.
411
+ */
412
+ this.chipColor = 'primary';
413
+ /**
414
+ * Sets the color of the chips' cross icon. Type of SuisIconColor. By default set to 'white'.
415
+ */
416
+ this.chipIconColor = 'white';
417
+ /** @internal */
418
+ this.value = [];
419
+ /** @internal */
420
+ this.inputControl = new FormControl('', { nonNullable: true });
421
+ }
422
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
423
+ writeValue(obj) {
424
+ this.value = obj || [];
425
+ this._onChange(this.value);
426
+ this.cdRef.markForCheck();
427
+ }
428
+ addItem(value) {
429
+ const values = value.split(',').filter((v) => !!v);
430
+ this.value = this.value.concat(values);
431
+ this._onChange(this.value);
432
+ this.changed.emit(this.value);
433
+ this.cdRef.markForCheck();
434
+ }
435
+ removeItem(value) {
436
+ this.value = this.value.filter((v) => v !== value);
437
+ }
438
+ submitValue() {
439
+ const inputValue = this.inputControl.value;
440
+ this.inputControl.reset();
441
+ this.addItem(inputValue);
442
+ }
443
+ onDocumentClick(event) {
444
+ if (!this.inputEl?.nativeElement.contains(event.target))
445
+ this.submitValue();
446
+ }
447
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputChipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
448
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SuisInputChipsComponent, isStandalone: true, selector: "suis-input-chips", inputs: { placeholder: "placeholder", chipColor: "chipColor", chipIconColor: "chipIconColor" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, providers: [
449
+ {
450
+ provide: NG_VALUE_ACCESSOR,
451
+ multi: true,
452
+ useExisting: forwardRef(() => SuisInputChipsComponent),
453
+ },
454
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"suis-input-chips\">\n <div #input class=\"suis-input-chips__input\">\n <suis-input-text\n [formControl]=\"inputControl\"\n [readonly]=\"readonly\"\n [invalid]=\"invalid\"\n [placeholder]=\"placeholder\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input-text>\n </div>\n <div *ngIf=\"value.length\" class=\"suis-input-chips__chips\">\n <suis-chip\n [removable]=\"readonly ? false : true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"removeItem(item)\"\n *ngFor=\"let item of value\"\n >\n {{ item }}\n </suis-chip>\n </div>\n</div>\n", styles: [".suis-input-chips__chips{margin-top:.375rem;display:flex;flex-wrap:wrap}.suis-input-chips__chips suis-chip:not(:last-child){margin-right:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SuisChipComponent, selector: "suis-chip", inputs: ["color", "iconColor", "removable"], outputs: ["remove"] }, { kind: "component", type: SuisInputTextComponent, selector: "suis-input-text", inputs: ["type", "placeholder"], outputs: ["enterPressed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
455
+ }
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SuisInputChipsComponent, decorators: [{
457
+ type: Component,
458
+ args: [{ selector: 'suis-input-chips', standalone: true, imports: [
459
+ CommonModule,
460
+ ReactiveFormsModule,
461
+ SuisChipComponent,
462
+ SuisInputTextComponent,
463
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
464
+ {
465
+ provide: NG_VALUE_ACCESSOR,
466
+ multi: true,
467
+ useExisting: forwardRef(() => SuisInputChipsComponent),
468
+ },
469
+ ], template: "<div class=\"suis-input-chips\">\n <div #input class=\"suis-input-chips__input\">\n <suis-input-text\n [formControl]=\"inputControl\"\n [readonly]=\"readonly\"\n [invalid]=\"invalid\"\n [placeholder]=\"placeholder\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input-text>\n </div>\n <div *ngIf=\"value.length\" class=\"suis-input-chips__chips\">\n <suis-chip\n [removable]=\"readonly ? false : true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"removeItem(item)\"\n *ngFor=\"let item of value\"\n >\n {{ item }}\n </suis-chip>\n </div>\n</div>\n", styles: [".suis-input-chips__chips{margin-top:.375rem;display:flex;flex-wrap:wrap}.suis-input-chips__chips suis-chip:not(:last-child){margin-right:.25rem}\n"] }]
470
+ }], propDecorators: { inputEl: [{
471
+ type: ViewChild,
472
+ args: ['input']
473
+ }], placeholder: [{
474
+ type: Input
475
+ }], chipColor: [{
318
476
  type: Input
319
- }], invalid: [{
477
+ }], chipIconColor: [{
320
478
  type: Input
479
+ }], onDocumentClick: [{
480
+ type: HostListener,
481
+ args: ['document:click', ['$event']]
321
482
  }] } });
322
483
 
323
484
  class SuisLabelComponent {
@@ -347,5 +508,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
347
508
  * Generated bundle index. Do not edit.
348
509
  */
349
510
 
350
- export { SuisAnchorButtonComponent, SuisBoxComponent, SuisButtonComponent, SuisButtonOutlinedComponent, SuisFormFieldComponent, SuisIconComponent, SuisIconType, SuisInputTextComponent, SuisLabelComponent, SuisNgClassPipe };
511
+ export { SuisAnchorButtonComponent, SuisBoxComponent, SuisButtonComponent, SuisButtonOutlinedComponent, SuisChipComponent, SuisFormFieldComponent, SuisIconComponent, SuisIconType, SuisInputChipsComponent, SuisInputTextComponent, SuisLabelComponent, SuisNgClassPipe };
351
512
  //# sourceMappingURL=suis.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"suis.mjs","sources":["../../../../libs/suis/src/lib/components/suis-box/suis-box.component.ts","../../../../libs/suis/src/lib/components/suis-box/suis-box.component.html","../../../../libs/suis/src/lib/classes/suis-button.base.ts","../../../../libs/suis/src/lib/components/suis-button/suis-button.component.ts","../../../../libs/suis/src/lib/components/suis-button/suis-button.component.html","../../../../libs/suis/src/lib/components/suis-form-field/suis-form-field.component.ts","../../../../libs/suis/src/lib/components/suis-form-field/suis-form-field.component.html","../../../../libs/suis/src/lib/components/suis-icon/suis-icon.enums.ts","../../../../libs/suis/src/lib/components/suis-icon/suis-icon-type.pipe.ts","../../../../libs/suis/src/lib/pipes/suis-ng-class.pipe.ts","../../../../libs/suis/src/lib/components/suis-icon/suis-icon.component.ts","../../../../libs/suis/src/lib/components/suis-icon/suis-icon.component.html","../../../../libs/suis/src/lib/components/suis-input-text/suis-input-text.component.ts","../../../../libs/suis/src/lib/components/suis-input-text/suis-input-text.component.html","../../../../libs/suis/src/lib/components/suis-label/suis-label.component.ts","../../../../libs/suis/src/lib/components/suis-label/suis-label.component.html","../../../../libs/suis/src/suis.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'suis-box',\n standalone: true,\n imports: [],\n templateUrl: './suis-box.component.html',\n styleUrls: ['./suis-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisBoxComponent {\n /**\n * Adds a padding around the content. By default set to false.\n */\n @Input() spacing: boolean = false;\n}\n","<div class=\"suis-box\" [class.suis-box--spacing]=\"spacing\">\n <ng-content></ng-content>\n</div>\n","import { Directive, ElementRef, Input, Renderer2, inject } from '@angular/core';\nimport { SuisColor } from '../types/suis-color.type';\n\n@Directive()\nexport abstract class SuisButtonBase {\n /** @internal */\n protected readonly elementRef = inject(ElementRef);\n\n /** @internal */\n protected readonly renderer2 = inject(Renderer2);\n\n /**\n * Sets button's color theme. Type of SuisColor. By default set to 'primary'.\n */\n @Input() color: SuisColor = 'primary';\n\n /**\n * Sets button's disabled attribute. By default set to false.\n */\n @Input() disabled: boolean = false;\n\n /**\n * Shows loading spinner instead of content projection. By default set to false.\n */\n @Input() loading: boolean = false;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostListener,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuisButtonBase } from '../../classes';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[suisButton]',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-button.component.html',\n styleUrls: ['./suis-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.disabled]': 'disabled || null',\n '[attr.tabindex]': 'disabled ? -1 : 0',\n },\n})\nexport class SuisButtonComponent\n extends SuisButtonBase\n implements AfterViewInit\n{\n ngAfterViewInit(): void {\n this.renderer2.addClass(this.elementRef.nativeElement, 'suis-button');\n this.renderer2.addClass(\n this.elementRef.nativeElement,\n `suis-button--${this.color}`\n );\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[suisButtonOutlined]',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-button.component.html',\n styleUrls: ['./suis-button-outlined.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.disabled]': 'disabled || null',\n '[attr.tabindex]': 'disabled ? -1 : 0',\n },\n})\nexport class SuisButtonOutlinedComponent\n extends SuisButtonBase\n implements AfterViewInit\n{\n ngAfterViewInit(): void {\n this.renderer2.addClass(\n this.elementRef.nativeElement,\n 'suis-button-outlined'\n );\n this.renderer2.addClass(\n this.elementRef.nativeElement,\n `suis-button-outlined--${this.color}`\n );\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[suisButton]',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-button.component.html',\n styleUrls: ['./suis-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.tabindex]': 'disabled ? -1 : 0',\n },\n})\nexport class SuisAnchorButtonComponent\n extends SuisButtonBase\n implements AfterViewInit\n{\n ngAfterViewInit(): void {\n this.renderer2.addClass(this.elementRef.nativeElement, 'suis-button');\n this.renderer2.addClass(\n this.elementRef.nativeElement,\n `suis-button--${this.color}`\n );\n }\n\n @HostListener('click')\n onClick(event: Event): void {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","<ng-container *ngIf=\"!loading; else spinner\">\n <ng-content></ng-content>\n</ng-container>\n<ng-template #spinner>\n <!-- TODO: <suis-spinner></suis-spinner> -->\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'suis-form-field',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-form-field.component.html',\n styleUrls: ['./suis-form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisFormFieldComponent {\n /**\n * Template to be added below the field with error message.\n */\n @Input() errorTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * Adds a bottom margin below the field. By default set to false.\n */\n @Input() spacing: boolean = false;\n}\n","<div class=\"suis-form-field\" [class.suis-form-field--spacing]=\"spacing\">\n <ng-content></ng-content>\n <div *ngIf=\"errorTemplate\" class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate\"></ng-container>\n </div>\n</div>\n","export enum SuisIconType {\n INFO = 'info',\n WARNING = 'warning',\n CHECK = 'check',\n CROSS = 'cross',\n PLUS = 'plus',\n MINUS = 'minus',\n ARROW_UP = 'arrow-up',\n ARROW_LEFT = 'arrow-left',\n ARROW_RIGHT = 'arrow-right',\n ARROW_DOWN = 'arrow-down',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SuisIconType } from './suis-icon.enums';\n\n@Pipe({\n standalone: true,\n name: 'suisIconType',\n})\nexport class SuisIconTypePipe implements PipeTransform {\n transform(type: SuisIconType): string {\n switch (type) {\n case SuisIconType.INFO:\n return '&quest;';\n case SuisIconType.WARNING:\n return '&excl;';\n case SuisIconType.CHECK:\n return '&check;';\n case SuisIconType.CROSS:\n return '&times;';\n case SuisIconType.PLUS:\n return '&plus;';\n case SuisIconType.MINUS:\n return '&minus;';\n case SuisIconType.ARROW_LEFT:\n return '&#8592;';\n case SuisIconType.ARROW_UP:\n return '&#8593;';\n case SuisIconType.ARROW_RIGHT:\n return '&#8594;';\n case SuisIconType.ARROW_DOWN:\n return '&#8595;';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'suisNgClass',\n})\nexport class SuisNgClassPipe implements PipeTransform {\n transform(prefix: string, ...args: string[]): string[] {\n const classes: string[] = [];\n args.forEach((arg) => classes.push(`${prefix}--${arg}`));\n return classes;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuisIconColor, SuisIconSize } from './suis-icon.types';\nimport { SuisIconType } from './suis-icon.enums';\nimport { SuisIconTypePipe } from './suis-icon-type.pipe';\nimport { SuisNgClassPipe } from '../../pipes/suis-ng-class.pipe';\n\n@Component({\n selector: 'suis-icon',\n standalone: true,\n imports: [CommonModule, SuisIconTypePipe, SuisNgClassPipe],\n templateUrl: './suis-icon.component.html',\n styleUrls: ['./suis-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisIconComponent {\n /** @internal */\n readonly SuisIconType = SuisIconType;\n\n /**\n * Sets the font size of the HTML Entity itself. Type of SuisIconSize. By default set to 'md'.\n */\n @Input() size: SuisIconSize = 'md';\n\n /**\n * Sets the color pallette of the icon and surroundings. Type of SuisIconColor. By default set to 'dark'.\n */\n @Input() color: SuisIconColor = 'dark';\n\n /**\n * Sets the HTML Entity displayed in content. Type of SuisIconType. By default set to SuisIconType.INFO.\n */\n @Input() type: SuisIconType = SuisIconType.INFO;\n\n /**\n * Shows the circled border around the icon. By default set to false. Can not be combined with filled (will be overriden then).\n */\n @Input() outlined: boolean = false;\n\n /**\n * Shows the circled background behind the icon. By default set to false. Overrides outlined behavior if used at the sime time.\n */\n @Input() filled: boolean = false;\n\n /**\n * Shows the pointer cursor when hovered. By defauly set to false.\n */\n @Input() pointer: boolean = false;\n}\n","<div\n class=\"suis-icon\"\n [class.suis-icon--outlined]=\"outlined\"\n [class.suis-icon--filled]=\"filled\"\n [class.suis-icon--pointer]=\"pointer\"\n [ngClass]=\"'suis-icon' | suisNgClass : color : size\"\n>\n <span [innerHTML]=\"type | suisIconType\"></span>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SuisInputTextType } from './suis-input-text.types';\n\n@Component({\n selector: 'suis-input-text',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-input-text.component.html',\n styleUrls: ['./suis-input-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => SuisInputTextComponent),\n },\n ],\n})\nexport class SuisInputTextComponent implements ControlValueAccessor {\n private readonly cdRef = inject(ChangeDetectorRef);\n\n /**\n * Sets input's type to one of the accepted values - 'text' or 'password'. By default set to 'text'.\n */\n @Input() type: SuisInputTextType = 'text';\n\n /**\n * Placeholder text displayed in input. By default set to empty string.\n */\n @Input() placeholder: string = '';\n\n /**\n * Sets input disabled state. By default set to false.\n */\n @Input() readonly: boolean = false;\n\n /**\n * Adds invalid styling to the input. By default set to false.\n */\n @Input() invalid: boolean = false;\n\n /** @internal */\n value: string = '';\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n _onChange = (value: string) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onTouched = () => {};\n\n onChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this._onChange(this.value);\n this.cdRef.markForCheck();\n }\n\n onTouch(): void {\n this._onTouched();\n this.cdRef.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(obj: any): void {\n this.value = obj;\n this._onChange(this.value);\n this.cdRef.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n}\n","<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n/>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'suis-label',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-label.component.html',\n styleUrls: ['./suis-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisLabelComponent {\n /**\n * Adds a red colored asterisk after the label. By default set to false.\n */\n @Input() required: boolean = false;\n\n /**\n * Adds a bottom margin below the label. By default set to false.\n */\n @Input() spacing: boolean = false;\n}\n","<label class=\"suis-label\" [class.suis-label--spacing]=\"spacing\">\n <ng-content></ng-content>\n <span *ngIf=\"required\" class=\"suis-label__asterisk\">*</span>\n <ng-content select=\"[suisLabelAside]\"></ng-content>\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suis.mjs","sources":["../../../../libs/suis/src/lib/components/suis-box/suis-box.component.ts","../../../../libs/suis/src/lib/components/suis-box/suis-box.component.html","../../../../libs/suis/src/lib/classes/suis-button.base.ts","../../../../libs/suis/src/lib/classes/suis-input.base.ts","../../../../libs/suis/src/lib/components/suis-button/suis-button.component.ts","../../../../libs/suis/src/lib/components/suis-button/suis-button.component.html","../../../../libs/suis/src/lib/components/suis-icon/suis-icon.enums.ts","../../../../libs/suis/src/lib/components/suis-icon/suis-icon-type.pipe.ts","../../../../libs/suis/src/lib/pipes/suis-ng-class.pipe.ts","../../../../libs/suis/src/lib/components/suis-icon/suis-icon.component.ts","../../../../libs/suis/src/lib/components/suis-icon/suis-icon.component.html","../../../../libs/suis/src/lib/components/suis-chip/suis-chip.component.ts","../../../../libs/suis/src/lib/components/suis-chip/suis-chip.component.html","../../../../libs/suis/src/lib/components/suis-form-field/suis-form-field.component.ts","../../../../libs/suis/src/lib/components/suis-form-field/suis-form-field.component.html","../../../../libs/suis/src/lib/components/suis-input-text/suis-input-text.component.ts","../../../../libs/suis/src/lib/components/suis-input-text/suis-input-text.component.html","../../../../libs/suis/src/lib/components/suis-input-chips/suis-input-chips.component.ts","../../../../libs/suis/src/lib/components/suis-input-chips/suis-input-chips.component.html","../../../../libs/suis/src/lib/components/suis-label/suis-label.component.ts","../../../../libs/suis/src/lib/components/suis-label/suis-label.component.html","../../../../libs/suis/src/suis.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'suis-box',\n standalone: true,\n imports: [],\n templateUrl: './suis-box.component.html',\n styleUrls: ['./suis-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisBoxComponent {\n /**\n * Adds a padding around the content. By default set to false.\n */\n @Input() spacing: boolean = false;\n}\n","<div class=\"suis-box\" [class.suis-box--spacing]=\"spacing\">\n <ng-content></ng-content>\n</div>\n","import { Directive, ElementRef, Input, Renderer2, inject } from '@angular/core';\nimport { SuisColor } from '../types/suis-color.type';\n\n@Directive()\nexport abstract class SuisButtonBase {\n /** @internal */\n protected readonly elementRef = inject(ElementRef);\n\n /** @internal */\n protected readonly renderer2 = inject(Renderer2);\n\n /**\n * Sets button's color theme. Type of SuisColor. By default set to 'primary'.\n */\n @Input() color: SuisColor = 'primary';\n\n /**\n * Sets button's disabled attribute. By default set to false.\n */\n @Input() disabled: boolean = false;\n\n /**\n * Shows loading spinner instead of content projection. By default set to false.\n */\n @Input() loading: boolean = false;\n}\n","import {\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\n@Directive()\nexport abstract class SuisInputBase implements ControlValueAccessor {\n /** @internal */\n protected readonly cdRef = inject(ChangeDetectorRef);\n\n /**\n * Sets input disabled state. By default set to false.\n */\n @Input() readonly: boolean = false;\n\n /**\n * Adds invalid styling to the input. By default set to false.\n */\n @Input() invalid: boolean = false;\n\n /**\n * Emits on value changed.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Output() changed = new EventEmitter<any>();\n\n /**\n * Emits on input touched.\n */\n @Output() touched = new EventEmitter<void>();\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n _onChange = (value: any) => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onTouched = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract writeValue(obj: any): void;\n\n /** @internal */\n onTouch(): void {\n this._onTouched();\n this.touched.emit();\n this.cdRef.markForCheck();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n HostListener,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuisButtonBase } from '../../classes';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[suisButton]',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-button.component.html',\n styleUrls: ['./suis-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.disabled]': 'disabled || null',\n '[attr.tabindex]': 'disabled ? -1 : 0',\n },\n})\nexport class SuisButtonComponent\n extends SuisButtonBase\n implements AfterViewInit\n{\n ngAfterViewInit(): void {\n this.renderer2.addClass(this.elementRef.nativeElement, 'suis-button');\n this.renderer2.addClass(\n this.elementRef.nativeElement,\n `suis-button--${this.color}`\n );\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[suisButtonOutlined]',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-button.component.html',\n styleUrls: ['./suis-button-outlined.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.disabled]': 'disabled || null',\n '[attr.tabindex]': 'disabled ? -1 : 0',\n },\n})\nexport class SuisButtonOutlinedComponent\n extends SuisButtonBase\n implements AfterViewInit\n{\n ngAfterViewInit(): void {\n this.renderer2.addClass(\n this.elementRef.nativeElement,\n 'suis-button-outlined'\n );\n this.renderer2.addClass(\n this.elementRef.nativeElement,\n `suis-button-outlined--${this.color}`\n );\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[suisButton]',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-button.component.html',\n styleUrls: ['./suis-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.tabindex]': 'disabled ? -1 : 0',\n },\n})\nexport class SuisAnchorButtonComponent\n extends SuisButtonBase\n implements AfterViewInit\n{\n ngAfterViewInit(): void {\n this.renderer2.addClass(this.elementRef.nativeElement, 'suis-button');\n this.renderer2.addClass(\n this.elementRef.nativeElement,\n `suis-button--${this.color}`\n );\n }\n\n @HostListener('click')\n onClick(event: Event): void {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","<ng-container *ngIf=\"!loading; else spinner\">\n <ng-content></ng-content>\n</ng-container>\n<ng-template #spinner>\n <!-- TODO: <suis-spinner></suis-spinner> -->\n</ng-template>\n","export enum SuisIconType {\n INFO = 'info',\n WARNING = 'warning',\n CHECK = 'check',\n CROSS = 'cross',\n PLUS = 'plus',\n MINUS = 'minus',\n ARROW_UP = 'arrow-up',\n ARROW_LEFT = 'arrow-left',\n ARROW_RIGHT = 'arrow-right',\n ARROW_DOWN = 'arrow-down',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SuisIconType } from './suis-icon.enums';\n\n@Pipe({\n standalone: true,\n name: 'suisIconType',\n})\nexport class SuisIconTypePipe implements PipeTransform {\n transform(type: SuisIconType): string {\n switch (type) {\n case SuisIconType.INFO:\n return '&quest;';\n case SuisIconType.WARNING:\n return '&excl;';\n case SuisIconType.CHECK:\n return '&check;';\n case SuisIconType.CROSS:\n return '&times;';\n case SuisIconType.PLUS:\n return '&plus;';\n case SuisIconType.MINUS:\n return '&minus;';\n case SuisIconType.ARROW_LEFT:\n return '&#8592;';\n case SuisIconType.ARROW_UP:\n return '&#8593;';\n case SuisIconType.ARROW_RIGHT:\n return '&#8594;';\n case SuisIconType.ARROW_DOWN:\n return '&#8595;';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'suisNgClass',\n})\nexport class SuisNgClassPipe implements PipeTransform {\n transform(prefix: string, ...args: string[]): string[] {\n const classes: string[] = [];\n args.forEach((arg) => classes.push(`${prefix}--${arg}`));\n return classes;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuisIconColor, SuisIconSize } from './suis-icon.types';\nimport { SuisIconType } from './suis-icon.enums';\nimport { SuisIconTypePipe } from './suis-icon-type.pipe';\nimport { SuisNgClassPipe } from '../../pipes/suis-ng-class.pipe';\n\n@Component({\n selector: 'suis-icon',\n standalone: true,\n imports: [CommonModule, SuisIconTypePipe, SuisNgClassPipe],\n templateUrl: './suis-icon.component.html',\n styleUrls: ['./suis-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisIconComponent {\n /** @internal */\n readonly SuisIconType = SuisIconType;\n\n /**\n * Sets the font size of the HTML Entity itself. Type of SuisIconSize. By default set to 'md'.\n */\n @Input() size: SuisIconSize = 'md';\n\n /**\n * Sets the color pallette of the icon and surroundings. Type of SuisIconColor. By default set to 'dark'.\n */\n @Input() color: SuisIconColor = 'dark';\n\n /**\n * Sets the HTML Entity displayed in content. Type of SuisIconType. By default set to SuisIconType.INFO.\n */\n @Input() type: SuisIconType = SuisIconType.INFO;\n\n /**\n * Shows the circled border around the icon. By default set to false. Can not be combined with filled (will be overriden then).\n */\n @Input() outlined: boolean = false;\n\n /**\n * Shows the circled background behind the icon. By default set to false. Overrides outlined behavior if used at the sime time.\n */\n @Input() filled: boolean = false;\n\n /**\n * Shows the pointer cursor when hovered. By defauly set to false.\n */\n @Input() pointer: boolean = false;\n}\n","<div\n class=\"suis-icon\"\n [class.suis-icon--outlined]=\"outlined\"\n [class.suis-icon--filled]=\"filled\"\n [class.suis-icon--pointer]=\"pointer\"\n [ngClass]=\"'suis-icon' | suisNgClass : color : size\"\n>\n <span [innerHTML]=\"type | suisIconType\"></span>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuisIconColor, SuisIconComponent, SuisIconType } from '../suis-icon';\nimport { SuisChipColor } from './suis-chip.types';\nimport { SuisNgClassPipe } from '../../pipes/suis-ng-class.pipe';\n\n@Component({\n selector: 'suis-chip',\n standalone: true,\n imports: [CommonModule, SuisIconComponent, SuisNgClassPipe],\n templateUrl: './suis-chip.component.html',\n styleUrls: ['./suis-chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisChipComponent {\n /** @internal */\n readonly SuisIconType = SuisIconType;\n\n /**\n * Sets the color pallette of the chip. Type of SuisChipColor. By default set to 'primary'.\n */\n @Input() color: SuisChipColor = 'primary';\n\n /**\n * Sets the color of the cross icon. Visible only if removable set to true. Type of SuisIconColor. By default set to 'white'.\n */\n @Input() iconColor: SuisIconColor = 'white';\n\n /**\n * Shows cross icon with remove action. By default set to false.\n */\n @Input() removable: boolean = false;\n\n /**\n * Emits on cross icon click.\n */\n @Output() remove = new EventEmitter<void>();\n\n /** @internal */\n onRemove(): void {\n this.remove.emit();\n }\n}\n","<div class=\"suis-chip\" [ngClass]=\"'suis-chip' | suisNgClass : color\">\n <ng-content></ng-content>\n <button\n *ngIf=\"removable\"\n class=\"suis-chip__remove\"\n type=\"button\"\n (click)=\"onRemove()\"\n >\n <suis-icon\n [color]=\"iconColor\"\n [type]=\"SuisIconType.CROSS\"\n [pointer]=\"true\"\n [size]=\"'lg'\"\n ></suis-icon>\n </button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'suis-form-field',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-form-field.component.html',\n styleUrls: ['./suis-form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisFormFieldComponent {\n /**\n * Template to be added below the field with error message.\n */\n @Input() errorTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * Adds a bottom margin below the field. By default set to false.\n */\n @Input() spacing: boolean = false;\n}\n","<div class=\"suis-form-field\" [class.suis-form-field--spacing]=\"spacing\">\n <ng-content></ng-content>\n <div *ngIf=\"errorTemplate\" class=\"suis-form-field__error\">\n <ng-container [ngTemplateOutlet]=\"errorTemplate\"></ng-container>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SuisInputTextType } from './suis-input-text.types';\nimport { SuisInputBase } from '../../classes/suis-input.base';\n\n@Component({\n selector: 'suis-input-text',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-input-text.component.html',\n styleUrls: ['./suis-input-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => SuisInputTextComponent),\n },\n ],\n})\nexport class SuisInputTextComponent extends SuisInputBase {\n /**\n * Sets input's type to one of the accepted values - 'text' or 'password'. By default set to 'text'.\n */\n @Input() type: SuisInputTextType = 'text';\n\n /**\n * Placeholder text displayed in input. By default set to empty string.\n */\n @Input() placeholder: string = '';\n\n /**\n * Emits on keydown enter input event.\n */\n @Output() enterPressed = new EventEmitter<void>();\n\n /** @internal */\n value: string = '';\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(obj: string): void {\n this.value = obj;\n this._onChange(this.value);\n this.cdRef.markForCheck();\n }\n\n onChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this._onChange(this.value);\n this.changed.emit(this.value);\n this.cdRef.markForCheck();\n }\n\n onEnter(): void {\n this.enterPressed.emit();\n }\n}\n","<input\n class=\"suis-input\"\n [class.suis-input--invalid]=\"invalid\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly\"\n (input)=\"onChange($event)\"\n (focus)=\"onTouch()\"\n (keydown.enter)=\"onEnter()\"\n/>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n Input,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { SuisChipColor, SuisChipComponent } from '../suis-chip';\nimport { SuisInputTextComponent } from '../suis-input-text';\nimport { SuisInputBase } from '../../classes/suis-input.base';\nimport { SuisIconColor } from '../suis-icon';\n\n@Component({\n selector: 'suis-input-chips',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SuisChipComponent,\n SuisInputTextComponent,\n ],\n templateUrl: './suis-input-chips.component.html',\n styleUrls: ['./suis-input-chips.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => SuisInputChipsComponent),\n },\n ],\n})\nexport class SuisInputChipsComponent extends SuisInputBase {\n /** @internal */\n @ViewChild('input') inputEl?: ElementRef;\n\n /**\n * Placeholder text displayed in input. By default set to empty string.\n */\n @Input() placeholder: string = '';\n\n /**\n * Sets the color pallette of the chips. Type of SuisChipColor. By default set to 'primary'.\n */\n @Input() chipColor: SuisChipColor = 'primary';\n\n /**\n * Sets the color of the chips' cross icon. Type of SuisIconColor. By default set to 'white'.\n */\n @Input() chipIconColor: SuisIconColor = 'white';\n\n /** @internal */\n value: string[] = [];\n\n /** @internal */\n inputControl = new FormControl<string>('', { nonNullable: true });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(obj: string[]): void {\n this.value = obj || [];\n this._onChange(this.value);\n this.cdRef.markForCheck();\n }\n\n addItem(value: string): void {\n const values = value.split(',').filter((v) => !!v);\n this.value = this.value.concat(values);\n this._onChange(this.value);\n this.changed.emit(this.value);\n this.cdRef.markForCheck();\n }\n\n removeItem(value: string): void {\n this.value = this.value.filter((v) => v !== value);\n }\n\n submitValue() {\n const inputValue = this.inputControl.value;\n this.inputControl.reset();\n this.addItem(inputValue);\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: Event) {\n if (!this.inputEl?.nativeElement.contains(event.target)) this.submitValue();\n }\n}\n","<div class=\"suis-input-chips\">\n <div #input class=\"suis-input-chips__input\">\n <suis-input-text\n [formControl]=\"inputControl\"\n [readonly]=\"readonly\"\n [invalid]=\"invalid\"\n [placeholder]=\"placeholder\"\n (touched)=\"onTouch()\"\n (enterPressed)=\"submitValue()\"\n ></suis-input-text>\n </div>\n <div *ngIf=\"value.length\" class=\"suis-input-chips__chips\">\n <suis-chip\n [removable]=\"readonly ? false : true\"\n [color]=\"chipColor\"\n [iconColor]=\"chipIconColor\"\n (remove)=\"removeItem(item)\"\n *ngFor=\"let item of value\"\n >\n {{ item }}\n </suis-chip>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'suis-label',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './suis-label.component.html',\n styleUrls: ['./suis-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SuisLabelComponent {\n /**\n * Adds a red colored asterisk after the label. By default set to false.\n */\n @Input() required: boolean = false;\n\n /**\n * Adds a bottom margin below the label. By default set to false.\n */\n @Input() spacing: boolean = false;\n}\n","<label class=\"suis-label\" [class.suis-label--spacing]=\"spacing\">\n <ng-content></ng-content>\n <span *ngIf=\"required\" class=\"suis-label__asterisk\">*</span>\n <ng-content select=\"[suisLabelAside]\"></ng-content>\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export * from './suis-button.base';
2
+ export * from './suis-input.base';
@@ -0,0 +1,32 @@
1
+ import { ChangeDetectorRef, EventEmitter } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare abstract class SuisInputBase implements ControlValueAccessor {
5
+ /** @internal */
6
+ protected readonly cdRef: ChangeDetectorRef;
7
+ /**
8
+ * Sets input disabled state. By default set to false.
9
+ */
10
+ readonly: boolean;
11
+ /**
12
+ * Adds invalid styling to the input. By default set to false.
13
+ */
14
+ invalid: boolean;
15
+ /**
16
+ * Emits on value changed.
17
+ */
18
+ changed: EventEmitter<any>;
19
+ /**
20
+ * Emits on input touched.
21
+ */
22
+ touched: EventEmitter<void>;
23
+ _onChange: (value: any) => void;
24
+ _onTouched: () => void;
25
+ registerOnChange(fn: any): void;
26
+ registerOnTouched(fn: any): void;
27
+ abstract writeValue(obj: any): void;
28
+ /** @internal */
29
+ onTouch(): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuisInputBase, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SuisInputBase, never, never, { "readonly": { "alias": "readonly"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; }, { "changed": "changed"; "touched": "touched"; }, never, never, false, never>;
32
+ }
@@ -1,6 +1,8 @@
1
1
  export * from './suis-box';
2
2
  export * from './suis-button';
3
+ export * from './suis-chip';
3
4
  export * from './suis-form-field';
4
5
  export * from './suis-icon';
6
+ export * from './suis-input-chips';
5
7
  export * from './suis-input-text';
6
8
  export * from './suis-label';
@@ -0,0 +1,2 @@
1
+ export * from './suis-chip.component';
2
+ export * from './suis-chip.types';
@@ -0,0 +1,28 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { SuisIconColor, SuisIconType } from '../suis-icon';
3
+ import { SuisChipColor } from './suis-chip.types';
4
+ import * as i0 from "@angular/core";
5
+ export declare class SuisChipComponent {
6
+ /** @internal */
7
+ readonly SuisIconType: typeof SuisIconType;
8
+ /**
9
+ * Sets the color pallette of the chip. Type of SuisChipColor. By default set to 'primary'.
10
+ */
11
+ color: SuisChipColor;
12
+ /**
13
+ * Sets the color of the cross icon. Visible only if removable set to true. Type of SuisIconColor. By default set to 'white'.
14
+ */
15
+ iconColor: SuisIconColor;
16
+ /**
17
+ * Shows cross icon with remove action. By default set to false.
18
+ */
19
+ removable: boolean;
20
+ /**
21
+ * Emits on cross icon click.
22
+ */
23
+ remove: EventEmitter<void>;
24
+ /** @internal */
25
+ onRemove(): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuisChipComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<SuisChipComponent, "suis-chip", never, { "color": { "alias": "color"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; }, { "remove": "remove"; }, never, ["*"], true, never>;
28
+ }
@@ -0,0 +1,2 @@
1
+ import { SuisColor } from '../../types';
2
+ export type SuisChipColor = SuisColor | 'gray' | 'dark' | 'white';
@@ -0,0 +1 @@
1
+ export * from './suis-input-chips.component';
@@ -0,0 +1,33 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { SuisChipColor } from '../suis-chip';
4
+ import { SuisInputBase } from '../../classes/suis-input.base';
5
+ import { SuisIconColor } from '../suis-icon';
6
+ import * as i0 from "@angular/core";
7
+ export declare class SuisInputChipsComponent extends SuisInputBase {
8
+ /** @internal */
9
+ inputEl?: ElementRef;
10
+ /**
11
+ * Placeholder text displayed in input. By default set to empty string.
12
+ */
13
+ placeholder: string;
14
+ /**
15
+ * Sets the color pallette of the chips. Type of SuisChipColor. By default set to 'primary'.
16
+ */
17
+ chipColor: SuisChipColor;
18
+ /**
19
+ * Sets the color of the chips' cross icon. Type of SuisIconColor. By default set to 'white'.
20
+ */
21
+ chipIconColor: SuisIconColor;
22
+ /** @internal */
23
+ value: string[];
24
+ /** @internal */
25
+ inputControl: FormControl<string>;
26
+ writeValue(obj: string[]): void;
27
+ addItem(value: string): void;
28
+ removeItem(value: string): void;
29
+ submitValue(): void;
30
+ onDocumentClick(event: Event): void;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuisInputChipsComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<SuisInputChipsComponent, "suis-input-chips", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "chipColor": { "alias": "chipColor"; "required": false; }; "chipIconColor": { "alias": "chipIconColor"; "required": false; }; }, {}, never, never, true, never>;
33
+ }
@@ -1,8 +1,8 @@
1
- import { ControlValueAccessor } from '@angular/forms';
1
+ import { EventEmitter } from '@angular/core';
2
2
  import { SuisInputTextType } from './suis-input-text.types';
3
+ import { SuisInputBase } from '../../classes/suis-input.base';
3
4
  import * as i0 from "@angular/core";
4
- export declare class SuisInputTextComponent implements ControlValueAccessor {
5
- private readonly cdRef;
5
+ export declare class SuisInputTextComponent extends SuisInputBase {
6
6
  /**
7
7
  * Sets input's type to one of the accepted values - 'text' or 'password'. By default set to 'text'.
8
8
  */
@@ -12,22 +12,14 @@ export declare class SuisInputTextComponent implements ControlValueAccessor {
12
12
  */
13
13
  placeholder: string;
14
14
  /**
15
- * Sets input disabled state. By default set to false.
15
+ * Emits on keydown enter input event.
16
16
  */
17
- readonly: boolean;
18
- /**
19
- * Adds invalid styling to the input. By default set to false.
20
- */
21
- invalid: boolean;
17
+ enterPressed: EventEmitter<void>;
22
18
  /** @internal */
23
19
  value: string;
24
- _onChange: (value: string) => void;
25
- _onTouched: () => void;
20
+ writeValue(obj: string): void;
26
21
  onChange(event: Event): void;
27
- onTouch(): void;
28
- writeValue(obj: any): void;
29
- registerOnChange(fn: any): void;
30
- registerOnTouched(fn: any): void;
22
+ onEnter(): void;
31
23
  static ɵfac: i0.ɵɵFactoryDeclaration<SuisInputTextComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<SuisInputTextComponent, "suis-input-text", never, { "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; }, {}, never, never, true, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<SuisInputTextComponent, "suis-input-text", never, { "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, { "enterPressed": "enterPressed"; }, never, never, true, never>;
33
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "suis",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "main": "src/index.ts",
5
5
  "author": "Karol Jaskółka",
6
6
  "description": "SUIS (Standalone UI + Signals) Angular 16+ Component Library",