{"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 { NgIf } from '@angular/common';\nimport { AfterContentInit, ChangeDetectionStrategy, Component, inject } from '@angular/core';\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 { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\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: [NgIf, NgDocButtonIconComponent, NgDocFocusableDirective, NgDocIconComponent],\n})\n@UntilDestroy()\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(untilDestroyed(this))\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","<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  *ngIf=\"isVisible\">\n  <ng-doc-icon icon=\"x\"></ng-doc-icon>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAiBO,IAAM,0BAA0B,GAAhC,MAAM,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;;IAQF,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE;AAChC,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AACzB,iBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;iBACzB,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;;;AAI9D,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;;IAGhE,KAAK,GAAA;QACH,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;8GAzBb,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBvC,6QAWA,EDGY,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,wBAAwB,EAAA,QAAA,EAAA,+LAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,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;;AAG1E,0BAA0B,GAAA,UAAA,CAAA;AADtC,IAAA,YAAY,EAAE;;AACF,CAAA,EAAA,0BAA0B,CA2BtC;2FA3BY,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGf,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,IAAI,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,6QAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA;;;AEdxF;;AAEG;;;;"}