{"version":3,"file":"ng-doc-ui-kit-components-clear-control.mjs","sources":["../../../../libs/ui-kit/components/clear-control/clear-control.component.ts","../../../../libs/ui-kit/components/clear-control/clear-control.component.html","../../../../libs/ui-kit/components/clear-control/ng-doc-ui-kit-components-clear-control.ts"],"sourcesContent":["import { AfterContentInit, ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgDocInputHost } from '@ng-doc/ui-kit/classes/input-host';\nimport { NgDocButtonIconComponent } from '@ng-doc/ui-kit/components/button-icon';\nimport { NgDocIconComponent } from '@ng-doc/ui-kit/components/icon';\nimport { NgDocFocusableDirective } from '@ng-doc/ui-kit/directives/focusable';\nimport { DIControl, injectHostControl } from 'di-controls';\n\n@Component({\n  selector: 'ng-doc-clear-control',\n  templateUrl: './clear-control.component.html',\n  styleUrls: ['./clear-control.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgDocButtonIconComponent, NgDocFocusableDirective, NgDocIconComponent],\n})\nexport class NgDocClearControlComponent<T> extends DIControl<T> implements AfterContentInit {\n  protected readonly inputHost: NgDocInputHost<T> | null = inject(NgDocInputHost, {\n    optional: true,\n  });\n\n  constructor() {\n    super({\n      host: injectHostControl(),\n    });\n  }\n\n  ngAfterContentInit(): void {\n    if (this.inputHost?.inputControl) {\n      this.inputHost.inputControl.changes\n        .pipe(takeUntilDestroyed(this['destroyRef']))\n        .subscribe(() => this.changeDetectorRef.detectChanges());\n    }\n  }\n\n  get isVisible(): boolean {\n    return this.inputHost?.inputControl?.hasValue || this.hasValue;\n  }\n\n  clear(): void {\n    this.inputHost?.inputControl?.writeValueFromHost(null);\n    this.updateModel(null);\n  }\n}\n","@if (isVisible) {\n  <button\n    ng-doc-button-icon-transparent\n    size=\"large\"\n    [ngDocFocusable]=\"false\"\n    [disabled]=\"disabled\"\n    [rounded]=\"false\"\n    (click)=\"clear()\"\n    (focusout)=\"touch()\">\n    <ng-doc-icon icon=\"x\"></ng-doc-icon>\n  </button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAeM,MAAO,0BAA8B,SAAQ,SAAY,CAAA;AAK7D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,CAAC;YACJ,IAAI,EAAE,iBAAiB,EAAE;AAC1B,SAAA,CAAC;AAPe,QAAA,IAAA,CAAA,SAAS,GAA6B,MAAM,CAAC,cAAc,EAAE;AAC9E,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;IAMF;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE;AAChC,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;iBACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC3C,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAC5D;IACF;AAEA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;IAChE;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACxB;8GA1BW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,uGCfvC,gSAYA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCY,wBAAwB,EAAA,QAAA,EAAA,+LAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,uHAAE,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEpE,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACE,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,gSAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA;;;AEblF;;AAEG;;;;"}