{"version":3,"file":"sql-components.mjs","sources":["../../../projects/sql-components/src/lib/sql-components.service.ts","../../../projects/sql-components/src/lib/sql-components.component.ts","../../../projects/sql-components/src/lib/data.service.ts","../../../projects/sql-components/src/lib/sql-form/sql-form.component.ts","../../../projects/sql-components/src/lib/sql-form/sql-form.component.html","../../../projects/sql-components/src/lib/sql-add-table/sql-add-table.component.ts","../../../projects/sql-components/src/lib/sql-add-table/sql-add-table.component.html","../../../projects/sql-components/src/lib/sql-checkbox/sql-checkbox.component.ts","../../../projects/sql-components/src/lib/sql-checkbox/sql-checkbox.component.html","../../../projects/sql-components/src/lib/sql-fullcalendar/sql-fullcalendar.component.ts","../../../projects/sql-components/src/lib/sql-fullcalendar/sql-fullcalendar.component.html","../../../projects/sql-components/src/lib/sql-panel/sql-panel.component.ts","../../../projects/sql-components/src/lib/sql-panel/sql-panel.component.html","../../../projects/sql-components/src/lib/sql-card/sql-card.component.ts","../../../projects/sql-components/src/lib/sql-card/sql-card.component.html","../../../projects/sql-components/src/lib/sql-datepicker/sql-datepicker.component.ts","../../../projects/sql-components/src/lib/sql-datepicker/sql-datepicker.component.html","../../../projects/sql-components/src/lib/sql-upload-form/sql-upload-form.component.ts","../../../projects/sql-components/src/lib/sql-upload-form/sql-upload-form.component.html","../../../projects/sql-components/src/lib/sql-input/sql-input.component.ts","../../../projects/sql-components/src/lib/sql-input/sql-input.component.html","../../../projects/sql-components/src/lib/sql-select/sql-select.component.ts","../../../projects/sql-components/src/lib/sql-select/sql-select.component.html","../../../projects/sql-components/src/lib/sql-textarea/sql-textarea.component.ts","../../../projects/sql-components/src/lib/sql-textarea/sql-textarea.component.html","../../../projects/sql-components/src/lib/sql-calendar/sql-calendar.component.ts","../../../projects/sql-components/src/lib/sql-calendar/sql-calendar.component.html","../../../projects/sql-components/src/lib/sql-radio-group/sql-radio-group.component.ts","../../../projects/sql-components/src/lib/sql-radio-group/sql-radio-group.component.html","../../../projects/sql-components/src/lib/sql-table/sql-table.component.ts","../../../projects/sql-components/src/lib/sql-table/sql-table.component.html","../../../projects/sql-components/src/lib/sql-edit-table/sql-edit-table.component.ts","../../../projects/sql-components/src/lib/sql-edit-table/sql-edit-table.component.html","../../../projects/sql-components/src/lib/sql-submit/sql-submit.component.ts","../../../projects/sql-components/src/lib/sql-submit/sql-submit.component.html","../../../projects/sql-components/src/lib/sql-components.module.ts","../../../projects/sql-components/src/lib/sql-dialog/sql-dialog.component.ts","../../../projects/sql-components/src/lib/sql-dialog/sql-dialog.component.html","../../../projects/sql-components/src/lib/sql-delete-dialog/sql-delete-dialog.component.ts","../../../projects/sql-components/src/lib/sql-delete-dialog/sql-delete-dialog.component.html","../../../projects/sql-components/src/lib/sql-delete/sql-delete.component.ts","../../../projects/sql-components/src/lib/sql-delete/sql-delete.component.html","../../../projects/sql-components/src/lib/sql-menu/sql-menu.component.ts","../../../projects/sql-components/src/lib/sql-menu/sql-menu.component.html","../../../projects/sql-components/src/lib/sql-data-menu/sql-data-menu.component.ts","../../../projects/sql-components/src/lib/sql-data-menu/sql-data-menu.component.html","../../../projects/sql-components/src/lib/sql-data-select/sql-data-select.component.ts","../../../projects/sql-components/src/lib/sql-data-select/sql-data-select.component.html","../../../projects/sql-components/src/lib/sql-default-value/sql-default-value.component.ts","../../../projects/sql-components/src/lib/sql-default-value/sql-default-value.component.html","../../../projects/sql-components/src/lib/pre-insert-trigger/pre-insert-trigger.component.ts","../../../projects/sql-components/src/lib/pre-insert-trigger/pre-insert-trigger.component.html","../../../projects/sql-components/src/lib/pre-update-trigger/pre-update-trigger.component.ts","../../../projects/sql-components/src/lib/pre-update-trigger/pre-update-trigger.component.html","../../../projects/sql-components/src/lib/post-insert-trigger/post-insert-trigger.component.ts","../../../projects/sql-components/src/lib/post-insert-trigger/post-insert-trigger.component.html","../../../projects/sql-components/src/lib/sql-data-preview/sql-data-preview.component.ts","../../../projects/sql-components/src/lib/sql-data-preview/sql-data-preview.component.html","../../../projects/sql-components/src/lib/sql-data-preview2/sql-data-preview2.component.ts","../../../projects/sql-components/src/lib/sql-data-preview2/sql-data-preview2.component.html","../../../projects/sql-components/src/lib/sql-data-preview3/sql-data-preview3.component.ts","../../../projects/sql-components/src/lib/sql-data-preview3/sql-data-preview3.component.html","../../../projects/sql-components/src/lib/sql-edit-preview/sql-edit-preview.component.ts","../../../projects/sql-components/src/lib/sql-edit-preview/sql-edit-preview.component.html","../../../projects/sql-components/src/lib/sql-edit-preview2/sql-edit-preview2.component.ts","../../../projects/sql-components/src/lib/sql-edit-preview2/sql-edit-preview2.component.html","../../../projects/sql-components/src/lib/sql-edit-preview3/sql-edit-preview3.component.ts","../../../projects/sql-components/src/lib/sql-edit-preview3/sql-edit-preview3.component.html","../../../projects/sql-components/src/lib/sql-editor/sql-editor.component.ts","../../../projects/sql-components/src/lib/sql-editor/sql-editor.component.html","../../../projects/sql-components/src/lib/sql.resolver.ts","../../../projects/sql-components/src/public-api.ts","../../../projects/sql-components/src/sql-components.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SqlComponentsService {\n\n  constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'lib-sql-components',\n  template: `\n    <p>\n      sql-components works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class SqlComponentsComponent {\n\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpClientModule, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { BehaviorSubject, of } from 'rxjs';\nimport * as CryptoJS from 'crypto-js';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SQLDataService {\n\n  public dataSubject = new BehaviorSubject<any>({});\n  public pageSubject = new BehaviorSubject<any>({});\n  public paramSubject = new BehaviorSubject<any>({ page: \"AAA\", id: \"\", id2: \"\", id3: \"\", id_col: \"id\", id2_col: \"\", id3_col: \"\" });\n  public routerSubject = new BehaviorSubject<any>({});\n  public containerSubject = new BehaviorSubject<any>({ id: \"\", id2: \"\", id3: \"\", id_col: \"id\", id2_col: \"\", id3_col: \"\" });\n\n  enData: any;\n  dataValue: any = { id: \"hello\", id2: \"world\" }\n  TheSecret=\"hide-triggers\";\n  saltHex: any;\n  ctHex: any;\n  ivHex: any;\n\n  t: any;\n  uid: any;\n  url: any;\n  base: any;\n  surl: any;\n  un: any;\n  role: any;\n  config: any;\n  counter: number = 0;\n\n  constructor(private http: HttpClient,  @Inject('WEBSERVER') private webserver: string) { \n        if (webserver===''||webserver===undefined) {\n          alert(\"Missing Provider in module.ts. It should include: { provide: WEBSERVER, useValue: 'https://example.com/api/' }\")\n        } else {\n          this.base=webserver;\n        }\n        this.url=this.base+'sqlcomponents.php';\n\n  }\n\n  getLocalStorage() {\n    //\n    if (localStorage.getItem('uid')===null) {\n      this.uid=\"0\";\n    } else {\n      this.uid=localStorage.getItem('uid')\n    }\n\n    if (localStorage.getItem('un')===null) {\n      this.un=\"\";\n    } else {\n      this.un=localStorage.getItem('un')\n    }\n\n    if (localStorage.getItem('role')===null) {\n      this.role=\"\";\n    } else {\n      this.role=localStorage.getItem('role')\n    }\n  }\n\n  getSelect(sql: any, params: any) {\n    this.getLocalStorage();\n    const data = {\n      \"q\" : 'getselect',\n      \"sql\": sql,   \n      \"parameters\": params,   \n      \"uid\": this.uid\n    }\n\n  this.t= this.http.post(this.base+\"sqlcomponents.php\", data);\n  return this.t;\n\n  }\n\n  getColumns(sql: any, params: any) {\n    this.getLocalStorage();\n    const data = {\n      \"q\" : 'getcolumns',\n      \"sql\": sql,   \n      \"parameters\": params,   \n      \"uid\": this.uid\n    }\n\n  this.t= this.http.post(this.base+\"sqlcomponents.php\", data);\n  return this.t;\n\n  }\n\n  pingParameters(path: any) {\n\n      let output: any = { page: '', id: '', id2: '', id3: '' };\n  \n      let j: any = path.split('/');\n  \n      if (j[1]!==undefined) { output.page=j[1]; }\n      if (j[2]!==undefined) { output.id=j[2];   }\n      if (j[3]!==undefined) { output.id2=j[3];  }\n      if (j[4]!==undefined) { output.id3=j[4];  }\n  \n      return of(output);\n  \n  }\n\n  getSQL(sql: any, id: any) {\n    this.counter++;\n    this.getLocalStorage();\n    const data = {\n      \"counter\": this.counter,\n      \"q\": \"getsql\",\n      \"parameters\" : id,\n      \"sql\": sql,     \n      \"uid\": this.uid,\n    }\n    if (this.counter!=2) {\n      this.t= this.http.post(this.base+\"sqlcomponents.php\", data);\n      return this.t;\n    }\n  }\n\n  getMenu(sql: any, id: any) {\n    this.getLocalStorage();\n    const data = {\n      \"q\": \"getmenu\",\n      \"parameters\" : id,\n      \"sql\": sql,  \n      \"uid\": this.uid\n    }\n\n  this.t= this.http.post(this.base+\"sqlcomponents.php\", data);\n  return this.t;\n\n  }\n\n  postSQL(formData: any) {\n\n    var CryptoJSAesJson = {\n      stringify: function (cipherParams: any) {\n        var j: any = { ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64) };\n        if (cipherParams.iv) j.iv = cipherParams.iv.toString();\n        if (cipherParams.salt) j.s = cipherParams.salt.toString();\n        return JSON.stringify(j);\n      },\n      parse: function (jsonStr: any) {\n        var j = JSON.parse(jsonStr);\n        var cipherParams = CryptoJS.lib.CipherParams.create({\n          ciphertext: CryptoJS.enc.Base64.parse(j.ct),\n        });\n        if (j.iv) cipherParams.iv = CryptoJS.enc.Hex.parse(j.iv);\n        if (j.s) cipherParams.salt = CryptoJS.enc.Hex.parse(j.s);\n        return cipherParams;\n      },\n    };\n\n    this.getLocalStorage();\n\n    console.log(formData.triggers)\n    if (formData.triggers!==undefined) {\n      let triggers=formData.triggers;\n      let k = CryptoJS.AES.encrypt(JSON.stringify(triggers), this.TheSecret, {format: CryptoJSAesJson}).toString();\n      formData.triggers=k;\n    }\n\n    const data = {\n      \"q\" : \"postform\",\n      \"data\": formData,\n      \"uid\": this.uid\n    }\n\n  this.t= this.http.post(this.base+\"sqlcomponents.php\", data);\n  return this.t;\n\n  }\n\n  postDelete(formData: any) {\n\n    var CryptoJSAesJson = {\n      stringify: function (cipherParams: any) {\n        var j: any = { ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64) };\n        if (cipherParams.iv) j.iv = cipherParams.iv.toString();\n        if (cipherParams.salt) j.s = cipherParams.salt.toString();\n        return JSON.stringify(j);\n      },\n      parse: function (jsonStr: any) {\n        var j = JSON.parse(jsonStr);\n        var cipherParams = CryptoJS.lib.CipherParams.create({\n          ciphertext: CryptoJS.enc.Base64.parse(j.ct),\n        });\n        if (j.iv) cipherParams.iv = CryptoJS.enc.Hex.parse(j.iv);\n        if (j.s) cipherParams.salt = CryptoJS.enc.Hex.parse(j.s);\n        return cipherParams;\n      },\n    };\n\n    this.getLocalStorage();\n\n    console.log(formData.triggers)\n    if (formData.triggers!==undefined) {\n      let triggers=formData.triggers;\n      let k = CryptoJS.AES.encrypt(JSON.stringify(triggers), this.TheSecret, {format: CryptoJSAesJson}).toString();\n      formData.triggers=k;\n    }\n\n    const data = {\n      \"q\" : \"postdelete\",\n      \"data\": formData,\n      \"uid\": this.uid\n    }\n\n  this.t= this.http.post(this.base+\"sqlcomponents.php\", data);\n  return this.t;\n\n  }\n\n  getData(path: any, id: any, id2: any, id3: any, id_col: any, id_col2: any, id_col3: any) {\n    this.getLocalStorage();\n    const data = {\n      \"q\" : path,\n      \"id\": id,\n      \"id2\": id2,\n      \"id3\": id3, \n      \"id_col\": id_col,\n      \"id2_col\": id_col2,\n      \"id3_col\": id_col3,      \n      \"uid\": this.uid\n    }\n\n  this.t= this.http.post(this.url, data);\n  return this.t;\n\n  }\n\n  postForm(formData: any[]) {\n\n    var CryptoJSAesJson = {\n      stringify: function (cipherParams: any) {\n        var j: any = { ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64) };\n        if (cipherParams.iv) j.iv = cipherParams.iv.toString();\n        if (cipherParams.salt) j.s = cipherParams.salt.toString();\n        return JSON.stringify(j);\n      },\n      parse: function (jsonStr: any) {\n        var j = JSON.parse(jsonStr);\n        var cipherParams = CryptoJS.lib.CipherParams.create({\n          ciphertext: CryptoJS.enc.Base64.parse(j.ct),\n        });\n        if (j.iv) cipherParams.iv = CryptoJS.enc.Hex.parse(j.iv);\n        if (j.s) cipherParams.salt = CryptoJS.enc.Hex.parse(j.s);\n        return cipherParams;\n      },\n    };\n\n    this.getLocalStorage();\n\n    let k = CryptoJS.AES.encrypt(JSON.stringify(formData), this.TheSecret, {format: CryptoJSAesJson}).toString();\n\n    const data = {\n      \"q\" : \"postform\",\n      \"data\": k,\n      \"uid\": this.uid\n    }\n\n  this.t= this.http.post(this.url, data);\n  return this.t;\n\n  }\n\n  getUser() {\n    this.getLocalStorage()\n    const data = {\n      \"q\" : \"vertical-menu\",\n      \"uid\": this.uid,\n      \"role\": this.role\n    }\n\n    this.t= this.http.post(\"https://myna-api.com/api/u.php\", data);\n    return this.t;\n\n  }\n  \n  getForm(table_name: any, parameters: any) {\n    this.getLocalStorage()\n    const data = {\n      \"q\" : \"getform\",\n      \"table\": table_name,\n      \"parameters\": parameters\n    }\n\n    this.t= this.http.post(this.base+\"sqlcomponents.php\", data);\n    return this.t;\n\n  }\n\npushNotification(data: any) {\n  this.dataSubject.next(data);\n}\n\npushPage(data: any) {\n  this.pageSubject.next(data);\n}\n\ngetCalendar(sql: any, params: any) {\n      this.getLocalStorage();\n      const data = {\n        \"q\" : 'calendar',\n        \"sql\": sql,   \n        \"parameters\": params,   \n        \"uid\": this.uid\n      }\n\n    this.t= this.http.post(this.base+\"sqlcomponents.php\", data);\n    return this.t;\n\n}\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, ViewChild, ElementRef, AfterViewInit, DoCheck, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { MatCommonModule } from '@angular/material/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-form',\n  standalone: true,\n  imports: [CommonModule, MatCommonModule],\n  templateUrl: './sql-form.component.html',\n  styleUrls: ['./sql-form.component.css']\n})\nexport class SqlFormComponent implements OnInit, DoCheck, OnChanges, AfterViewInit, OnDestroy  {\n\n  last_id: any = '';\n  myDataObs!: Subscription;        // dataSubject contains form fields\n  myContainerObs!: Subscription;   // containerSubject contains parameters modified by its container.\n  containerParameters: any = { id: '', id2: '', id3: '' };\n\n  //-- Inputs\n  @Input() data: any;                                     \n  @Input() id: any = '0';         \n  @Input() id2: any = '0';         \n  @Input() id3: any = '0';\n  @Input() id2_col: any = '';\n  @Input() id3_col: any = '';\n  @Input() default_col: any = '';  \n  @Input() default_col2: any = '';  \n  @Input() default_col3: any = '';   \n  @Input() default_value: any = '';  \n  @Input() default_value2: any = '';\n  @Input() default_value3: any = '';\n  @Input() table: any = \"dual\";\n  @Input() embedded: any = \"Y\";\n  @Input() card: any = \"Y\";\n  @Input() closable: any = \"N\";                           \n  @Input() open: any = \"Y\";                               \n  @Input() class: any = \"\";                              \n  @Input() style: any = \"\";                              \n  @Input() title: any = \"\";                              \n  @Input() bs_row: any = 'N';                             \n  @Input() bs_col: any = '';   \n  @Input() handler: any = 'default';        \n  @Input() reload: any = 'N';              \n\n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n\n  @Output() change: EventEmitter<any> = new EventEmitter<any>();\n  @Output() saved: EventEmitter<any> = new EventEmitter<any>();\n  counter: number = 0;\n\n  showErrorAlert: any = 'N';\n  errorMessage: any = 'Post Failed'\n  showSuccessAlert: any = 'N';\n\n  constructor(private _dataService: SQLDataService) {\n    // part of an edit table or container.\n\n    if (this.embedded=='Y') {\n      console.log('form constructor')\n      this.myContainerObs = this._dataService.containerSubject.subscribe(d => {\n        console.log('container parameters')\n        console.log(d)\n        this.containerParameters=d;\n        if (this.containerParameters.id!=this.last_id) {\n          this.last_id=this.containerParameters.id;\n          this.id=this.containerParameters.id;\n          if (this.containerParameters.id2!==undefined) { this.id2=this.containerParameters.id2; }\n          if (this.containerParameters.id3!==undefined) { this.id3=this.containerParameters.id3; }\n          if (this.containerParameters.default_col!==undefined) { this.default_col=this.containerParameters.default_col; }\n          if (this.containerParameters.default_col2!==undefined) { this.default_col=this.containerParameters.default_col2; }\n          if (this.containerParameters.default_col3!==undefined) { this.default_col=this.containerParameters.default_col3; }\n          this.getFormData();\n        }\n      })\n    } else {\n\n    }     \n    this.myDataObs = this._dataService.dataSubject.subscribe(d => {\n        console.log('data subject')\n        this.data=d;\n        if (this.data.id!=this.last_id) {\n          this.last_id=this.data.id;\n          this.id=this.data.id;\n        }\n        if (this.data.submit==='Y') {\n          this.postSQL();\n        }\n        if (this.data.submit==='D') {\n          this.postDelete();\n        }\n      })\n\n   }\n\n  ngOnInit(): void {\n\n  }\n\n  getFormData() {\n    this.parameters.id=this.id;\n    this.parameters.id2=this.id2;\n    this.parameters.id3=this.id3;\n    this.parameters.default_col=this.default_col;\n    this.parameters.default_col2=this.default_col2;\n    this.parameters.default_col3=this.default_col3;\n    if (this.table!='dual') {\n      this._dataService.getForm(this.table, this.parameters).subscribe((data:any)=>{\n          this.data=data;\n//          if (this.default_col!='') { this.data[this.default_col]=this.default_value }\n//          if (this.default_col2!='') { this.data[this.default_col2]=this.default_value2 }        \n//          if (this.default_col3!='') { this.data[this.default_col3]=this.default_value3 }\n          this._dataService.pushNotification(this.data);\n    });\n  }\n  }\n\n  ngAfterViewInit(): void {\n      console.log('AVI geting form')\n      if (this.embedded!=='Y') {\n        this.getFormData();\n      }\n  }\n\n  postSQL() {\n    this._dataService.postSQL(this.data).subscribe((data:any)=>{\n      if (data.error_code==\"0\") { \n        this.showSuccessAlert='Y';\n        this.showErrorAlert='N';\n        this.errorMessage='Record Saved';\n      } else {\n        this.showSuccessAlert='N';\n        this.showErrorAlert='Y';\n        this.errorMessage=data.error_message;\n        this.errorMessage='Record Saved';\n      }\n      \n      if (this.reload=='N') {\n        setTimeout(()=>{\n          this.showErrorAlert='N';\n          this.showSuccessAlert='N';\n          this.data.refresh='Y';\n          this.data.submit='N';\n          this._dataService.pushNotification(data);\n        },1000);\n      } else {\n        setTimeout(()=>{\n          this.showErrorAlert='N';\n          this.showSuccessAlert='N';\n          this.data.refresh='Y';\n          this.data.submit='N';\n          this._dataService.pushNotification(data);\n          location.reload();\n        },500);\n      }\n\n\n    });\n\n  }\n  \n  postDelete() {\n    this._dataService.postDelete(this.data).subscribe((data:any)=>{\n      if (data.error_code==\"0\") { \n        this.showSuccessAlert='Y';\n        this.showErrorAlert='N';\n        this.errorMessage='Record Saved';\n      } else {\n        this.showSuccessAlert='N';\n        this.showErrorAlert='Y';\n        this.errorMessage=data.error_message;\n        this.errorMessage='Record Saved';\n      }\n      \n      setTimeout(()=>{\n        this.showErrorAlert='N';\n        this.showSuccessAlert='N';\n        this.data.refresh='Y';\n        this.data.submit='N';\n        this._dataService.pushNotification(data);\n      },1000);\n\n    });\n\n  }\n\n  ngDoCheck(): void {\n\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n\n  }\n\n\n  ngOnDestroy(): void {\n//    this.myContainerObs.unsubscribe();\n//    this.myDataObs.unsubscribe();\n  }\n}","<div *ngIf=\"card=='N'\">\n    <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n        <div [class]=\"bs_col\">\n            <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n        </div>\n    </div>\n    <div *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n        <div [class]=\"bs_col\">\n            <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n        </div>\n    </div>\n    <div *ngIf=\"bs_row!='Y'&&bs_col==''\">\n            <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n    </div>\n</div>\n\n<div *ngIf=\"card=='Y'\">\n    <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n        <div [class]=\"bs_col\">\n            <div class=\"card\">\n                <div class=\"card-header\" style=\"margin-top: 0px;\">\n                    <h2>{{ title }}</h2>\n                </div>\n                <div class=\"card-body\">\n                    <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n        <div [class]=\"bs_col\">\n            <div class=\"card\">\n                <div class=\"card-header p-2\">\n                    <h2>{{ title }}</h2>\n                </div>\n                <div class=\"card-body\">\n                    <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                </div>\n            </div>\n        </div>\n    </div>    \n    <div *ngIf=\"bs_row!='Y'&&bs_col==''\">\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <h2 p-2>{{ title }}</h2>\n                </div>\n                <div class=\"card-body\">\n                    <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                </div>\n            </div>\n    </div>    \n</div>\n\n<ng-template #contentTmpl>\n    <div *ngIf=\"showSuccessAlert=='Y'\" class=\"alert alert-success\" role=\"alert\">\n        {{ this.errorMessage }}\n      </div>\n      <div *ngIf=\"showErrorAlert=='Y'\" class=\"alert alert-danger\" role=\"alert\">\n        {{ this.errorMessage }}\n      </div>\n    <ng-content></ng-content>\n    <div *ngIf=\"showSuccessAlert=='Y'\" class=\"alert alert-success\" role=\"alert\">\n        {{ this.errorMessage }}\n      </div>\n      <div *ngIf=\"showErrorAlert=='Y'\" class=\"alert alert-danger\" role=\"alert\">\n        {{ this.errorMessage }}\n      </div>\n</ng-template>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription, Observable, from } from 'rxjs';\n\n@Component({\n  selector: 'sql-add-table',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule,\n    NgxTablePaginationModule, \n    Ng2SearchPipeModule],\n  templateUrl: './sql-add-table.component.html',\n  styleUrls: ['./sql-add-table.component.css']\n})\nexport class SqlAddTableComponent implements OnInit, AfterViewInit, OnDestroy  {\n  // \n  @ContentChildren('title') private title_list!: ElementRef;\n  @ContentChildren('column') private column_list!: ElementRef[];\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  myParameterObs!: Subscription;\n  \n  // format: is built from ContentChildren and Input Parameters\n  format: any = { title: '', search: '', class: '', style: '', columns: [], buttons: [] };\n  term: any;          // used by search filter.\n  list: any;          // holds the list returned by the query.\n  p: any;             // used by pagination\n  adding: any = 'N';\n  \n  row_placeholder: any = 'row';\n  col_placeholder: any = 'col-12';\n  \n  //-- Inputs\n  @Input() use_parameters = 'N';\n  @Input() data: any = '';                                // Use Data if data comes from function.\n  @Input() sql: any = '';                                 // SQL that gets data.\n  @Input() card: any = \"Y\";                               // Show the form in a card Y/N\n  @Input() card_class: any = '';\n  @Input() card_style: any = '';\n  @Input() container_class: any = 'container-fluid m-2 p-2';              // Class of the outer ng-container.\n  @Input() container_style: any = '';                     // Style of the outer ng-container.  \n  @Input() closable: any = \"N\";                           // Is the form closable Y/N\n  @Input() search: any = 'TOP';                           // Location of the search box.\n  @Input() bs_row: any = 'Y';                             // Y means add a bootstrap row.\n  @Input() bs_col: any = 'col-sm-12 col-lg-12 col-xl-12';   // What bootstrap columns.\n  @Input() table_class: any = 'table table-striped table-condensed';   // class of the table.\n  @Input() table_style: any = '';                                      // style of the table.\n  @Input() edit: any = 'Y';                               // Add custom edit button.\n  @Input() title: any = 'Title Not Set';                  // title of the page.\n  @Input() pagination: any = 'Y';                         // Include pagination.\n  @Input() pagesize: number = 25;                         // rows per page for pagination.\n  @Input() id: any = '0';                                 // id for where clause.\n  @Input() id2: any = '0';                                 // id for where clause.\n  @Input() id3: any = '0';                                 // id for where clause.\n\n  @Input() open: any = \"Y\";                               // Does a closable list start open.\n  @Input() class: any = 'table table-striped table-condensed';  // Class for the table container.\n  @Input() style: any = \"\";                               // Style for the table container.\n  @Input() handler: any = 'default';                      // what handler is used to process the form.\n  @Output() button_click: EventEmitter<any> = new EventEmitter<any>();\n  @Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n  @Output() top_button_click: EventEmitter<any> = new EventEmitter<any>();\n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  last_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n  page: any = '';\n  \n  counter: number = 0;\n  \n  constructor(private _dataService: SQLDataService) {     \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      if (d.error_code===0) {\n        this.adding='N';\n        this.tableRefresh();\n      }\n    })\n  }\n  \n  ngOnInit(): void {\n  this.format.search='Y';\n  }\n  \n  topButtonClick(m: any) {\n  this.top_button_click.emit(m);\n  }\n  \n  rowClick(m: any) {\n  this.row_click.emit(m);\n  }\n  \n  editClick(m: any) {\n\n      console.log('clicked m')\n\n      let p: any = { id: '', id2: '', id3: '' };\n\n      if (m.id!==undefined) { p.id = m.id };\n      if (m.id2!==undefined) { p.id2 = m.id2 };\n      if (m.id3!==undefined) { p.id3 = m.id3 };\n\n      if (m.edit==='Y') {\n          m.edit='N';\n      } else {\n          this.list.forEach((value: any) => {\n               value.edit='N';\n           });\n           this.adding='N';\n           this._dataService.containerSubject.next(p);\n          m.edit='Y';\n      }\n\n  }\n  \n  addClick() {\n    let p: any = { id: '', id2: '', id3: '' };\n    if (this.adding==='Y') {\n        this.adding='N';\n    } else {\n        this.list.forEach((value: any) => {\n             value.edit='N';\n         });\n        this._dataService.containerSubject.next(p);\n        this.adding='Y';\n    }\n}\n\n  buttonClick(m: any) {\n  this.button_click.emit(m);\n  }\n  \n  ngAfterViewInit(): void {\n    if (this.use_parameters==='Y') {\n      this.myParameterObs = this._dataService.paramSubject.subscribe(d => {\n        this.parameters=d;\n        this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n      })\n    } \n    if (this.use_parameters==='N') {\n        this.parameters.page=this.page;\n        this.parameters.id=this.id;\n        this.parameters.id2=this.id2;\n        this.parameters.id3=this.id3;\n        this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n    }\n\n  this.format.title=this.title;\n  this.format.class=this.class;\n  this.format.style=this.style;\n  this.format.pagination=this.pagination;\n  this.format.pagesize=this.pagesize;\n  if (this.bs_row=='Y') {\n      this.row_placeholder=\"row\";\n  } else {\n      this.row_placeholder=\"none\";\n  }\n  this.col_placeholder=this.bs_col;\n  \n  this.column_list.forEach((e: ElementRef) => {\n  \n       let column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n       \n       //-- TH is data column\n       if (e.nativeElement.nodeName=='TH') {\n         column_template.type=\"data\";\n         column_template.value=e.nativeElement.id;\n         column_template.title=e.nativeElement.innerHTML;\n       }      \n       //-- BUTTON is button column\n       if (e.nativeElement.nodeName=='BUTTON') {\n         column_template.type=\"button\";\n         column_template.value='';\n         column_template.title=e.nativeElement.innerHTML;\n       } \n       //-- TD is text column\n       if (e.nativeElement.nodeName=='TD') {\n         column_template.type=\"text\";\n         column_template.title='';\n         column_template.value=e.nativeElement.innerHTML;\n       } \n       if (e.nativeElement.className!==undefined) { column_template.class=e.nativeElement.className; }\n       column_template.style=e.nativeElement.style.cssText;\n       this.format.columns.push(column_template);\n       \n  });\n\n   if (this._dataService!==undefined&&this.parameters!==undefined&&this.sql!==undefined) {\n      if (this.last_parameters.page!=this.parameters.page||\n          this.last_parameters.id!=this.parameters.id||\n          this.last_parameters.id2!=this.parameters.id2||\n          this.last_parameters.id3!=this.parameters.id3) {\n                this.last_parameters.page=this.parameters.page;\n                this.last_parameters.id=this.parameters.id;\n                this.last_parameters.id2=this.parameters.id2;\n                this.last_parameters.id3=this.parameters.id3;\n                 try {\n                  this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n                    if (data!==undefined) {\n                      this.list=data;\n                    }\n                  });\n                } catch {\n \n                }\n\n          }\n      }\n  }\n  \n  tableRefresh() {\n            this.last_parameters.page=this.parameters.page;\n            this.last_parameters.id=this.parameters.id;\n            this.last_parameters.id2=this.parameters.id2;\n            this.last_parameters.id3=this.parameters.id3;\n            this.adding='N';\n            this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n              this.list=data;\n            });\n  }\n  \n  ngOnDestroy(): void {\n //     this.myObs.unsubscribe();\n //     this.myDataObs.unsubscribe();\n //     this.myParameterObs.unsubscribe();\n  }\n\n  }","<div class=\"card\" [class]=\"class\" [style]=\"style\">\n    <div class=\"card-header\"  style=\"margin-top: 0px;\">\n        <div class=\"row\" style=\"width:100%;\">\n            <div class=\"col-md-9\">\n                <h2>{{ title }}</h2>\n            </div>\n            <div class=\"col-md-3\" style=\"text-align: right;\">\n                <button (click)=\"addClick()\" class=\"btn btn-primary\"><i class=\"bi bi-plus-square\"></i></button>\n            </div>\n        </div>\n    </div>\n    <div class=\"card-body\">\n        <div *ngIf=\"adding=='Y'\" class=\"row\">\n            <div class=\"col-12\">\n                <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n            </div>\n            <div class=\"col-12\" style=\"text-align: right;\">\n                <button (click)=\"addClick()\" class=\"btn btn-secondary\">Close</button>\n            </div>\n        </div>\n        <div *ngIf=\"format.search=='TOP'\" class=\"row m-1 p-3\">\n            <div class=\"col-6\">\n                Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n            </div>\n        </div>\n        <div *ngIf=\"format.buttons.length>0||format.search=='Y'\" class=\"row m-1 p-3\">\n            <div *ngIf=\"format.search=='Y'\" class=\"col-lg-6\">\n                Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n            </div>\n            <div class=\"col-md-2\" *ngFor=\"let m of format.buttons\">\n                <button (click)=\"topButtonClick(m.value);\" [class]=\"m.class\" [style]=\"m.style\" [innerHTML]=\"m.title\"></button>\n            </div>\n        </div>\n        <table [class]=\"table_class\" [style]=\"table_style\">\n            <thead>\n                <ng-container *ngFor=\"let m of format.columns\">\n                    <th *ngIf=\"m.type!='button'\" [style]=\"m.style\" class=\"p-2\">{{ m.title }}</th>\n                    <th *ngIf=\"m.type=='button'\" [style]=\"m.style\" class=\"p-2\"></th>\n                </ng-container>   \n                <td *ngIf=\"edit=='Y'\">\n                </td>\n            </thead>\n        <tbody>\n        <ng-container *ngFor=\"let m of list | filter: term | paginate: { currentPage: p , itemsPerPage: format.pagesize }\">\n            <tr class=\"p-2\">\n                <ng-container *ngFor=\"let n of format.columns\">\n                <td (click)=\"rowClick(m)\" [style]=\"m.style\"  *ngIf=\"n['type']=='data'\" [innerHTML]=\"m[n['value']]\" [class]=\"n['class']\"></td>\n                    <td (click)=\"rowClick(m)\" [style]=\"m.style\"  *ngIf=\"n['type']=='text'\" [innerHTML]=\"n['value']\" [class]=\"n['class']\"></td>\n                                        <td *ngIf=\"n['type']=='button'\">\n                                            <button (click)=\"buttonClick(m)\" [style]=\"m.style\" [class]=\"n.class\" [innerHTML]=\"n.title\"></button>\n                                        </td>\n                                    </ng-container>\n                                    <td *ngIf=\"edit=='Y'\" style=\"width:40px;\">\n                                        <button class=\"btn btn-light\" (click)=\"editClick(m);\">\n                                            <i class=\"bi bi-pencil-square\"></i>\n                                        </button>\n                                    </td>\n                                </tr> \n                                <tr *ngIf=\"m?.edit=='Y'\">\n                                    <td [colSpan]=\"format.columns.length\">\n                                        <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                                    </td>\n                                </tr>\n                            </ng-container>\n                        </tbody> \n                    </table>\n                    <div *ngIf=\"format.pagination=='Y'\">\n                            <paging-controls (pageChange)=\"p = $event\" [isItemsPerPage]=\"false\"  \n                            class=\"my-pagination\"></paging-controls> \n                    </div>\n                </div> \n            </div> \n<ng-template #contentTmpl>\n    <ng-content select=\"[form]\"></ng-content>\n</ng-template>\n","import { Component, OnInit, Input, Output, OnDestroy, EventEmitter, OnChanges, DoCheck, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInput, MatInputModule } from '@angular/material/input';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { SQLDataService } from '../data.service';\nimport { Subscription } from 'rxjs';\nimport { MatPseudoCheckbox } from '@angular/material/core';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\n\n@Component({\n  selector: 'sql-checkbox',\n  standalone: true,\n  imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule, MatCheckboxModule],\n  templateUrl: './sql-checkbox.component.html',\n  styleUrls: ['./sql-checkbox.component.css']\n})\nexport class SqlCheckboxComponent implements OnInit, AfterViewInit, OnDestroy  {\n\n  value: any='';\n  value2: any=false;\n  fieldData: any = '';\n  myObs!: Subscription;\n\n  @Input() col: string = '';\n  @Input() data: any;\n  @Input() class: any = '';\n  @Input() style: any = '';\n  @Input() hint: string = '';\n  @Input() icon: string = '';\n  @Input() label: string = 'Label not set';\n  @Input() placeholder: any = '';\n  @Input() appearance: string = 'outline';\n  @Input() bs_row: any = 'Y';\n  @Input() bs_col: any = 'col-12';\n  @Input() top_label: any = 'N';\n  @Input() labelPosition: any = 'before';\n  @Input() indeterminate = false;\n\n  bs_row_value: any = 'row';\n  bs_col_value: any = 'col-12';\n\n  counter: number = 0;\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();  \n  \n  ngAfterViewInit() {\n    if (this.bs_row=='Y') {\n      this.bs_row_value=\"row\";\n    } else {\n      this.bs_row_value='none';\n    }\n    if (this.bs_col!='') {\n      this.bs_col_value=this.bs_col;\n    } else {\n      this.bs_col_value='none';\n    }\n  }\n\n  formData: any;\n  \n  constructor(private _dataService: SQLDataService) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.fieldData = this.data;\n      this.value = this.fieldData[this.col];\n      if (this.value=='Y') {\n        this.value2=true;\n      } else {\n        this.value2=false;\n      }\n      this.counter++;\n    })\n  }\n\n  ngOnInit(): void {\n\n  }\n\n  handleChange() {\n     this.fieldData['submit']='N';\n     if (this.value2==true) {\n        this.value='Y';\n      } else {\n        this.value='N';\n     }\n     this.fieldData[this.col]=this.value;\n     this._dataService.pushNotification(this.fieldData);\n  }\n\n  ngOnDestroy(): void {\n //   this.myObs.unsubscribe();\n  }\n}\n","<p>sql-checkbox works!</p>\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef, \n  OnDestroy, AfterViewInit, DoCheck, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';    \nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\nimport { FullCalendarModule } from '@fullcalendar/angular';\nimport { CalendarOptions, EventInput } from '@fullcalendar/core'; \nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport  InteractionPlugin  from '@fullcalendar/interaction';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-fullcalendar',\n  standalone: true,\n  imports: [CommonModule, FullCalendarModule],\n  templateUrl: './sql-fullcalendar.component.html',\n  styleUrls: ['./sql-fullcalendar.component.css']\n})\nexport class SqlFullcalendarComponent implements OnInit, DoCheck, OnChanges, AfterViewInit, OnDestroy {\n  \n  //-- Inputs\n  @Input() router: any = 'N';                             // does data come from Router.\n  @Input() data: any;                                     // Depreciated\n  @Input() sql: any = \"select 'x' from dual\";             // query to populate panel.          \n  @Input() id: any = '0';                                 // Primary key for query.\n  @Input() id2: any = '0';  \n  @Input() id3: any = '0';  \n  @Input() carßd: any = \"Y\";                               // Show the panel in a card Y/N\n  @Input() closable: any = \"N\";                           // Is the panel closable Y/N\n  @Input() open: any = \"Y\";                               // Does a closable form start open.\n  @Input() class: any = \"\";                               // Class for the panel container.\n  @Input() style: any = \"\";                               // Style for the panel container.\n  @Input() title: any = \"\";                               // Title of the Panel.\n  @Input() bs_row: any = 'Y';                             // Y means add a bootstrap row.\n  @Input() bs_col: any = 'col-sm-12 col-lg-6 col-xl-4';   // What bootstrap columns.\n\n  params: any = { id: '', id2: '', id3: ''};\n\n  myObj!: Subscription;\n\n  handleDateClick(arg:any) {\n\n  }\n\n  calendarOptions: CalendarOptions = {\n    initialView: 'dayGridMonth',\n    plugins: [dayGridPlugin, InteractionPlugin],\n    eventClick: this.handleDateClick.bind(this), // MUST ensure `this` context is maintained\n    events: [\n    ]\n  };\n\n  r: any;\n  path: any;\n\n  @Output() change: EventEmitter<any> = new EventEmitter<any>();\n  counter: number = 0;\n\n  public parameterValue: string = '';\n\n  constructor(private _dataService: SQLDataService, \n    private _router: Router,\n    private _activatedRoute: ActivatedRoute) { }\n\n  ngOnInit() {\n\n  }\n      \n  ngAfterViewInit() {\n    this.params.id=this.id;\n    this.params.id2=this.id2;\n    this.params.id3=this.id3;\n    this.myObj = this._dataService.getCalendar(this.sql, this.params).subscribe((data:any)=>{\n        this.data=data;\n        this.calendarOptions.events=this.data;\n     });\n  }\n  \n  ngDoCheck(): void {\n\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n\n  }\n\n  ngOnDestroy(): void {\n    this.myObj.unsubscribe();\n  }\n}\n","<div class=\"container-fluid row\">\n    <!--  <div class=\"col-sm-12\">\n          <div class=\"card\" class=\"card mt-3 mb-3 p-3\"> -->\n              <div class=\"d-none d-md-block row\">\n                  <div class=\"col-12\">\n                      <full-calendar [options]=\"calendarOptions\"></full-calendar>\n                  </div>\n    <!--          </div>\n          </div> -->\n      </div>\n  </div>","import { Component, OnInit, Input, Output, OnDestroy, EventEmitter, ViewChild, ElementRef, AfterViewInit, DoCheck, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Router, ActivatedRoute, RouterModule } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-panel',\n  standalone: true,\n  imports: [CommonModule, RouterModule],\n  templateUrl: './sql-panel.component.html',\n  styleUrls: ['./sql-panel.component.css'],\n})\nexport class SqlPanelComponent implements OnInit, DoCheck, OnChanges, AfterViewInit, OnDestroy  {\n  \n  //-- Inputs\n  @Input() use_router: any = 'Y';                         // does parameters come from Router.\n  @Input() page: any = '';\n  @Input() data: any;                                    \n  @Input() sql: any = \"\";                                 // query to populate panel.          \n  @Input() subquery: any = \"\";                            // subquery 1-3 go into parameters,\n  @Input() subquery2: any = \"\";\n  @Input() subquery3: any = \"\";\n  @Input() id: any = '0';                                 // ID - ID3 go into parameters.\n  @Input() id2: any = '0'; \n  @Input() id3: any = '0'; \n  @Input() card: any = \"Y\";                               // Show the panel in a card Y/N\n  @Input() closable: any = \"N\";                           // Is the panel closable Y/N\n  @Input() open: any = \"Y\";                               // Does a closable form start open.\n  @Input() class: any = \"\";                               // Class for the panel container.\n  @Input() style: any = \"\";                               // Style for the panel container.\n  @Input() title: any = \"\";                               // Title of the Panel.\n  @Input() bs_row: any = 'Y';                             // Y means add a bootstrap row.\n  @Input() bs_col: any = '';                              // What bootstrap columns.\n  myObs!: Subscription;\n  myDatgaObs!: Subscription;\n\n  r: any;\n  path: any;\n\n  @Output() change: EventEmitter<any> = new EventEmitter<any>();\n  counter: number = 0;\n\n  public parameterValue: string = '';\n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n\n  constructor(private _dataService: SQLDataService, \n    private _router: Router,\n    private _activatedRoute: ActivatedRoute) {\n  }\n\n  ngOnInit() {\n    \n    if (this.use_router=='Y') { \n      setTimeout(() => {\n            this.myObs = this._dataService.paramSubject.subscribe(d => {\n              console.log('paramSubjct.subscribe');\n              console.log(d);\n              if (d.page!==undefined) { this.page=d.page; }\n              if (d.id!==undefined) { this.id=d.id; }\n              if (d.id2!==undefined) { this.id2=d.id2; }\n              if (d.id3!==undefined) { this.id3=d.id3; }\n              if (this.page!=='AAA') {\n                console.log('sql: ' + this.sql)\n                console.log(d);\n                this.parameters.page=\"\";\n                this.parameters.id=this.id;\n                this.parameters.id2=this.id2;\n                this.parameters.id3=this.id3;\n                console.log(this.parameters);\n                this.myObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n                  console.log('panel init ds');\n                  this.data=data[0];\n                  console.log(this.data);\n                  this._dataService.pageSubject.next(this.data);\n                  if (this.data.id2===undefined) { this.data.id2 = ''; }\n                  if (this.data.id3===undefined) { this.data.id3 = ''; }\n                  this._dataService.containerSubject.next(this.data);\n                });\n              }\n            })\n      }, 500);\n    }\n\n  }\n      \n  ngAfterViewInit() {\n\n  }\n  \n  ngDoCheck(): void {\n\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n\n  }\n\n  ngOnDestroy(): void {\n  //  this.myObs.unsubscribe();\n  }\n  \n}\n","<ng-container *ngIf=\"card=='N'\">\n    <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n        <div [class]=\"bs_col\">\n            <ng-container *ngTemplateOutlet=\"fullTmpl\"></ng-container>\n        </div>\n    </div>\n    <!-- bs_row == 'N' and bs_col exists -->\n    <div *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n        <div [class]=\"bs_col\">\n            <ng-container *ngTemplateOutlet=\"fullTmpl\"></ng-container>\n        </div>\n    </div>\n    <!-- bs_row == 'N' and bs_col exists -->\n    <div *ngIf=\"bs_row!='Y'&&bs_col==''\">\n            <ng-container *ngTemplateOutlet=\"fullTmpl\"></ng-container>\n    </div>\n</ng-container>\n\n<!-- it is a card -->\n<div *ngIf=\"card=='Y'\">\n    <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n        <div [class]=\"bs_col\">\n            <div class=\"card\">\n                <div class=\"card-header\" style=\"margin-top: 0px;\">\n                    <h2 *ngIf=\"title!=''\" p-2>{{ title }}</h2>\n                    <ng-container *ngTemplateOutlet=\"headerTmpl\"></ng-container>\n                </div>\n                <div class=\"card-body\">\n                    <ng-container *ngTemplateOutlet=\"footerTmpl\"></ng-container>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n        <div [class]=\"bs_col\">\n            <div class=\"card\">\n                <div class=\"card-header p-2\">\n                    <h2 *ngIf=\"title!=''\" p-2>{{ title }}</h2>\n                    <ng-container *ngTemplateOutlet=\"headerTmpl\"></ng-container>\n                </div>\n                <div class=\"card-body\">\n                    <ng-container *ngTemplateOutlet=\"footerTmpl\"></ng-container>\n                </div>\n            </div>\n        </div>\n    </div>    \n    <div *ngIf=\"bs_row!='Y'&&bs_col==''\">\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <h2 *ngIf=\"title!=''\" p-2>{{ title }}</h2>\n                    <ng-container *ngTemplateOutlet=\"headerTmpl\"></ng-container>\n                </div>\n                <div class=\"card-body\">\n                    <ng-container *ngTemplateOutlet=\"footerTmpl\"></ng-container>\n                </div>\n            </div>\n    </div>    \n</div>\n\n<ng-template #footerTmpl>\n    <ng-content select=\"[footer]\"></ng-content>\n</ng-template>\n\n<ng-template #headerTmpl>\n    <ng-content select=\"[header]\"></ng-content>\n</ng-template>\n\n<ng-template #fullTmpl>\n    <ng-content></ng-content>\n</ng-template>\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef, AfterViewInit, DoCheck, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \n\n@Component({\n  selector: 'sql-card',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './sql-card.component.html',\n  styleUrls: ['./sql-card.component.css']\n})\nexport class SqlCardComponent {\n      @Input() title: any = '';\n      @Input() closed: any = 'N'\n      @Input() style: any = 'margin-top:10px; margin-bottom:10px; margin-left: 10px; margin-right: 10px;'\n      @Input() button_class: any = 'btn btn-primary float-right';\n      @Input() button_style: any = 'margin-top: 10px; margin-bottom: 10px; text-align: right!important;'\n      @Input() title_class: any = 'm-2';\n      @Input() title_style: any = 'font-size: 18px; font-weight: bold;'\n\n      toggleClosed() {\n        if (this.closed=='Y') {\n          this.closed='N';\n        } else {\n          this.closed='Y';\n        }\n      }\n\n}\n","<div class=\"card\" [style]=\"style\">\n    <div class=\"card-header\" style=\"margin-top: 0px;\">\n            <div class=\"col-9 col-lg-10 col-xl-11\">\n                <span [class]=\"title_class\" [style]=\"title_style\">{{ title }}</span>\n                  <span class=\"align-self-end float-end\" style=\"text-align: right;\">\n                    <button (click)=\"toggleClosed()\" *ngIf=\"closed=='Y'\" [class]=\"button_class\" [style]=\"button_style\"><i class=\"bi bi-arrow-bar-down\"></i></button>\n                   <button (click)=\"toggleClosed()\" *ngIf=\"closed=='N'\" [class]=\"button_class\" [style]=\"button_style\"><i class=\"bi bi-arrow-bar-up\"></i></button>\n                </span>\n            </div>\n    </div>\n    <div *ngIf=\"closed=='N'\" class=\"card-body p-2\">\n        <ng-content></ng-content>\n    </div>\n</div>\n","import { Component, OnInit, Input, Output, EventEmitter, \n AfterViewInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {MatDatepickerInputEvent} from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldAppearance, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { SQLDataService } from '../data.service';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MomentDateModule } from '@angular/material-moment-adapter';\nimport { DatePipe } from '@angular/common';\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {MomentDateAdapter} from '@angular/material-moment-adapter';\nimport { Subscription } from 'rxjs';\n   \nexport const MY_DATE_FORMATS = {\n    parse: {\n      dateInput: 'MM/DD/YYYY',\n    },\n    display: {\n      dateInput: 'MM/DD/YYYY',\n      monthYearLabel: 'MMMM YYYY',\n      dateA11yLabel: 'LL',\n      monthYearA11yLabel: 'MMMM YYYY'\n    },\n};\n\n@Component({\n  selector: 'sql-datepicker',\n  standalone: true,\n  imports: [CommonModule, FormsModule, MatInputModule, MomentDateModule, \n    MatDatepickerModule, MatFormFieldModule, MatNativeDateModule],\n  templateUrl: './sql-datepicker.component.html',\n  styleUrls: ['./sql-datepicker.component.css'],\n  providers: [\n    DatePipe,\n    { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS },\n    { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},\n\n  ]\n})\nexport class SqlDatepickerComponent  implements OnInit, AfterViewInit, OnDestroy {\n\n  @Input() col: string = '';\n  @Input() data: any;\n  @Input() class: any = '';\n  @Input() style: any = '';\n  @Input() hint: string = '';\n  @Input() icon: string = '';\n  @Input() label: string = 'Label not set';\n  @Input() placeholder: any = '';\n  @Input() appearance: MatFormFieldAppearance = 'outline';\n  @Input() bs_row: any = 'Y';\n  @Input() bs_col: any = 'col-12';\n  @Input() top_label: any = 'N';\n  counter: number = 0;\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();  \n\n  row_value: any;\n  col_value: any;\n\n  events: string[] = [];\n  fieldData: any;\n  value: any;\n  myObs!: Subscription;\n\n  addEvent(type: string, event: MatDatepickerInputEvent<Date>) {\n    this.events.push(`${type}: ${event.value}`);\n  }\n\n  ngAfterViewInit() {\n  \n  }\n\n  formData: any;\n  constructor(private _dataService: SQLDataService, private datePipe: DatePipe) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.fieldData = this.data;\n      this.value = this.fieldData[this.col];\n      this.counter++;\n    })\n  }\n\n  ngOnInit(): void {\n     if (this.bs_col=='Y') {\n      this.row_value='row';\n     } else {\n      this.row_value='none';\n     }\n     if (this.bs_col!='') {\n      this.col_value=this.bs_col;\n     } else {\n      this.col_value='none';\n     }\n   }\n\n  handleChange() {\n     this.fieldData['submit']='N';\n     this.fieldData[this.col]=this.datePipe.transform(this.value, 'yyyy-MM-dd');\n     this._dataService.pushNotification(this.fieldData);\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n  }\n}\n\n","    <span [class]=\"col_value\" style=\"margin-right: 20px; margin-left: -20px;\">\n        <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n        <mat-form-field [appearance]=\"appearance\">\n        <mat-label>{{ label }}</mat-label>\n        <input [(ngModel)]=\"value\" matInput [matDatepicker]=\"picker\"\n               (dateChange)=\"handleChange()\">\n        <mat-hint>MM/DD/YYYY</mat-hint>\n        <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n        <mat-datepicker #picker></mat-datepicker>\n        </mat-form-field>\n    </span>  ","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef, OnDestroy, AfterViewInit, DoCheck, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SqlInputComponent } from '../sql-input/sql-input.component';\nimport { SQLDataService } from '../data.service';\nimport { MatCommonModule } from '@angular/material/core';\nimport { FormsModule, ReactiveFormsModule, FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\nimport { HttpClient, HttpClientJsonpModule, HttpClientModule } from '@angular/common/http';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-upload-form',\n  standalone: true,\n  imports: [CommonModule, FormsModule, HttpClientModule, ReactiveFormsModule],\n  templateUrl: './sql-upload-form.component.html',\n  styleUrls: ['./sql-upload-form.component.css']\n})\nexport class SqlUploadFormComponent implements OnInit, DoCheck, OnChanges, AfterViewInit, OnDestroy  {\n  index: any;\n  last_id: any = '';\n  myObs!: Subscription;\n\n  constructor(private _http: HttpClient, private _dataService: SQLDataService) {\n      \n      this.myObs = this._dataService.dataSubject.subscribe(d => {\n        this.data=d;\n        this.counter++;\n        if (this.data.id!=this.last_id) {\n          this.last_id=this.data.id;\n          this.id=this.data.id;\n          this.ngAfterViewInit();\n        }\n        if (this.data.submit==='Y') {\n          this.postSQL();\n        }\n      })\n   }\n\n  //-- Inputs\n  @Input() data: any;                                     // Depreciated\n  @Input() path: any = \"https://myna-docs.com/upload.php\";           \n  @Input() id: any = '0';                                 // Primary key for an existing record = 0=Insert\n  @Input() table: any = \"dual\";                           // Name of the base table.\n  @Input() embedded: any = \"N\";                           // Is the form embedded in a list.\n  @Input() card: any = \"Y\";                               // Show the form in a card Y/N\n  @Input() closable: any = \"N\";                           // Is the form closable Y/N\n  @Input() open: any = \"Y\";                               // Does a closable form start open.\n  @Input() class: any = \"\";                               // Class for the form container.\n  @Input() style: any = \"\";                               // Style for the form container.\n  @Input() title: any = \"\";                               // Title of the form.\n  @Input() bs_row: any = 'Y';                             // Y means add a bootstrap row.\n  @Input() bs_col: any = 'col-sm-12 col-lg-6 col-xl-4';   // What bootstrap columns.\n  @Input() handler: any = 'default';                      // what handler is used to process the form.\n\n  @Output() change: EventEmitter<any> = new EventEmitter<any>();\n  @Output() saved: EventEmitter<any> = new EventEmitter<any>();\n  counter: number = 0;\n\n  showErrorAlert: any = 'N';\n  errorMessage: any = 'Post Failed'\n  showSuccessAlert: any = 'N';\n  ngOnInit(): void {\n\n  }\n\n  showUpload() {\n    this.change.emit('DONE')\n  }\n  ngAfterViewInit(): void {\n      if (this.embedded=='Y') {\n        this.id==this.data.id;\n      }\n      this._dataService.getForm(this.table, this.id).subscribe((data:any)=>{\n        this.data=data;\n        this._dataService.pushNotification(this.data);\n      });\n  }\n\n  postSQL() {\n    this._dataService.postSQL(this.data).subscribe((data:any)=>{\n      if (data.error_code==\"0\") { \n        this.showSuccessAlert='Y';\n        this.showErrorAlert='N';\n        this.errorMessage='Record Saved';\n      } else {\n        this.showSuccessAlert='N';\n        this.showErrorAlert='Y';\n        this.errorMessage=data.error_message;\n        this.errorMessage='Record Saved';\n      }\n      this._dataService.pushNotification(data);\n      setTimeout(()=>{\n        this.showErrorAlert='N';\n        this.showSuccessAlert='N';\n      },5000);\n\n    });\n  }\n  \n  ngDoCheck(): void {\n\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n\n  }\n\n  file=new FormControl('')\n  file_data:any=''\n\n  fileChange(index: any, event: any) {\n    \n    const fileList: FileList = event.target.files;\n    if (fileList.length > 0) {\n        let k: string;\n        let v: any;\n        const file = fileList[0];\n        if((file.size/1048576)<=8)\n        {\n          let formData = new FormData();\n          formData.append('file', file, file.name);\n          for ([k, v] of Object.entries(this.data)) {\n            formData.append(k,v);  \n          }\n          this.file_data=formData\n        }else{\n          alert('File size exceeds 8 MB. Please choose less than 8 MB');\n        }\n        \n    }\n\n  }\n\n  uploadFile()\n    {\n      this._http.post(this.path,this.file_data)\n      .subscribe(res => {\n        location.reload()\n      }, (err) => {\n      //send error response\n      alert('error occured')\n    });\n    }\n\n    ngOnDestroy(): void {\n      this.myObs.unsubscribe();\n    }\n  }\n\n","<div class=\"card\">\n    <div class=\"card-header\" style=\"margin-top: 0px;\">\n       <h2>{{ title }}</h2>\n    </div>\n    <div class=\"card-body\">\n        <div class=\"row\">\n            <ng-content></ng-content>\n        </div>\n    </div>\n    <div class=\"row\">\n        <div class=\"col-6 p-3\">\n            <input style=\"margin-left: 20px;\" class=\"btn-dark btn\" [formControl]=\"file\" (change)=\"fileChange(index,$event)\" type=\"file\" placeholder=\"File\">\n        </div>\n        <div class=\"col-6 p-3\">\n            <button (click)=\"showUpload()\" class=\"btn btn-light\">\n                Cancel\n            </button>\n            <button style=\"margin-left:20px;\" (click)=\"uploadFile()\" class=\"btn btn-primary\">\n                Upload\n            </button>\n        </div>\n    </div>\n</div>","import { Component, OnInit, Input, Output, OnDestroy, EventEmitter, OnChanges, DoCheck, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInput, MatInputModule } from '@angular/material/input';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { SQLDataService } from '../data.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-input',\n  standalone: true,\n  imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule],\n  templateUrl: './sql-input.component.html',\n  styleUrls: ['./sql-input.component.css']\n})\nexport class SqlInputComponent implements OnInit, AfterViewInit, OnDestroy  {\n\n  va: any='';\n  fieldData: any = '';\n  myObs!: Subscription;\n\n  @Input() col: string = '';\n  @Input() data: any;\n  @Input() class: any = '';\n  @Input() style: any = '';\n  @Input() hint: string = '';\n  @Input() icon: string = '';\n  @Input() label: string = 'Label not set';\n  @Input() placeholder: any = '';\n  @Input() appearance: string = 'outline';\n  @Input() bs_row: any = 'Y';\n  @Input() bs_col: any = 'col-12';\n  @Input() top_label: any = 'N';\n  counter: number = 0;\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();  \n  nname: any = '';\n\n  \n  ngAfterViewInit() {\n  \n  }\n\n  formData: any;\n  constructor(private _dataService: SQLDataService) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.fieldData = this.data;\n      this.va = this.fieldData[this.col];\n      this.counter++;\n    })\n  }\n\n  ngOnInit(): void {\n    this.nname = 'XX' + Math.floor(Math.random() * 10000)\n  }\n\n  handleChange() {\n     this.fieldData['submit']='N';\n     this.fieldData[this.col]=this.va;\n     this._dataService.pushNotification(this.fieldData);\n  }\n\n  ngOnDestroy(): void {\n//    this.myObs.unsubscribe();\n  }\n}\n","    <span *ngIf=\"appearance=='outline'\">\n      <!-- if new row -->\n          <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n            <div [class]=\"bs_col\">\n              <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n              <mat-form-field \n                [ngClass]=\"class\" \n                [style]=\"style\" \n                (change)=\"handleChange()\"\n                appearance=\"outline\">\n                  <mat-label>{{ label }}</mat-label>\n                  <input [name]=\"nname\" [id]=\"nname\" [(ngModel)]=\"va\" autocomplete=\"false\" matInput placeholder=\"{{ placeholder }}\">\n                      <mat-icon matSuffix>{{ icon }}</mat-icon>\n                      <mat-hint>{{ hint }}</mat-hint>\n              </mat-form-field>\n            </div>\n          </div>\n      <!-- if not new row but has bootstrap column-->\n      <div *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n        <div [class]=\"bs_col\">\n          <p *ngIf=\"top_label=='Y'\">{{ label }}</p>       \n          <mat-form-field \n            [ngClass]=\"class\" \n            [style]=\"style\" \n            (change)=\"handleChange()\"\n            appearance=\"outline\">\n              <mat-label>{{ label }}</mat-label>\n              <input  [name]=\"nname\" [id]=\"nname\" [(ngModel)]=\"va\" matInput autocomplete=\"false\" placeholder=\"{{ placeholder }}\">\n                  <mat-icon matSuffix>{{ icon }}</mat-icon>\n                  <mat-hint>{{ hint }}</mat-hint>\n          </mat-form-field>\n        </div>\n      </div>\n      <!-- if not new row and no bootstrap column -->\n      <span *ngIf=\"bs_row!='Y'&&bs_col==''\" style=\"margin-right:20px; \">\n        <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n          <mat-form-field \n            [ngClass]=\"class\" \n            [style]=\"style\" \n            (change)=\"handleChange()\"\n            appearance=\"outline\">\n              <mat-label>{{ label }}</mat-label>\n              <input  [name]=\"nname\" [id]=\"nname\"  [(ngModel)]=\"va\" matInput autocomplete=\"false\" placeholder=\"{{ placeholder }}\">\n                  <mat-icon matSuffix>{{ icon }}</mat-icon>\n                  <mat-hint>{{ hint }}</mat-hint>\n          </mat-form-field>\n        </span>\n    </span>\n    <!-- mat appearance is fill -->    \n    <span *ngIf=\"appearance=='fill'\">\n      <!-- if new row -->\n      <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n        <div [class]=\"bs_col\">\n          <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n          <mat-form-field \n            [ngClass]=\"class\" \n            [style]=\"style\" appearance=\"fill\">\n              <mat-label>{{ label }}</mat-label>\n                <input  [name]=\"nname\" [id]=\"nname\"  [(ngModel)]=\"va\"\n                  [(ngModel)]=\"va\" \n                  (change)=\"handleChange()\" autocomplete=\"false\"\n                  matInput \n                  placeholder=\"{{ placeholder }}\">\n                    <mat-icon matSuffix>{{ icon }}</mat-icon>\n                    <mat-hint>{{ hint }}</mat-hint>\n          </mat-form-field>\n        </div>\n      </div>\n            <!-- if not new row but has bootstrap column-->\n            <div *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n              <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field \n                [ngClass]=\"class\" \n                [style]=\"style\" appearance=\"fill\">\n                  <mat-label>{{ label }}</mat-label>\n                    <input  [name]=\"nname\" [id]=\"nname\"  [(ngModel)]=\"va\"\n                      (change)=\"handleChange()\" autocomplete=\"false\"\n                      matInput \n                      placeholder=\"{{ placeholder }}\">\n                        <mat-icon matSuffix>{{ icon }}</mat-icon>\n                        <mat-hint>{{ hint }}</mat-hint>\n              </mat-form-field>\n              </div>\n            </div>\n            <span *ngIf=\"bs_row!='Y'&&bs_col==''\" style=\"margin-right:20px;\" >\n              <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n              <mat-form-field \n              [ngClass]=\"class\" \n              [style]=\"style\" appearance=\"fill\">\n                <mat-label>{{ label }}</mat-label>\n                  <input  [name]=\"nname\" [id]=\"nname\"  [(ngModel)]=\"va\"\n                    [(ngModel)]=\"va\" \n                    (change)=\"handleChange()\" autocomplete=\"false\"\n                    matInput \n                    placeholder=\"{{ placeholder }}\">\n                      <mat-icon matSuffix>{{ icon }}</mat-icon>\n                      <mat-hint>{{ hint }}</mat-hint>\n            </mat-form-field>\n          </span>\n\n        </span>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, OnChanges, DoCheck, \n  AfterViewInit, ContentChildren, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInput, MatInputModule } from '@angular/material/input';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { MatOptionModule } from '@angular/material/core';\nimport { SQLDataService } from '../data.service'; \nimport { MatSelectModule } from '@angular/material/select';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-select',\n  standalone: true,\n  imports: [CommonModule, FormsModule, MatFormFieldModule, \n    MatInputModule, MatOptionModule, MatSelectModule],\n  templateUrl: './sql-select.component.html',\n  styleUrls: ['./sql-select.component.css']\n})\nexport class SqlSelectComponent implements OnInit, AfterViewInit, OnDestroy  {\n\n  value: any='';\n  fieldData: any = '';\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  @ContentChildren('') private list!: ElementRef;\n\n  @Input() appearance: string = 'outline';\n  @Input() native: any = 'Y';\n  @Input() sql: string = '';\n  @Input() handler: string = '';\n  @Input() col: string = '';\n  @Input() data: any;\n  @Input() id: any = '';\n  @Input() id2: any = '';\n  @Input() id3: any = '';\n  @Input() class: any = '';\n  @Input() style: any = '';\n  @Input() hint: string = '';\n  @Input() icon: string = '';\n  @Input() label: string = 'Label not set';\n  @Input() placeholder: any = '';\n\n  @Input() bs_row: any = 'Y';\n  @Input() bs_col: any = 'col-12';\n  @Input() top_label: any = 'N';\n  selectData: any;\n  counter: number = 0;\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();  \n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  \n  formData: any;\n  constructor(private _dataService: SQLDataService) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.fieldData = this.data;\n      this.value = this.fieldData[this.col];\n      this.counter++;\n    })\n  }\n\n  ngAfterViewInit() {\n\n  }\n\n  ngOnInit(): void {\n\n  }\n\n\n  handleChange() {\n     this.fieldData['submit']='N';\n     this.fieldData[this.col]=this.value;\n     this._dataService.pushNotification(this.fieldData);\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n    this.myDataObs.unsubscribe();\n  }\n}","    <!--<ng-container *ngIf=\"appearance=='fill'\">\n        <ng-container *ngIf=\"native=='Y'\">\n            <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n                <div [class]=\"bs_col\">\n                    <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                    <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                        <mat-label>{{ label }}</mat-label>\n                        <select [(ngModel)]=\"value\" (change)=\"handleChange()\" matNativeControl [style]=\"style\" [class]=\"class\">\n                          <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                        </select>\n                      </mat-form-field>\n                </div>\n            </div>\n            <span *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n                <div [class]=\"bs_col\">\n                    <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                    <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                        <mat-label>{{ label }}</mat-label>\n                        <select [(ngModel)]=\"value\"  matNativeControl (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                          <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                        </select>\n                      </mat-form-field>\n                </div>\n              </span>\n            <span *ngIf=\"bs_row!='Y'&&bs_col==''\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <select  [(ngModel)]=\"value\" matNativeControl (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                    </select>\n                  </mat-form-field>\n                </span>\n              </ng-container>\n        <span *ngIf=\"native=='N'\">\n            <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n                <div [class]=\"bs_col\">\n                    <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                    <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                        <mat-label>{{ label }}</mat-label>\n                        <mat-select  [(ngModel)]=\"value\" (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                          <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                        </mat-select>\n                      </mat-form-field>\n                </div>\n            </div>\n            <span *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n                <div [class]=\"bs_col\">\n                    <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                    <mat-form-field appearance=\"fill\"  [style]=\"style\" [class]=\"class\">\n                        <mat-label>{{ label }}</mat-label>\n                        <mat-select  [(ngModel)]=\"value\" (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                          <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                        </mat-select>\n                      </mat-form-field>\n                </div>\n              </span>\n            <span *ngIf=\"bs_row!='Y'&&bs_col==''\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\"  [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <mat-select  [(ngModel)]=\"value\" (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                    </mat-select>\n                  </mat-form-field>\n                </span>\n              </span>\n    </ng-container>\n   <ng-container *ngIf=\"appearance=='outline'\">\n    <ng-container *ngIf=\"native=='Y'\">\n        <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <select  [(ngModel)]=\"value\" matNativeControl  (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                    </select>\n                  </mat-form-field>\n            </div>\n        </div>\n        <span *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <select  [(ngModel)]=\"value\" matNativeControl  (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                    </select>\n                  </mat-form-field>\n            </div>\n        </span> -->\n        <span *ngIf=\"bs_row!='Y'&&bs_col==''\" style=\"margin-right:20px;\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n                <mat-label>{{ label }}</mat-label>\n                <mat-select  [(ngModel)]=\"value\"  (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                  <ng-content></ng-content>\n                </mat-select>\n              </mat-form-field>\n        </span>\n<!--          </ng-container>\n    <ng-container *ngIf=\"native=='N'\">\n        <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\"  [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <mat-select  [(ngModel)]=\"value\"  (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                    </mat-select>\n                  </mat-form-field>\n            </div>\n        </div>\n        <ng-container *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"outline\"  [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <mat-select  [(ngModel)]=\"value\"  (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                    </mat-select>\n                  </mat-form-field>\n            </div>\n          </ng-container>\n        <ng-container *ngIf=\"bs_row!='Y'&&bs_col==''\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"outline\"  [style]=\"style\" [class]=\"class\">\n                <mat-label>{{ label }}</mat-label>\n                <mat-select  [(ngModel)]=\"value\"  (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                  <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                </mat-select>\n              </mat-form-field>\n            </ng-container>\n          </ng-container>\n        </ng-container>\n<ng-template #contentTmpl>\n         \n</ng-template> -->","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, OnDestroy, DoCheck, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInput, MatInputModule } from '@angular/material/input';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { SQLDataService } from '../data.service'; \nimport { Subscription } from 'rxjs';\n\n\n@Component({\n  selector: 'sql-textarea',\n  standalone: true,\n  imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule],\n  templateUrl: './sql-textarea.component.html',\n  styleUrls: ['./sql-textarea.component.css']\n})\nexport class SqlTextareaComponent implements OnInit, AfterViewInit, OnDestroy  {\n\n  value: any='';\n  fieldData: any = '';\n  myObs!: Subscription;\n\n  @Input() rows: any = '5';\n  @Input() maxrows: any = '10';\n  @Input() col: string = '';\n  @Input() data: any;\n  @Input() class: any = '';\n  @Input() style: any = '';\n  @Input() hint: string = '';\n  @Input() icon: string = '';\n  @Input() label: string = 'Label not set';\n  @Input() placeholder: any = '';\n  @Input() appearance: string = 'outline';\n  @Input() bs_row: any = 'Y';\n  @Input() bs_col: any = 'col-12';\n  @Input() top_label: any = 'N';\n  counter: number = 0;\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();  \n  \n  ngAfterViewInit() {\n\n  }\n\n  formData: any;\n  constructor(private _dataService: SQLDataService) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.fieldData = this.data;\n      this.value = this.fieldData[this.col];\n      this.counter++;\n    })\n  }\n\n  ngOnInit(): void {\n\n  }\n\n\n  handleChange() {\n     this.fieldData['submit']='N';\n     this.fieldData[this.col]=this.value;\n     this._dataService.pushNotification(this.fieldData);\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n  }\n}","<div class=\"container-fluid\">\n    <!-- mat appearance is outline -->\n    <div *ngIf=\"appearance=='outline'\">\n      <!-- if new row -->\n          <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n                  <mat-label>{{ label }}</mat-label>\n                  <textarea (change)=\"handleChange()\" [(ngModel)]=\"value\" matInput\n                            cdkTextareaAutosize\n                            #autosize=\"cdkTextareaAutosize\"\n                            cdkAutosizeMinRows=\"{{ rows}}\"\n                            cdkAutosizeMaxRows=\"{{ maxrows }}\"></textarea>\n                </mat-form-field>  \n            </div>\n          </div>\n      <!-- if not new row but has bootstrap column-->\n      <div *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n        <div [class]=\"bs_col\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n              <mat-label>{{ label }}</mat-label>\n              <textarea (change)=\"handleChange()\" [(ngModel)]=\"value\" matInput\n                        cdkTextareaAutosize\n                        #autosize=\"cdkTextareaAutosize\"\n                        cdkAutosizeMinRows=\"{{ rows}}\"\n                        cdkAutosizeMaxRows=\"{{ maxrows }}\"></textarea>\n            </mat-form-field>  \n        </div>\n      </div>\n      <!-- if not new row and no bootstrap column -->\n      <div *ngIf=\"bs_row!='Y'&&bs_col==''\">\n        <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n        <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n          <mat-label>{{ label }}</mat-label>\n          <textarea (change)=\"handleChange()\" [(ngModel)]=\"value\" matInput\n                    cdkTextareaAutosize\n                    #autosize=\"cdkTextareaAutosize\"\n                    cdkAutosizeMinRows=\"{{ rows}}\"\n                    cdkAutosizeMaxRows=\"{{ maxrows }}\"></textarea>\n        </mat-form-field>  \n      </div>\n    </div>\n    <!-- mat appearance is fill -->    \n    <div *ngIf=\"appearance=='fill'\">\n      <!-- if new row -->\n      <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n        <div [class]=\"bs_col\">\n          <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n          <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n            <mat-label>{{ label }}</mat-label>\n            <textarea (change)=\"handleChange()\" [(ngModel)]=\"value\" matInput\n                      cdkTextareaAutosize\n                      #autosize=\"cdkTextareaAutosize\"\n                      cdkAutosizeMinRows=\"{{ rows}}\"\n                      cdkAutosizeMaxRows=\"{{ maxrows }}\"></textarea>\n          </mat-form-field>  \n        </div>\n      </div>\n            <!-- if not new row but has bootstrap column-->\n            <div *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n              <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                  <mat-label>{{ label }}</mat-label>\n                  <textarea (change)=\"handleChange()\" [(ngModel)]=\"value\" matInput\n                            cdkTextareaAutosize\n                            #autosize=\"cdkTextareaAutosize\"\n                            cdkAutosizeMinRows=\"{{ rows}}\"\n                            cdkAutosizeMaxRows=\"{{ maxrows }}\"></textarea>\n                </mat-form-field>  \n              </div>\n            </div>\n            <div *ngIf=\"bs_row!='Y'&&bs_col==''\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                  <mat-label>{{ label }}</mat-label>\n                  <textarea (change)=\"handleChange()\" [(ngModel)]=\"value\" matInput\n                            cdkTextareaAutosize\n                            #autosize=\"cdkTextareaAutosize\"\n                            cdkAutosizeMinRows=\"{{ rows}}\"\n                            cdkAutosizeMaxRows=\"{{ maxrows }}\"></textarea>\n                </mat-form-field>  \n          </div>\n\n    </div>\n</div> ","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n  selector: 'lib-sql-calendar',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './sql-calendar.component.html',\n  styleUrls: ['./sql-calendar.component.css']\n})\nexport class SqlCalendarComponent {\n\n}\n","<p>sql-calendar works!</p>\n","import { Component, OnInit, Input, Output, OnDestroy, EventEmitter, OnChanges, DoCheck, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInput, MatInputModule } from '@angular/material/input';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { MatOptionModule } from '@angular/material/core';\nimport { SQLDataService } from '../data.service';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-radio-group',\n  standalone: true,\n  imports: [CommonModule, FormsModule, MatFormFieldModule, \n    MatInputModule, MatOptionModule, MatSelectModule, MatRadioModule],\n  templateUrl: './sql-radio-group.component.html',\n  styleUrls: ['./sql-radio-group.component.css']\n})\nexport class SqlRadioGroupComponent implements OnInit, AfterViewInit, OnDestroy  {\n\n  value: any='';\n  fieldData: any = '';\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  row_value: any;\n  col_value: any;\n\n  favoriteSeason: any;\n\n  @Input() appearance: string = 'outline';\n  @Input() inline: string = 'N';\n  @Input() native: any = 'Y';\n  @Input() sql: string = '';\n  @Input() handler: string = '';\n  @Input() col: string = '';\n  @Input() data: any;\n  @Input() class: any = '';\n  @Input() style: any = '';\n  @Input() id: any = '';\n  @Input() id2: any = '';\n  @Input() id3: any = '';\n  @Input() hint: string = '';\n  @Input() icon: string = '';\n  @Input() label: string = 'Label not set';\n  @Input() placeholder: any = '';\n  @Input() bs_row: any = 'Y';\n  @Input() bs_col: any = 'col-12';\n  @Input() top_label: any = 'N';\n  selectData: any;\n  counter: number = 0;\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();  \n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  \n  formData: any;\n  constructor(private _dataService: SQLDataService) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.fieldData = this.data;\n      this.value = this.fieldData[this.col];\n      this.counter++;\n    })\n  }\n\n  ngAfterViewInit() {\n    this.parameters.id=this.id;\n    this.parameters.id2=this.id2;\n    this.parameters.id3=this.id3;\n    this.myDataObs = this._dataService.getSelect(this.sql, this.parameters).subscribe((data:any)=>{\n      this.selectData=data;\n    });\n  }\n\n  ngOnInit(): void {\n    if (this.bs_col=='Y') {\n     this.row_value='row';\n    } else {\n     this.row_value='none';\n    }\n    if (this.bs_col!='') {\n     this.col_value=this.bs_col;\n    } else {\n     this.col_value='none';\n    }\n  }\n\n  handleChange() {\n    this.fieldData['submit']='N';\n    this.fieldData[this.col]=this.value;\n\n    this._dataService.pushNotification(this.fieldData);\n }\n\n ngOnDestroy(): void {\n  this.myObs.unsubscribe();\n  this.myDataObs.unsubscribe();\n}\n}\n","<ng-container *ngIf=\"inline=='N'\">\n  <label id=\"example-radio-group-label\">{{ label }}</label>\n  <mat-radio-group\n    aria-labelledby=\"example-radio-group-label\"\n    class=\"example-radio-group\"\n    [style]=\"style\"\n    [(ngModel)]=\"value\"\n    (ngModelChange)=\"handleChange()\">\n    <mat-radio-button class=\"example-radio-button\" *ngFor=\"let m of selectData\" [value]=\"m.id\">\n      {{ m.option }}\n    </mat-radio-button>\n  </mat-radio-group>\n</ng-container>\n<ng-container *ngIf=\"inline=='Y'\">\n  <label id=\"example-radio-group-label\">{{ label }}</label>\n  <mat-radio-group\n    aria-labelledby=\"example-radio-group-label\"\n    [class]=\"class\"\n    [style]=\"style\"\n    [(ngModel)]=\"value\"\n    (ngModelChange)=\"handleChange()\">\n    <mat-radio-button class=\"example-radio-button\" *ngFor=\"let m of selectData\" [value]=\"m.id\">\n      {{ m.option }}\n    </mat-radio-button>\n  </mat-radio-group>\n</ng-container>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription } from 'rxjs';\n\n@Component({\nselector: 'sql-table',\nstandalone: true,\nimports: [CommonModule, \n     FormsModule,\n     NgxTablePaginationModule, \n     Ng2SearchPipeModule],\ntemplateUrl: './sql-table.component.html',\nstyleUrls: ['./sql-table.component.css']\n})\nexport class SqlTableComponent implements OnInit, AfterViewInit, OnDestroy  {\n// \n@ContentChildren('title') private title_list!: ElementRef;\n@ContentChildren('column') private column_list!: ElementRef[];\nmyObs!: Subscription;\nmyDataObs!: Subscription;\n\n// format: is built from ContentChildren and Input Parameters\nformat: any = { title: '', search: '', class: '', style: '', columns: [], buttons: [] };\nterm: any;          // used by search filter.\nlist: any;          // holds the list returned by the query.\np: any;             // used by pagination\n\nrow_placeholder: any = 'row';\ncol_placeholder: any = 'col-12';\n\n//-- Inputs\ndata: any = '';\n@Input() use_parameters: any = 'N';\n@Input() function: any = '';                                // Use Data if data comes from function.\n@Input() sql: any = '';                                 // SQL that gets data.\n@Input() card: any = \"Y\";                               // Show the form in a card Y/N\n@Input() card_class: any = '';\n@Input() card_style: any = '';\n@Input() container_class: any = 'container-fluid m-2 p-2';              // Class of the outer ng-container.\n@Input() container_style: any = '';                     // Style of the outer ng-container.\n\n@Input() closable: any = \"N\";                           // Is the form closable Y/N\n@Input() search: any = 'TOP';                           // Location of the search box.\n\n@Input() bs_row: any = 'Y';                             // Y means add a bootstrap row.\n@Input() bs_col: any = 'col-sm-12 col-lg-12 col-xl-12';   // What bootstrap columns.\n\n@Input() table_class: any = 'table table-striped table-condensed';   // class of the table.\n@Input() table_style: any = '';                                      // style of the table.\n@Input() edit: any = 'N';                               // Add custom edit button.\n@Input() title: any = 'Title Not Set';                  // title of the page.\n@Input() pagination: any = 'Y';                         // Include pagination.\n@Input() pagesize: number = 25;                         // rows per page for pagination.\n\n@Input() id: any = '0';                                 // id for where clause.\n@Input() id2: any = '0';                                 // id for where clause.\n@Input() id3: any = '0';                                 // id for where clause.\n\n@Input() open: any = \"Y\";                               // Does a closable list start open.\n@Input() class: any = 'table table-striped table-condensed';  // Class for the table container.\n@Input() style: any = \"\";                               // Style for the table container.\n@Input() handler: any = 'default';                      // what handler is used to process the form.\n\n@Output() button_click: EventEmitter<any> = new EventEmitter<any>();\n@Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n@Output() top_button_click: EventEmitter<any> = new EventEmitter<any>();\nparameters: any = { page: '', id: '', id2: '', id3: ''};\nlast_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n\ncounter: number = 0;\npage: any = '';\n\nconstructor(private _dataService: SQLDataService) { \n\n}\n\nngOnInit(): void {\nthis.format.search='Y';\n}\n\ntopButtonClick(m: any) {\nthis.top_button_click.emit(m);\n}\n\nrowClick(m: any) {\nthis.row_click.emit(m);\n}\n\nbuttonClick(m: any) {\nthis.button_click.emit(m);\n}\n\nngAfterViewInit(): void {\n\n  if (this.use_parameters==='Y') {\n    this._dataService.paramSubject.subscribe(d => {\n      this.parameters=d;\n      this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n        this.list=data;\n        this.list.forEach(function (value: any) {\n          value.active='N';\n        });\n       });\n    })\n  } \n  if (this.use_parameters==='N') {\n      this.parameters.page=this.page;\n      this.parameters.id=this.id;\n      this.parameters.id2=this.id2;\n      this.parameters.id3=this.id3;\n      this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n        this.list=data;\n        this.list.forEach(function (value: any) {\n          value.active='N';\n        });\n       });\n  }\n\nthis.format.title=this.title;\nthis.format.class=this.class;\nthis.format.style=this.style;\nthis.format.pagination=this.pagination;\nthis.format.pagesize=this.pagesize;\nif (this.bs_row=='Y') {\n    this.row_placeholder=\"row\";\n} else {\n    this.row_placeholder=\"none\";\n}\nthis.col_placeholder=this.bs_col;\n\nthis.column_list.forEach((e: ElementRef) => {\n  \n     let column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n     \n     //-- TH is data column\n     if (e.nativeElement.nodeName=='TH') {\n       column_template.type=\"data\";\n       column_template.value=e.nativeElement.id;\n       column_template.title=e.nativeElement.innerHTML;\n     }      \n     //-- BUTTON is button column\n     if (e.nativeElement.nodeName=='BUTTON') {      \n       column_template.type=\"button\";\n       column_template.value='';\n       column_template.title=e.nativeElement.innerHTML;\n     }   \n     //-- TD is text column\n     if (e.nativeElement.nodeName=='TD') {\n       column_template.type=\"text\";\n       column_template.title='';\n       column_template.value=e.nativeElement.innerHTML;\n     } \n     if (e.nativeElement.className!==undefined) { column_template.class=e.nativeElement.className; }\n     column_template.style=e.nativeElement.style.cssText;\n     this.format.columns.push(column_template);\n});\n\n\nif (this.last_parameters.page!=this.parameters.page||\n    this.last_parameters.id!=this.parameters.id||\n    this.last_parameters.id2!=this.parameters.id2||\n    this.last_parameters.id3!=this.parameters.id3) {\n          this.last_parameters.page=this.parameters.page;\n          this.last_parameters.id=this.parameters.id;\n          this.last_parameters.id2=this.parameters.id2;\n          this.last_parameters.id3=this.parameters.id3;\n\n          this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n            this.list=data;\n          });\n    }\n}\n\ntableRefresh() {\n  this.myDataObs.unsubscribe();\n  this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n    this.list=data;\n   });\n}\n\nngOnDestroy(): void {\n  this.myObs.unsubscribe();\n  this.myDataObs.unsubscribe();\n}\n}","<!-- NOT A CARD FORMAT-->\n<div *ngIf=\"card!='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div [class]=\"row_placeholder\">\n        <div [class]=\"col_placeholder\">\n            <div *ngIf=\"format.search=='TOP'\" class=\"row m-1 p-3\">\n                <div class=\"col-lg-6\">\n                    Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n                </div>\n            </div>\n            <div class=\"row p-2 mt-2 mb-2\">\n                <div class=\"col-md-12\">\n                    <h2>{{ title }}</h2>\n                </div>\n            </div>\n            <div *ngIf=\"format.buttons.length>0||format.search=='Y'\" class=\"row m-1 p-3\">\n                <div *ngIf=\"format.search=='Y'\" class=\"col-lg-6\">\n                    Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n                </div>\n                <div class=\"col-md-2\" *ngFor=\"let m of format.buttons\">\n                    <button (click)=\"topButtonClick(m.value);\" [class]=\"m.class\" [style]=\"m.style\" [innerHTML]=\"m.title\"></button>\n                </div>\n            </div>\n            <table [class]=\"table_class\" [style]=\"table_style\">\n                <thead>\n                    <tr class=\"p-2\">\n                        <ng-container *ngFor=\"let m of format.columns\">\n                            <th *ngIf=\"m.type!='button'\" class=\"p-2\">{{ m.title }}</th>\n                            <th *ngIf=\"m.type=='button'\" class=\"p-2\"></th>\n                        </ng-container>         \n                    </tr>\n                </thead>\n            <tbody>\n                <ng-container *ngFor=\"let m of list | filter: term | paginate: { currentPage: p , itemsPerPage: format.pagesize }\">\n                    <tr class=\"p-2\">\n                        <ng-container *ngFor=\"let n of format.columns\">\n                            <td (click)=\"rowClick(m)\" *ngIf=\"n['type']=='data'\" [innerHTML]=\"m[n['value']]\" [class]=\"n['class']\"></td>\n                            <td (click)=\"rowClick(m)\" *ngIf=\"n['type']=='text'\" [innerHTML]=\"n['value']\" [class]=\"n['class']\"></td>\n                            <td *ngIf=\"n['type']=='button'\">\n                                <button (click)=\"buttonClick(m)\" [class]=\"n.class\" [innerHTML]=\"n.title\"></button>\n                            </td>\n                        </ng-container>\n                    </tr> \n                </ng-container>\n            </tbody> \n            </table>\n        <div *ngIf=\"format.pagination=='Y'\">\n                <paging-controls (pageChange)=\"p = $event\" [isItemsPerPage]=\"false\"  \n                class=\"my-pagination\"></paging-controls> \n            </div> \n        </div> <!-- col -->\n    </div> <!-- row -->\n</div> <!-- container -->\n<!-- CARD FORMAT-->\n<div *ngIf=\"card=='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div [class]=\"row_placeholder\">\n        <div [class]=\"col_placeholder\">\n            <div class=\"card\">\n                <div class=\"card-header\" style=\"margin-top: 0px;\">\n                    <div class=\"row p-2 mt-2 mb-2\">\n                        <div class=\"col-md-12\">\n                            <h2>{{ title }}</h2>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card-body\">\n                    <div *ngIf=\"format.search=='TOP'\" class=\"row m-1 p-3\">\n                        <div class=\"col-6\">\n                            Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n                        </div>\n                    </div>\n                    <div *ngIf=\"format.buttons.length>0||format.search=='Y'\" class=\"row m-1 p-3\">\n                        <div *ngIf=\"format.search=='Y'\" class=\"col-lg-6\">\n                            Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n                        </div>\n                        <div class=\"col-md-2\" *ngFor=\"let m of format.buttons\">\n                            <button (click)=\"topButtonClick(m.value);\" [class]=\"m.class\" [style]=\"m.style\" [innerHTML]=\"m.title\"></button>\n                        </div>\n                    </div>\n                    <table [class]=\"table_class\" [style]=\"table_style\">\n                        <thead>\n                            <ng-container *ngFor=\"let m of format.columns\">\n                                <th *ngIf=\"m.type!='button'\" [style]=\"m.style\" class=\"p-2\">{{ m.title }}</th>\n                                <th *ngIf=\"m.type=='button'\" [style]=\"m.style\" class=\"p-2\"></th>\n                            </ng-container>   \n                        </thead>\n                        <tbody>\n                            <ng-container *ngFor=\"let m of list | filter: term | paginate: { currentPage: p , itemsPerPage: format.pagesize }\">\n                                <tr class=\"p-2\">\n                                    <ng-container *ngFor=\"let n of format.columns\">\n                                        <td (click)=\"rowClick(m)\" [style]=\"m.style\"  *ngIf=\"n['type']=='data'\" [innerHTML]=\"m[n['value']]\" [class]=\"n['class']\"></td>\n                                        <td (click)=\"rowClick(m)\" [style]=\"m.style\"  *ngIf=\"n['type']=='text'\" [innerHTML]=\"n['value']\" [class]=\"n['class']\"></td>\n                                        <td *ngIf=\"n['type']=='button'\">\n                                            <button (click)=\"buttonClick(m)\" [style]=\"m.style\" [class]=\"n.class\" [innerHTML]=\"n.title\"></button>\n                                        </td>\n                                    </ng-container>\n                                </tr> \n                            </ng-container>\n                        </tbody> \n                    </table>\n                    <div *ngIf=\"format.pagination=='Y'\">\n                            <paging-controls (pageChange)=\"p = $event\" [isItemsPerPage]=\"false\"  \n                            class=\"my-pagination\"></paging-controls> \n                    </div>\n                </div> <!-- card-body -->\n            </div> <!-- card --> \n        </div>\n    </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription, Observable, from } from 'rxjs';\n\n@Component({\n  selector: 'sql-edit-table',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule,\n    NgxTablePaginationModule, \n    Ng2SearchPipeModule],\n  templateUrl: './sql-edit-table.component.html',\n  styleUrls: ['./sql-edit-table.component.css']\n})\nexport class SqlEditTableComponent implements OnInit, AfterViewInit, OnDestroy  {\n  // \n  @ContentChildren('title') private title_list!: ElementRef;\n  @ContentChildren('column') private column_list!: ElementRef[];\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  myParameterObs!: Subscription;\n  \n  // format: is built from ContentChildren and Input Parameters\n  format: any = { title: '', search: '', class: '', style: '', columns: [], buttons: [] };\n  term: any;          // used by search filter.\n  list: any;          // holds the list returned by the query.\n  p: any;             // used by pagination\n  \n  row_placeholder: any = 'row';\n  col_placeholder: any = 'col-12';\n  \n  //-- Inputs\n  @Input() use_parameters = 'N';\n  @Input() data: any = '';                                // Use Data if data comes from function.\n  @Input() sql: any = '';                                 // SQL that gets data.\n  @Input() card: any = \"Y\";                               // Show the form in a card Y/N\n  @Input() card_class: any = '';\n  @Input() card_style: any = '';\n  @Input() container_class: any = 'container-fluid m-2 p-2';              // Class of the outer ng-container.\n  @Input() container_style: any = '';                     // Style of the outer ng-container.  \n  @Input() closable: any = \"N\";                           // Is the form closable Y/N\n  @Input() search: any = 'TOP';                           // Location of the search box.\n  @Input() bs_row: any = 'Y';                             // Y means add a bootstrap row.\n  @Input() bs_col: any = 'col-sm-12 col-lg-12 col-xl-12';   // What bootstrap columns.\n  @Input() table_class: any = 'table table-striped table-condensed';   // class of the table.\n  @Input() table_style: any = '';                                      // style of the table.\n  @Input() edit: any = 'Y';                               // Add custom edit button.\n  @Input() title: any = 'Title Not Set';                  // title of the page.\n  @Input() pagination: any = 'Y';                         // Include pagination.\n  @Input() pagesize: number = 25;                         // rows per page for pagination.\n  @Input() id: any = '0';                                 // id for where clause.\n  @Input() id2: any = '0';                                 // id for where clause.\n  @Input() id3: any = '0';                                 // id for where clause.\n\n  @Input() open: any = \"Y\";                               // Does a closable list start open.\n  @Input() class: any = 'table table-striped table-condensed';  // Class for the table container.\n  @Input() style: any = \"\";                               // Style for the table container.\n  @Input() handler: any = 'default';                      // what handler is used to process the form.\n  @Output() button_click: EventEmitter<any> = new EventEmitter<any>();\n  @Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n  @Output() top_button_click: EventEmitter<any> = new EventEmitter<any>();\n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  last_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n  page: any = '';\n  \n  counter: number = 0;\n  \n  constructor(private _dataService: SQLDataService) {     \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      if (d.error_code===0) {\n        this.tableRefresh();\n      }\n    })\n  }\n  \n  ngOnInit(): void {\n  this.format.search='Y';\n  }\n  \n  topButtonClick(m: any) {\n  this.top_button_click.emit(m);\n  }\n  \n  rowClick(m: any) {\n  this.row_click.emit(m);\n  }\n  \n  editClick(m: any) {\n\n      let p: any = { id: '', id2: '', id3: '' };\n\n      if (m.id!==undefined) { p.id = m.id };\n      if (m.id2!==undefined) { p.id2 = m.id2 };\n      if (m.id3!==undefined) { p.id3 = m.id3 };\n\n      if (m.edit==='Y') {\n          m.edit='N';\n      } else {\n          this.list.forEach((value: any) => {\n               value.edit='N';\n           });\n          this._dataService.containerSubject.next(p);\n          m.edit='Y';\n      }\n\n  }\n  \n  buttonClick(m: any) {\n  this.button_click.emit(m);\n  }\n  \n  ngAfterViewInit(): void {\n    if (this.use_parameters==='Y') {\n      this.myParameterObs = this._dataService.paramSubject.subscribe(d => {\n        this.parameters=d;\n        this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n      })\n    } \n    if (this.use_parameters==='N') {\n        this.parameters.page=this.page;\n        this.parameters.id=this.id;\n        this.parameters.id2=this.id2;\n        this.parameters.id3=this.id3;\n        this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n    }\n\n  this.format.title=this.title;\n  this.format.class=this.class;\n  this.format.style=this.style;\n  this.format.pagination=this.pagination;\n  this.format.pagesize=this.pagesize;\n  if (this.bs_row=='Y') {\n      this.row_placeholder=\"row\";\n  } else {\n      this.row_placeholder=\"none\";\n  }\n  this.col_placeholder=this.bs_col;\n  \n  this.column_list.forEach((e: ElementRef) => {\n  \n       let column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n       \n       //-- TH is data column\n       if (e.nativeElement.nodeName=='TH') {\n         column_template.type=\"data\";\n         column_template.value=e.nativeElement.id;\n         column_template.title=e.nativeElement.innerHTML;\n       }      \n       //-- BUTTON is button column\n       if (e.nativeElement.nodeName=='BUTTON') {\n         column_template.type=\"button\";\n         column_template.value='';\n         column_template.title=e.nativeElement.innerHTML;\n       } \n       //-- TD is text column\n       if (e.nativeElement.nodeName=='TD') {\n         column_template.type=\"text\";\n         column_template.title='';\n         column_template.value=e.nativeElement.innerHTML;\n       } \n       if (e.nativeElement.className!==undefined) { column_template.class=e.nativeElement.className; }\n       column_template.style=e.nativeElement.style.cssText;\n       this.format.columns.push(column_template);\n       \n  });\n\n  if (this._dataService!==undefined&&this.parameters!==undefined&&this.sql!==undefined) {\n      if (this.last_parameters.page!=this.parameters.page||\n          this.last_parameters.id!=this.parameters.id||\n          this.last_parameters.id2!=this.parameters.id2||\n          this.last_parameters.id3!=this.parameters.id3) {\n                this.last_parameters.page=this.parameters.page;\n                this.last_parameters.id=this.parameters.id;\n                this.last_parameters.id2=this.parameters.id2;\n                this.last_parameters.id3=this.parameters.id3;\n                try {\n                  this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n                    if (data!==undefined) {\n                      this.list=data;\n                    }\n                  });\n                } catch {\n\n                }\n\n          }\n      }\n  }\n  \n  tableRefresh() {\n            this.last_parameters.page=this.parameters.page;\n            this.last_parameters.id=this.parameters.id;\n            this.last_parameters.id2=this.parameters.id2;\n            this.last_parameters.id3=this.parameters.id3;\n            this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n              this.list=data;\n            });\n  }\n  \n  ngOnDestroy(): void {\n      this.myObs.unsubscribe();\n      this.myDataObs.unsubscribe();\n      this.myParameterObs.unsubscribe();\n  }\n\n  }","<!-- NOT A CARD FORMAT-->\n<div *ngIf=\"card!='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div [class]=\"row_placeholder\">\n        <div [class]=\"col_placeholder\">\n            <div *ngIf=\"format.search=='TOP'\" class=\"row m-1 p-3\">\n                <div class=\"col-lg-6\">\n                    Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n                </div>\n            </div>\n            <div class=\"row p-2 mt-2 mb-2\">\n                <div class=\"col-md-12\">\n                    <h2>{{ title }}</h2>\n                </div>\n            </div>\n            <div *ngIf=\"format.buttons.length>0||format.search=='Y'\" class=\"row m-1 p-3\">\n                <div *ngIf=\"format.search=='Y'\" class=\"col-lg-6\">\n                    Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n                </div>\n                <div class=\"col-md-2\" *ngFor=\"let m of format.buttons\">\n                    <button (click)=\"topButtonClick(m.value);\" [class]=\"m.class\" [style]=\"m.style\" [innerHTML]=\"m.title\"></button>\n                </div>\n            </div>\n            <table [class]=\"table_class\" [style]=\"table_style\">\n                <thead>\n                    <tr class=\"p-2\">\n                        <ng-container *ngFor=\"let m of format.columns\">\n                            <th *ngIf=\"m.type!='button'\" class=\"p-2\">{{ m.title }}</th>\n                            <th *ngIf=\"m.type=='button'\" class=\"p-2\"></th>\n                        </ng-container>         \n                        <th *ngIf=\"edit=='Y'\"></th>  \n                    </tr>\n                </thead>\n            <tbody>\n                <ng-container *ngFor=\"let m of list | filter: term | paginate: { currentPage: p , itemsPerPage: format.pagesize }\">\n                    <tr class=\"p-2\">\n                        <ng-container *ngFor=\"let n of format.columns\">\n                            <td (click)=\"rowClick(m)\" *ngIf=\"n['type']=='data'\" [innerHTML]=\"m[n['value']]\" [class]=\"n['class']\"></td>\n                            <td (click)=\"rowClick(m)\" *ngIf=\"n['type']=='text'\" [innerHTML]=\"n['value']\" [class]=\"n['class']\"></td>\n                            <td *ngIf=\"n['type']=='button'\">\n                                <button (click)=\"buttonClick(m)\" [class]=\"n.class\" [innerHTML]=\"n.title\"></button>\n                            </td>\n                        </ng-container>\n                        <td *ngIf=\"edit=='Y'\">\n                            <button class=\"btn btn-light\" (click)=\"editClick(m);\">\n                                <i class=\"bi bi-pencil-square\"></i>\n                            </button>\n                        </td>\n                    </tr> \n                    <tr *ngIf=\"m?.edit=='Y'\">\n                        <td [colSpan]=\"format.columns.length\">\n                            <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                        </td>\n                    </tr>\n                </ng-container>\n            </tbody> \n            </table>\n        <div *ngIf=\"format.pagination=='Y'\">\n                <paging-controls (pageChange)=\"p = $event\" [isItemsPerPage]=\"false\"  \n                class=\"my-pagination\"></paging-controls> \n            </div> \n        </div> <!-- col -->\n    </div> <!-- row -->\n</div> <!-- container -->\n<!-- CARD FORMAT-->\n<div *ngIf=\"card=='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div [class]=\"row_placeholder\">\n        <div [class]=\"col_placeholder\">\n            <div class=\"card\">\n                <div class=\"card-header\"  style=\"margin-top: 0px;\">\n                    <div class=\"row p-2\">\n                        <div class=\"col-md-12\">\n                            <h2>{{ title }}</h2>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"card-body\">\n                    <div *ngIf=\"format.search=='TOP'\" class=\"row m-1 p-3\">\n                        <div class=\"col-6\">\n                            Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n                        </div>\n                    </div>\n                    <div *ngIf=\"format.buttons.length>0||format.search=='Y'\" class=\"row m-1 p-3\">\n                        <div *ngIf=\"format.search=='Y'\" class=\"col-lg-6\">\n                            Search: <input style=\"max-width:320px;\" class=\"form-control\" type=\"text\" id=\"term\" name=\"term\" [(ngModel)]=\"term\"> \n                        </div>\n                        <div class=\"col-md-2\" *ngFor=\"let m of format.buttons\">\n                            <button (click)=\"topButtonClick(m.value);\" [class]=\"m.class\" [style]=\"m.style\" [innerHTML]=\"m.title\"></button>\n                        </div>\n                    </div>\n                    <table [class]=\"table_class\" [style]=\"table_style\">\n                        <thead>\n                            <ng-container *ngFor=\"let m of format.columns\">\n                                <th *ngIf=\"m.type!='button'\" [style]=\"m.style\" class=\"p-2\">{{ m.title }}</th>\n                                <th *ngIf=\"m.type=='button'\" [style]=\"m.style\" class=\"p-2\"></th>\n                            </ng-container>   \n                            <th *ngIf=\"edit=='Y'\"></th>  \n                        </thead>\n                        <tbody>\n                            <ng-container *ngFor=\"let m of list | filter: term | paginate: { currentPage: p , itemsPerPage: format.pagesize }\">\n                                <tr class=\"p-2\">\n                                    <ng-container *ngFor=\"let n of format.columns\">\n                                        <td (click)=\"rowClick(m)\" [style]=\"m.style\"  *ngIf=\"n['type']=='data'\" [innerHTML]=\"m[n['value']]\" [class]=\"n['class']\"></td>\n                                        <td (click)=\"rowClick(m)\" [style]=\"m.style\"  *ngIf=\"n['type']=='text'\" [innerHTML]=\"n['value']\" [class]=\"n['class']\"></td>\n                                        <td *ngIf=\"n['type']=='button'\">\n                                            <button (click)=\"buttonClick(m)\" [style]=\"m.style\" [class]=\"n.class\" [innerHTML]=\"n.title\"></button>\n                                        </td>\n                                    </ng-container>\n                                    <td *ngIf=\"edit=='Y'\" style=\"width:40px;\">\n                                        <button class=\"btn btn-light\" (click)=\"editClick(m);\">\n                                            <i class=\"bi bi-pencil-square\"></i>\n                                        </button>\n                                    </td>\n                                </tr> \n                                <tr *ngIf=\"m?.edit=='Y'\">\n                                    <td [colSpan]=\"format.columns.length\"> \n                                       <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                                    </td>\n                                </tr>\n                            </ng-container>\n                        </tbody> \n                    </table>\n                    <div *ngIf=\"format.pagination=='Y'\">\n                            <paging-controls (pageChange)=\"p = $event\" [isItemsPerPage]=\"false\"  \n                            class=\"my-pagination\"></paging-controls> \n                    </div>\n                </div> <!-- card-body -->\n            </div> <!-- card --> \n        </div>\n    </div>\n</div>\n<ng-template #contentTmpl>\n    <ng-content select=\"[form]\"></ng-content>\n</ng-template>\n","import { Component, OnInit, Input, Output, EventEmitter,OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Subject, Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-submit',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './sql-submit.component.html',\n  styleUrls: ['./sql-submit.component.css']\n})\nexport class SqlSubmitComponent implements OnInit, OnDestroy {\n\n  myObj!: Subscription;\n\n  @Input() data: any={};\n  @Input() label: any = 'Save Changes';\n  @Input() class: any = 'btn btn-primary';\n  @Input() style: any = '';\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();\n  counter: number = 0;\n\n  constructor(public _dataService:SQLDataService) { \n    this.myObj = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.counter++;\n    })\n  }\n\n  ngOnDestroy(): void {\n    this.myObj.unsubscribe();\n  }\n  ngOnInit(): void {\n\n  }\n\n  handleClick() {\n    this.data['submit']='Y';\n    this._dataService.pushNotification(this.data);\n  }\n}\n","<span class=\"m-2 p-2\">\n    <button [ngClass]=\"class\" [style]=\"style\" (click)=\"handleClick()\">{{ label }}</button> \n</span>","import { NgModule } from '@angular/core';\nimport { SqlComponentsComponent } from './sql-components.component';\nimport { SqlFormComponent } from './sql-form/sql-form.component';\nimport { SqlAddTableComponent } from './sql-add-table/sql-add-table.component';\nimport { SqlCheckboxComponent } from './sql-checkbox/sql-checkbox.component';\nimport { SqlFullcalendarComponent } from './sql-fullcalendar/sql-fullcalendar.component';\nimport { SqlPanelComponent } from './sql-panel/sql-panel.component';\nimport { SqlCardComponent } from './sql-card/sql-card.component';\nimport { SqlDatepickerComponent } from './sql-datepicker/sql-datepicker.component';\nimport { SqlUploadFormComponent } from './sql-upload-form/sql-upload-form.component';\nimport { SqlInputComponent } from './sql-input/sql-input.component';\nimport { SqlSelectComponent } from './sql-select/sql-select.component';\nimport { SqlTextareaComponent } from './sql-textarea/sql-textarea.component';\nimport { SqlCalendarComponent } from './sql-calendar/sql-calendar.component';\nimport { SqlRadioGroupComponent } from './sql-radio-group/sql-radio-group.component';\nimport { SqlTableComponent } from './sql-table/sql-table.component';\nimport { SqlEditTableComponent } from './sql-edit-table/sql-edit-table.component'; \nimport { SqlSubmitComponent } from './sql-submit/sql-submit.component';\n\n@NgModule({\n  declarations: [\n    SqlComponentsComponent,\n  ],\n  imports: [\n    SqlFormComponent,\n    SqlAddTableComponent,\n    SqlCalendarComponent,\n    SqlCheckboxComponent,\n    SqlFullcalendarComponent,\n    SqlPanelComponent,\n    SqlCardComponent,\n    SqlDatepickerComponent,\n    SqlUploadFormComponent,\n    SqlInputComponent,\n    SqlSelectComponent,\n    SqlTextareaComponent,\n    SqlRadioGroupComponent,\n    SqlTableComponent,\n    SqlEditTableComponent,\n    SqlSubmitComponent\n  ],\n  exports: [\n    SqlComponentsComponent,\n    SqlFormComponent,\n    SqlAddTableComponent,\n    SqlCalendarComponent,\n    SqlCheckboxComponent,\n    SqlFullcalendarComponent,\n    SqlPanelComponent,\n    SqlCardComponent,\n    SqlDatepickerComponent,\n    SqlUploadFormComponent,\n    SqlInputComponent,\n    SqlSelectComponent,\n    SqlTextareaComponent,\n    SqlRadioGroupComponent,\n    SqlTableComponent,\n    SqlEditTableComponent,\n    SqlSubmitComponent\n  ]\n})\nexport class SqlComponentsModule { }\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButton, MatButtonModule } from '@angular/material/button';\n\n@Component({\n  selector: 'lib-sql-dialog',\n  standalone: true,\n  imports: [CommonModule, MatDialogModule, MatButtonModule],\n  templateUrl: './sql-dialog.component.html',\n  styleUrls: ['./sql-dialog.component.css']\n})\nexport class SqlDialogComponent {\n\n  @Input() message: any ='';\n\n}\n","<h1 mat-dialog-title>Delete Record</h1>\n<div mat-dialog-content>\n  {{ message }}\n</div>\n<div mat-dialog-actions>\n  <button class=\"btn btn-primary\" mat-dialog-close>No</button>\n  <button class=\"btn btn-danger\" mat-dialog-close cdkFocusInitial>Yes</button>\n</div>","import { Component, OnInit, Input, Output, EventEmitter,OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Subject, Subscription } from 'rxjs';\nimport { MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { SqlDialogComponent } from '../sql-dialog/sql-dialog.component';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n  selector: 'lib-sql-delete-dialog',\n  standalone: true,\n  imports: [CommonModule, MatDialogModule, MatButtonModule],\n  templateUrl: './sql-delete-dialog.component.html',\n  styleUrls: ['./sql-delete-dialog.component.css']\n})\nexport class SqlDeleteDialogComponent implements OnInit, OnDestroy {\n\n  myObj!: Subscription;\n\n  @Input() data: any={};\n  change: EventEmitter<any> = new EventEmitter<any>();\n\n\n  constructor(public _dataService:SQLDataService, public dialog: MatDialog) { \n    this.myObj = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n    })\n  }\n\n  ngOnDestroy(): void {\n    this.myObj.unsubscribe();\n  }\n  ngOnInit(): void {\n\n  }\n\n  handleClick() {\n    this.data['submit']='D';\n    this._dataService.pushNotification(this.data);\n  }\n}\n","<h1 mat-dialog-title>Delete Record</h1>\n<div mat-dialog-content>\n  Are you sure to want to delete this record?  This cannot be reversed.\n</div>\n<div mat-dialog-actions>\n  <button class=\"btn btn-primary\" mat-dialog-close>No</button>\n  <button style=\"margin-left: 20px;\" (click)=\"handleClick()\" class=\"btn btn-danger\" mat-dialog-close cdkFocusInitial>Yes</button>\n</div>","import { Component, OnInit, Input, Output, EventEmitter,OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Subject, Subscription } from 'rxjs';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { SqlDialogComponent } from '../sql-dialog/sql-dialog.component';\nimport { SqlDeleteDialogComponent } from '../sql-delete-dialog/sql-delete-dialog.component';\n\n\n@Component({\n  selector: 'sql-delete',\n  standalone: true,\n  imports: [CommonModule, SqlDialogComponent],\n  templateUrl: './sql-delete.component.html',\n  styleUrls: ['./sql-delete.component.css']\n})\nexport class SqlDeleteComponent implements OnInit, OnDestroy {\n\n  myObj!: Subscription;\n\n  @Input() data: any={};\n  @Input() label: any = 'Delete Record';\n  @Input() warning: any = 'Are you sure you want to delete this record?';\n  @Input() class: any = 'btn btn-danger';\n  @Input() style: any = '';\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();\n  counter: number = 0;\n\n  constructor(public _dataService:SQLDataService, public dialog: MatDialog) { \n    this.myObj = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.counter++;\n    })\n  }\n\n  handleClick(enterAnimationDuration: string, exitAnimationDuration: string): void {\n    this.dialog.open(SqlDeleteDialogComponent, {\n      width: '350px',\n      enterAnimationDuration,\n      exitAnimationDuration,\n    });\n  }\n\n  ngOnDestroy(): void {\n//    this.myObj.unsubscribe();\n  }\n  ngOnInit(): void {\n\n  }\n\n}\n","<span *ngIf=\"data?.id!=''&&data?.id!='0'\" class=\"m-2 p-2\">\n    <button [ngClass]=\"class\" [style]=\"style\" (click)=\"handleClick('300ms', '150ms')\">{{ label }}</button> \n</span>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-menu',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './sql-menu.component.html',\n  styleUrls: ['./sql-menu.component.css']\n})\nexport class SqlMenuComponent implements OnInit, AfterViewInit, OnDestroy  {\n  // \n  @ContentChildren('title') private title_list!: ElementRef;\n  @ContentChildren('row') private row_list!: ElementRef[];\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  \n  // format: is built from ContentChildren and Input Parameters\n  format: any = { title: '', search: '', class: '', style: '', columns: [], buttons: [] };\n  list: any[] = [];          \n\n  \n  row_placeholder: any = 'row';\n  col_placeholder: any = 'col-12';\n  \n  //-- Inputs\n  @Input() title: any = '';                               // title of the page.\n  @Input() active: any = '0';\n  @Input() use_parameters = 'N';\n  @Input() data: any = '';                                // Use Data if data comes from function.\n  @Input() card: any = \"Y\";                               // Show the form in a card Y/N\n  @Input() card_class: any = '';\n  @Input() card_style: any = '';\n  @Input() container_class: any = 'container-fluid m-2 p-2';              // Class of the outer ng-container.\n  @Input() container_style: any = '';                     // Style of the outer ng-container.  \n  @Input() search: any = 'TOP';                           // Location of the search box.\n  @Input() bs_row: any = 'Y';                             // Y means add a bootstrap row.\n  @Input() bs_col: any = 'col-sm-12 col-lg-12 col-xl-12';   // What bootstrap columns.\n  @Input() table_class: any = 'table table-striped table-condensed';   // class of the table.\n  @Input() table_style: any = '';                                      // style of the table.\n  @Input() edit: any = 'Y';                               // Add custom edit button.\n  @Input() pagination: any = 'Y';                         // Include pagination.\n  @Input() pagesize: number = 25;                         // rows per page for pagination.\n  @Input() id: any = '0';                                 // id for where clause.\n  @Input() open: any = \"Y\";                               // Does a closable list start open.\n  @Input() class: any = 'table table-striped table-condensed';  // Class for the table container.\n  @Input() style: any = \"\";                               // Style for the table container.\n  @Input() handler: any = 'default';                      // what handler is used to process the form.\n  @Output() menuClick: EventEmitter<any> = new EventEmitter<any>();\n  \n  counter: number = 0;\n  \n  constructor(private _dataService: SQLDataService) {     \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n    })\n  }\n  \n  ngOnInit(): void {\n  this.format.search='Y';\n  }\n  \n\n  processClick(m: any) {\n    this.list.forEach((e: any)=> {\n      e.active='N';\n    } );\n    m.active='Y';\n    this.menuClick.emit(m);\n  }\n  \n  ngAfterViewInit(): void {\n  \n  this.format.title=this.title;\n  this.format.class=this.class;\n  this.format.style=this.style;\n  this.format.pagination=this.pagination;\n  this.format.pagesize=this.pagesize;\n  if (this.bs_row=='Y') {\n      this.row_placeholder=\"row\";\n  } else {\n      this.row_placeholder=\"none\";\n  }\n  this.col_placeholder=this.bs_col;\n\n  this.row_list.forEach((e: ElementRef) => {\n  \n       let template: any = { title: '',  class: '',  id: '',  style: '', active: 'N' };\n       \n       if (e.nativeElement.nodeName=='LI') {\n            template.id=e.nativeElement.id;\n            template.title=e.nativeElement.innerHTML;\n       }      \n       if (e.nativeElement.className!==undefined) { template.class=e.nativeElement.className; }\n       template.style=e.nativeElement.style.cssText;\n       this.list.push(template);\n  });\n  \n  this.list.forEach((e: any)=> {\n    console.log('e.id: ' + e.id + ' ' + ' active: ' + this.active)\n    if (e.id==this.active) {\n      e.active='Y';\n    } else {\n      e.active='N';\n        }\n  });\n\n  }\n\n  ngOnDestroy(): void {\n//    this.myObs.unsubscribe();\n //   this.myDataObs.unsubscribe();\n  }\n  }","<div class=\"list-group\">\n    <button *ngIf=\"title!=''\" class=\"list-group-item list-group-item-action list-group-item-dark\">{{ title }}</button>\n    <ng-container *ngFor=\"let m of list\">\n        <li (click)=\"processClick(m)\" *ngIf=\"m?.active!=='Y'\" \n        class=\"list-group-item d-flex justify-content-between align-items-center\">{{ m.title }}\n                <span *ngIf=\"m.badge!==''\" class=\"badge bg-primary rounded-pill\">{{ m.badge }}</span></li>\n        <li (click)=\"processClick(m)\" *ngIf=\"m?.active==='Y'\" \n        class=\"list-group-item d-flex justify-content-between align-items-center active\">{{ m.title }}\n                <span *ngIf=\"m.badge!==''\" class=\"badge bg-primary rounded-pill\">{{ m.badge }}</span></li>\n    </ng-container>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, \n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n  selector: 'sql-data-menu',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule],\n  templateUrl: './sql-data-menu.component.html',\n  styleUrls: ['./sql-data-menu.component.css']\n})\nexport class SqlDataMenuComponent  implements OnInit, AfterViewInit {\n  \n  list: any;          // holds the list returned by the query.\n  \n  row_placeholder: any = 'row';\n  col_placeholder: any = 'col-12';\n  \n  //-- Inputs\n  @Input() function: any = '';                            // Use Function if data comes from a function in router.php\n  @Input() sql: any = '';                                 // SQL that gets data \n  @Input() use_parameters: any = 'N';                     // If Y uses the paramSubject to get parameters.\n  @Input() page: any = '';                                // page parameter, ignored if use_parameters = 'Y'.\n  @Input() id: any = '0';                                 // id parameter, ignored if use_parameters = 'Y'.\n  @Input() id2: any = '0';                                // id2 parameter, ignored if use_parameters = 'Y'.\n  @Input() id3: any = '0';                                // id3 parameter, ignored if use_parameters = 'Y'.\n  @Input() class: any = '';                               // class of the outer container.\n  @Input() style: any = '';                               // style of the outer container.\n  @Input() title: any = '';                               // title of the page.\n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  \n  @Output() click: EventEmitter<any> = new EventEmitter<any>();\n  \n  counter: number = 0;\n  \n  constructor(private _dataService: SQLDataService) {     \n\n  }\n  \n  ngOnInit(): void {\n\n  }\n  \n  processClick(m: any) {\n    this.list.forEach(function (value: any) {\n      if (value.id==m.id) {\n        value.active='Y';\n      } else {\n        value.active='N';\n      }\n    });\n    this.click.emit(m);\n  }\n  \n  ngAfterViewInit(): void {\n    if (this.use_parameters=='Y') {\n      this._dataService.paramSubject.subscribe(d => {\n        this.parameters=d;\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n      })\n    } else {\n        this.parameters.page=this.page;\n        this.parameters.id=this.id;\n        this.parameters.id2=this.id2;\n        this.parameters.id3=this.id3;\n        this._dataService.getMenu(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n    }    \n  }\n  \n}\n  ","<div class=\"list-group\" [style]=\"style\">\n    <button *ngIf=\"title!=''\" class=\"list-group-item list-group-item-action list-group-item-dark\">{{ title }}</button>\n    <ng-container *ngFor=\"let m of list\">\n        <li (click)=\"processClick(m)\" *ngIf=\"m?.active!=='Y'\" \n        class=\"list-group-item d-flex justify-content-between align-items-center\">{{ m.title }}\n                <span *ngIf=\"m.badge!==''\" class=\"badge bg-primary rounded-pill\">{{ m.badge }}</span></li>\n        <li (click)=\"processClick(m)\" *ngIf=\"m?.active==='Y'\" \n        class=\"list-group-item d-flex justify-content-between align-items-center active\">{{ m.title }}\n                <span *ngIf=\"m.badge!==''\" class=\"badge bg-primary rounded-pill\">{{ m.badge }}</span></li>\n    </ng-container>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, OnChanges, DoCheck, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInput, MatInputModule } from '@angular/material/input';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { MatOptionModule } from '@angular/material/core';\nimport { SQLDataService } from '../data.service'; \nimport { MatSelectModule } from '@angular/material/select';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-data-select',\n  standalone: true,\n  imports: [CommonModule, FormsModule, MatFormFieldModule, \n    MatInputModule, MatOptionModule, MatSelectModule],\n  templateUrl: './sql-data-select.component.html',\n  styleUrls: ['./sql-data-select.component.css']\n})\nexport class SqlDataSelectComponent  implements OnInit, AfterViewInit, OnDestroy  {\n\n  value: any='';\n  fieldData: any = '';\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n\n  @Input() appearance: string = 'outline';\n  @Input() native: any = 'Y';\n  @Input() sql: string = '';\n  @Input() handler: string = '';\n  @Input() col: string = '';\n  @Input() data: any;\n  @Input() id: any = '';\n  @Input() id2: any = '';\n  @Input() id3: any = '';\n  @Input() class: any = '';\n  @Input() style: any = '';\n  @Input() hint: string = '';\n  @Input() icon: string = '';\n  @Input() label: string = 'Label not set';\n  @Input() placeholder: any = '';\n\n  @Input() bs_row: any = 'Y';\n  @Input() bs_col: any = 'col-12';\n  @Input() top_label: any = 'N';\n  selectData: any;\n  counter: number = 0;\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();  \n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  \n  formData: any;\n  constructor(private _dataService: SQLDataService) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.fieldData = this.data;\n      this.value = this.fieldData[this.col];\n      this.counter++;\n    })\n  }\n\n  ngAfterViewInit() {\n    this.parameters.id=this.id;\n    this.parameters.id2=this.id2;\n    this.parameters.id3=this.id3;\n    this.myDataObs = this._dataService.getSelect(this.sql, this.parameters).subscribe((data:any)=>{\n      this.selectData=data;\n    });\n  }\n\n  ngOnInit(): void {\n\n  }\n\n\n  handleChange() {\n     this.fieldData['submit']='N';\n     this.fieldData[this.col]=this.value;\n     this._dataService.pushNotification(this.fieldData);\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n    this.myDataObs.unsubscribe();\n  }\n}","<ng-container *ngIf=\"appearance=='fill'\">\n    <ng-container *ngIf=\"native=='Y'\">\n        <!-- New Row -->\n        <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <select [(ngModel)]=\"value\" (change)=\"handleChange()\" matNativeControl [style]=\"style\" [class]=\"class\">\n                      <option *ngFor=\"let m of selectData\" [value]=\"m.id\">{{ m.option }}</option>\n                    </select>\n                  </mat-form-field>\n            </div>\n        </div>\n        <!-- No New Row but column -->\n        <span *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <select [(ngModel)]=\"value\"  matNativeControl (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <option *ngFor=\"let m of selectData\" [value]=\"m.id\">{{ m.option }}</option>\n                    </select>\n                  </mat-form-field>\n            </div>\n          </span>\n        <!-- No New Row and no column -->\n        <span *ngIf=\"bs_row!='Y'&&bs_col==''\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                <mat-label>{{ label }}</mat-label>\n                <select  [(ngModel)]=\"value\" matNativeControl (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                  <option *ngFor=\"let m of selectData\" [value]=\"m.id\">{{ m.option }}</option>\n                </select>\n              </mat-form-field>\n            </span>\n          </ng-container>\n    <span *ngIf=\"native=='N'\">\n        <!-- New Row -->\n        <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\" [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <mat-select  [(ngModel)]=\"value\" (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <mat-option *ngFor=\"let m of selectData\" [value]=\"m.id\">\n                        {{ m.option }}\n                      </mat-option>\n                    </mat-select>\n                  </mat-form-field>\n            </div>\n        </div>\n        <!-- No New Row but column -->\n        <span *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n            <div [class]=\"bs_col\">\n                <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n                <mat-form-field appearance=\"fill\"  [style]=\"style\" [class]=\"class\">\n                    <mat-label>{{ label }}</mat-label>\n                    <mat-select  [(ngModel)]=\"value\" (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                      <mat-option *ngFor=\"let m of selectData\" [value]=\"m.id\">\n                        {{ m.option }}\n                      </mat-option>\n                    </mat-select>\n                  </mat-form-field>\n            </div>\n          </span>\n        <!-- No New Row and no column -->\n        <span *ngIf=\"bs_row!='Y'&&bs_col==''\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"fill\"  [style]=\"style\" [class]=\"class\">\n                <mat-label>{{ label }}</mat-label>\n                <mat-select  [(ngModel)]=\"value\" (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                  <mat-option *ngFor=\"let m of selectData\" [value]=\"m.id\"  [style]=\"style\" [class]=\"class\">\n                    {{ m.option }}\n                  </mat-option>\n                </mat-select>\n              </mat-form-field>\n            </span>\n          </span>\n</ng-container>\n<!-- OUTLINE Style -->\n<ng-container *ngIf=\"appearance=='outline'\">\n<ng-container *ngIf=\"native=='Y'\">\n    <!-- New Row -->\n    <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n        <div [class]=\"bs_col\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n                <mat-label>{{ label }}</mat-label>\n                <select  [(ngModel)]=\"value\" matNativeControl  (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                  <option *ngFor=\"let m of selectData\" [value]=\"m.id\">{{ m.option }}</option>\n                </select>\n              </mat-form-field>\n        </div>\n    </div>\n    <!-- No New Row but column -->\n    <span *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n        <div [class]=\"bs_col\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n                <mat-label>{{ label }}</mat-label>\n                <select  [(ngModel)]=\"value\" matNativeControl  (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                  <option *ngFor=\"let m of selectData\" [value]=\"m.id\">{{ m.option }}</option>\n                </select>\n              </mat-form-field>\n        </div>\n    </span>\n    <!-- No New Row and no column -->\n    <ng-container *ngIf=\"bs_row!='Y'&&bs_col==''\">\n        <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n        <mat-form-field appearance=\"outline\" [style]=\"style\" [class]=\"class\">\n            <mat-label>{{ label }}</mat-label>\n            <select  [(ngModel)]=\"value\" matNativeControl  (change)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n              <option *ngFor=\"let m of selectData\" [value]=\"m.id\">{{ m.option }}</option>\n            </select>\n          </mat-form-field>\n        </ng-container>\n      </ng-container>\n<ng-container *ngIf=\"native=='N'\">\n    <!-- New Row -->\n    <div *ngIf=\"bs_row=='Y'\" class=\"row\">\n        <div [class]=\"bs_col\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"fill\"  [style]=\"style\" [class]=\"class\">\n                <mat-label>{{ label }}</mat-label>\n                <mat-select  [(ngModel)]=\"value\"  (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                  <mat-option *ngFor=\"let m of selectData\" [value]=\"m.id\">\n                    {{ m.option }}\n                  </mat-option>\n                </mat-select>\n              </mat-form-field>\n        </div>\n    </div>\n    <!-- No New Row but column -->\n    <ng-container *ngIf=\"bs_row!='Y'&&bs_col!=''\">\n        <div [class]=\"bs_col\">\n            <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n            <mat-form-field appearance=\"outline\"  [style]=\"style\" [class]=\"class\">\n                <mat-label>{{ label }}</mat-label>\n                <mat-select  [(ngModel)]=\"value\"  (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n                  <mat-option *ngFor=\"let m of selectData\" [value]=\"m.id\">\n                    {{ m.option }}\n                  </mat-option>\n                </mat-select>\n              </mat-form-field>\n        </div>\n      </ng-container>\n    <!-- No New Row and no column -->\n    <ng-container *ngIf=\"bs_row!='Y'&&bs_col==''\">\n        <p *ngIf=\"top_label=='Y'\">{{ label }}</p>\n        <mat-form-field appearance=\"outline\"  [style]=\"style\" [class]=\"class\">\n            <mat-label>{{ label }}</mat-label>\n            <mat-select  [(ngModel)]=\"value\"  (selectionChange)=\"handleChange()\" [style]=\"style\" [class]=\"class\">\n              <mat-option *ngFor=\"let m of selectData\" [value]=\"m.id\">\n                {{ m.option }}\n              </mat-option>\n            </mat-select>\n          </mat-form-field>\n        </ng-container>\n      </ng-container>\n    </ng-container>\n","import { Component, OnInit, Input, Output, OnDestroy, EventEmitter, OnChanges, DoCheck, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInput, MatInputModule } from '@angular/material/input';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { SQLDataService } from '../data.service';\nimport { Subscription } from 'rxjs';\n\n\n@Component({\n  selector: 'sql-default-value',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './sql-default-value.component.html',\n  styleUrls: ['./sql-default-value.component.css']\n})\nexport class SqlDefaultValueComponent implements AfterViewInit, OnDestroy {\n\n  @Input() col: any = '';\n  @Input() value: any = '';\n\n  myObs!: Subscription;\n  data: any;\n\n  formData: any;\n  constructor(private _dataService: SQLDataService) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n    })\n  }\n\n  ngAfterViewInit(): void {\n    console.log('sql-default-value')\n    console.log(this.value)\n    console.log(this.col)\n    setTimeout(() => {\n        this.data[this.col]=this.value;\n        console.log('sql-default-value: timer')\n        console.log(this.data)\n        this._dataService.dataSubject.next(this.data);\n    },1000);\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n  }\n\n}\n","","import { Component, Input, AfterViewInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'pre-insert-trigger',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './pre-insert-trigger.component.html',\n  styleUrls: ['./pre-insert-trigger.component.css']\n})\nexport class PreInsertTriggerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\n  @Input() name: any = 'pre-insert';\n  @Input() sql: any = '';\n  @Input() order: any = '0';\n  myObs!: Subscription;\n  data: any;\n\n  constructor(private _dataService: SQLDataService) {\n\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    \n  }\n\n  registerService() {\n\n    let count: number=0;\n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      if (this.data.triggers===undefined) {\n        let t: any = [];\n        this.data.triggers=t;\n      }\n      count=0;\n      this.data.triggers.forEach((element: any) => {\n        if (element.type=='pre-insert-trigger'&&element.name==this.name) {\n             count++;\n        }\n      });\n       if (count==0) {\n        let tr: any = { type: 'pre-insert-trigger', name: this.name, sql: this.sql, order: this.order }\n        this.data.triggers.push(tr);\n         this._dataService.dataSubject.next(this.data);\n      }\n    })\n\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this.registerService();  \n    }, 1000);\n  }\n  \n}","","import { Component, Input, AfterViewInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'pre-update-trigger',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './pre-update-trigger.component.html',\n  styleUrls: ['./pre-update-trigger.component.css']\n})\nexport class PreUpdateTriggerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\n  @Input() name: any = 'pre-insert';\n  @Input() sql: any = '';\n  @Input() order: any = '0';\n  myObs!: Subscription;\n  data: any;\n\n  constructor(private _dataService: SQLDataService) {\n\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    \n  }\n\n  registerService() {\n\n    let count: number=0;\n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      if (this.data.triggers===undefined) {\n        let t: any = [];\n        this.data.triggers=t;\n      }\n      count=0;\n      this.data.triggers.forEach((element: any) => {\n        if (element.type=='pre-update-trigger'&&element.name==this.name) {\n             count++;\n        }\n      });\n      if (count==0) {\n        let tr: any = { type: 'pre-update-trigger', name: this.name, sql: this.sql, order: this.order }\n        this.data.triggers.push(tr);\n        this._dataService.dataSubject.next(this.data);\n      }\n    })\n\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this.registerService();  \n    }, 1000);\n  }\n  \n}\n\n\n","","import { Component, Input, AfterViewInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service'; \nimport { Subscription } from 'rxjs';\n\n\n@Component({\n  selector: 'post-insert-trigger',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './post-insert-trigger.component.html',\n  styleUrls: ['./post-insert-trigger.component.css']\n})\nexport class PostInsertTriggerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\n  @Input() name: any = 'pre-insert';\n  @Input() sql: any = '';\n  @Input() order: any = '0';\n  myObs!: Subscription;\n  data: any;\n\n  constructor(private _dataService: SQLDataService) {\n\n  }\n\n  ngOnDestroy(): void {\n //   this.myObs.unsubscribe();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    \n  }\n\n  registerService() {\n\n    let count: number=0;\n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      if (this.data.triggers===undefined) {\n        let t: any = [];\n        this.data.triggers=t;\n      }\n      count=0;\n      this.data.triggers.forEach((element: any) => {\n        if (element.type=='post-insert-trigger'&&element.name==this.name) {\n             count++;\n        }\n      });\n       if (count==0) {\n        let tr: any = { type: 'post-insert-trigger', name: this.name, sql: this.sql, order: this.order }\n        this.data.triggers.push(tr);\n         this._dataService.dataSubject.next(this.data);\n      }\n    })\n\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => {\n      this.registerService();  \n    }, 1000);\n  }\n  \n}","","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'sql-data-preview',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule,\n    NgxTablePaginationModule, \n    Ng2SearchPipeModule],\n  templateUrl: './sql-data-preview.component.html',\n  styleUrls: ['./sql-data-preview.component.css']\n})\nexport class SqlDataPreviewComponent implements OnInit, AfterViewInit, OnDestroy  {\n\n@ContentChildren('row') private row_list!: ElementRef[];\nmyObs!: Subscription;\nmyDataObs!: Subscription;\n\nformat: any = { title: '', search: '', class: '', style: '', columns: [], buttons: [] };\nlist: any;          // holds the list returned by the query (2 columns [name, title]).\n\ndata: any = '';\n@Input() use_parameters: any = 'N';\n@Input() function: any = '';                           \n@Input() sql: any = '';                             \n@Input() card: any = \"Y\";      \n@Input() card_class: any = '';\n@Input() card_style: any = '';\n@Input() container_class: any = 'container-fluid m-2 p-2';  \n@Input() container_style: any = '';   \n\n@Input() closable: any = \"N\";    \n@Input() bs_row: any = 'N';                        \n@Input() bs_col: any = '';   \n\n@Input() list_class: any = 'table table-striped table-condensed';   \n@Input() list_style: any = '';                                  \n@Input() title: any = 'Title Not Set';               \n\n@Input() id: any = '0';        \n@Input() id2: any = '0';    \n@Input() id3: any = '0';      \n@Input() left: any = 'col-6';\n@Input() right: any = 'col-6';\n\n\n@Input() class: any = '';  \n@Input() style: any = \"\";                            \n          \n@Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n\nparameters: any = { page: '', id: '', id2: '', id3: ''};\nlast_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n\nadding: any = 'N';\n\ncounter: number = 0;\npage: any = '';\n\nconstructor(private _dataService: SQLDataService) { \n\n}\n\nngOnInit(): void {\n\n}\n\nrowClick(m: any) {\n  this.row_click.emit(m);\n}\n\nngAfterViewInit(): void {\n\n  if (this.use_parameters==='Y') {\n    this._dataService.paramSubject.subscribe(d => {\n      this.parameters=d;\n      this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n        this.list=data;\n        this.list.forEach(function (value: any) {\n          value.active='N';\n        });\n       });\n    })\n  } \n  if (this.use_parameters==='N') {\n      this.parameters.page=this.page;\n      this.parameters.id=this.id;\n      this.parameters.id2=this.id2;\n      this.parameters.id3=this.id3;\n      console.log(this.parameters);\n      this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n        if (data[0]!==undefined) { this.list=data[0]; }\n       });\n  }\n\nthis.format.title=this.title;\nthis.format.class=this.class;\nthis.format.style=this.style;\n\nthis.row_list.forEach((e: ElementRef) => {\n  \n     let column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n     \n     if (e.nativeElement.nodeName=='TH') {\n       column_template.type=\"data\";\n       column_template.value=e.nativeElement.id;\n       column_template.title=e.nativeElement.innerHTML;\n     }      \n     \n     if (e.nativeElement.nodeName=='TD') {      \n       column_template.type=\"boilerplate\";\n       column_template.value='';\n       column_template.title=e.nativeElement.innerHTML;\n     }   \n\n     if (e.nativeElement.className!==undefined) { column_template.class=e.nativeElement.className; }\n     column_template.style=e.nativeElement.style.cssText;\n     this.format.columns.push(column_template);\n});\n\n\nif (this.last_parameters.page!=this.parameters.page||\n    this.last_parameters.id!=this.parameters.id||\n    this.last_parameters.id2!=this.parameters.id2||\n    this.last_parameters.id3!=this.parameters.id3) {\n          this.last_parameters.page=this.parameters.page;\n          this.last_parameters.id=this.parameters.id;\n          this.last_parameters.id2=this.parameters.id2;\n          this.last_parameters.id3=this.parameters.id3;\n          console.log(\"Getting SQL\")\n          console.log(this.sql);\n          console.log(this.parameters);\n          this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n            if (data[0]!==undefined) { \n              this.list=data[0]; \n              console.log(this.list)\n            }\n          });\n    }\n}\n\ntableRefresh() {\n  this.myDataObs.unsubscribe();\n  this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n      if (data[0]!==undefined) { this.list=data[0]; }\n   });\n}\n\nngOnDestroy(): void {\n//  this.myObs.unsubscribe();\n//  this.myDataObs.unsubscribe();\n}\n}","<!-- NOT A CARD FORMAT-->\n<div *ngIf=\"card!='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n        <div class=\"card\">\n                    <ul class=\"list-group list-group-flush\">\n                        <li class=\"list-group-item\" *ngIf=\"format.title!=''\" style=\"background-color: lightgray;\">{{ title }}</li>\n                        <ng-container *ngFor=\"let m of format.columns\">\n                            <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                <div class=\"row\">\n                                    <div [class]=\"left\">\n                                    <b>{{ m.title }}</b>\n                                    </div>\n                                    <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                    </div>\n                                </div>\n                            </li>  \n                            <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                <div class=\"row\">\n                                    <div class=\"col-12\">\n                                    <b>{{ m.title }}</b>\n                                    </div>\n                                </div>\n                            </li>    \n                        </ng-container>     \n                    </ul>\n        </div>              \n</div>\n<div *ngIf=\"card=='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div class=\"card\">\n        <div class=\"card-header\">\n          {{ title }}\n        </div>\n        <div *ngIf=\"adding=='Y'\" class=\"card-body\">\n\n        </div>\n        <div class=\"card-body\">\n            <ul class=\"list-group list-group-flush\">\n                <ng-container *ngFor=\"let m of format.columns\">\n                    <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                        <div class=\"row\">\n                            <div [class]=\"left\">\n                            <b>{{ m.title }}</b>\n                            </div>\n                            <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                            </div>\n                        </div>\n                    </li>  \n                    <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                        <div class=\"row\">\n                            <div class=\"col-12\">\n                            <b>{{ m.title }}</b>\n                            </div>\n                        </div>\n                    </li>    \n                </ng-container>     \n            </ul>\n        </div>\n      </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'lib-sql-data-preview2',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule,\n    NgxTablePaginationModule, \n    Ng2SearchPipeModule],\n  templateUrl: './sql-data-preview2.component.html',\n  styleUrls: ['./sql-data-preview2.component.css']\n})\nexport class SqlDataPreview2Component implements OnInit, AfterViewInit, OnDestroy  {\n\n  @ContentChildren('left') private left_row_list!: ElementRef[];\n  @ContentChildren('right') private right_row_list!: ElementRef[];\n\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  \n  format: any = { title: '', search: '', class: '', style: '', left_column: [], right_column: [], buttons: [] };\n  list: any;          // holds the list returned by the query (2 columns [name, title]).\n  \n  data: any = '';\n  @Input() use_parameters: any = 'N';\n  @Input() function: any = '';                           \n  @Input() sql: any = '';                             \n  @Input() card: any = \"Y\";      \n  @Input() card_class: any = '';\n  @Input() card_style: any = '';\n  @Input() container_class: any = 'container-fluid m-2 p-2';  \n  @Input() container_style: any = '';   \n  \n  @Input() closable: any = \"N\";    \n  @Input() bs_row: any = 'N';                        \n  @Input() bs_col: any = '';   \n  \n  @Input() list_class: any = 'table table-striped table-condensed';   \n  @Input() list_style: any = '';                                  \n  @Input() title: any = 'Title Not Set';               \n  \n  @Input() id: any = '0';        \n  @Input() id2: any = '0';    \n  @Input() id3: any = '0';      \n  @Input() left: any = 'col-6';\n  @Input() right: any = 'col-6';\n    \n  @Input() class: any = '';  \n  @Input() style: any = \"\";                            \n            \n  @Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n  \n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  last_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n  \n  counter: number = 0;\n  page: any = '';\n  \n  adding: any = 'N';\n  \n  constructor(private _dataService: SQLDataService) { \n  \n  }\n  \n  ngOnInit(): void {\n  \n  }\n  \n  rowClick(m: any) {\n    this.row_click.emit(m);\n  }\n  \n  ngAfterViewInit(): void {\n  \n    if (this.use_parameters==='Y') {\n      this._dataService.paramSubject.subscribe(d => {\n        this.parameters=d;\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n      })\n    } \n    if (this.use_parameters==='N') {\n        this.parameters.page=this.page;\n        this.parameters.id=this.id;\n        this.parameters.id2=this.id2;\n        this.parameters.id3=this.id3;\n        console.log(this.parameters);\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          if (data[0]!==undefined) { this.list=data[0]; }\n         });\n    }\n  \n  this.format.title=this.title;\n  this.format.class=this.class;\n  this.format.style=this.style;\n  \n  this.left_row_list.forEach((e: ElementRef) => {\n    \n       let left_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n       \n       if (e.nativeElement.nodeName=='TH') {\n         left_column_template.type=\"data\";\n         left_column_template.value=e.nativeElement.id;\n         left_column_template.title=e.nativeElement.innerHTML;\n       }      \n       \n       if (e.nativeElement.nodeName=='TD') {      \n         left_column_template.type=\"boilerplate\";\n         left_column_template.value='';\n         left_column_template.title=e.nativeElement.innerHTML;\n       }   \n  \n       if (e.nativeElement.className!==undefined) { left_column_template.class=e.nativeElement.className; }\n       left_column_template.style=e.nativeElement.style.cssText;\n       this.format.left_column.push(left_column_template);\n  });\n\n  this.right_row_list.forEach((e: ElementRef) => {\n    \n    let right_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n    \n    if (e.nativeElement.nodeName=='TH') {\n      right_column_template.type=\"data\";\n      right_column_template.value=e.nativeElement.id;\n      right_column_template.title=e.nativeElement.innerHTML;\n    }      \n    \n    if (e.nativeElement.nodeName=='TD') {      \n      right_column_template.type=\"boilerplate\";\n      right_column_template.value='';\n      right_column_template.title=e.nativeElement.innerHTML;\n    }   \n\n    if (e.nativeElement.className!==undefined) { right_column_template.class=e.nativeElement.className; }\n    right_column_template.style=e.nativeElement.style.cssText;\n    this.format.right_column.push(right_column_template);\n  });\n\n  \n  \n  if (this.last_parameters.page!=this.parameters.page||\n      this.last_parameters.id!=this.parameters.id||\n      this.last_parameters.id2!=this.parameters.id2||\n      this.last_parameters.id3!=this.parameters.id3) {\n            this.last_parameters.page=this.parameters.page;\n            this.last_parameters.id=this.parameters.id;\n            this.last_parameters.id2=this.parameters.id2;\n            this.last_parameters.id3=this.parameters.id3;\n            console.log(\"Getting SQL\")\n            console.log(this.sql);\n            console.log(this.parameters);\n            this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n              if (data[0]!==undefined) { \n                this.list=data[0]; \n                console.log(this.list)\n              }\n            });\n      }\n  }\n  \n  tableRefresh() {\n    this.myDataObs.unsubscribe();\n    this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n        if (data[0]!==undefined) { this.list=data[0]; }\n     });\n  }\n  \n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n    this.myDataObs.unsubscribe();\n  }\n  }","<!-- NOT A CARD FORMAT-->\n<div *ngIf=\"card!='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div class=\"card\">\n                <ul class=\"list-group list-group-flush\">\n                    <li class=\"list-group-item\" *ngIf=\"format.title!=''\" style=\"background-color: lightgray;\">{{ title }}</li>\n                    <li class=\"list-group-item\" *ngIf=\"format.title!=''\">\n                        <div class=\"row\">\n                            <div class=\"col-6\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.left_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>\n                            <div class=\"col-6\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.right_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>                            \n                        </div>\n                    </li>\n                </ul>\n    </div>              \n</div>\n<div *ngIf=\"card=='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n<div class=\"card\">\n    <div class=\"card-header\">\n      {{ title }}\n    </div>\n    <div class=\"card-body\">\n        <div class=\"row\">\n            <div class=\"col-6\">\n                <ul class=\"list-group list-group-flush\">\n                    <ng-container *ngFor=\"let m of format.left_column\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ul>\n            </div>\n            <div class=\"col-6\">\n                <ul class=\"list-group list-group-flush\">\n                    <ng-container *ngFor=\"let m of format.right_column\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ul>\n            </div>            \n        </div>\n    </div>\n  </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'lib-sql-data-preview3',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule,\n    NgxTablePaginationModule, \n    Ng2SearchPipeModule],\n  templateUrl: './sql-data-preview3.component.html',\n  styleUrls: ['./sql-data-preview3.component.css']\n})\nexport class SqlDataPreview3Component implements OnInit, AfterViewInit, OnDestroy  {\n\n  @ContentChildren('left') private left_row_list!: ElementRef[];\n  @ContentChildren('right') private center_row_list!: ElementRef[];  \n  @ContentChildren('right') private right_row_list!: ElementRef[];\n\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  \n  format: any = { title: '', search: '', class: '', style: '', left_column: [], center_column: [], right_column: [], buttons: [] };\n  list: any;          // holds the list returned by the query (2 columns [name, title]).\n  \n  data: any = '';\n  @Input() use_parameters: any = 'N';\n  @Input() function: any = '';                           \n  @Input() sql: any = '';                             \n  @Input() card: any = \"Y\";      \n  @Input() card_class: any = '';\n  @Input() card_style: any = '';\n  @Input() container_class: any = 'container-fluid m-2 p-2';  \n  @Input() container_style: any = '';   \n  \n  @Input() closable: any = \"N\";    \n  @Input() bs_row: any = 'N';                        \n  @Input() bs_col: any = '';   \n  \n  @Input() list_class: any = 'table table-striped table-condensed';   \n  @Input() list_style: any = '';                                  \n  @Input() title: any = 'Title Not Set';               \n  \n  @Input() id: any = '0';        \n  @Input() id2: any = '0';    \n  @Input() id3: any = '0';      \n  @Input() left: any = 'col-6';\n  @Input() right: any = 'col-6';\n    \n  @Input() class: any = '';  \n  @Input() style: any = \"\";                            \n            \n  @Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n  \n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  last_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n  \n  counter: number = 0;\n  page: any = '';\n  \n  constructor(private _dataService: SQLDataService) { \n  \n  }\n  \n  ngOnInit(): void {\n  \n  }\n  \n  rowClick(m: any) {\n    this.row_click.emit(m);\n  }\n  \n  ngAfterViewInit(): void {\n  \n    if (this.use_parameters==='Y') {\n      this._dataService.paramSubject.subscribe(d => {\n        this.parameters=d;\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n      })\n    } \n    if (this.use_parameters==='N') {\n        this.parameters.page=this.page;\n        this.parameters.id=this.id;\n        this.parameters.id2=this.id2;\n        this.parameters.id3=this.id3;\n        console.log(this.parameters);\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          if (data[0]!==undefined) { this.list=data[0]; }\n         });\n    }\n  \n  this.format.title=this.title;\n  this.format.class=this.class;\n  this.format.style=this.style;\n  \n  this.left_row_list.forEach((e: ElementRef) => {\n    \n       let left_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n       \n       if (e.nativeElement.nodeName=='TH') {\n         left_column_template.type=\"data\";\n         left_column_template.value=e.nativeElement.id;\n         left_column_template.title=e.nativeElement.innerHTML;\n       }      \n       \n       if (e.nativeElement.nodeName=='TD') {      \n         left_column_template.type=\"boilerplate\";\n         left_column_template.value='';\n         left_column_template.title=e.nativeElement.innerHTML;\n       }   \n  \n       if (e.nativeElement.className!==undefined) { left_column_template.class=e.nativeElement.className; }\n       left_column_template.style=e.nativeElement.style.cssText;\n       this.format.left_column.push(left_column_template);\n  });\n\n  this.center_row_list.forEach((e: ElementRef) => {\n    \n    let center_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n    \n    if (e.nativeElement.nodeName=='TH') {\n      center_column_template.type=\"data\";\n      center_column_template.value=e.nativeElement.id;\n      center_column_template.title=e.nativeElement.innerHTML;\n    }      \n    \n    if (e.nativeElement.nodeName=='TD') {      \n      center_column_template.type=\"boilerplate\";\n      center_column_template.value='';\n      center_column_template.title=e.nativeElement.innerHTML;\n    }   \n\n    if (e.nativeElement.className!==undefined) { center_column_template.class=e.nativeElement.className; }\n    center_column_template.style=e.nativeElement.style.cssText;\n    this.format.center_column.push(center_column_template);\n  });\n\n  this.right_row_list.forEach((e: ElementRef) => {\n    \n    let right_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n    \n    if (e.nativeElement.nodeName=='TH') {\n      right_column_template.type=\"data\";\n      right_column_template.value=e.nativeElement.id;\n      right_column_template.title=e.nativeElement.innerHTML;\n    }      \n    \n    if (e.nativeElement.nodeName=='TD') {      \n      right_column_template.type=\"boilerplate\";\n      right_column_template.value='';\n      right_column_template.title=e.nativeElement.innerHTML;\n    }   \n\n    if (e.nativeElement.className!==undefined) { right_column_template.class=e.nativeElement.className; }\n    right_column_template.style=e.nativeElement.style.cssText;\n    this.format.right_column.push(right_column_template);\n  });\n\n  \n  \n  if (this.last_parameters.page!=this.parameters.page||\n      this.last_parameters.id!=this.parameters.id||\n      this.last_parameters.id2!=this.parameters.id2||\n      this.last_parameters.id3!=this.parameters.id3) {\n            this.last_parameters.page=this.parameters.page;\n            this.last_parameters.id=this.parameters.id;\n            this.last_parameters.id2=this.parameters.id2;\n            this.last_parameters.id3=this.parameters.id3;\n            console.log(\"Getting SQL\")\n            console.log(this.sql);\n            console.log(this.parameters);\n            this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n              if (data[0]!==undefined) { \n                this.list=data[0]; \n                console.log(this.list)\n              }\n            });\n      }\n  }\n  \n  tableRefresh() {\n    this.myDataObs.unsubscribe();\n    this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n        if (data[0]!==undefined) { this.list=data[0]; }\n     });\n  }\n  \n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n    this.myDataObs.unsubscribe();\n  }\n  }","<!-- NOT A CARD FORMAT-->\n<div *ngIf=\"card!='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div class=\"card\">\n                <ul class=\"list-group list-group-flush\">\n                    <li class=\"list-group-item\" *ngIf=\"format.title!=''\" style=\"background-color: lightgray;\">{{ title }}</li>\n                    <li class=\"list-group-item\" *ngIf=\"format.title!=''\">\n                        <div class=\"row\">\n                            <div class=\"col-4\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.center_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>\n                            <div class=\"col-4\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.center_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>                            \n                            <div class=\"col-4\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.right_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>                            \n                        </div>\n                    </li>\n                </ul>\n    </div>              \n</div>\n<div *ngIf=\"card=='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n<div class=\"card\">\n    <div class=\"card-header\">\n      {{ title }}\n    </div>\n    <div class=\"card-body\">\n        <div class=\"row\">\n            <div class=\"col-6\">\n                <ul class=\"list-group list-group-flush\">\n                    <ng-container *ngFor=\"let m of format.left_column\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ul>\n            </div>\n            <div class=\"col-6\">\n                <ul class=\"list-group list-group-flush\">\n                    <ng-container *ngFor=\"let m of format.right_column\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ul>\n            </div>            \n        </div>\n    </div>\n  </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription } from 'rxjs';\n\n\n@Component({\n  selector: 'lib-sql-edit-preview',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule,\n    NgxTablePaginationModule, \n    Ng2SearchPipeModule],\n  templateUrl: './sql-edit-preview.component.html',\n  styleUrls: ['./sql-edit-preview.component.css']\n})\nexport class SqlEditPreviewComponent implements OnInit, AfterViewInit, OnDestroy  {\n\n  @ContentChildren('row') private row_list!: ElementRef[];\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  \n  format: any = { title: '', search: '', class: '', style: '', columns: [], buttons: [] };\n  list: any;          // holds the list returned by the query (2 columns [name, title]).\n  \n  data: any = '';\n  @Input() use_parameters: any = 'N';\n  @Input() function: any = '';                           \n  @Input() sql: any = '';                             \n  @Input() card: any = \"Y\";      \n  @Input() card_class: any = '';\n  @Input() card_style: any = '';\n  @Input() container_class: any = 'container-fluid m-2 p-2';  \n  @Input() container_style: any = '';   \n  \n  @Input() closable: any = \"N\";    \n  @Input() bs_row: any = 'N';                        \n  @Input() bs_col: any = '';   \n  \n  @Input() list_class: any = 'table table-striped table-condensed';   \n  @Input() list_style: any = '';                                  \n  @Input() title: any = 'Title Not Set';               \n  \n  @Input() id: any = '0';        \n  @Input() id2: any = '0';    \n  @Input() id3: any = '0';      \n  @Input() left: any = 'col-6';\n  @Input() right: any = 'col-6';\n  \n  \n  @Input() class: any = '';  \n  @Input() style: any = \"\";                            \n            \n  @Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n  \n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  last_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n  \n  counter: number = 0;\n  page: any = '';\n  \n  adding: any = 'N';\n\n  constructor(private _dataService: SQLDataService) { \n  \n  }\n  \n  ngOnInit(): void {\n  \n  }\n  \n  rowClick(m: any) {\n    this.row_click.emit(m);\n  }\n  \n  ngAfterViewInit(): void {\n  \n    if (this.use_parameters==='Y') {\n      this._dataService.paramSubject.subscribe(d => {\n        this.parameters=d;\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n      })\n    } \n    if (this.use_parameters==='N') {\n        this.parameters.page=this.page;\n        this.parameters.id=this.id;\n        this.parameters.id2=this.id2;\n        this.parameters.id3=this.id3;\n        console.log(this.parameters);\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          if (data[0]!==undefined) { this.list=data[0]; }\n         });\n    }\n  \n  this.format.title=this.title;\n  this.format.class=this.class;\n  this.format.style=this.style;\n  \n  this.row_list.forEach((e: ElementRef) => {\n    \n       let column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n       \n       if (e.nativeElement.nodeName=='TH') {\n         column_template.type=\"data\";\n         column_template.value=e.nativeElement.id;\n         column_template.title=e.nativeElement.innerHTML;\n       }      \n       \n       if (e.nativeElement.nodeName=='TD') {      \n         column_template.type=\"boilerplate\";\n         column_template.value='';\n         column_template.title=e.nativeElement.innerHTML;\n       }   \n  \n       if (e.nativeElement.className!==undefined) { column_template.class=e.nativeElement.className; }\n       column_template.style=e.nativeElement.style.cssText;\n       this.format.columns.push(column_template);\n  });\n  \n  \n  if (this.last_parameters.page!=this.parameters.page||\n      this.last_parameters.id!=this.parameters.id||\n      this.last_parameters.id2!=this.parameters.id2||\n      this.last_parameters.id3!=this.parameters.id3) {\n            this.last_parameters.page=this.parameters.page;\n            this.last_parameters.id=this.parameters.id;\n            this.last_parameters.id2=this.parameters.id2;\n            this.last_parameters.id3=this.parameters.id3;\n            console.log(\"Getting SQL\")\n            console.log(this.sql);\n            console.log(this.parameters);\n            this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n              if (data[0]!==undefined) { \n                this.list=data[0]; \n                console.log(this.list)\n              }\n            });\n      }\n  }\n  \n  tableRefresh() {\n    this.myDataObs.unsubscribe();\n    this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n        if (data[0]!==undefined) { this.list=data[0]; }\n     });\n  }\n  \n  addClick() {\n    let p: any = { id: '', id2: '', id3: '' };\n    if (this.adding==='Y') {\n        this.adding='N';\n    } else {\n        this.adding='Y';\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n    this.myDataObs.unsubscribe();\n  }\n  }","<!-- NOT A CARD FORMAT-->\n<div *ngIf=\"card!='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div class=\"card\">\n                <ul class=\"list-group list-group-flush\">\n                    <li class=\"list-group-item\" style=\"background-color: lightgray;\">\n                        <div class=\"row\" style=\"width:100%;\">\n                            <div class=\"col-md-9\">\n                                <h2>{{ title }}</h2>\n                            </div>\n                            <div class=\"col-md-3\" style=\"text-align: right;\">\n                                <button (click)=\"addClick()\" class=\"btn btn-primary\"><i class=\"bi bi-plus-square\"></i></button>\n                            </div>\n                        </div>\n                    </li>\n                    <ng-container *ngIf=\"adding=='N'\">\n                    <ng-container *ngFor=\"let m of format.columns\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ng-container>\n                </ul>\n    </div>              \n</div>\n<div *ngIf=\"card=='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n<div class=\"card\">\n    <div class=\"card-header\">\n        <div class=\"row\" style=\"width:100%;\">\n            <div class=\"col-md-9\">\n                <h2>{{ title }}</h2>\n            </div>\n            <div class=\"col-md-3\" style=\"text-align: right;\">\n                <button (click)=\"addClick()\" class=\"btn btn-primary\"><i class=\"bi bi-plus-square\"></i></button>\n            </div>\n        </div>\n    </div>\n    <div class=\"card-body\">\n        <div *ngIf=\"adding=='Y'\" class=\"row\">\n            <div class=\"col-12\">\n                <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n            </div>\n            <div class=\"col-12\" style=\"text-align: right;\">\n                <button (click)=\"addClick()\" class=\"btn btn-secondary\">Close</button>\n            </div>\n        </div>\n        <ul *ngIf=\"adding=='N'\"  class=\"list-group list-group-flush\">\n            <ng-container *ngFor=\"let m of format.columns\">\n                <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                    <div class=\"row\">\n                        <div [class]=\"left\">\n                        <b>{{ m.title }}</b>\n                        </div>\n                        <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                        </div>\n                    </div>\n                </li>  \n                <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                    <div class=\"row\">\n                        <div class=\"col-12\">\n                        <b>{{ m.title }}</b>\n                        </div>\n                    </div>\n                </li>    \n            </ng-container>     \n        </ul>\n    </div>\n  </div>\n</div>\n<ng-template #contentTmpl>\n    <ng-content select=\"[form]\"></ng-content>\n</ng-template>\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription } from 'rxjs';\n\n\n@Component({\n  selector: 'lib-sql-edit-preview2',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule,\n    NgxTablePaginationModule, \n    Ng2SearchPipeModule],\n  templateUrl: './sql-edit-preview2.component.html',\n  styleUrls: ['./sql-edit-preview2.component.css']\n})\nexport class SqlEditPreview2Component implements OnInit, AfterViewInit, OnDestroy  {\n\n  @ContentChildren('left') private left_row_list!: ElementRef[];\n  @ContentChildren('right') private right_row_list!: ElementRef[];\n\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  \n  format: any = { title: '', search: '', class: '', style: '', left_column: [], right_column: [], buttons: [] };\n  list: any;          // holds the list returned by the query (2 columns [name, title]).\n  \n  data: any = '';\n  @Input() use_parameters: any = 'N';\n  @Input() function: any = '';                           \n  @Input() sql: any = '';                             \n  @Input() card: any = \"Y\";      \n  @Input() card_class: any = '';\n  @Input() card_style: any = '';\n  @Input() container_class: any = 'container-fluid m-2 p-2';  \n  @Input() container_style: any = '';   \n  \n  @Input() closable: any = \"N\";    \n  @Input() bs_row: any = 'N';                        \n  @Input() bs_col: any = '';   \n  \n  @Input() list_class: any = 'table table-striped table-condensed';   \n  @Input() list_style: any = '';                                  \n  @Input() title: any = 'Title Not Set';               \n  \n  @Input() id: any = '0';        \n  @Input() id2: any = '0';    \n  @Input() id3: any = '0';      \n  @Input() left: any = 'col-6';\n  @Input() right: any = 'col-6';\n    \n  @Input() class: any = '';  \n  @Input() style: any = \"\";                            \n            \n  @Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n  \n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  last_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n  \n  counter: number = 0;\n  page: any = '';\n  \n  adding: any = 'N';\n\n  constructor(private _dataService: SQLDataService) { \n  \n  }\n  \n  ngOnInit(): void {\n  \n  }\n  \n  rowClick(m: any) {\n    this.row_click.emit(m);\n  }\n\n  addClick() {\n    let p: any = { id: '', id2: '', id3: '' };\n    if (this.adding==='Y') {\n        this.adding='N';\n    } else {\n        this.adding='Y';\n    }\n}\n\n  \n  ngAfterViewInit(): void {\n  \n    if (this.use_parameters==='Y') {\n      this._dataService.paramSubject.subscribe(d => {\n        this.parameters=d;\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n      })\n    } \n    if (this.use_parameters==='N') {\n        this.parameters.page=this.page;\n        this.parameters.id=this.id;\n        this.parameters.id2=this.id2;\n        this.parameters.id3=this.id3;\n        console.log(this.parameters);\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          if (data[0]!==undefined) { this.list=data[0]; }\n         });\n    }\n  \n  this.format.title=this.title;\n  this.format.class=this.class;\n  this.format.style=this.style;\n  \n  this.left_row_list.forEach((e: ElementRef) => {\n    \n       let left_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n       \n       if (e.nativeElement.nodeName=='TH') {\n         left_column_template.type=\"data\";\n         left_column_template.value=e.nativeElement.id;\n         left_column_template.title=e.nativeElement.innerHTML;\n       }      \n       \n       if (e.nativeElement.nodeName=='TD') {      \n         left_column_template.type=\"boilerplate\";\n         left_column_template.value='';\n         left_column_template.title=e.nativeElement.innerHTML;\n       }   \n  \n       if (e.nativeElement.className!==undefined) { left_column_template.class=e.nativeElement.className; }\n       left_column_template.style=e.nativeElement.style.cssText;\n       this.format.left_column.push(left_column_template);\n  });\n\n  this.right_row_list.forEach((e: ElementRef) => {\n    \n    let right_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n    \n    if (e.nativeElement.nodeName=='TH') {\n      right_column_template.type=\"data\";\n      right_column_template.value=e.nativeElement.id;\n      right_column_template.title=e.nativeElement.innerHTML;\n    }      \n    \n    if (e.nativeElement.nodeName=='TD') {      \n      right_column_template.type=\"boilerplate\";\n      right_column_template.value='';\n      right_column_template.title=e.nativeElement.innerHTML;\n    }   \n\n    if (e.nativeElement.className!==undefined) { right_column_template.class=e.nativeElement.className; }\n    right_column_template.style=e.nativeElement.style.cssText;\n    this.format.right_column.push(right_column_template);\n  });\n\n  \n  \n  if (this.last_parameters.page!=this.parameters.page||\n      this.last_parameters.id!=this.parameters.id||\n      this.last_parameters.id2!=this.parameters.id2||\n      this.last_parameters.id3!=this.parameters.id3) {\n            this.last_parameters.page=this.parameters.page;\n            this.last_parameters.id=this.parameters.id;\n            this.last_parameters.id2=this.parameters.id2;\n            this.last_parameters.id3=this.parameters.id3;\n            console.log(\"Getting SQL\")\n            console.log(this.sql);\n            console.log(this.parameters);\n            this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n              if (data[0]!==undefined) { \n                this.list=data[0]; \n                console.log(this.list)\n              }\n            });\n      }\n  }\n\n  tableRefresh() {\n    this.myDataObs.unsubscribe();\n    this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n        if (data[0]!==undefined) { this.list=data[0]; }\n     });\n  }\n  \n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n    this.myDataObs.unsubscribe();\n  }\n  }","<!-- NOT A CARD FORMAT-->\n<div *ngIf=\"card!='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div class=\"card\">\n                <ul class=\"list-group list-group-flush\">\n                    <li class=\"list-group-item\" style=\"background-color: lightgray;\">\n                        <div class=\"row\" style=\"width:100%;\">\n                            <div class=\"col-md-9\">\n                                <h2>{{ title }}</h2>\n                            </div>\n                            <div class=\"col-md-3\" style=\"text-align: right;\">\n                                <button (click)=\"addClick()\" class=\"btn btn-primary\"><i class=\"bi bi-plus-square\"></i></button>\n                            </div>\n                        </div>\n                    </li>\n                    <div *ngIf=\"adding=='Y'\" class=\"row\">\n                        <div class=\"col-12\">\n                            <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                        </div>\n                        <div class=\"col-12\" style=\"text-align: right;\">\n                            <button (click)=\"addClick()\" class=\"btn btn-secondary\">Close</button>\n                        </div>\n                    </div>\n                    <li class=\"list-group-item\" *ngIf=\"adding!='Y'\">\n                        <div class=\"row\">\n                            <div class=\"col-6\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.left_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>\n                            <div class=\"col-6\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.right_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>                            \n                        </div>\n                    </li>\n                </ul>\n    </div>              \n</div>\n<div *ngIf=\"card=='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n<div class=\"card\">\n    <div class=\"card-header\">\n        <div class=\"row\" style=\"width:100%;\">\n            <div class=\"col-md-9\">\n                <h2>{{ title }}</h2>\n            </div>\n            <div class=\"col-md-3\" style=\"text-align: right;\">\n                <button (click)=\"addClick()\" class=\"btn btn-primary\"><i class=\"bi bi-plus-square\"></i></button>\n            </div>\n        </div>\n    </div>\n    <div class=\"card-body\">\n        <div *ngIf=\"adding=='Y'\" class=\"row\">\n            <div class=\"col-12\">\n                <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n            </div>\n            <div class=\"col-12\" style=\"text-align: right;\">\n                <button (click)=\"addClick()\" class=\"btn btn-secondary\">Close</button>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-6\">\n                <ul class=\"list-group list-group-flush\">\n                    <ng-container *ngFor=\"let m of format.left_column\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ul>\n            </div>\n            <div class=\"col-6\">\n                <ul class=\"list-group list-group-flush\">\n                    <ng-container *ngFor=\"let m of format.right_column\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ul>\n            </div>            \n        </div>\n    </div>\n  </div>\n</div>\n<ng-template #contentTmpl>\n    <ng-content select=\"[form]\"></ng-content>\n</ng-template>\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy,\n  ContentChildren, ElementRef, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SQLDataService } from '../data.service';\nimport { Data } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { NgxTablePaginationModule, PaginationComponent } from 'ngx-table-pagination';\nimport { Subscription } from 'rxjs';\n\n\n@Component({\n  selector: 'lib-sql-edit-preview3',\n  standalone: true,\n  imports: [CommonModule, \n    FormsModule,\n    NgxTablePaginationModule, \n    Ng2SearchPipeModule],\n  templateUrl: './sql-edit-preview3.component.html',\n  styleUrls: ['./sql-edit-preview3.component.css']\n})\nexport class SqlEditPreview3Component implements OnInit, AfterViewInit, OnDestroy  {\n\n  @ContentChildren('left') private left_row_list!: ElementRef[];\n  @ContentChildren('right') private center_row_list!: ElementRef[];  \n  @ContentChildren('right') private right_row_list!: ElementRef[];\n\n  myObs!: Subscription;\n  myDataObs!: Subscription;\n  \n  adding: any = 'N';\n\n  format: any = { title: '', search: '', class: '', style: '', left_column: [], center_column: [], right_column: [], buttons: [] };\n  list: any;          // holds the list returned by the query (2 columns [name, title]).\n  \n  data: any = '';\n  @Input() use_parameters: any = 'N';\n  @Input() function: any = '';                           \n  @Input() sql: any = '';                             \n  @Input() card: any = \"Y\";      \n  @Input() card_class: any = '';\n  @Input() card_style: any = '';\n  @Input() container_class: any = 'container-fluid m-2 p-2';  \n  @Input() container_style: any = '';   \n  \n  @Input() closable: any = \"N\";    \n  @Input() bs_row: any = 'N';                        \n  @Input() bs_col: any = '';   \n  \n  @Input() list_class: any = 'table table-striped table-condensed';   \n  @Input() list_style: any = '';                                  \n  @Input() title: any = 'Title Not Set';               \n  \n  @Input() id: any = '0';        \n  @Input() id2: any = '0';    \n  @Input() id3: any = '0';      \n  @Input() left: any = 'col-6';\n  @Input() right: any = 'col-6';\n    \n  @Input() class: any = '';  \n  @Input() style: any = \"\";                            \n            \n  @Output() row_click: EventEmitter<any> = new EventEmitter<any>();\n  \n  parameters: any = { page: '', id: '', id2: '', id3: ''};\n  last_parameters: any = { page: 'xxx', id: 'xxx', id2: 'xxx', id3: 'xxx' }\n  \n  counter: number = 0;\n  page: any = '';\n  \n  constructor(private _dataService: SQLDataService) { \n  \n  }\n  \n  ngOnInit(): void {\n  \n  }\n  \n  rowClick(m: any) {\n    this.row_click.emit(m);\n  }\n  \n  ngAfterViewInit(): void {\n  \n    if (this.use_parameters==='Y') {\n      this._dataService.paramSubject.subscribe(d => {\n        this.parameters=d;\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          this.list=data;\n          this.list.forEach(function (value: any) {\n            value.active='N';\n          });\n         });\n      })\n    } \n    if (this.use_parameters==='N') {\n        this.parameters.page=this.page;\n        this.parameters.id=this.id;\n        this.parameters.id2=this.id2;\n        this.parameters.id3=this.id3;\n        console.log(this.parameters);\n        this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n          if (data[0]!==undefined) { this.list=data[0]; }\n         });\n    }\n  \n  this.format.title=this.title;\n  this.format.class=this.class;\n  this.format.style=this.style;\n  \n  this.left_row_list.forEach((e: ElementRef) => {\n    \n       let left_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n       \n       if (e.nativeElement.nodeName=='TH') {\n         left_column_template.type=\"data\";\n         left_column_template.value=e.nativeElement.id;\n         left_column_template.title=e.nativeElement.innerHTML;\n       }      \n       \n       if (e.nativeElement.nodeName=='TD') {      \n         left_column_template.type=\"boilerplate\";\n         left_column_template.value='';\n         left_column_template.title=e.nativeElement.innerHTML;\n       }   \n  \n       if (e.nativeElement.className!==undefined) { left_column_template.class=e.nativeElement.className; }\n       left_column_template.style=e.nativeElement.style.cssText;\n       this.format.left_column.push(left_column_template);\n  });\n\n  this.center_row_list.forEach((e: ElementRef) => {\n    \n    let center_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n    \n    if (e.nativeElement.nodeName=='TH') {\n      center_column_template.type=\"data\";\n      center_column_template.value=e.nativeElement.id;\n      center_column_template.title=e.nativeElement.innerHTML;\n    }      \n    \n    if (e.nativeElement.nodeName=='TD') {      \n      center_column_template.type=\"boilerplate\";\n      center_column_template.value='';\n      center_column_template.title=e.nativeElement.innerHTML;\n    }   \n\n    if (e.nativeElement.className!==undefined) { center_column_template.class=e.nativeElement.className; }\n    center_column_template.style=e.nativeElement.style.cssText;\n    this.format.center_column.push(center_column_template);\n  });\n\n  this.right_row_list.forEach((e: ElementRef) => {\n    \n    let right_column_template: any = { column_name: '',  class: '',  type: '',  style: '',  title: '',  value: '' };\n    \n    if (e.nativeElement.nodeName=='TH') {\n      right_column_template.type=\"data\";\n      right_column_template.value=e.nativeElement.id;\n      right_column_template.title=e.nativeElement.innerHTML;\n    }      \n    \n    if (e.nativeElement.nodeName=='TD') {      \n      right_column_template.type=\"boilerplate\";\n      right_column_template.value='';\n      right_column_template.title=e.nativeElement.innerHTML;\n    }   \n\n    if (e.nativeElement.className!==undefined) { right_column_template.class=e.nativeElement.className; }\n    right_column_template.style=e.nativeElement.style.cssText;\n    this.format.right_column.push(right_column_template);\n  });\n\n  \n  \n  if (this.last_parameters.page!=this.parameters.page||\n      this.last_parameters.id!=this.parameters.id||\n      this.last_parameters.id2!=this.parameters.id2||\n      this.last_parameters.id3!=this.parameters.id3) {\n            this.last_parameters.page=this.parameters.page;\n            this.last_parameters.id=this.parameters.id;\n            this.last_parameters.id2=this.parameters.id2;\n            this.last_parameters.id3=this.parameters.id3;\n            console.log(\"Getting SQL\")\n            console.log(this.sql);\n            console.log(this.parameters);\n            this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n              if (data[0]!==undefined) { \n                this.list=data[0]; \n                console.log(this.list)\n              }\n            });\n      }\n  }\n\n      addClick() {\n        let p: any = { id: '', id2: '', id3: '' };\n        if (this.adding==='Y') {\n            this.adding='N';\n        } else {\n            this.adding='Y';\n        }\n      }\n  \n      tableRefresh() {\n        this.myDataObs.unsubscribe();\n        this.myDataObs = this._dataService.getSQL(this.sql, this.parameters).subscribe((data:any)=>{\n            if (data[0]!==undefined) { this.list=data[0]; }\n        });\n      }\n  \n      ngOnDestroy(): void {\n        this.myObs.unsubscribe();\n        this.myDataObs.unsubscribe();\n      }\n  }","<!-- NOT A CARD FORMAT-->\n<div *ngIf=\"card!='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n    <div class=\"card\">\n                <ul class=\"list-group list-group-flush\">\n                    <li class=\"list-group-item\" *ngIf=\"format.title!=''\" style=\"background-color: lightgray;\">\n                        <div class=\"row\" style=\"width:100%;\">\n                            <div class=\"col-md-9\">\n                                <h2>{{ title }}</h2>\n                            </div>\n                            <div class=\"col-md-3\" style=\"text-align: right;\">\n                                <button (click)=\"addClick()\" class=\"btn btn-primary\"><i class=\"bi bi-plus-square\"></i></button>\n                            </div>\n                        </div>\n                    </li>\n                    <div *ngIf=\"adding=='Y'\" class=\"row\">\n                        <div class=\"col-12\">\n                            <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n                        </div>\n                        <div class=\"col-12\" style=\"text-align: right;\">\n                            <button (click)=\"addClick()\" class=\"btn btn-secondary\">Close</button>\n                        </div>\n                    </div>\n                    <li *ngIf=\"adding!='Y'\" class=\"list-group-item\">\n                        <div class=\"row\">\n                            <div class=\"col-4\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.center_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>\n                            <div class=\"col-4\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.center_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>                            \n                            <div class=\"col-4\">\n                                <ul class=\"list-group list-group-flush\">\n                                    <ng-container *ngFor=\"let m of format.right_column\">\n                                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\">\n                                            <div class=\"row\">\n                                                <div [class]=\"left\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                                </div>\n                                            </div>\n                                        </li>  \n                                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\">\n                                            <div class=\"row\">\n                                                <div class=\"col-12\">\n                                                <b>{{ m.title }}</b>\n                                                </div>\n                                            </div>\n                                        </li>    \n                                    </ng-container>     \n                                </ul>\n                            </div>                            \n                        </div>\n                    </li>\n                </ul>\n    </div>              \n</div>\n<div *ngIf=\"card=='Y'\" [class]=\"container_class\" [style]=\"container_style\">\n<div class=\"card\">\n    <div class=\"card-header\">\n        <div class=\"row\" style=\"width:100%;\">\n            <div class=\"col-md-9\">\n                <h2>{{ title }}</h2>\n            </div>\n            <div class=\"col-md-3\" style=\"text-align: right;\">\n                <button (click)=\"addClick()\" class=\"btn btn-primary\"><i class=\"bi bi-plus-square\"></i></button>\n            </div>\n        </div>\n    </div>\n    <div  *ngIf=\"adding=='Y'\" class=\"card-body\">\n        <div class=\"row\">\n            <div class=\"col-12\">\n                <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n            </div>\n        </div>\n    </div>       \n    <div  *ngIf=\"adding!='Y'\" class=\"card-body\">\n        <div class=\"row\">\n            <div class=\"col-6\">\n                <ul class=\"list-group list-group-flush\">\n                    <ng-container *ngFor=\"let m of format.left_column\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ul>\n            </div>\n            <div class=\"col-6\">\n                <ul class=\"list-group list-group-flush\">\n                    <ng-container *ngFor=\"let m of format.right_column\">\n                        <li class=\"list-group-item\" *ngIf=\"m.type=='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div [class]=\"left\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                                <div [class]=\"right\" [innerHTML]=\"list[m.value]\">\n                                </div>\n                            </div>\n                        </li>  \n                        <li class=\"list-group-item\" *ngIf=\"m.type!='data'\" class=\"p-2\">\n                            <div class=\"row\">\n                                <div class=\"col-12\">\n                                <b>{{ m.title }}</b>\n                                </div>\n                            </div>\n                        </li>    \n                    </ng-container>     \n                </ul>\n            </div>            \n        </div>\n    </div>\n    </div>\n    </div>\n    \n<ng-template #contentTmpl>\n    <ng-content select=\"[form]\"></ng-content>\n</ng-template>\n","import { Component, OnInit, Input, Output, OnDestroy, EventEmitter, OnChanges, DoCheck, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';\nimport { MatInput, MatInputModule } from '@angular/material/input';\nimport { MatIconModule  }  from '@angular/material/icon';\nimport { SQLDataService } from '../data.service';\nimport { Subscription } from 'rxjs';\nimport { Validators, Editor, Toolbar, toHTML } from 'ngx-editor';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\nimport { NgxEditorModule } from 'ngx-editor';\n\n@Component({\n  selector: 'sql-editor',\n  standalone: true,\n  imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule, NgxEditorModule ],\n  templateUrl: './sql-editor.component.html',\n  styleUrls: ['./sql-editor.component.scss']\n})\nexport class SqlEditorComponent implements OnInit, AfterViewInit, OnDestroy  {\n\n  editor: any;\n  editordoc: any;\n  \n  html = '';\n  toolbar: Toolbar = [\n    ['bold', 'italic'],\n    ['underline', 'strike'],\n    ['code', 'blockquote'],\n    ['ordered_list', 'bullet_list'],\n    [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],\n    ['link', 'image'],\n    ['text_color', 'background_color'],\n    ['align_left', 'align_center', 'align_right', 'align_justify'],\n  ];\n\n  value: any=''; \n  fieldData: any = '';\n  myObs!: Subscription;\n\n  @Input() preview: string = 'Y';\n  @Input() edit: string = 'Y';  \n  @Input() col: string = '';\n  @Input() data: any;\n  @Input() class: any = '';\n  @Input() style: any = '';\n  @Input() hint: string = '';\n  @Input() icon: string = '';\n  @Input() label: string = 'Label not set';\n  @Input() placeholder: any = '';\n  @Input() appearance: string = 'outline';\n  @Input() bs_row: any = 'Y';\n  @Input() bs_col: any = 'col-12';\n  @Input() top_label: any = 'N';\n  counter: number = 0;\n  showing_preview: string = 'N';\n  @Output()\n  change: EventEmitter<any> = new EventEmitter<any>();  \n  \n  ngAfterViewInit() {\n  \n  }\n\n  formData: any;\n  constructor(private _dataService: SQLDataService) { \n    this.myObs = this._dataService.dataSubject.subscribe(d => {\n      this.data=d;\n      this.fieldData = this.data;\n      if (this.fieldData[this.col]===undefined) {\n        this.value = JSON.parse('{ \"type\": \"doc\", \"content\": [] }');\n        this.editordoc = \"\";\n      } else {\n            if (this.fieldData[this.col]!=='') {\n              this.value = JSON.parse(this.fieldData[this.col]);\n              this.editordoc = toHTML(this.value);\n            } else {\n              this.value = JSON.parse('{ \"type\": \"doc\", \"content\": [] }');\n              this.editordoc=\"\";\n            }\n      }\n      this.counter++;\n    })\n  }\n\n  showPreview() {\n    this.edit='N';\n  }\n\n  showEdit() {\n    this.edit='Y';\n  }\n\n  ngOnInit(): void {\n      this.editor = new Editor();\n  }\n\n  handleChange() {\n     this.fieldData['submit']='N';\n     this.fieldData[this.col]=JSON.stringify(this.value);\n     this.editordoc = toHTML(this.value);\n     this._dataService.pushNotification(this.fieldData);\n  }\n\n  ngOnDestroy(): void {\n    this.myObs.unsubscribe();\n  }\n}\n","<div *ngIf=\"preview=='Y'\">\n  <div class=\"card\">\n    <div class=\"card-body\">\n       {{ label }} <button (click)=\"showPreview()\" class=\"btn dark\" style=\"margin-left: 10px; margin-right: 10px;\"><i class=\"bi bi-binoculars\"></i></button>\n       <button (click)=\"showEdit()\" class=\"btn dark\"><i class=\"bi bi-pencil-square\"></i></button>\n  <div *ngIf=\"edit=='N'\" class=\"card\">\n        <div class=\"card-body\" [innerHTML]=\"editordoc\">\n        </div>\n  </div>\n  <div *ngIf=\"edit=='Y'\">\n      <span>\n        <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n      </span>\n    </div>\n</div>\n</div>\n</div>\n<div *ngIf=\"preview=='N'\">\n  <span>{{ label }}</span>\n  <ng-container *ngTemplateOutlet=\"contentTmpl\"></ng-container>\n</div>\n\n<ng-template #contentTmpl>\n    <span>\n          <div class=\"editor\" [style]=\"style\">\n            <ngx-editor-menu [editor]=\"editor\" [toolbar]=\"toolbar\"></ngx-editor-menu>\n            <ngx-editor [editor]=\"editor\" (ngModelChange)=\"handleChange();\" [(ngModel)]=\"value\"></ngx-editor>\n          </div>\n  </span>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { SQLDataService } from './data.service';\nimport {\n  Router, Resolve,\n  RouterStateSnapshot,\n  ActivatedRouteSnapshot\n} from '@angular/router';\nimport { Observable, of, catchError } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'              \n})\nexport class RouteParameterResolver implements Resolve<boolean> {\n\n  r: any;\n  path: any;\n  id: any;\n  id2: any;\n  id3: any;\n\n  constructor(private dataService: SQLDataService) { }\n\n  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n      this.path = '';\n      \n      if (state.url!==undefined) {\n        this.path = state.url;\n      }\n     \n    this.r=this.dataService.pingParameters(this.path).pipe(catchError(err=> \n      { \n        console.log(err);\n        return of(null);\n      }));\n      console.log(this.r);\n      this.dataService.paramSubject.next(this.r);\n      this.dataService.containerSubject.next(this.r);\n    return (this.r)\n  }\n}","/*\n * Public API Surface of sql-components\n */\n\nexport * from './lib/sql-components.service';\nexport * from './lib/sql-components.component';\nexport * from './lib/sql-components.module';\nexport * from './lib/sql-form/sql-form.component';\nexport * from './lib/sql-input/sql-input.component';\nexport * from './lib/sql-checkbox/sql-checkbox.component';\nexport * from './lib/sql-select/sql-select.component';\nexport * from './lib/sql-delete/sql-delete.component';\nexport * from './lib/sql-delete-dialog/sql-delete-dialog.component';\nexport * from './lib/sql-textarea/sql-textarea.component';\nexport * from './lib/sql-calendar/sql-calendar.component';\nexport * from './lib/sql-radio-group/sql-radio-group.component';\nexport * from './lib/sql-table/sql-table.component';\nexport * from './lib/sql-edit-table/sql-edit-table.component';\nexport * from './lib/sql-add-table/sql-add-table.component';\nexport * from './lib/sql-card/sql-card.component';\nexport * from './lib/sql-panel/sql-panel.component';\nexport * from './lib/sql-datepicker/sql-datepicker.component';\nexport * from './lib/sql-upload-form/sql-upload-form.component';\nexport * from './lib/sql-fullcalendar/sql-fullcalendar.component';\nexport * from './lib/sql-submit/sql-submit.component';\nexport * from './lib/sql-menu/sql-menu.component';\nexport * from './lib/sql-data-menu/sql-data-menu.component';\nexport * from './lib/sql-data-select/sql-data-select.component';\nexport * from './lib/sql-default-value/sql-default-value.component';\nexport * from './lib/pre-insert-trigger/pre-insert-trigger.component';\nexport * from './lib/pre-update-trigger/pre-update-trigger.component';\nexport * from './lib/post-insert-trigger/post-insert-trigger.component';\nexport * from './lib/sql-data-preview/sql-data-preview.component';\nexport * from './lib/sql-data-preview2/sql-data-preview2.component';\nexport * from './lib/sql-data-preview3/sql-data-preview3.component';\nexport * from './lib/sql-edit-preview/sql-edit-preview.component';\nexport * from './lib/sql-edit-preview2/sql-edit-preview2.component';\nexport * from './lib/sql-edit-preview3/sql-edit-preview3.component';\nexport * from './lib/sql-editor/sql-editor.component';\nexport * from './lib/sql.resolver';\nexport * from './lib/data.service';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SQLDataService","i2","i3","i1","i4","i5","i2.SQLDataService","i6","i7"],"mappings":"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"}