import { Host, h } from "@stencil/core";
import { cls } from "../../utils/helpers";
import { Lang } from "../../services/lang";
export class XTag {
    constructor() {
        this.label = undefined;
        this.color = 'primary';
        this.icon = undefined;
        this.avatar = undefined;
        this.closable = false;
        this.disabled = false;
        this.ellipsis = false;
        this.tabstop = true;
    }
    /**
     * Handler on close tag
     *
     * @returns
     */
    onCloseTag() {
        if (this.disabled) {
            return;
        }
        this.close.emit({ target: this.el });
    }
    /**
     * Render element
     */
    render() {
        var _a, _b;
        return h(Host, { key: '307ad92bac63f3808729699fba16180f0d9249e6', class: cls(`tag-${this.color}`), disabled: this.disabled }, !!((_a = this.label) === null || _a === void 0 ? void 0 : _a.length) && h("div", { key: '340b225c1b1b7dd6b52193bf8a369f3a47a396f2' }, this.label), !!((_b = this.avatar) === null || _b === void 0 ? void 0 : _b.length) && h("img", { key: '86f6bd4ae87525c941b4a82289a3a450dbb95df9', width: "24", height: "24", src: this.avatar, alt: "avatar" }), this.icon && h("x-icon", { key: '75260c4f0fd0ffc467861ab7f8dc24e8592f264e', name: this.icon, size: "1.25em" }), h("span", { key: 'db1ef82bc65ab4d5d904690e8ccae29e09dfc1ff', class: cls({ 'has-ellipsis': this.ellipsis }) }, h("slot", { key: 'd24846bf4e23df0569bbe899fb07c719e996c7eb' })), this.closable && h("a", { key: '2b6af89b5331f835f11ed77e336379a13c3dc2c2', role: "button", class: "tag-delete", "aria-label": Lang('aria.close'), tabindex: this.tabstop ? 0 : 'false', onClick: () => this.onCloseTag(), onKeyUp: () => this.onCloseTag() }));
    }
    static get is() { return "x-tag"; }
    static get originalStyleUrls() {
        return {
            "$": ["./style.scss"]
        };
    }
    static get styleUrls() {
        return {
            "$": ["style.css"]
        };
    }
    static get properties() {
        return {
            "label": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Element label text"
                },
                "attribute": "label",
                "reflect": false
            },
            "color": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "ColorType",
                    "resolved": "\"accent\" | \"blue\" | \"brown\" | \"cyan\" | \"danger\" | \"default\" | \"green\" | \"indigo\" | \"info\" | \"orange\" | \"pink\" | \"primary\" | \"purple\" | \"red\" | \"stone\" | \"success\" | \"teal\" | \"warning\" | \"yellow\"",
                    "references": {
                        "ColorType": {
                            "location": "import",
                            "path": "../../constants/colors",
                            "id": "src/constants/colors.ts::ColorType"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Element color name"
                },
                "attribute": "color",
                "reflect": false,
                "defaultValue": "'primary'"
            },
            "icon": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "IconType",
                    "resolved": "\"help\" | \"profile\" | \"watch\" | \"filter\" | \"map\" | \"info\" | \"error\" | \"document\" | \"data\" | \"label\" | \"link\" | \"menu\" | \"table\" | \"video\" | \"circle\" | \"image\" | \"marker\" | \"stop\" | \"download\" | \"sync\" | \"cursor\" | \"end\" | \"rotate\" | \"testing\" | \"copy\" | \"unknown\" | \"history\" | \"close\" | \"print\" | \"key\" | \"danger\" | \"tv\" | \"search\" | \"message\" | \"3ds-alt\" | \"3ds\" | \"abbreviation\" | \"activate\" | \"activity\" | \"allergies\" | \"answer\" | \"app-store\" | \"apple-pay\" | \"apple\" | \"ask-question\" | \"auth-capture\" | \"aws\" | \"back\" | \"backclear\" | \"badge-fingerprint\" | \"badge-package\" | \"badge-shield\" | \"bank-account\" | \"bank-cards\" | \"bank\" | \"barcode\" | \"basket\" | \"bin-card\" | \"bitcoin\" | \"bluetooth\" | \"bookmark\" | \"bot\" | \"bowl\" | \"brain\" | \"browser-chrome\" | \"browser-default\" | \"browser-edge\" | \"browser-firefox\" | \"browser-ie\" | \"browser-opera\" | \"browser-safari\" | \"bug\" | \"calendar-event\" | \"calendar\" | \"call-list\" | \"car\" | \"card-amex\" | \"card-banrural\" | \"card-diners_club\" | \"card-discover\" | \"card-jcb\" | \"card-mastercard\" | \"card-nfc\" | \"card-unionpay\" | \"card-visa\" | \"card-wallet\" | \"cash-register\" | \"certificate\" | \"chat\" | \"chatbot\" | \"chatgpt\" | \"check-circle\" | \"check\" | \"checkmark\" | \"chip-card\" | \"chip\" | \"clean\" | \"clipboard\" | \"clock\" | \"cloud-offline\" | \"cloud\" | \"coins\" | \"comment-3ds\" | \"comment-afs\" | \"comment-avs\" | \"comment-cavv\" | \"comment-cavvf\" | \"comment-cavvw\" | \"comment-cvn\" | \"comment-error\" | \"comment-info\" | \"comment-pos\" | \"comment-val\" | \"confectionery\" | \"configuration\" | \"connected\" | \"console\" | \"contactless-payment\" | \"credit-card\" | \"crop\" | \"crown\" | \"cube\" | \"cubes\" | \"currency-settings\" | \"cut-paper\" | \"cut\" | \"cutlery\" | \"dark-mode\" | \"dashboard\" | \"debit-card\" | \"decrease-decimal\" | \"delivered-mail\" | \"desktop\" | \"device-android\" | \"device-ios\" | \"device-linux\" | \"device-mac\" | \"device-other\" | \"device-ubuntu\" | \"device-windows\" | \"discount\" | \"divide\" | \"double-tick\" | \"down\" | \"download-report\" | \"drag-reorder\" | \"drop\" | \"dropdown\" | \"edit\" | \"estimate\" | \"eth\" | \"exchange-bitcoin\" | \"exchange-ethereum\" | \"exchange\" | \"external-link\" | \"face-id\" | \"facebook\" | \"file-archive\" | \"file-document\" | \"file-image\" | \"file-video\" | \"file\" | \"fill-color\" | \"fill-drip\" | \"filter-alt\" | \"finance-document\" | \"financial-changes\" | \"fingerprint\" | \"flag\" | \"format-blockquote\" | \"format-bold\" | \"format-code\" | \"format-header-1\" | \"format-header-2\" | \"format-header-3\" | \"format-header\" | \"format-icon\" | \"format-italic\" | \"format-line\" | \"format-paragraph\" | \"format-quote\" | \"format-redo\" | \"format-strikethrough\" | \"format-table\" | \"format-tip\" | \"format-underline\" | \"format-undo\" | \"forward\" | \"geo\" | \"giftcard\" | \"git\" | \"google-play\" | \"google\" | \"graph\" | \"hand\" | \"handcart\" | \"home-safety\" | \"home\" | \"hosted-checkout\" | \"hot-price\" | \"hourglass\" | \"idea\" | \"identification-documents\" | \"image-document\" | \"image-gallery\" | \"in-transit\" | \"inactive-state\" | \"increase-decimal\" | \"insert-money\" | \"instashop\" | \"invisible\" | \"invoice\" | \"job\" | \"js-squared\" | \"kitchen\" | \"lambda\" | \"lang-angular\" | \"lang-bash\" | \"lang-capacitor\" | \"lang-code\" | \"lang-cpp\" | \"lang-csharp\" | \"lang-css\" | \"lang-flutter\" | \"lang-go\" | \"lang-html\" | \"lang-ini\" | \"lang-ionic\" | \"lang-java\" | \"lang-js\" | \"lang-json\" | \"lang-kotlin\" | \"lang-laravel\" | \"lang-node-js\" | \"lang-objectivec\" | \"lang-php\" | \"lang-python\" | \"lang-react\" | \"lang-ruby\" | \"lang-sql\" | \"lang-swift\" | \"lang-typescript\" | \"lang-visual-basic\" | \"lang-vue\" | \"lang-xamarin\" | \"lang-xml\" | \"left\" | \"legal\" | \"licence\" | \"light-mode\" | \"list-bullet\" | \"list-numbered\" | \"list-todo\" | \"list\" | \"lock\" | \"love-fill\" | \"love\" | \"magic\" | \"mail-bulk\" | \"mail\" | \"mailbox-full\" | \"mailbox\" | \"mailing\" | \"mediaplayer\" | \"merchant-setting\" | \"merchant\" | \"mic\" | \"mindmap\" | \"minus-circle\" | \"minus\" | \"mobile\" | \"modules\" | \"money-time\" | \"mouse-scrolling\" | \"move\" | \"network-cable\" | \"network-group\" | \"network\" | \"nfc-checkpoint\" | \"nfc-tag\" | \"nfc\" | \"no-image\" | \"no-synchronize\" | \"node-js\" | \"notifications\" | \"october\" | \"offline\" | \"onboarding\" | \"online-shop\" | \"online-support\" | \"open-box\" | \"options\" | \"package-tag\" | \"package\" | \"paint-brush\" | \"palette\" | \"parking-meter\" | \"parking-prohibited\" | \"parking\" | \"pause\" | \"paycheque\" | \"pending\" | \"percentage\" | \"petition\" | \"phone\" | \"pie-chart-alt\" | \"pie-chart\" | \"pin\" | \"platform-edit\" | \"play\" | \"plus-circle\" | \"plus\" | \"power-off\" | \"prestashop\" | \"prize\" | \"qr\" | \"quickbooks\" | \"receipt-added\" | \"receipt-approved\" | \"receipt-declined\" | \"receipt-deleted\" | \"receipt-ticket\" | \"receipt\" | \"receive-cash\" | \"register\" | \"report\" | \"resend-mail\" | \"restaurant-menu\" | \"restaurant\" | \"rice-bowl\" | \"right\" | \"room-service\" | \"rotate-left\" | \"rotate-right\" | \"ruler\" | \"safe\" | \"sale\" | \"save-pdf\" | \"save\" | \"schedule\" | \"search-folder\" | \"select-circle\" | \"send\" | \"separate-document\" | \"settings-alt\" | \"settings\" | \"share\" | \"shield-lock\" | \"shield-warning\" | \"shield\" | \"ship\" | \"shipping-product\" | \"shopify\" | \"shopping-bag\" | \"shopping-cart\" | \"shopping\" | \"sim-card-sensor\" | \"sim-card\" | \"sound\" | \"sparkling\" | \"speaker\" | \"split\" | \"star-fill\" | \"star\" | \"stocks-growth\" | \"suspend\" | \"table-alt\" | \"tag\" | \"tags\" | \"test-tube\" | \"themes\" | \"three-ways\" | \"ticket\" | \"timer\" | \"toggle-off\" | \"toggle-on\" | \"toolkit\" | \"trash-disable\" | \"trash\" | \"truck\" | \"unavailable\" | \"unicorn\" | \"up-down-arrow\" | \"up\" | \"update\" | \"upload-cloud\" | \"upload\" | \"usb-stick\" | \"user-activity\" | \"user-admin\" | \"user-calendar\" | \"user-female\" | \"user-group\" | \"user-guide\" | \"user-male\" | \"user-permissions\" | \"user-tag\" | \"user\" | \"users-settings\" | \"vault\" | \"velocity\" | \"versions\" | \"visible\" | \"vtex\" | \"wallet\" | \"webhook\" | \"whatsapp\" | \"wi-fi\" | \"wired-network\" | \"withdraw\" | \"woocommerce\" | \"workflow\"",
                    "references": {
                        "IconType": {
                            "location": "import",
                            "path": "../../constants/icons",
                            "id": "src/constants/icons.ts::IconType"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Element icon name"
                },
                "attribute": "icon",
                "reflect": false
            },
            "avatar": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Avatar image url"
                },
                "attribute": "avatar",
                "reflect": false
            },
            "closable": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Element is closable"
                },
                "attribute": "closable",
                "reflect": false,
                "defaultValue": "false"
            },
            "disabled": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Element is disabled"
                },
                "attribute": "disabled",
                "reflect": false,
                "defaultValue": "false"
            },
            "ellipsis": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Element can show ellipsis on large text"
                },
                "attribute": "ellipsis",
                "reflect": false,
                "defaultValue": "false"
            },
            "tabstop": {
                "type": "boolean",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Disable navigation through tabs"
                },
                "attribute": "tabstop",
                "reflect": false,
                "defaultValue": "true"
            }
        };
    }
    static get events() {
        return [{
                "method": "close",
                "name": "close",
                "bubbles": false,
                "cancelable": true,
                "composed": true,
                "docs": {
                    "tags": [],
                    "text": "Event on close tag"
                },
                "complexType": {
                    "original": "{target: HTMLElement}",
                    "resolved": "{ target: HTMLElement; }",
                    "references": {
                        "HTMLElement": {
                            "location": "global",
                            "id": "global::HTMLElement"
                        }
                    }
                }
            }];
    }
    static get elementRef() { return "el"; }
}
