{"version":3,"file":"ironsource-fusion-ui-components-button-common-base.mjs","sources":["../../../projects/fusion-ui/components/button/common/base/button.base.component.ts","../../../projects/fusion-ui/components/button/common/base/button-config.ts","../../../projects/fusion-ui/components/button/common/base/ironsource-fusion-ui-components-button-common-base.ts"],"sourcesContent":["import {\n    Input,\n    OnInit,\n    ElementRef,\n    Renderer2,\n    Injector,\n    Output,\n    EventEmitter,\n    HostListener,\n    Directive,\n    OnDestroy,\n    AfterViewInit,\n    ViewChild\n} from '@angular/core';\nimport {IconData} from '@ironsource/fusion-ui/components/icon/v1';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\n\n@Directive()\nexport abstract class ButtonBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n    /** @internal */\n    @HostListener('click', ['$event']) onClick($event: any) {\n        this.onclick.emit($event);\n    }\n\n    /**\n     * Add button icon (IconData = string | Icon)\n     * @param value\n     * @internal\n     */\n    @Input() set icon(value: IconData) {\n        if (!isNullOrUndefined(value)) {\n            this.iconData = value;\n            this.iconName = typeof this.iconData === 'string' ? this.iconData : this.iconData.iconName;\n            this.setIconState(!!this.iconName);\n        } else {\n            this.setIconState(false);\n        }\n    }\n\n    /**\n     * Set disable state\n     * @param value\n     * @internal\n     */\n    @Input() set disabled(value: boolean) {\n        this.isDisabled = value;\n        this.setDisableState(value);\n    }\n\n    /**\n     * Set loading state\n     * @param value\n     * @internal\n     */\n    @Input() set loading(value: boolean) {\n        this.isLoading$.next(value);\n    }\n\n    get loading() {\n        return this.isLoading$.getValue();\n    }\n\n    /**\n     * Set button as link\n     * @param value\n     * @internal\n     */\n    @Input() set link(value: boolean) {\n        this.isLink = value;\n        this.setLinkButtonState(this.isLink);\n    }\n\n    /**\n     * @internal\n     */\n    @Output() onclick = new EventEmitter();\n\n    /** @internal */\n    @ViewChild('contentRef') contentRef: ElementRef;\n\n    /** @internal */\n    projectContent: boolean;\n    /** @internal */\n    isLink: boolean;\n    /** @internal */\n    iconName: string;\n    /** @internal */\n    iconData: IconData;\n    private isLoading$ = new BehaviorSubject<boolean>(false);\n    protected isDisabled: boolean;\n    private onDestroy$ = new Subject<void>();\n\n    constructor(injector: Injector, private element: ElementRef, private renderer: Renderer2) {}\n\n    ngOnInit() {\n        this.isLoading$.asObservable().pipe(takeUntil(this.onDestroy$)).subscribe(this.setLoadingState.bind(this));\n    }\n\n    ngAfterViewInit() {\n        this.projectContent = !!this.contentRef?.nativeElement?.innerText?.trim();\n        this.setHostClass(this.projectContent, 'fu-with-content');\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    protected setHostClass(add: boolean, className: string) {\n        const method = add ? 'addClass' : 'removeClass';\n        this.renderer[method](this.element.nativeElement, className);\n    }\n\n    private setHostAttribute(add: boolean, attributeName: string, attributeValue: string) {\n        const method = add ? 'setAttribute' : 'removeAttribute';\n        this.renderer[method](this.element.nativeElement, attributeName, add ? attributeValue : null);\n    }\n\n    protected setDisableState(disabling: boolean) {\n        this.setHostClass(disabling, 'disabled');\n        this.setHostAttribute(disabling, 'disabled', 'true');\n    }\n\n    protected setLoadingState(loading: boolean) {\n        this.setHostClass(loading, 'fu-with-loading');\n        if (!this.isDisabled) {\n            this.setDisableState(loading);\n        }\n    }\n\n    private setIconState(hasIcon: boolean) {\n        this.setHostClass(hasIcon, 'fu-iconed');\n    }\n\n    private setLinkButtonState(isLinkButton: boolean) {\n        this.setHostClass(isLinkButton, 'fu-link-button');\n    }\n}\n","import {ButtonOptions} from './button-entities';\n\nexport const BUTTON_OPTIONS_DEFAULT_VALUE: ButtonOptions = {\n    svgOptions: {assetsPath: ''}\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAoBsB,mBAAmB,CAAA;;AAEF,IAAA,OAAO,CAAC,MAAW,EAAA;AAClD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC7B;AAED;;;;AAIG;IACH,IAAa,IAAI,CAAC,KAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3F,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAA;KACJ;AAED;;;;AAIG;IACH,IAAa,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KAC/B;AAED;;;;AAIG;IACH,IAAa,OAAO,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAED,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KACrC;AAED;;;;AAIG;IACH,IAAa,IAAI,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACxC;AAsBD,IAAA,WAAA,CAAY,QAAkB,EAAU,OAAmB,EAAU,QAAmB,EAAA;QAAhD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AApBxF;;AAEG;AACO,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAa/B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAEjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAEmD;IAE5F,QAAQ,GAAA;QACJ,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC9G;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;KAC7D;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAES,YAAY,CAAC,GAAY,EAAE,SAAiB,EAAA;QAClD,MAAM,MAAM,GAAG,GAAG,GAAG,UAAU,GAAG,aAAa,CAAC;AAChD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;KAChE;AAEO,IAAA,gBAAgB,CAAC,GAAY,EAAE,aAAqB,EAAE,cAAsB,EAAA;QAChF,MAAM,MAAM,GAAG,GAAG,GAAG,cAAc,GAAG,iBAAiB,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC;KACjG;AAES,IAAA,eAAe,CAAC,SAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KACxD;AAES,IAAA,eAAe,CAAC,OAAgB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACjC,SAAA;KACJ;AAEO,IAAA,YAAY,CAAC,OAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KAC3C;AAEO,IAAA,kBAAkB,CAAC,YAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;KACrD;oFAtHiB,mBAAmB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAAnB,mBAAmB,EAAA,SAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;0GAAnB,GAAe,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;;iFAAf,mBAAmB,EAAA,CAAA;cADxC,SAAS;0FAG6B,OAAO,EAAA,CAAA;kBAAzC,YAAY;mBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;YASpB,IAAI,EAAA,CAAA;kBAAhB,KAAK;YAeO,QAAQ,EAAA,CAAA;kBAApB,KAAK;YAUO,OAAO,EAAA,CAAA;kBAAnB,KAAK;YAaO,IAAI,EAAA,CAAA;kBAAhB,KAAK;YAQI,OAAO,EAAA,CAAA;kBAAhB,MAAM;YAGkB,UAAU,EAAA,CAAA;kBAAlC,SAAS;mBAAC,YAAY,CAAA;;;AC9Ed,MAAA,4BAA4B,GAAkB;AACvD,IAAA,UAAU,EAAE,EAAC,UAAU,EAAE,EAAE,EAAC;;;ACHhC;;AAEG;;;;"}