{"version":3,"file":"deja-js-component-tag.mjs","sources":["../../../../projects/deja-js/component/tag/tag.component.ts","../../../../projects/deja-js/component/tag/tag.component.html","../../../../projects/deja-js/component/tag/index.ts","../../../../projects/deja-js/component/tag/deja-js-component-tag.ts"],"sourcesContent":["/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, HostBinding, Input, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { KeyCodes } from '@deja-js/component/core';\n\n/**\n * Deja Tag Component for Angular\n *\n * This component allow you to manage element into an array of string\n */\n@Component({\n    selector: 'deja-tag',\n    templateUrl: './tag.component.html',\n    styleUrls: ['./tag.component.scss']\n})\nexport class DejaTagComponent implements ControlValueAccessor {\n    @HostBinding('attr.disabled') public _disabled: boolean = null;\n\n    /**\n     * Placeholder of the input\n     */\n    @Input() public placeholder: string;\n\n    /**\n     * Current value into the input\n     */\n    public text = '';\n\n    /**\n     * Current value of the array of string\n     */\n    public items: string[] = [];\n\n    /** Allow to disabled the component */\n    @Input()\n    public set disabled(value: BooleanInput) {\n        const disabled = coerceBooleanProperty(value);\n        this._disabled = disabled || null;\n    }\n\n    /**\n     * Get disable value\n     */\n    public get disabled(): BooleanInput {\n        return this.control ? this.control.disabled : this._disabled;\n    }\n\n    public constructor(@Self() @Optional() public control: NgControl) {\n        if (this.control) {\n            this.control.valueAccessor = this;\n        }\n    }\n\n    // ************* ControlValueAccessor Implementation **************\n    public get value(): string[] {\n        return this.items;\n    }\n\n    public set value(val: string[]) {\n        this.writeValue(val);\n        this.onChangeCallback(val);\n        this.onTouchedCallback();\n    }\n\n    public writeValue(value: string[]): void {\n        this.items = value ? value : [];\n    }\n\n    public registerOnChange(fn: (_a: unknown) => void): void {\n        this.onChangeCallback = fn;\n    }\n\n    public registerOnTouched(fn: () => void): void {\n        this.onTouchedCallback = fn;\n    }\n\n    public setDisabledState(isDisabled: boolean): void {\n        this.disabled = isDisabled;\n    }\n    // ************* End of ControlValueAccessor Implementation **************\n\n    /**\n     * Trigerred when user press key into the component\n     */\n    public onKeyDown(e: KeyboardEvent): void {\n        if (e.code === KeyCodes.Enter) {\n            const target = e.target as HTMLInputElement;\n            this.onAddItem(target.value);\n        }\n    }\n\n    /**\n     * Add item into the the list\n     * @param val : Value of the text to add\n     */\n    public onAddItem(val: string): void {\n        if (val) {\n            this.items.push(val);\n            this.value = this.items;\n            this.text = '';\n        }\n    }\n\n    public onRemoveItem(): void {\n        this.onChangeCallback(this.value);\n    }\n\n    // NgModel implementation\n    protected onTouchedCallback = (): void => undefined;\n    protected onChangeCallback = (_a?: unknown): void => undefined;\n    protected onValidatorChangeCallback = (_a?: unknown): void => undefined;\n}\n","<deja-chips [items]=\"items\" [disabled]=\"disabled\" (close)=\"onRemoveItem()\"></deja-chips>\n<mat-form-field>\n    <input matInput [(ngModel)]=\"text\" matInput (keydown)=\"onKeyDown($event)\" [placeholder]=\"placeholder\" [disabled]=\"disabled\" autocomplete=\"off\">\n    <div (click)=\"onAddItem(text)\" matSuffix><mat-icon class=\"matSuffix\">add</mat-icon></div>\n</mat-form-field>","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { DejaChipsModule } from '@deja-js/component/chips';\n\nimport { DejaTagComponent } from './tag.component';\n\n@NgModule({\n    declarations: [DejaTagComponent],\n    exports: [DejaTagComponent],\n    imports: [\n        CommonModule,\n        DejaChipsModule,\n        FormsModule,\n        MatIconModule,\n        MatInputModule\n    ],\n    providers: []\n})\nexport class DejaTagModule { }\n\nexport * from './tag.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}