{"version":3,"file":"fulleffect-ngx-tailings.mjs","sources":["../../../../packages/ngx-tailings/src/lib/directives/fe-input-error.directive.ts","../../../../packages/ngx-tailings/src/lib/services/fe-form-messages.service.ts","../../../../packages/ngx-tailings/src/lib/components/form-message/form-message.component.ts","../../../../packages/ngx-tailings/src/lib/components/form-message/form-message.component.html","../../../../packages/ngx-tailings/src/lib/components/input-error-display/input-error-display.component.ts","../../../../packages/ngx-tailings/src/lib/components/input-error-display/input-error-display.component.html","../../../../packages/ngx-tailings/src/lib/ngx-tailings.module.ts","../../../../packages/ngx-tailings/src/fulleffect-ngx-tailings.ts"],"sourcesContent":["import {Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2} from '@angular/core';\r\nimport {FormControl, NgControl} from \"@angular/forms\";\r\nimport {Subscription} from \"rxjs\";\r\n\r\n@Directive({\r\n  standalone: true,\r\n  selector: '[feInputError]'\r\n})\r\nexport class FeInputErrorDirective implements OnInit, OnDestroy{\r\n\r\n  @Input() inputControl: FormControl | undefined;\r\n  private validityChangeSubscription: Subscription | undefined;\r\n\r\n  constructor(private el:ElementRef,\r\n              private renderer: Renderer2,\r\n              private control: NgControl) { }\r\n\r\n\r\n\r\n  ngOnInit(): void {\r\n        const control = this.inputControl || this.control.control;\r\n\r\n        this.validityChangeSubscription = control?.statusChanges.subscribe(status => {\r\n          if (status === 'INVALID' && (control.dirty || control.touched)){\r\n            this.renderer.setStyle(this.el.nativeElement, 'borderColor', 'red');\r\n          }else{\r\n            this.renderer.removeStyle(this.el.nativeElement, 'borderColor');\r\n          }\r\n        });\r\n    }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.validityChangeSubscription){\r\n      this.validityChangeSubscription.unsubscribe();\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class FeFormMessagesService {\r\n  private errorsSubject = new BehaviorSubject<string[]>([])\r\n  errors$: Observable<string[]> = this.errorsSubject.asObservable()\r\n\r\n  emitError(error: string | string[]) {\r\n    if (Array.isArray(error)) {\r\n      this.error(...error)\r\n    } else {\r\n      this.error(error)\r\n    }\r\n  }\r\n\r\n  private error(...errors: string[]) {\r\n    this.errorsSubject.next(errors)\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FeFormMessagesService } from '../../services';\nimport { BehaviorSubject, tap } from 'rxjs';\n\n@Component({\n  selector: 'fe-form-message',\n  standalone: true,\n  imports: [CommonModule, ],\n  templateUrl: './form-message.component.html',\n  styleUrl: './form-message.component.scss',\n})\nexport class FormMessageComponent implements OnInit{\n  get messages(): string[] {\n    return this._messages;\n  }\n\n  @Input()\n  set messages(value: string[] ) {\n    this._messages = value;\n    this.feMessagesService.emitError(value)\n  }\n  hidden$ = new BehaviorSubject(false);\n  errors$ =  this.feMessagesService.errors$.pipe(\n    tap((errors) =>{\n      if(errors.length){\n        this.hidden$.next(false);\n      }\n    })\n  )\n  @Input() closeable= true\n  @Input() title = \"Some errors were found on the form:\";\n\n  private _messages: string[] = []\n\n  constructor(private feMessagesService: FeFormMessagesService) {\n  }\n\n  ngOnInit(): void {\n    this.errors$ =  this.feMessagesService.errors$\n  }\n\n  close(){\n    this.feMessagesService.emitError([])\n    this.hidden$.next(true);\n  }\n}\n","<div  class=''>\n  <div *ngIf=\"errors$|async as errors\">\n    <div *ngIf=\"errors.length\" role=\"alert\" class=\"alert alert-warning\">\n      <div>\n        <span class=\"fa fa-info-circle fa-2x\"></span>\n      </div>\n      <div>\n        <div class=\"font-bold \">{{title}}</div>\n        <div>\n          <div *ngFor=\"let message of errors\" class=\"text-lg\">{{message}}</div>\n        </div>\n      </div>\n      <div>\n        <button (click)=\"close()\" class=\"btn btn-circle btn-sm\"><span class=\"fa fa-close\"></span></button>\n      </div>\n    </div>\n  </div>\n</div>\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {AbstractControl} from \"@angular/forms\";\r\nimport { NgIf, TitleCasePipe } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'fe-input-error-display',\r\n  templateUrl: './input-error-display.component.html',\r\n  standalone: true,\r\n  imports: [\r\n    TitleCasePipe,\r\n    NgIf\r\n  ],\r\n  styleUrl: './input-error-display.component.scss'\r\n})\r\nexport class InputErrorDisplayComponent {\r\n @Input() control: AbstractControl | null = null;\r\n\r\n @Input() controlName = 'this'\r\n\r\n\r\n\r\n\r\n}\r\n","<ng-container *ngIf=\"control && control.invalid && (control.dirty || control.touched)\">\r\n  <div *ngIf=\"control.hasError('required')\" class=\"label text-error\">\r\n    <span>{{ controlName|titlecase }} is required.</span>\r\n  </div>\r\n  <div *ngIf=\"control.hasError('minlength')\" class=\"label text-error\">\r\n    {{ controlName|titlecase }} is not up to required length\r\n  </div>\r\n  <div *ngIf=\"control.hasError('email')\" class=\"label text-error\" >\r\n    <span>Must be valid email address</span>\r\n  </div>\r\n<!--  TODO: Implement for custom validators-->\r\n<!--  <div *ngIf=\"control.hasError('forbiddenName')\">-->\r\n<!--    Name cannot be Bob.-->\r\n<!--  </div>-->\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FeFormMessagesService } from './services';\r\nimport { FormMessageComponent } from './components';\r\nimport { InputErrorDisplayComponent } from './components';\r\nimport { FeInputErrorDirective } from './directives';\r\n\r\n\r\nconst STANDALONE_COMPONENTS = [\r\n  FormMessageComponent,\r\n  InputErrorDisplayComponent,\r\n  FeInputErrorDirective\r\n]\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    ...STANDALONE_COMPONENTS\r\n  ],\r\n  providers: [\r\n    FeFormMessagesService\r\n  ],\r\n  exports: [\r\n    ...STANDALONE_COMPONENTS,\r\n  ]\r\n})\r\nexport class NgxTailingsModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FeFormMessagesService"],"mappings":";;;;;;;MAQa,qBAAqB,CAAA;AAKhC,IAAA,WAAA,CAAoB,EAAa,EACb,QAAmB,EACnB,OAAkB,EAAA;QAFlB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAW;QACb,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAW;KAAK;IAI3C,QAAQ,GAAA;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAE1D,IAAI,CAAC,0BAA0B,GAAG,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,IAAG;AAC1E,YAAA,IAAI,MAAM,KAAK,SAAS,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,EAAC;AAC7D,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;aACrE;iBAAI;AACH,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;aACjE;AACH,SAAC,CAAC,CAAC;KACN;IAEH,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,0BAA0B,EAAC;AAClC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;SAC/C;KACF;+GA3BU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;+HAGU,YAAY,EAAA,CAAA;sBAApB,KAAK;;;MCJK,qBAAqB,CAAA;AAHlC,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAW,EAAE,CAAC,CAAA;AACzD,QAAA,IAAA,CAAA,OAAO,GAAyB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAA;AAalE,KAAA;AAXC,IAAA,SAAS,CAAC,KAAwB,EAAA;AAChC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAA;SACrB;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SAClB;KACF;IAEO,KAAK,CAAC,GAAG,MAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAChC;+GAdU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCOY,oBAAoB,CAAA;AAC/B,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IACI,QAAQ,CAAC,KAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;KACxC;AAcD,IAAA,WAAA,CAAoB,iBAAwC,EAAA;QAAxC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAuB;AAb5D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,OAAO,GAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,MAAM,KAAI;AACb,YAAA,IAAG,MAAM,CAAC,MAAM,EAAC;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF,CAAC,CACH,CAAA;QACQ,IAAS,CAAA,SAAA,GAAE,IAAI,CAAA;QACf,IAAK,CAAA,KAAA,GAAG,qCAAqC,CAAC;QAE/C,IAAS,CAAA,SAAA,GAAa,EAAE,CAAA;KAG/B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,GAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAA;KAC/C;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;+GAjCU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZjC,+kBAkBA,EAAA,MAAA,EAAA,CAAA,s2r3CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDVY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACf,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAG,EAAA,QAAA,EAAA,+kBAAA,EAAA,MAAA,EAAA,CAAA,s2r3CAAA,CAAA,EAAA,CAAA;uFAUrB,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAaG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEjBK,0BAA0B,CAAA;AAVvC,IAAA,WAAA,GAAA;QAWU,IAAO,CAAA,OAAA,GAA2B,IAAI,CAAC;QAEvC,IAAW,CAAA,WAAA,GAAG,MAAM,CAAA;AAK7B,KAAA;+GARY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,ECdvC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8sBAeA,EDNI,MAAA,EAAA,CAAA,yy5CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAa,kDACb,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIK,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,SAAS;+BACE,wBAAwB,EAAA,UAAA,EAEtB,IAAI,EACP,OAAA,EAAA;wBACP,aAAa;wBACb,IAAI;AACL,qBAAA,EAAA,QAAA,EAAA,8sBAAA,EAAA,MAAA,EAAA,CAAA,yy5CAAA,CAAA,EAAA,CAAA;8BAIO,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;AETP,MAAM,qBAAqB,GAAG;IAC5B,oBAAoB;IACpB,0BAA0B;IAC1B,qBAAqB;CACtB,CAAA;MAcY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAjB,iBAAiB,EAAA,OAAA,EAAA,CAV1B,YAAY,EAPd,oBAAoB;YACpB,0BAA0B;AAC1B,YAAA,qBAAqB,aAFrB,oBAAoB;YACpB,0BAA0B;YAC1B,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAeV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAPjB,SAAA,EAAA;YACT,qBAAqB;SACtB,EALC,OAAA,EAAA,CAAA,YAAY,EAPd,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAiBT,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;AACZ,wBAAA,GAAG,qBAAqB;AACzB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA,GAAG,qBAAqB;AACzB,qBAAA;AACF,iBAAA,CAAA;;;ACzBD;;AAEG;;;;"}