{"version":3,"file":"ul-lib.mjs","sources":["../../../projects/ul-lib/src/lib/Models/search-request.ts","../../../projects/ul-lib/src/lib/Services/CommonService.ts","../../../projects/ul-lib/src/lib/Functions/CommonObjects.ts","../../../projects/ul-lib/src/lib/Models/search-response.ts","../../../projects/ul-lib/src/lib/Factories/SourceBuilder.ts","../../../projects/ul-lib/src/lib/Functions/CommonTableFunctions.ts","../../../projects/ul-lib/src/lib/Models/PageObservable.ts","../../../projects/ul-lib/src/lib/Models/TableModels.ts","../../../projects/ul-lib/src/lib/ul-lib.service.ts","../../../projects/ul-lib/src/lib/ul-lib.component.ts","../../../projects/ul-lib/src/lib/Components/uitooltip/uitooltip.component.ts","../../../projects/ul-lib/src/lib/Components/uitooltip/uitooltip.component.html","../../../projects/ul-lib/src/lib/Components/uibasic-input-field/uibasic-input-field.component.ts","../../../projects/ul-lib/src/lib/Components/uibasic-input-field/uibasic-input-field.component.html","../../../projects/ul-lib/src/lib/Components/uibasic-chip/uibasic-chip.component.ts","../../../projects/ul-lib/src/lib/Components/uibasic-chip/uibasic-chip.component.html","../../../projects/ul-lib/src/lib/Components/uibasic-filter/uibasic-filter.component.ts","../../../projects/ul-lib/src/lib/Components/uibasic-filter/uibasic-filter.component.html","../../../projects/ul-lib/src/lib/Components/uidetail-view/uidetail-view.component.ts","../../../projects/ul-lib/src/lib/Components/uidetail-view/uidetail-view.component.html","../../../projects/ul-lib/src/lib/Components/uitab-view/uitab-view.component.ts","../../../projects/ul-lib/src/lib/Components/uitab-view/uitab-view.component.html","../../../projects/ul-lib/src/lib/Components/Menu/uimenu-detail/uimenu-detail.component.ts","../../../projects/ul-lib/src/lib/Components/Menu/uimenu-detail/uimenu-detail.component.html","../../../projects/ul-lib/src/lib/Components/Menu/uimenu-item/uimenu-item.component.ts","../../../projects/ul-lib/src/lib/Components/Menu/uimenu-item/uimenu-item.component.html","../../../projects/ul-lib/src/lib/Components/Menu/uimenu/uimenu.component.ts","../../../projects/ul-lib/src/lib/Components/Menu/uimenu/uimenu.component.html","../../../projects/ul-lib/src/lib/Components/Menu/uimenu/uimenuDropdown.component.html","../../../projects/ul-lib/src/lib/Components/uibasic-table-column-component/uibasic-table-column-component.component.ts","../../../projects/ul-lib/src/lib/Components/uibasic-table-column-component/uibasic-table-column-component.component.html","../../../projects/ul-lib/src/lib/Components/uinested-table-row/uinested-table-row.component.ts","../../../projects/ul-lib/src/lib/Components/uinested-table-row/uinested-table-row.component.html","../../../projects/ul-lib/src/lib/Components/uifilter-item/uifilter-item.component.ts","../../../projects/ul-lib/src/lib/Components/uifilter-item/uifilter-item.component.html","../../../projects/ul-lib/src/lib/Models/FormModel.ts","../../../projects/ul-lib/src/lib/Components/uiform/uiform.component.ts","../../../projects/ul-lib/src/lib/Components/uiform/uiform.component.html","../../../projects/ul-lib/src/lib/Components/uiadvanced-filter/uiadvanced-filter.component.ts","../../../projects/ul-lib/src/lib/Components/uiadvanced-filter/uiadvanced-filter.component.html","../../../projects/ul-lib/src/lib/Components/uimodal-view/uimodal-view.component.ts","../../../projects/ul-lib/src/lib/Components/uimodal-view/uimodal-view.component.html","../../../projects/ul-lib/src/lib/Directives/ul-table-row.directive.ts","../../../projects/ul-lib/src/lib/Directives/row-view.directive.ts","../../../projects/ul-lib/src/lib/Directives/ul-header-cell.directive.ts","../../../projects/ul-lib/src/lib/Components/uibasic-table/uibasic-table.component.ts","../../../projects/ul-lib/src/lib/Components/uibasic-table/uibasic-table.component.html","../../../projects/ul-lib/src/lib/Components/uicard-view/uicard-view.component.ts","../../../projects/ul-lib/src/lib/Components/uicard-view/uicard-view.component.html","../../../projects/ul-lib/src/lib/Components/uialerts/uialerts.component.ts","../../../projects/ul-lib/src/lib/Components/uialerts/uialerts.component.html","../../../projects/ul-lib/src/lib/Components/uialert/uialert.component.ts","../../../projects/ul-lib/src/lib/Components/uialert/uialert.component.html","../../../projects/ul-lib/src/lib/Components/uiaccordion/uiaccordion.component.ts","../../../projects/ul-lib/src/lib/Components/uiaccordion/uiaccordion.component.html","../../../projects/ul-lib/src/lib/Components/uidivider/uidivider.component.ts","../../../projects/ul-lib/src/lib/Components/uidivider/uidivider.component.html","../../../projects/ul-lib/src/lib/Components/uichart/uichart.component.ts","../../../projects/ul-lib/src/lib/Components/uichart/uichart.component.html","../../../projects/ul-lib/src/lib/Components/uitimeline/uitimeline.component.ts","../../../projects/ul-lib/src/lib/Components/uitimeline/uitimeline.component.html","../../../projects/ul-lib/src/lib/Components/uinav-bar/uinav-bar.component.ts","../../../projects/ul-lib/src/lib/Components/uinav-bar/uinav-bar.component.html","../../../projects/ul-lib/src/lib/Components/uistat/uistat.component.ts","../../../projects/ul-lib/src/lib/Components/uistat/uistat.component.html","../../../projects/ul-lib/src/lib/Components/uistats/uistats.component.ts","../../../projects/ul-lib/src/lib/Components/uistats/uistats.component.html","../../../projects/ul-lib/src/lib/Models/search-filter.ts","../../../projects/ul-lib/src/lib/Models/calendarModel.ts","../../../projects/ul-lib/src/lib/Components/uimodal-pop-up/uimodal-pop-up.component.ts","../../../projects/ul-lib/src/lib/Components/uimodal-pop-up/uimodal-pop-up.component.html","../../../projects/ul-lib/src/lib/Services/ModalService.ts","../../../projects/ul-lib/src/lib/Services/AlertService.ts","../../../projects/ul-lib/src/lib/Components/uisidebar/uisidebar.component.ts","../../../projects/ul-lib/src/lib/Components/uisidebar/uisidebar.component.html","../../../projects/ul-lib/src/lib/Components/uicalendar-view/uicalendar-view.component.ts","../../../projects/ul-lib/src/lib/Components/uicalendar-view/uicalendar-view.component.html","../../../projects/ul-lib/src/lib/Modules/ulalerts/ulalerts.module.ts","../../../projects/ul-lib/src/lib/Modules/ulinputs/ulinputs.module.ts","../../../projects/ul-lib/src/lib/Modules/ulmenu/ulmenu.module.ts","../../../projects/ul-lib/src/lib/Modules/ulmodal/ulmodal.module.ts","../../../projects/ul-lib/src/lib/Modules/ulstats/ulstats.module.ts","../../../projects/ul-lib/src/lib/Modules/ultable/ultable.module.ts","../../../projects/ul-lib/src/lib/Modules/ultabs/ultabs.module.ts","../../../projects/ul-lib/src/lib/Modules/ulviews/ulviews.module.ts","../../../projects/ul-lib/src/lib/Pipes/LocalDatePipe.ts","../../../projects/ul-lib/src/lib/Modules/ulcommon/ulcommon.module.ts","../../../projects/ul-lib/src/public-api.ts","../../../projects/ul-lib/src/ul-lib.ts"],"sourcesContent":["\r\nimport { IFilterItem } from './FilterItemModel';\r\nimport { SearchFilter } from './search-filter';\r\n\r\nexport class SearchRequest\r\n{\r\n  public pageNumber: number = 0;\r\n  public pageSize: number = 0;\r\n  public sortColumn: string = '';\r\n  public sortDirection: string = '';\r\n\r\n  public searchRequestOrderBy? : SearchRequestOrderBy[];\r\n  public searchFilters? : IFilterItem[];\r\n}\r\n\r\nexport class SearchRequestOrderBy\r\n{\r\n  public columnName: string = '';\r\n  public isAscending: boolean = true;\r\n}\r\n","import { OnInit } from \"@angular/core\";\r\n\r\nexport class CommonService{\r\n\r\n    public static  timeout(ms:number) {\r\n        return new Promise(resolve => setTimeout(resolve, ms));\r\n    }\r\n    public static async sleep(fn:any, ms:number ,  ...args: any[]) {\r\n        await this.timeout(ms);\r\n        return fn(...args);\r\n    }\r\n\r\n    public static isNull(x:any):boolean\r\n    {\r\n        return x == null || x == undefined;\r\n    }\r\n    public static newElement<T extends HTMLElement>(doc:Document, type:string, className:string, innerText:string |undefined = undefined): T\r\n    {\r\n        const elem:any = doc.createElement(type);\r\n        elem.classList.add(className);\r\n        elem.textContent = innerText;\r\n        return elem as T;\r\n    }\r\n\r\n    \r\n\r\n}\r\n\r\n\r\n\r\nexport abstract class CommonComponentService {\r\n    public currentTheme:string = CommonComponentService.themeString;\r\n    static themeString :string | 'dark' | 'dracula' | 'light' = 'dark' ;\r\n    constructor(){\r\n        if (!CommonService.isNull(document) )\r\n        {\r\n        document.documentElement.setAttribute(\"data-theme\", \"dark\");\r\n        }\r\n    }\r\n\r\n\r\n    static UpdateTheme(theme: string | 'dark' | 'dracula' | 'light'){\r\n        CommonComponentService.themeString = theme;\r\n        localStorage.setItem('theme', theme);\r\n        document.documentElement.setAttribute(\"data-theme\", localStorage.getItem('theme')?? theme);\r\n        console.log(\"Updated theme to: \" + theme);\r\n    }\r\n}","import { Type } from '@angular/core';\r\nexport class CommonObjects\r\n{\r\n\r\n\r\n    static isObjectBase(obj:any , ...propertyNames: string[] )\r\n    {\r\n        var isObject =  propertyNames.map(x => x  in obj)\r\n        .filter(x => x).length == propertyNames.length;\r\n        return isObject;\r\n    }\r\n\r\n\r\n    static simpleClone(obj:any)\r\n    {\r\n        return Object.fromEntries(Object.entries(obj));\r\n    }\r\n\r\n}","import { map, Observable } from \"rxjs\";\r\nimport { ListItem } from \"../ul-lib.service\";\r\nimport { configSources } from \"../Functions/CommonTableFunctions\";\r\nimport { CommonObjects } from \"../Functions/CommonObjects\";\r\n\r\nexport class SearchResponse<T>\r\n{\r\n  public count: number = 0;\r\n  public results?: Array<T>;\r\n\r\n\r\n  static isSearchResponse(obj:any)\r\n  {\r\n    return CommonObjects.isObjectBase(obj, 'count', 'results');    \r\n  }\r\n}\r\nexport interface APISearchResponse<T>\r\n{\r\n   pageSize:number;\r\n   results?:Array<T>;\r\n   currentPage:number;\r\n}\r\n\r\n","import { BehaviorSubject, filter, Observable } from \"rxjs\";\r\nimport { SearchResponse } from \"../Models/search-response\";\r\nimport { CommonObjects } from \"../Functions/CommonObjects\";\r\nimport { Type } from \"@angular/core\";\r\n\r\n\r\n\r\n\r\nexport class SourceBuilder<T, TRefresh> \r\n{\r\n    data?: T[] | SearchResponse<T>;\r\n    $refresh?:Observable<TRefresh> ;\r\n    $trigger?: (source: TRefresh, tblSource: BehaviorSubject<T[]> ) => void ;   \r\n    $nestedSources: {Name: string, SourceDefinition: (row:T) =>  Observable<any> }[] = [];\r\n\r\n\r\n    constructor(inputData:T[]| SearchResponse<T>)\r\n    {\r\n        this.data = inputData;\r\n    }\r\n    public setRefresh(inputRefresh: Observable<TRefresh>)\r\n    {\r\n        this.$refresh = inputRefresh;\r\n    }\r\n\r\n    public setTrigger(inputTrigger: (source: TRefresh, tblSource: BehaviorSubject<T[]> ) => void )\r\n    {\r\n        this.$trigger = inputTrigger;\r\n    }\r\n    \r\n\r\n    public addDynamicSource(sourceName:string, sourceDefinition:(row:T) =>  Observable<any> )\r\n    {\r\n        if (this.$nestedSources.map(x => x.Name).includes(sourceName))\r\n        {\r\n            this.$nestedSources.find(x => x.Name == sourceName)!.SourceDefinition = sourceDefinition;\r\n        }else{\r\n            this.$nestedSources.push({Name: sourceName, SourceDefinition: sourceDefinition});\r\n        }\r\n    }\r\n    public buildPageSource(): SearchResponse<any> | undefined\r\n    {\r\n         this.mapSources((this.data as SearchResponse<T>).results);\r\n         return (this.data as SearchResponse<any>);\r\n    }\r\n\r\n    mapSources(resultData?:T[])\r\n    {\r\n        return resultData?.map((x:any) => {\r\n            if (this.$refresh != undefined )\r\n            {\r\n                x.$refresh = this.$refresh;\r\n            }\r\n            if (this.$trigger != undefined )\r\n            {\r\n                x.$trigger = this.$trigger;\r\n            }\r\n            if (this.$nestedSources.length > 0)\r\n            {\r\n                this.$nestedSources.forEach(n => {\r\n                    x[n.Name] = n.SourceDefinition(x as T);\r\n                });\r\n            }            \r\n            return x;\r\n        });\r\n    }\r\n\r\n    public buildSource(): any[]| undefined\r\n    {\r\n        return this.mapSources((this.data as T[]));\r\n    }\r\n\r\n    public build(): any[] | SearchResponse<any> | undefined\r\n    {\r\n        if (SearchResponse.isSearchResponse(this.data))\r\n        {\r\n            return this.buildPageSource();\r\n        }else if ( Array.isArray(this.data))\r\n        {\r\n            return this.buildSource();\r\n        }else\r\n        {\r\n            return this.data;\r\n        }\r\n    }\r\n\r\n\r\n    \r\n\r\n\r\n\r\n}\r\n","import { BehaviorSubject, map, Observable, ObservableInput, of, OperatorFunction} from \"rxjs\";\r\nimport { operate } from 'rxjs/internal/util/lift';\r\nimport { createOperatorSubscriber   } from 'rxjs/internal/operators/OperatorSubscriber'\r\nimport { CommonService } from \"../Services/CommonService\";\r\nimport { SourceBuilder } from \"../Factories/SourceBuilder\";\r\nimport { SearchResponse } from \"../Models/search-response\";\r\n\r\nexport class CommonTableFunctions\r\n{\r\n\r\nstatic appendRefresh(appender:any, appendee:ObservableInput<any>): any | any[]\r\n{ \r\n        if (CommonService.isNull(appender))\r\n        {\r\n            return appender;\r\n        }\r\n        if (Array.isArray(appender)) \r\n        {\r\n            var arr:any[] = appender;\r\n            arr.map((item:any) => {\r\n              Object.assign(item, { $refresh: appendee });\r\n            });\r\n            return arr;\r\n        }else{\r\n          Object.assign(appender as any, { $refresh: appendee });\r\n            return appender;\r\n        }\r\n    \r\n}\r\n  /**\r\n   * Turns a function into a method that can be used in the observable pipe\r\n   * @source\r\n   * @param project - Delegate to be used when the next in subscription is called\r\n   * @returns - Returns OperatorFunction to use in observable pipe\r\n   */\r\npublic static asOperatorFunction<T, R>(project: (value: T) => R):OperatorFunction<T,R>\r\n{\r\nreturn (source:Observable<T>) => new Observable(observer => {\r\n  source.subscribe({\r\n    next: value => observer.next(project(value)),\r\n    error: err => observer.error(err),\r\n    complete: () => observer.complete()\r\n  })\r\n});\r\n}\r\n\r\nstatic defaultTrigger<TSource, TtableData>(isUpdateRow: (signalSource: TSource, tableRowUpdate: TtableData) => boolean, sourceName: string| null = null, isUpdatable:(inputProperty:any) => boolean = (input:any) => true)\r\n{\r\n\r\n  return (source: TSource, tableData: BehaviorSubject<TtableData[]>) => {\r\n    var rawTableData = tableData.getValue();\r\n    var updatedValues = rawTableData.map((tableRow:TtableData) =>\r\n    {\r\n      if (isUpdateRow(source, tableRow))\r\n      {\r\n        var mapTable = new Map(Object.entries(tableRow as any));\r\n        var mapSource = new Map(Object.entries(source as any));\r\n\r\n\r\n        Object.keys(source as any).forEach(key => {\r\n          if (mapTable.has(key) && isUpdatable(mapTable.get(key))) {\r\n            if (sourceName == null) {\r\n              mapTable.set(key, mapSource.get(key));\r\n            } else {\r\n              mapTable.set(key, (mapSource.get(sourceName) as any)[key]);\r\n            }\r\n          }\r\n        });\r\n        var updatedRow:any = Object.fromEntries<TtableData>(mapTable as any);\r\n        tableRow = updatedRow;\r\n      }\r\n      return tableRow;\r\n    });\r\n    tableData.next(updatedValues);\r\n  }\r\n\r\n}\r\n\r\nstatic appendTrigger<TSource, TtableData>(targetSource: any[], isUpdateRow: (signalSource: TSource, tableRowUpdate: TtableData) => boolean, sourceName: string| null = null, isUpdatable:(inputProperty:any) => boolean = (input:any) => true) :any[]\r\n{\r\n   targetSource.map((row: any) => {\r\n          if (row != undefined)\r\n          {\r\n            row.$trigger = this.defaultTrigger(isUpdateRow, sourceName, isUpdatable);\r\n          }\r\n          return row;\r\n        });\r\n\r\n        return targetSource;\r\n}\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n  /**\r\n   * Appends a `$refresh` property to each row in the dataset\r\n   * @source\r\n   * @param appendee - Observable that triggers the refresh everytime the next is called for the `appendee`\r\n   * @returns - ObservableFunction that can be used in the Observable Pipe\r\n   */\r\nexport function setRefresh(appendee:ObservableInput<any>)\r\n{\r\n  //Use inside observable pipe. \r\n  return CommonTableFunctions.asOperatorFunction<any[], any[]>(x => {\r\n    return CommonTableFunctions.appendRefresh(x, appendee);\r\n  });\r\n}\r\n\r\n\r\n  /**\r\n   * Appends a `$trigger` property to each row in the dataset\r\n   * @source\r\n   * @param isUpdateRow - Determines which row should be update based on the refresh data object (signalSource)\r\n   * @param sourceName - Parses the data object (signalSource) to get the value from possibly multiple signalSources in 1 object\r\n   * @param isUpdatable - Delegate that grabs the row attempting to be updated and allows you to select specific properties to update\r\n   * @returns - ObservableFunction that can be used in the Observable Pipe\r\n   */\r\nexport function setTrigger<TSource, TtableData>(isUpdateRow: (signalSource: TSource, tableRowUpdate: TtableData) => boolean, sourceName: string| null = null, isUpdatable:(inputProperty:any) => boolean = (input:any) => true)\r\n{\r\n  //Use inside observable pipe. \r\n  return CommonTableFunctions.asOperatorFunction<any[], any[]>(x => {\r\n    return CommonTableFunctions.appendTrigger<TSource, TtableData>(x, isUpdateRow, sourceName, isUpdatable);\r\n  });\r\n}\r\n\r\n\r\n  /**\r\n   * Appends a `$trigger` property to each row in the dataset for Observable Pipe. Auto-ID selection\r\n   * @source\r\n   * @param propCompare - Delegate that gets the property of Signal and table objects based on the sourceName and uses them in the comparison for setTrigger. Logic. propCompare(signal[sourceName]) == propCompare(tableRow)\r\n   * @param sourceName - Parses the data object (signalSource) to get the value from possibly multiple signalSources in 1 object\r\n   * @param isUpdatable - Delegate that grabs the row attempting to be updated and allows you to select specific properties to update\r\n   * @returns - ObservableFunction that can be used in the Observable Pipe\r\n   */\r\n  export function setTriggerSimple<TSource, TtableData>(propCompare: (obj?:any) => any , sourceName: string, isUpdatable:(inputProperty:any) => boolean = (input:any) => true)\r\n  {\r\n    //Use inside observable pipe. \r\n    return CommonTableFunctions.asOperatorFunction<any[], any[]>(x => {\r\n      return CommonTableFunctions.appendTrigger<TSource, TtableData>(x, (source, table) => propCompare(source == undefined ? undefined : (source as any|undefined)[sourceName]) == propCompare((table as any))   , sourceName, isUpdatable);\r\n    });\r\n  }\r\n\r\n\r\n    /**\r\n   * Appends a nestedSource property to each row in the dataset for Observable Pipes\r\n   * @source\r\n   * @param nestedSources - A name/Observable object array. Where the name is the property name and the observable is the value for the property\r\n   * @returns - ObservableFunction that can be used in the Observable Pipe\r\n   */\r\n  export function setNestedSources<T, R>(nestedSources:{Name: string, SourceDefinition: (row:T) =>  Observable<any> }[])\r\n  {\r\n    return CommonTableFunctions.asOperatorFunction<any[], any[]>(x => {\r\n      return x.map(m => {\r\n        nestedSources.forEach(n => {\r\n          m[n.Name] = n.SourceDefinition(m);\r\n        });\r\n        return m;\r\n      });\r\n    });\r\n  }\r\n\r\n\r\n      /**\r\n   * Configures all $refresh/$trigger and nestedSources all in one source builder\r\n   * @source\r\n   * @param buildOptions - A name/Observable object array. Where the name is the property name and the observable is the value for the property\r\n   * @returns - ObservableFunction that can be used in the Observable Pipe\r\n   */\r\n  export function configSources<T, R extends any[] | SearchResponse<any>>(buildOptions:(builder: SourceBuilder<T,any>) => void)\r\n  {\r\n    return CommonTableFunctions.asOperatorFunction<T[]| SearchResponse<T>, R | undefined>(x => {\r\n      var builder = new SourceBuilder<T, any>(x);\r\n      buildOptions(builder);\r\n      return (builder.build() as R | undefined);\r\n    });\r\n  }","import { map, Observable } from \"rxjs\";\r\nimport { SearchResponse } from \"./search-response\";\r\nimport { ListItem } from \"../ul-lib.service\";\r\nimport { configSources } from \"../Functions/CommonTableFunctions\";\r\nimport { SourceBuilder } from \"../Factories/SourceBuilder\";\r\n\r\nexport class PageObservable<T> \r\n{\r\n\r\n  $observable!:Observable<SearchResponse<T>>\r\n\r\n  constructor(observable: Observable<SearchResponse<T>>)\r\n  {\r\n    this.$observable = observable;\r\n  }\r\n\r\n\r\n  public ToListItems(bindKey:string, bindValue:string) : Observable<ListItem<string>[] | undefined>\r\n  {\r\n    return this.$observable.pipe(map((x: SearchResponse<any>) => {\r\n      return x.results?.map((r:any) =>  new ListItem<string>(r[bindKey], r[bindValue]  ) );\r\n    }));\r\n  }\r\n\r\n  public map(delegate:(singleResult:any) => any): Observable<SearchResponse<any>>\r\n  {\r\n    return this.$observable.pipe(map((x: SearchResponse<any>) => {\r\n      x.results = x.results?.map(res => {\r\n        res = delegate(res);\r\n        return res;\r\n      });\r\n      return x;\r\n    }));\r\n  }\r\n\r\n  public buildSources(buildOptions:(builder: SourceBuilder<T,any>) => void)\r\n  {\r\n   return this.$observable\r\n    .pipe(configSources<T, SearchResponse<any>>(buildOptions));\r\n  }\r\n\r\n  \r\n\r\n}","export interface ICustomTableCell {\r\n    Type: string;\r\n    Value: string;\r\n    Index: number;\r\n  }\r\n\r\n\r\n  export declare interface Sort {\r\n    /** The id of the column being sorted. */\r\n    active: string;\r\n    /** The sort direction. */\r\n    direction: SortDirection;\r\n}\r\nexport declare class PageEvent {\r\n  /** The current page index. */\r\n  pageIndex: number;\r\n  /**\r\n   * Index of the page that was selected previously.\r\n   * @breaking-change 8.0.0 To be made into a required property.\r\n   */\r\n  previousPageIndex?: number;\r\n  /** The current page size. */\r\n  pageSize: number;\r\n  /** The current total number of items being paged. */\r\n  length: number;\r\n}\r\nexport declare type SortDirection = 'asc' | 'desc' | '';\r\n\r\n\r\n  export class UITextCell implements ICustomTableCell {\r\n    Type: string = \"Text\"\r\n  Value: string;\r\n  Index: number = -1;\r\n\r\n  constructor(v: any) {\r\n    this.Value = v ?? \"\";\r\n  }\r\n}\r\n\r\n\r\nexport class UIButton implements ICustomTableCell {\r\n  Type: string = \"Button\"\r\n  Value: string = \"\";\r\n  Icon: string;\r\n  Click: any; // ()=>{} Function Handle\r\n  Index: number = -1;\r\n  Class: string = \"btn btn-accent\";\r\n\r\n  \r\n  constructor(v:string, i:string, c:any) {\r\n    this.Value = v;\r\n    this.Icon = i;\r\n    this.Click = c;\r\n  }\r\n\r\n}\r\n","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { SearchRequest } from './Models/search-request';\r\nimport { PageObservable} from './Models/PageObservable'\r\n\r\nimport { BehaviorSubject, catchError, map, Observable,of as observableOf, throwError} from 'rxjs';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ICustomTableCell, UIButton, UITextCell } from '../lib/Models/TableModels';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\n\r\nimport { SearchResponse } from './Models/search-response';\r\nimport { DatePipe } from '@angular/common';\r\nimport { IFilterValue } from './Models/FilterItemModel';\r\nimport { ULHeaderCellDirective } from './Directives/ul-header-cell.directive';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ULLibService {\r\n\r\n  constructor() { }\r\n}\r\n\r\nexport abstract class UIBuilderHandles {\r\n  public ColumnHandle:UITableHandlerFactory = new UITableHandlerFactory();\r\n  \r\n  constructor() {\r\n    \r\n  }\r\n\r\n  CreateLayoutData(a: number, b: number, c: any, d: TemplateRef<HTMLElement>): UIGridLayoutDataHandle{\r\n    return UIGridLayoutDataHandle.CreateLayoutData(a, b, c, d);\r\n\r\n  }\r\n}\r\n\r\nexport class ListItems<T> extends Array<ListItem<T>>\r\n{\r\n  constructor()\r\n  {\r\n    super();\r\n  }\r\n\r\n  FindByValue(value:T)\r\n  {\r\n    return this.filter(x => x.Value == value);\r\n  }\r\n  FindByKey(key:string)\r\n  {\r\n    return this.filter(x => x.Key == key);\r\n  }\r\n\r\n  FirstByKey(key:string)\r\n  {\r\n    this.First(x => x.Key == key);\r\n  }\r\n\r\n  FirstByValue(value:T)\r\n  {\r\n    this.First(x => x.Value == value);\r\n  }\r\n\r\n  LastByValue(value:T)\r\n  {\r\n    this.Last(x => x.Value == value);\r\n  }\r\n\r\n  LastByKey(key:string)\r\n  {\r\n    this.Last(x => x.Key == key);\r\n  }\r\n}\r\n\r\nexport class ListItem<T>\r\n{\r\n  public Key!:string;\r\n  public Value?:T;\r\n  constructor(k:string, v:T)\r\n  {\r\n    this.Key= k;\r\n    this.Value = v;\r\n  }\r\n}\r\n\r\nexport class UIColumnHandler {\r\n  Sortable: boolean = true;\r\n  IsDatabound: boolean = true;\r\n  Display: string = \"\";\r\n  DataKey: string = \"\";\r\n  ColumnType!:ICustomTableCell;\r\n  CellTemplate?: TemplateRef<any> | undefined = undefined;\r\n\r\n  IsFilter: boolean = this.Sortable;\r\n  IsRowID: boolean =false;\r\n  isHidden:boolean = false;\r\n\r\n\r\n  constructor() {\r\n    \r\n\r\n  }\r\n  static GetDataColumn(Datakey:string, Display:string) : UIColumnHandler {\r\n    var t = new UIColumnHandler();\r\n    t.Display = Display;\r\n    t.DataKey = Datakey;\r\n    t.ColumnType = new UITextCell(\"\");\r\n    return t;\r\n  }\r\n  BuildColumnMap(cols: UIColumnHandler[]): {Display: string, DataKey: string, Sorted: boolean, IsFilter:boolean}[]\r\n  {\r\n    return cols.map((x: UIColumnHandler) => { var v = { Display: x.Display, DataKey: x.DataKey, Sorted: x.Sortable, IsFilter: x.IsFilter }; return v; });\r\n  }\r\n  static GetCustomColumn(Datakey: string, Display:string, Sorted:boolean=false, Databound:boolean=false): UIColumnHandler {\r\n    var t = UIColumnHandler.GetDataColumn(Datakey, Display);\r\n    t.IsDatabound = Databound;\r\n    t.Sortable = Sorted;\r\n\r\n    \r\n\r\n      \r\n    return t;\r\n  }\r\n\r\n}\r\n\r\nexport class UITableHandlerFactory {\r\n  public TableHandlers: { [key: string]: UITableHandler } = {};\r\n  constructor() {\r\n  }\r\n\r\n  GetHandlerByName(s: string): UITableHandler {\r\n    return this.TableHandlers[s];\r\n  }\r\n\r\n  CreateHandler(s: string) {\r\n\r\n    if (Object.keys(this.TableHandlers).includes(s)) {\r\n      return this.GetHandlerByName(s);\r\n    } else {\r\n      this.TableHandlers[s] = new UITableHandler();\r\n      return this.GetHandlerByName(s);\r\n    }\r\n  }\r\n}\r\n\r\nexport class UIFormControlData {\r\n  public ControlKey: string;\r\n  public ControlValue: any;\r\n  public ControlType: string;\r\n  public ControlDatasource: any;\r\n\r\n  constructor(a: string, b: any, t: string, c: any) {\r\n    this.ControlKey = a;\r\n    this.ControlValue = b ?? \"\";\r\n    this.ControlType = t;\r\n    this.ControlDatasource = c;\r\n  }\r\n  static GetControlDataByMap(a: any, mp: { [s: string]: (Col:string,RowObj:any)=> UIFormControlData }): UIFormControlData[] {\r\n    return Object.keys(a).map(x => {\r\n      if (Object.keys(mp).includes(x)) {\r\n        return mp[x](x, a);\r\n      } else {\r\n        var t = new UIFormControlData(x, a[x], 'Text', null);\r\n        return t;\r\n      }\r\n    })\r\n  }\r\n\r\n\r\n  static GetControlData(a:any):UIFormControlData[] {\r\n    return Object.keys(a).map(x => {\r\n      var t = new UIFormControlData(x, a[x], 'Text', null);\r\n      return t;\r\n    })\r\n  }\r\n\r\n\r\n}\r\nexport class UITableHandler {\r\n\r\n  public ColArray: UIColumnHandler[] = [];\r\n  public searchRequest:  SearchRequest = new SearchRequest();\r\n  public UpdateSearchRequest: (event:any) => void = ($event: SearchRequest) => {\r\n    this.searchRequest = $event;\r\n  };\r\n  public rowAction:(row:any) => void = (r:any) => {};\r\n  public cellAction :(row:any, dataKey:string) => any = (r:any,dk:string) => { return null;};\r\n\r\n  constructor() {\r\n\r\n    this.searchRequest.pageSize = 200;\r\n  }\r\n\r\n  public CreateDatacolumn(a: string, b: string): UIColumnHandler {\r\n    var val = UIColumnHandler.GetDataColumn(a, b);\r\n    this.ColArray.push(val);\r\n    return val;\r\n  }\r\n\r\n  public CreateCustomcolumn(a: string, b: string) : UIColumnHandler {\r\n\r\n    var val = UIColumnHandler.GetCustomColumn(a, b);\r\n    this.ColArray.push(val);\r\n    return val;\r\n\r\n  }\r\n\r\n}\r\nexport class UIGridLayoutDataHandle {\r\n  ColumnSpan: number;\r\n  RowSpan: number;\r\n  data: any;\r\n\r\n\r\n  constructor(cSpan: number, rSpan: number, nestedData: any, temp: TemplateRef<HTMLElement>)\r\n  {\r\n    this.ColumnSpan = cSpan;\r\n    this.RowSpan = rSpan;\r\n    this.data = { nestedData: nestedData, template: temp };\r\n  }\r\n\r\n  static CreateLayoutData(a:number, b:number, c: any, d:TemplateRef<HTMLElement>) {\r\n    return new UIGridLayoutDataHandle(a, b, c, d);\r\n  }\r\n\r\n}\r\n\r\nexport class UIExpansionData {\r\n  public PanelTitle: string;\r\n  public PanelDesc: string;\r\n  public PanelNestedData: any;\r\n  public PanelNestedTemplate: TemplateRef<HTMLElement>;\r\n\r\n  constructor(pt: string, pd: string, pnd: any, pnt: TemplateRef<HTMLElement>) {\r\n    this.PanelTitle = pt;\r\n    this.PanelDesc = pd;\r\n    this.PanelNestedData = pnd;\r\n    this.PanelNestedTemplate = pnt;\r\n  }\r\nstatic CreateData(a:string, b:string, c:any, d:any): UIExpansionData\r\n{\r\n  var g = new UIExpansionData(a, b, c, d);\r\n  return g;   \r\n\r\n}\r\n\r\n}\r\n//Extensions\r\ndeclare global\r\n{\r\n  interface Array<T>{\r\n    First(operation: (item:T) => boolean ):T|undefined\r\n    Last(operation: (item:T) => boolean ):T|undefined\r\n\r\n  }\r\n  interface Date{\r\n\r\n    LocalToUTCString(): string | null;\r\n\r\n  }\r\n\r\n\r\n}\r\n\r\ndeclare module 'rxjs'\r\n{ \r\n  interface Observable<T>\r\n  {\r\n    ToListItems<TValue>(action:(item:any) => ListItem<TValue>):Observable<ListItems<TValue>>;\r\n    ToListItemsByModel(modelKey:string, modelValue:string):Observable<ListItems<string>>;\r\n    ToSearchResponse<TModel>(countKey?:string , resultKey?:string ):Observable<SearchResponse<TModel>>;\r\n    ToPageObservable<TModel>(countKey?:string , resultKey?:string):PageObservable<TModel>;\r\n    ToFilterValues(display?:string, value?: string):Observable<IFilterValue[]>;\r\n  }\r\n}\r\n\r\nDate.prototype.LocalToUTCString = function()\r\n{\r\n  const datePipe = new DatePipe('en-US');\r\n\r\n  var utc = new Date(this.getUTCFullYear(),\r\n  this.getUTCMonth(),\r\n  this.getUTCDate(),\r\n  this.getUTCHours(),\r\n  this.getUTCMinutes(),\r\n  this.getUTCSeconds()\r\n);\r\n\r\nreturn datePipe.transform(utc, \"yyyy-MM-dd hh:mm:ssa Z\");\r\n}\r\nArray.prototype.First = function ( operation: (item:any) => boolean)\r\n{\r\n  var filtered:Array<any> = this.filter(x => operation(x));\r\n  return filtered.length > 0 ? filtered[0]: undefined;\r\n};\r\nArray.prototype.Last = function ( operation: (item:any) => boolean) \r\n{\r\n  var filtered:Array<any> = this.filter(x => operation(x));\r\n  return filtered.length > 0 ? filtered[filtered.length - 1]: undefined;\r\n};\r\nObservable.prototype.ToListItems = function<TValue>(action:(item:any) => ListItem<TValue>)\r\n{\r\n  return this.pipe(map(x => x.map(action) ));\r\n}\r\n\r\nObservable.prototype.ToListItemsByModel = function(modelKey:string, modelValue:string)\r\n{\r\n  return this.ToListItems(x => new ListItem(x[modelKey], x[modelValue])   );\r\n}\r\nObservable.prototype.ToSearchResponse = function<TModel>(countKey:string  = 'pageSize', resultKey:string = 'results')\r\n{\r\n  var searchResponse:Observable<SearchResponse<TModel>> = this.pipe(map((x: any) => { var result: SearchResponse<TModel> = { count: x[countKey]   , results: x[resultKey] }; return result; }));\r\n  return searchResponse;\r\n}\r\nObservable.prototype.ToPageObservable = function<TModel>(countKey:string  = 'pageSize', resultKey:string = 'results')\r\n{\r\n  var searchResponse = this.ToSearchResponse<TModel>(countKey, resultKey);\r\n  var result:PageObservable<TModel> = new PageObservable<TModel>(searchResponse);\r\n  return  result;\r\n};\r\nObservable.prototype.ToFilterValues = function(display:string = 'key', value: string = 'value')\r\n{\r\n  return this.pipe(map((x:any) => {\r\n    var res: IFilterValue[] = x.map((m:any) => {\r\n      var val:IFilterValue = {\r\n        display: m[display],\r\n        value: m[value]            \r\n      };\r\n      return val;\r\n    });\r\n    return res;\r\n  }));\r\n}\r\n\r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-UL-Lib',\r\n  standalone: true,\r\n  imports: [],\r\n  template: `\r\n    <p>\r\n      ul-lib works!\r\n    </p>\r\n  `,\r\n  styles: ``\r\n})\r\nexport class ULLibComponent {\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, HostBinding, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ul-tip',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uitooltip.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UITooltipComponent {\r\n\r\n  @Input() tooltip:string|undefined;\r\n  @Input() tipClass:string = '';\r\n  @Input() fullSize?:string;\r\n  @HostBinding('style.display') displayStyle: string = 'contents';\r\n\r\n\r\n}\r\n","<div style=\"display: contents;\" [class]=\"tipClass\" [class.tooltip]=\"tooltip != undefined\" [attr.data-tip]=\"tooltip\" [ngClass]=\"{'w-full': fullSize == '', 'h-full': fullSize == ''}\">\r\n    <ng-content/>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, ViewChild, OnInit, ViewChildren, HostBinding, input, ContentChildren, QueryList, ElementRef, AfterContentInit, ContentChild, TemplateRef, contentChild } from '@angular/core';\r\nimport { ListItem } from '../../ul-lib.service';\r\nimport { UITooltipComponent } from '../uitooltip/uitooltip.component';\r\nimport { FlatpickrDefaults, FlatpickrDefaultsInterface, FlatpickrModule, USER_DEFAULTS } from 'angularx-flatpickr';\r\nimport { Observable, of, Subscription, map } from 'rxjs';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { FormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\n\r\n\r\n/*\r\nFlatpickrModule\r\nThis module comes from this package: https://www.npmjs.com/package/angularx-flatpickr\r\n- Decent implementation of date inputs\r\n* For date it is reccomeneded that you use \r\n*/\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'ul-input',\r\n  standalone: true,\r\n  imports: [CommonModule, UITooltipComponent, FlatpickrModule],\r\n  templateUrl: './uibasic-input-field.component.html',\r\n  styleUrls: [\r\n        '../../Styles/index.css',\r\n    '../../../../node_modules/flatpickr/dist/flatpickr.css'\r\n  ],\r\n  providers:[FlatpickrDefaults]\r\n})\r\nexport class UIBasicInputFieldComponent implements OnInit, AfterContentInit {\r\n\r\n\r\n  @Input() public label: string = \"\";\r\n  @Input() public contentType?: string | \"input\" | \"select\" | \"textarea\" | \"radio\" | \"toggle\" | \"checkbox\" | \"file\" | \"autocomplete\" | \"multiSelect\" = \"input\";\r\n  @Input() public inputType?: string | \"color\" | \"email\" | \"date\" |  \"month\" | \"number\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\" | \"week\" | \"autocomplete\" = \"text\";\r\n  @Input() public dateMode: 'single' | 'multiple' | 'range'= 'single';\r\n  @Input() public dateOptions: FlatpickrDefaultsInterface = new FlatpickrDefaults();\r\n  @Input() public datasource?: ListItem<string>[] = [];\r\n  @Input() public autoComplete: (inputValue?:string) => Observable<ListItem<string>[]> = (inputValue?:string) => {var res: ListItem<string>[] = []; return of(res); };\r\n  @Input() public dataDefault?:ListItem<string> = undefined;\r\n  //May not be used vvv\r\n  @Input() public defaultValue: any = \"\";\r\n  @Input() public class: string = \"\";\r\n  @Input() public formClass: string = \"\";\r\n  @Input() public labelClass: string = \"\";\r\n  @Input() public iconClass: string = \"\";\r\n  @Input() public tooltip: string |undefined;\r\n  @Input() public tipClass: string |undefined;\r\n  @Input() public placeholder: string = \"\";\r\n  @Input() public disabled?: string;\r\n  @Input() public required?: string;\r\n  @Input() public fieldID: string = \"\"; //Only needed for radio\r\n  @Input() public rowIndex: number = 0;\r\n  @Input() public dataKey?:string;\r\n  @Input() public title?:string = \"\";\r\n  @Input() public alt?:string;\r\n  @Input() public dropdownClass:string = 'max-h-64 z-[5] w-52';\r\n  @Input() public validators?:ValidatorFn[];\r\n  \r\n  @Input() public isReactive?:string;\r\n  @Input(\"maxlength\") maxLength?:string;\r\n  @Input(\"minlength\") minLength?:string;\r\n  @Input(\"pattern\") pattern?:string;\r\n\r\n  @Output() Change = new EventEmitter<any>();\r\n  @Output() Input = new EventEmitter<any>();\r\n\r\n\r\n  public filteredDatasource?: ListItem<string>[] = [];\r\n  savedSubscription?:Subscription;\r\n  public showDropdown:boolean = false;\r\n  public autoCompleteValue:ListItem<string> | undefined;\r\n  public validationErrors:string[] | null = null;\r\n\r\n\r\n  @ViewChild(\"input\") InputElement: any;\r\n  @ViewChild(\"select\") SelectElement: any;\r\n  @ViewChildren(\"radio\") RadioElement: any[] = [];\r\n  @ViewChildren(\"multiItem\") multiItem: ElementRef<HTMLLIElement> [] = [];\r\n  @ViewChild(\"checkbox\") CheckboxElement: any;  \r\n  @ViewChild(\"mwlFlatpickr\") dateElement:any;\r\n  @HostBinding(\"attr.aria-label\") inputKey:string = \"\";\r\n  @HostBinding('style.display') displayStyle: string = 'contents';\r\n  @HostBinding('attr.class') className: string = '';\r\n  @ContentChildren('listItem', {read:ElementRef}) multiSelectData?: QueryList<ElementRef<HTMLInputElement>>;\r\n  @ContentChild(TemplateRef) validTemplate?: TemplateRef<HTMLElement>;\r\n\r\n  static FieldIDRadio:number = 1;\r\n\r\n  constructor() {    \r\n\r\n  }\r\n  public filter(a:any) {\r\n    const filterValue: string = this.InputElement.nativeElement.value.toLowerCase();\r\n\r\n    if (this.datasource?.length == 0)\r\n    {\r\n      this.configAutocompletevalue(filterValue);\r\n    }\r\n    else\r\n    {\r\n    var FilteredSet: ListItem<string>[] | undefined = this.datasource?.filter(x => {\r\n      return x.Key.toLowerCase().includes(filterValue);\r\n    });\r\n    this.filteredDatasource = FilteredSet;\r\n    }\r\n    this.OnInput(a);\r\n  }\r\n\r\n\r\n  public setAutoCompleteValue(inValue:string, inKey:string)\r\n  {\r\n    this.InputElement.nativeElement.value = inKey;\r\n    this.InputElement.nativeElement.focus();\r\n    this.autoCompleteValue = new ListItem<string>(inKey, inValue);\r\n  }\r\n  configAutocompletevalue(val:any, defValue?:string)\r\n  {\r\n    if (this.savedSubscription != undefined && !this.savedSubscription.closed)\r\n    {\r\n      this.savedSubscription.unsubscribe();\r\n    }\r\n    this.savedSubscription = this.autoComplete(val)\r\n    .pipe(untilDestroyed(this))\r\n    .subscribe(x => { \r\n      this.filteredDatasource = x;\r\n      if(defValue)\r\n      {\r\n      this.autoCompleteValue = this.filteredDatasource.First(x => x.Value == this.dataDefault?.Value);\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.className = ''; //This is to clear any class applied to the `ul-input` element\r\n    if(this.contentType == \"autocomplete\")\r\n    {\r\n      if (this.datasource?.length == 0)\r\n      {\r\n        this.configAutocompletevalue(this.dataDefault?.Key, this.dataDefault?.Value);\r\n      }else \r\n      {\r\n        this.filteredDatasource = this.datasource;\r\n      }\r\n    }\r\n\r\n    if (this.contentType == \"radio\")\r\n      {\r\n        UIBasicInputFieldComponent.FieldIDRadio = UIBasicInputFieldComponent.FieldIDRadio + 1;\r\n        this.fieldID = \"radio_\" + UIBasicInputFieldComponent.FieldIDRadio;\r\n      }\r\n    if (this.isReactive == '')\r\n    {\r\n      this.setReactiveClasses();\r\n    }\r\n    this.insertValidator(this.required, Validators.required);\r\n    this.insertValidator(this.minLength, Validators.minLength( this.minLength != undefined && Number.isInteger(this.minLength) ? Number.parseInt(this.minLength!): 0  ));\r\n    this.insertValidator(this.maxLength, Validators.maxLength( this.maxLength != undefined && Number.isInteger(this.maxLength) ? Number.parseInt(this.maxLength!): 0  ));\r\n    this.insertValidator(this.pattern, Validators.pattern(this.pattern ?? '') );\r\n  }\r\n\r\n  insertValidator(inputValidatorString: string | undefined, validation: ValidatorFn)\r\n  {\r\n    if (inputValidatorString)\r\n    {\r\n    this.validators = this.validators ?? [];\r\n    this.validators.push(validation);\r\n    }\r\n  }\r\n\r\n  setReactiveClasses()\r\n  {\r\n    //Auto-sizing\r\n    this.labelClass = this.alt == '' ?  this.labelClass + \" badge-sm md:badge-md text-sm md:text-base\": this.labelClass + \" text-sm md:text-base\";\r\n    this.iconClass += this.iconClass == '' ? '':  \" fa-sm lg:fa-1x\";\r\n\r\n    switch(this.contentType)\r\n    {\r\n      case \"input\": \r\n      this.class = this.class + \" input-sm lg:input-md\";\r\n      break;\r\n      case \"select\":\r\n        this.class += \" select-sm lg:select-md\"\r\n        break;\r\n      case \"textarea\":\r\n        this.class += \" textarea-sm lg:textarea-md\"\r\n        break;\r\n      case \"radio\":\r\n        this.class += \" radio-sm lg:radio-md\"\r\n        break;\r\n      case \"toggle\":\r\n        this.class += \" toggle-sm lg:toggle-md\"\r\n        break;  \r\n      case \"checkbox\":\r\n        this.class += this.class == '' ? \"checkbox-accent\": \"\";\r\n        this.class += \" checkbox-sm lg:checkbox-md\";\r\n        break;  \r\n      case \"file\":\r\n        this.class += \" input-sm lg:input-md\"\r\n        break;  \r\n      case \"autocomplete\":\r\n        this.class += \" input-sm lg:input-md\"\r\n        break;  \r\n      case \"multiSelect\":\r\n          this.class += \" select-sm lg:select-md\"\r\n          break;          \r\n    }\r\n\r\n\r\n\r\n  }\r\n\r\n\r\n\r\n  ngAfterContentInit(): void {    \r\n    if (this.contentType == 'multiSelect')\r\n      {\r\n        var checkedItems=  this.multiSelectData?.filter(x => x.nativeElement.checked)\r\n        this.placeholder = `(${checkedItems?.length ?? 0}) Selected`;\r\n        this.setMultiSelects();      \r\n      }\r\n      \r\n  }\r\n\r\n  setMultiSelects()\r\n  {\r\n    this.datasource =  this.multiSelectData?.map(x => new ListItem<string>(x.nativeElement.name, x.nativeElement.value));\r\n  }\r\n\r\n  OnInput(ElemEvent:any)\r\n  {\r\n    this.Input.emit(ElemEvent);\r\n  }\r\n\r\n  OnChange(ElemEvent:any)\r\n  {\r\n    var ElemTarget = ElemEvent?.target;\r\n    if (this.inputType == 'date'  && this.contentType == 'input')\r\n    {\r\n      this.Change.emit(ElemEvent);\r\n\r\n    }else if(this.contentType == 'multiSelect')\r\n    {\r\n      var checkedItems = (JSON.parse(this.GetValue() ?? '[]') as Array<string>)\r\n      .map(x => this.datasource?.find(source => source.Value == x)  )\r\n      .filter(x => x != undefined) ;\r\n      this.Change.emit(checkedItems);\r\n    }    \r\n    else{\r\n    this.Change.emit(ElemTarget);\r\n    }\r\n\r\n  }\r\n\r\n\r\n\r\n  OnMultiSelectChange(elem:any)\r\n  {\r\n    var selectedKeys = this.multiItem\r\n    .filter(x => (x.nativeElement.firstChild?.lastChild as HTMLInputElement).checked )\r\n    .map(x => this.datasource?.find(source => source.Value == x.nativeElement.ariaValueText  )?.Key )\r\n    .filter(x => x != undefined);\r\n    this.placeholder = `(${selectedKeys.length}) Selected`;\r\n    this.OnChange(elem);\r\n  }\r\n\r\n  private getInputType()\r\n  {\r\n    return [ this.SelectElement, this.InputElement, this.RadioElement, this.CheckboxElement].filter(x => x != undefined || (x?.length ?? 0) > 0).First(x => true);\r\n  }\r\n\r\n  public reportValidity()\r\n  {\r\n    this.getInputType().nativeElement?.reportValidity();\r\n  }\r\n\r\n  public validate()\r\n  {\r\n    const formControl = new FormControl(this.GetValue(), this.validators);\r\n    const errors = formControl.errors;\r\n    this.validationErrors = errors == null ? null: Object.keys(errors);  \r\n    this.reportValidity();\r\n    return this.validationErrors;\r\n  }\r\n\r\n  public SetValue(value:any|undefined)\r\n  {\r\n\r\n    if (this.contentType == \"select\") {\r\n      this.SelectElement.nativeElement.value = value ?? this.defaultValue;\r\n    } else if (this.contentType == \"input\" || this.contentType == \"autocomplete\") {\r\n       this.InputElement.nativeElement.value = value ?? this.defaultValue;\r\n    }else if (this.contentType == \"radio\"){\r\n      var selectedItems = this.RadioElement.filter(x => x.nativeElement.checked == 'checked');\r\n      selectedItems.forEach(x => {\r\n        x.nativeElement.checked = value ?? this.defaultValue;\r\n      });\r\n    }else if (this.contentType == \"checkbox\"){\r\n      this.CheckboxElement.nativeElement.checked = value ?? this.defaultValue;\r\n    }\r\n    else if (this.contentType == \"multiSelect\"){\r\n      this.multiItem.forEach(x => {\r\n        var foundDefault = this.multiSelectData?.find(defaults =>  defaults.nativeElement.value == x.nativeElement.ariaValueText);\r\n        var targetCheck = (x.nativeElement.firstChild?.lastChild as HTMLInputElement);\r\n        if (foundDefault != undefined)\r\n        {\r\n        targetCheck.checked = foundDefault?.nativeElement.checked\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n\r\n  public GetValue(): string | undefined  {\r\n    try{\r\n      if (this.contentType == \"select\") {\r\n        return String(this.SelectElement.nativeElement.value);\r\n      } else if (this.contentType == \"input\" || this.contentType == \"textarea\") {\r\n        return String(this.InputElement.nativeElement.value);\r\n      }else if (this.contentType == \"radio\"){\r\n        var selectedItems = this.RadioElement.filter(x => x.nativeElement.checked == 'checked');\r\n        return selectedItems.length > 0 ? selectedItems[0].nativeElement.value: undefined;\r\n      }else if (this.contentType == \"checkbox\"){\r\n        var selectedItem:string = this.CheckboxElement.nativeElement.checked;\r\n        return selectedItem;\r\n      }else if(this.contentType == 'autocomplete')\r\n      {\r\n        return this.filteredDatasource?.map(x => x.Value).includes(this.autoCompleteValue?.Value) ? this.autoCompleteValue?.Value: undefined;\r\n      }else if(this.contentType == 'multiSelect')\r\n      {\r\n        return JSON.stringify( this.multiItem.filter(x => (x.nativeElement.firstChild?.lastChild as HTMLInputElement).checked ).map(x => x.nativeElement.ariaValueText));\r\n      }\r\n      else{\r\n        return undefined;\r\n      }\r\n    }catch(err)\r\n    {\r\n      console.debug(err);\r\n      return undefined;\r\n    }\r\n  }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","<!-- Select/Dropdown -->\r\n\r\n<ng-template #defaultValid let-errorLogs let-validity=\"validity\">\r\n  <p class=\"validator-hint hidden\">\r\n    {{errorLogs}}\r\n  </p>\r\n</ng-template>\r\n\r\n@if (contentType == \"select\")\r\n{\r\n  @if(alt != \"\")\r\n  {\r\n    <div>\r\n    <label class=\"select \" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n      <span class=\"label\" [ngClass]=\"labelClass\">\r\n        @if(iconClass != '')\r\n        {\r\n          <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n        }\r\n        {{label}} </span>\r\n        <ul-tip fullSize [tipClass]=\"tipClass ?? '' + ' bg-base-100'\" [tooltip]=\"tooltip\">\r\n      <select #select \r\n      (change)=\"OnChange($event)\" \r\n      [ngClass]=\"class\" \r\n      [disabled]=\"disabled == ''\"\r\n      class=\"select\"\r\n      [required]=\"required == ''\"\r\n      [title]=\"title\"\r\n      [class.validator]=\"(validators?.length  ?? 0) > 0\">\r\n        @if (dataDefault != undefined)\r\n        {\r\n            <option disabled selected [value]=\"dataDefault.Value\" \r\n            [selected]=\"defaultValue == dataDefault.Value\" >{{dataDefault.Key}}</option>\r\n        }\r\n        @for(x of datasource; track $index)\r\n        {\r\n            <option [value]=\"x.Value\" [selected]=\"defaultValue == x.Value\" >{{x.Key}}</option>\r\n        }\r\n          </select>\r\n        </ul-tip>\r\n    </label>    \r\n    <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: select.validationMessage, validity: select.validity }\">\r\n\r\n    </ng-container>\r\n\r\n  </div>\r\n  }@else{\r\n    <div>\r\n      <label class=\"floating-label \" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n        <span class=\"label\" [ngClass]=\"labelClass\">\r\n          @if(iconClass != '')\r\n          {\r\n            <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n          }\r\n          {{label}} </span>\r\n          <ul-tip fullSize [tipClass]=\"tipClass ?? '' + ' bg-base-100'\" [tooltip]=\"tooltip\">\r\n            <select #select \r\n            (change)=\"OnChange($event)\" \r\n            [ngClass]=\"class\" \r\n            [disabled]=\"disabled == ''\"\r\n            class=\"select \"\r\n            [title]=\"title\"\r\n            [required]=\"required == ''\"  \r\n            [class.validator]=\"(validators?.length  ?? 0) > 0\">\r\n              @if (dataDefault != undefined)\r\n              {\r\n                  <option disabled selected [value]=\"dataDefault.Value\" \r\n                  [selected]=\"defaultValue == dataDefault.Value\" >{{dataDefault.Key}}</option>\r\n              }\r\n              @for(x of datasource; track $index)\r\n              {\r\n                  <option [value]=\"x.Value\" [selected]=\"defaultValue == x.Value\" >{{x.Key}}</option>\r\n              }\r\n                </select>\r\n              </ul-tip>\r\n      </label>\r\n\r\n      <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: select.validationMessage, validity: select.validity }\">\r\n\r\n      </ng-container>\r\n\r\n    </div>\r\n  }\r\n\r\n}\r\n<!-- Inputs  -->\r\n @if(contentType == \"input\" && inputType != \"date\")\r\n {\r\n  @if (alt != \"\")\r\n  {\r\n\r\n    <div>\r\n      <label class=\"input \" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n        <span class=\"label\" [ngClass]=\"labelClass\">\r\n          @if(iconClass != '')\r\n          {\r\n            <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n          }\r\n          {{label}} </span>\r\n          <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n            <input #input [title]=\"title\" [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [attr.pattern]=\"pattern\" [required]=\"required == ''\"  class=\"input\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [disabled]=\"disabled == ''\"  [type]=\"inputType\" [placeholder]=\"placeholder\" [ngClass]=\"class\" [value]=\"defaultValue\" (input)=\"OnInput($event)\" (change)=\"OnChange($event)\"  />\r\n          </ul-tip>\r\n      </label>    \r\n      <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: input.validationMessage, validity: input.validity }\">\r\n\r\n      </ng-container>\r\n\r\n    </div>\r\n  }@else\r\n  {\r\n\r\n    <div>\r\n      <label class=\"floating-label \" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n        <span class=\"label\" [ngClass]=\"labelClass\">\r\n          @if(iconClass != '')\r\n          {\r\n            <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n          }\r\n          {{label}} </span>\r\n          <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n            <input #input [title]=\"title\" class=\"input\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [attr.pattern]=\"pattern\" [required]=\"required == ''\"  [disabled]=\"disabled == ''\"  [type]=\"inputType\" [placeholder]=\"placeholder\" [ngClass]=\"class\" [value]=\"defaultValue\" (input)=\"OnInput($event)\" (change)=\"OnChange($event)\"  />\r\n              </ul-tip>\r\n      </label>\r\n      <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: input.validationMessage, validity: input.validity }\">\r\n\r\n      </ng-container>\r\n    </div>\r\n  }\r\n }\r\n @if(contentType == \"input\" && inputType == \"date\")\r\n {\r\n\r\n<!-- Example: [<ul-input inputType=\"date\" label=\"Select Date\" contentType=\"input\" [dateOptions]=\"{mode: 'range'}\"  (Change)=\"dateOutput($event)\" /> ] -->\r\n  <div>\r\n    <label class=\"floating-label \" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n      <span class=\"label\" [ngClass]=\"labelClass\">\r\n        @if(iconClass != '')\r\n        {\r\n          <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n        }\r\n        {{label}} </span>\r\n        <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n          <input #input mwlFlatpickr [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [attr.pattern]=\"pattern\" [required]=\"required == ''\" \r\n          type=\"text\" \r\n          [disabled]=\"disabled == ''\"\r\n          [mode]=\"dateOptions.mode ?? 'single'\"\r\n          [dateFormat]=\"dateOptions.dateFormat ?? 'Y-m-d'\"\r\n          monthSelectorType=\"dropdown\"\r\n          [options]=\"dateOptions!\"\r\n          (flatpickrClose)=\"OnChange($event)\"\r\n          (input)=\"OnInput($event)\"\r\n          [convertModelValue]=\"true\"\r\n          [value]=\"defaultValue\"\r\n          class=\"input\"\r\n          [class.validator]=\"(validators?.length  ?? 0) > 0\"\r\n          [title]=\"title\" \r\n          [ngClass]=\"class\"/>\r\n            </ul-tip>\r\n    </label>\r\n\r\n    <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: input.validationMessage, validity: input.validity }\">\r\n\r\n    </ng-container>\r\n\r\n  </div>\r\n}\r\n\r\n @if(contentType == \"textarea\")\r\n {\r\n\r\n  <div>\r\n    <label class=\"floating-label\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n      <span class=\"label\" [ngClass]=\"labelClass\">\r\n        @if(iconClass != '')\r\n        {\r\n          <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n        }\r\n        {{label}} </span>\r\n        <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n          <textarea #input [title]=\"title\" class=\"textarea\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [attr.pattern]=\"pattern\" [required]=\"required == ''\" [placeholder]=\"placeholder\" [disabled]=\"disabled == ''\" [ngClass]=\"class\" (change)=\"OnChange($event)\" (input)=\"OnInput($event)\">{{defaultValue}}</textarea>\r\n            </ul-tip>\r\n    </label>\r\n\r\n    <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: input.validationMessage, validity: input.validity }\">\r\n\r\n    </ng-container>\r\n\r\n  </div>\r\n }\r\n\r\n @if(contentType == \"radio\")\r\n {\r\n  <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n\r\n    <div class=\"form-control w-max overflow-x-auto\" [ngClass]=\"formClass\" (change)=\"OnChange($event)\"> <!-- Use grid system: 'grid grid-cols-2'-->\r\n    @for(x of datasource; track $index)\r\n    {\r\n        <label class=\"label cursor-pointer\">\r\n          <span class=\"label-text\" [ngClass]=\"\">{{x.Key}}</span>\r\n          <input #radio [title]=\"title\" type=\"radio\"[value]=\"x.Value\" [name]=\"fieldID\" class=\"radio ml-1\" [disabled]=\"disabled == ''\"  [checked]=\"defaultValue == x.Value ? 'checked':''\" [ngClass]=\"class\" />\r\n        </label>\r\n    }\r\n      </div>\r\n  </ul-tip>\r\n }\r\n\r\n @if(contentType == \"toggle\")\r\n {\r\n\r\n    <div class=\"\" [ngClass]=\"formClass\" >  <!-- Use grid system: 'grid grid-cols-2'-->\r\n\r\n        <div class=\"form-control w-fit\">\r\n        <label class=\"label cursor-pointer\">\r\n          <span class=\"label-text pr-2\" [ngClass]=\"labelClass\">@if (iconClass != \"\"){<i [class]=\"iconClass\" aria-hidden=\"true\"></i>    }{{label}}</span>\r\n        <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n\r\n          <input #checkbox type=\"checkbox\" [title]=\"title\" class=\"toggle toggle-accent drop-shadow-md\" [attr.aria-checked]=\"checkbox.checked\" [required]=\"required == ''\" [disabled]=\"disabled == ''\" (change)=\"OnChange($event)\"  [checked]=\"defaultValue == 'true' ? 'checked':''\" [ngClass]=\"class\" />\r\n          </ul-tip>\r\n          <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: checkbox.validationMessage, validity: checkbox.validity }\">\r\n\r\n          </ng-container>\r\n        </label>\r\n      </div>\r\n    \r\n    </div>\r\n\r\n\r\n\r\n }\r\n\r\n @if(contentType == \"checkbox\")\r\n {\r\n\r\n    <div class=\"\"  [ngClass]=\"formClass\">  <!-- Use grid system: 'grid grid-cols-2'-->\r\n        <label class=\"cursor-pointer flex label\" [class.justify-between]=\"alt == undefined\" [ngClass]=\"alt\">\r\n            <span class=\"label-text\" [ngClass]=\"labelClass\">@if (iconClass != \"\"){<i [class]=\"iconClass\" aria-hidden=\"true\"></i>    }{{label}}</span>\r\n        <ul-tip [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n\r\n            <input #checkbox type=\"checkbox\" [title]=\"title\" [required]=\"required == ''\" [checked]=\"defaultValue?.toString() == 'true' ? 'checked':''\" [disabled]=\"disabled == ''\" [class.checkbox-accent]=\"class == ''\" [ngClass]=\"class\" (change)=\"OnChange($event)\" class=\"checkbox drop-shadow-md\" />\r\n        </ul-tip>\r\n          </label>    \r\n          <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: checkbox.validationMessage, validity: checkbox.validity }\">\r\n\r\n          </ng-container>\r\n\r\n    </div>\r\n }\r\n\r\n\r\n @if(contentType == \"file\")\r\n {\r\n  @if(alt != \"\")\r\n  {\r\n\r\n    <div>\r\n      <label class=\"input\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n        <span class=\"label\" [ngClass]=\"labelClass\">\r\n          @if(iconClass != '')\r\n          {\r\n            <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n          }\r\n          {{label}} </span>\r\n          <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n            <input #input type=\"file\" [title]=\"title\" class=\"file-input\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [attr.pattern]=\"pattern\" [required]=\"required == ''\"  (change)=\"OnChange($event)\" (input)=\"OnInput($event)\" [disabled]=\"disabled == ''\" [ngClass]=\"class\" />\r\n          </ul-tip>\r\n      </label>    \r\n      <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: input.validationMessage, validity: input.validity }\">\r\n\r\n      </ng-container>\r\n    </div>\r\n  }@else\r\n  {\r\n\r\n\r\n    <div>\r\n      <label class=\"floating-label\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n        <span class=\"label\" [ngClass]=\"labelClass\">\r\n          @if(iconClass != '')\r\n          {\r\n            <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n          }\r\n          {{label}} </span>\r\n          <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n            <input #input type=\"file\" [title]=\"title\" class=\"file-input\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [attr.pattern]=\"pattern\" [required]=\"required == ''\"  (change)=\"OnChange($event)\" (input)=\"OnInput($event)\" [disabled]=\"disabled == ''\" [ngClass]=\"class\" />              \r\n          </ul-tip>\r\n      </label>\r\n\r\n      <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: input.validationMessage, validity: input.validity }\">\r\n\r\n      </ng-container>\r\n    </div>\r\n\r\n  }\r\n\r\n }\r\n\r\n\r\n@if(contentType == 'autocomplete')\r\n{\r\n  @if (alt != \"\")\r\n  {\r\n\r\n    <div>\r\n      <label class=\"input\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n        <span class=\"label\" [ngClass]=\"labelClass\">\r\n          @if(iconClass != '')\r\n          {\r\n            <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n          }\r\n          {{label}} </span>\r\n          <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n            <input #input class=\"input\" [class.validator]=\"(validators?.length  ?? 0) > 0\" [title]=\"title\" [type]=\"inputType\" [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [attr.pattern]=\"pattern\" [required]=\"required == ''\" [disabled]=\"disabled == ''\" [placeholder]=\"placeholder\" [ngClass]=\"class\" [value]=\"autoCompleteValue?.Key\"  (input)=\"filter($event)\" (focus)=\"filter($event)\"  (change)=\"OnChange($event)\" />\r\n          </ul-tip>\r\n          <ul class=\"dropdown-content menu bg-base-100 rounded-box p-2 shadow block overflow-y-scroll\" [ngClass]=\"dropdownClass\">\r\n            @for(x of filteredDatasource; track $index )\r\n            {\r\n                <li><button class=\"btn-sm md:btn-md\" (click)=\"setAutoCompleteValue(x.Value!, x.Key)\" >{{x.Key}}</button></li>\r\n            }\r\n        </ul>\r\n      </label>    \r\n      <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: input.validationMessage, validity: input.validity }\">\r\n\r\n      </ng-container>\r\n    </div>\r\n  \r\n\r\n  }@else{\r\n\r\n\r\n\r\n    <div>\r\n      <label class=\"floating-label \" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n        <span class=\"label\" [ngClass]=\"labelClass\">\r\n          @if(iconClass != '')\r\n          {\r\n            <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n          }\r\n          {{label}} </span>\r\n          <div class=\"dropdown w-fit\" >\r\n          <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n            <input #input class=\"input\"  [class.validator]=\"(validators?.length  ?? 0) > 0\"  [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [attr.pattern]=\"pattern\" [required]=\"required == ''\"  [type]=\"inputType\" [disabled]=\"disabled == ''\" [placeholder]=\"placeholder\" [ngClass]=\"class\" (input)=\"filter($event)\"  [value]=\"autoCompleteValue?.Key\" (focus)=\"filter($event)\"  (change)=\"OnChange($event)\" />\r\n          </ul-tip>\r\n          <ul class=\"dropdown-content menu bg-base-100 rounded-box p-2 shadow block overflow-y-scroll\" [ngClass]=\"dropdownClass\">\r\n            @for(x of filteredDatasource; track $index )\r\n            {\r\n                <li><button class=\"btn-sm md:btn-md\" (click)=\"setAutoCompleteValue(x.Value!, x.Key)\" >{{x.Key}}</button></li>\r\n            }\r\n        </ul>\r\n      </div>\r\n      </label>\r\n\r\n      <ng-container *ngTemplateOutlet=\"validTemplate ?? defaultValid;context:{$implicit: input.validationMessage, validity: input.validity }\">\r\n\r\n      </ng-container>\r\n    </div>\r\n\r\n  }    \r\n}\r\n\r\n@if (contentType == 'multiSelect')\r\n{\r\n\r\n\r\n  <div>\r\n    <label class=\"floating-label \" [class.validator]=\"(validators?.length  ?? 0) > 0\" [ngClass]=\"formClass\">\r\n      <span class=\"label\" [ngClass]=\"labelClass\">\r\n        @if(iconClass != '')\r\n        {\r\n          <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\r\n        }\r\n        {{label}} </span>\r\n        <div class=\"dropdown w-fit\" >\r\n          <ul-tip fullSize [tipClass]=\"tipClass ?? ''\" [tooltip]=\"tooltip\">\r\n            <button tabindex=\"0\" [disabled]=\"disabled == ''\" class=\"select select-bordered items-center\" [ngClass]=\"class\"  >{{placeholder}} </button>\r\n          </ul-tip>\r\n            <ul tabindex=\"0\" class=\"dropdown-content menu rounded-box bg-base-200 z-50 h-48 overflow-y-scroll block\">\r\n              @for (item of multiSelectData; track $index)\r\n              {\r\n                <li #multiItem class=\"w-max\" [attr.aria-valuetext]=\"item.nativeElement.value\"> <!-- Input > value -->\r\n                    <label class=\"label cursor-pointer\">\r\n                        <span class=\"label-text\">{{item.nativeElement.name}} </span> <!--Input > name-->\r\n                    <input class=\"checkbox\" [ngClass]=\"item.nativeElement.className\" type=\"checkbox\" (change)=\"OnMultiSelectChange($event)\" [checked]=\"item.nativeElement.checked ? 'checked': ''\"/> <!-- Input > checked -->\r\n                    </label>\r\n                </li>\r\n              }                \r\n            </ul>\r\n        </div>\r\n    </label>\r\n\r\n  </div>\r\n\r\n\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ul-chip',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uibasic-chip.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIBasicChipComponent {\r\n  @Input() class:string = '';\r\n  @Input() label:string = '';\r\n  @Input() value:string = '';\r\n\r\n\r\n  @Output() click = new EventEmitter<string>();\r\n\r\n  TriggerClick(a:any)\r\n  {\r\n    this.click.emit(this.label);\r\n  }\r\n}\r\n","\r\n<button (click)=\"TriggerClick($event)\" >\r\n<div class=\"badge badge-accent\" [ngClass]=\"class\"  >\r\n\r\n    <span class=\"ml-2\">{{label}}</span>\r\n    <div class=\"avatar ml-1\">\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"\r\n            class=\"w-3 h-3\">\r\n            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\r\n        </svg>\r\n    </div>\r\n\r\n</div>\r\n</button>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { UIBasicInputFieldComponent } from \"../uibasic-input-field/uibasic-input-field.component\";\r\nimport { ListItem } from '../../ul-lib.service';\r\nimport { UIBasicChipComponent } from '../uibasic-chip/uibasic-chip.component';\r\nimport { CommonComponentService } from '../../Services/CommonService';\r\n\r\nexport interface IChip\r\n{\r\n  DataKey:string;\r\n  Value: string;\r\n  Key:string;\r\n\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'ul-basic-filter',\r\n  standalone: true,\r\n  imports: [CommonModule, UIBasicInputFieldComponent, UIBasicChipComponent],\r\n  templateUrl: './uibasic-filter.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIBasicFilterComponent {\r\n\r\n  public ShowFilterOptions: boolean = false;\r\n  public DataKeys: any[] = [];\r\n  public SelectedKey: any = null;\r\n  public ChipList: IChip[] = [];\r\n  public FilterDropdown:ListItem<string>[] = [];\r\n\r\n  public DefaultDropdwn:ListItem<string> = new ListItem<string>(\"Select Column\", \"-1\");\r\n  public showFilterInput:boolean = false;\r\n\r\n  @ViewChild(\"FilterOutputVal\") public FValue?: UIBasicInputFieldComponent;\r\n  @Output() SelectedFilters = new EventEmitter<ListItem<string>[]>();\r\n  @Input() public enabled:boolean = true;\r\n  @Input() public inactive:boolean = false;\r\n\r\n\r\n\r\n\r\n  toggleFilterOptions() {\r\n    this.ShowFilterOptions = !this.ShowFilterOptions;\r\n  }\r\n\r\n\r\n\r\n\r\n  SelectedFilterChanged(a:any)\r\n  {\r\n    var SelectedValue:string = String(a.value);\r\n    this.SelectedKey = SelectedValue;\r\n    this.showFilterInput = SelectedValue != \"-1\";\r\n      if (this.showFilterInput)\r\n      {\r\n\r\n\r\n\r\n      }\r\n\r\n\r\n\r\n\r\n  }\r\n\r\n  TriggerFilterListEvent()\r\n  {\r\n    this.SelectedFilters.emit(this.ChipList?.map(x => { return new ListItem<string>(x.DataKey, x.Value);  }));\r\n  }\r\n\r\n  ChipDeleteClick(a:String, dataKey:string)\r\n  {\r\n    this.ChipList = this.ChipList.filter(x => dataKey != x.DataKey || ( x.Value! != a && dataKey == x.DataKey) );\r\n    this.TriggerFilterListEvent()\r\n\r\n  }\r\n  AddChipClicked(a:any)\r\n  {\r\n    var val:string = this.FValue?.GetValue()!;    \r\n    var newChip: IChip ={\r\n      DataKey: this.SelectedKey,\r\n      Key: this.DataKeys.First(x => x.PropName == this.SelectedKey)?.DisplayName,\r\n      Value: val\r\n    };\r\n    this.ChipList.push(newChip);\r\n    this.TriggerFilterListEvent();\r\n  }\r\n\r\n\r\n  public build(inData:any[],ColMap: object[]  ): void {\r\n    this.DataKeys = ColMap.map((x: any) => { var v = \r\n      { DisplayName: x.Display, PropName: x.DataKey, Type:inData[0] == null? typeof String: typeof inData[0][x.DataKey] }; return v; });\r\n    this.FilterDropdown = ColMap.map((x:any) => new ListItem<string>(x.Display, x.DataKey));\r\n  }\r\n}\r\n","@if (enabled)\r\n{\r\n<div class=\"flex flex-row flex-nowrap gap-y-1 gap-x-4 motion-preset-shake \" >\r\n<div class=\"mt-1 ml-2 indicator\">\r\n    <span class=\"indicator-item badge badge-sm !badge-soft badge-accent\" [ngClass]=\"{'hidden': ChipList.length == 0}\">{{ChipList.length > 10 ? '10+' : ChipList.length.toString()}}</span>\r\n<button class=\"btn btn-accent btn-sm\" (click)=\"toggleFilterOptions()\" [class.btn-disabled]=\"inactive\">\r\n    <i class=\"fa fa-filter\" aria-hidden=\"true\"></i>\r\n</button>\r\n</div>\r\n@if(ShowFilterOptions)\r\n{\r\n\r\n<div class=\"block w-full mt-2\">\r\n    <div class=\"flex flex-row gap-2 items-center basis-1/2\">\r\n        <ul-input label=\"Filter\" contentType=\"select\" class=\"text-ghost select-md motion-preset-slide-left motion-delay-300\" [datasource]=\"FilterDropdown\"\r\n            (Change)=\"SelectedFilterChanged($event)\" defaultValue=\"-1\" [dataDefault]=\"DefaultDropdwn\" alt></ul-input>\r\n\r\n        @if (showFilterInput) {\r\n        <ul-input #FilterOutputVal label=\"Add Filter\" alt contentType=\"input\" placeholder=\"Input Filter\" class=\"input-md motion-preset-slide-left motion-delay-300\"></ul-input>\r\n\r\n        <button class=\"btn btn-accent ml-1 btn-xs \" (click)=\"AddChipClicked($event)\"> Add </button>\r\n        }\r\n\r\n    </div>\r\n\r\n    <div class=\"flex flex-row items-center basis-1/2 mt-2 ml-1\">\r\n       @if (ChipList.length > 0) { <span class=\"text-ghost text-sm motion-preset-compress motion-delay-300 mr-2\"> Delete Filters: </span>}\r\n        @for (item of ChipList; track $index) \r\n        {\r\n        <ul-chip [label]=\"item.Key + ': \\'' + item.Value! + '\\''\" [value]=\"item.Value!\" class=\"motion-preset-compress motion-delay-400 mr-2\" (click)=\"ChipDeleteClick(item.Value!, item.DataKey)\"></ul-chip>\r\n        }\r\n    </div>\r\n</div>\r\n}\r\n</div>\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { ListItem } from '../../ul-lib.service';\r\n/*\r\nMight remove because this can be created very easy with for loops instead.\r\n*/\r\n@Component({\r\n  selector: 'ul-detail',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uidetail-view.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIDetailViewComponent implements OnInit {\r\n\r\n\r\n  @Input() public placement?:string | \"stretch\" | \"evenly\" | \"around\"\r\n   | \"between\" | \"end\" | \"start\" | \"center\" = \"start\";\r\n  @Input() public columnCount:number = 1;\r\n  @Input() public class:string = \"\";\r\n  @Input() public gap:number = 1;\r\n  @Input() public details:ListItem<string>[] = [];\r\n  @Input() public detailClass:string = \"\";\r\n\r\n\r\nngOnInit(): void {\r\n  var ConcatedClass:string = ' grid-cols-' + this.columnCount + ' gap-'+ this.gap + ' place-content-' + this.placement;\r\n  this.class = this.class + ConcatedClass;\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","<div  [class]=\"'grid ' + class\" >\r\n\r\n    @for(item of details; track $index)\r\n    {\r\n    <div class=\"flex flex-col items-center w-fit\" [ngClass]=\"detailClass\" >\r\n        <span class=\"text-ghost\">{{item.Key}}</span>\r\n        <strong >{{item.Value}}</strong>\r\n    </div>\r\n    }\r\n</div>","import { AfterContentChecked, AfterContentInit, AfterRenderRef, AfterViewInit, ChangeDetectorRef, Component, ComponentRef, ContentChildren, Input, OnChanges, OnInit, SimpleChanges, TemplateRef, ViewChild, ViewChildren, ViewContainerRef, QueryList, ElementRef, EventEmitter, HostBinding, viewChildren, input } from '@angular/core';\r\nimport { ListItem, UIFormControlData } from '../../ul-lib.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { SafeStyle } from '@angular/platform-browser';\r\n\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'ul-tab',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  template:'<input #checkbox type=\"radio\" [name]=\"tabNameIndex\" role=\"tab\" class=\"tab\" [ngClass]=\"buttonClass\" [attr.aria-label]=\"tabLabel\" style=\"width:max-content;\"   /><div role=\"tabpanel\" [ngClass]=\"tabClass\" class=\"tab-content p-10 motion-preset-focus motion-delay-300 motion-duration-1000\"><ng-content></ng-content></div>',\r\n\r\n})\r\nexport class UITabComponent implements AfterViewInit{\r\n  @Input() tabLabel: string = \"\";\r\n  @Input() tabSelected: boolean = false;\r\n  @Input() tabNameIndex:string = \"my_tabs_1\";\r\n  @Input() tabClass:string = \"\";\r\n  @Input() buttonClass:string = \"\";\r\n\r\n  @ViewChild('checkbox') cBox: ElementRef<HTMLInputElement> | undefined;\r\n  @HostBinding('style.display') displayStyle: string = 'contents';\r\n\r\n  \r\n  ngAfterViewInit(): void {\r\n    if (this.tabSelected)\r\n    {\r\n      this.cBox!.nativeElement.checked = true;     \r\n    }\r\n\r\n\r\n  }\r\n\r\n\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'ul-tabs',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uitab-view.component.html'\r\n})\r\nexport class UITabViewComponent implements OnInit, AfterViewInit, AfterContentInit {\r\n\r\n  @Input() class:string = \"\";\r\n  @Input() name:string = \"my_tabs_1\";\r\n  @Input() buttonClass?:string;\r\n  @HostBinding('style.display') displayStyle: string = 'contents';\r\n  @ContentChildren(UITabComponent) tabs?: QueryList<UITabComponent>;\r\n\r\n  constructor(private cdr:ChangeDetectorRef)\r\n  {\r\n\r\n  }  \r\n  ngAfterContentInit(): void {\r\n    this.tabs?.forEach(x => {\r\n      x.tabNameIndex = this.name;\r\n      x.buttonClass += ` ${this.buttonClass}`;\r\n    } );\r\n  \r\n  }\r\n\r\nngOnInit(): void {\r\n\r\n}\r\n\r\nselectByIndex(index:number)\r\n{\r\n  this.clearAll();\r\n  this.tabs?.forEach((x, i) => {\r\n    x.cBox!.nativeElement.checked = i == index;\r\n  });\r\n}\r\n\r\nclearAll():void\r\n{\r\n  this.tabs?.forEach(x => {\r\n\r\n    x.cBox!.nativeElement.checked = false;\r\n  });\r\n\r\n}\r\nngAfterViewInit(): void {\r\n  this.cdr.detectChanges();\r\n}\r\n\r\n\r\n\r\n}","<div role=\"tablist\" class=\"tabs overflow-x-auto h-fit\" [ngClass]=\"class\">\r\n\r\n\r\n  <ng-content></ng-content>\r\n\r\n  </div>","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, ContentChildren, ElementRef, forwardRef, input, Input, OnInit, TemplateRef, ViewChild, viewChild } from '@angular/core';\r\nimport { UIMenuItemComponent } from '../uimenu-item/uimenu-item.component';\r\n\r\nexport abstract class UIMenuItem{\r\n\r\n  public type?:string| \"detail\" | \"item\";\r\n  public allNodes?: UIMenuItem[];\r\n\r\n\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'ul-menuDetail',\r\n  standalone: true,\r\n  imports: [CommonModule,forwardRef(() =>  UIMenuItemComponent) ],\r\n  templateUrl: './uimenu-detail.component.html',\r\n})\r\nexport class UIMenuDetailComponent implements UIMenuItem,OnInit, AfterViewInit {\r\n\r\n  @Input() summary:string = \"\";\r\n  @Input() open:boolean = false;\r\n  public type?:string = \"detail\";\r\n  @ViewChild('details') detailElement?: ElementRef;\r\n\r\nngOnInit(): void {\r\n\r\n  \r\n}\r\nngAfterViewInit(): void {\r\n  var detElem: HTMLDetailsElement = this.detailElement?.nativeElement;\r\n  detElem.open = this.open;\r\n\r\n}\r\n\r\n\r\n\r\n\r\n}\r\n","<li>\r\n    <details #details >\r\n      <summary>{{summary}}</summary>\r\n      <ul class=\"z-50\">\r\n        <ng-content />\r\n      </ul>\r\n    </details>\r\n  </li>","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChild, ContentChildren, EventEmitter, forwardRef, HostBinding, input, Input, OnInit, Output, QueryList, TemplateRef, ViewChild } from '@angular/core';\r\nimport { UIMenuDetailComponent } from '../uimenu-detail/uimenu-detail.component';\r\n\r\n@Component({\r\n  selector: 'ul-menuItem',\r\n  standalone: true,\r\n  imports: [CommonModule,forwardRef(() =>  UIMenuDetailComponent)],\r\n  templateUrl: './uimenu-item.component.html',\r\n})\r\nexport class UIMenuItemComponent implements AfterViewInit {\r\n  @Input() label: string = \"\";\r\n  @Output() action = new EventEmitter<any>();\r\n  @ContentChildren(UIMenuDetailComponent)  nodes?:UIMenuDetailComponent[];\r\n  @HostBinding('class.menu') hostMenuClass:boolean = true;\r\n  @HostBinding('style.display') displayStyle: string = 'contents';\r\n\r\n\r\n  constructor(private cd:ChangeDetectorRef)\r\n  {\r\n\r\n\r\n\r\n  }\r\nclickEvent(a:any)\r\n{\r\nthis.action.emit(a);\r\nconsole.log('Menu Clicked!');\r\n}\r\n\r\nngAfterViewInit(): void {\r\n  //this.detailTemplate = this.itemNodes!.map(x => x.template);\r\n  //console.log(this.detail?.template);\r\n  this.cd.detectChanges();\r\n  \r\n}\r\n\r\n\r\n}\r\n","@if(nodes == undefined || nodes.length == 0)\r\n{\r\n    <li  ><button (click)=\"clickEvent($event)\">{{label}}</button></li>\r\n}@else{\r\n<ng-content/>\r\n}","import { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, input, Input, OnChanges, QueryList, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { UIMenuItemComponent } from '../uimenu-item/uimenu-item.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UIMenuDetailComponent } from '../uimenu-detail/uimenu-detail.component';\r\nimport { CommonComponentService } from '../../../Services/CommonService';\r\n\r\n@Component({\r\n  selector: 'ul-menu',\r\n  standalone: true,\r\n  imports: [UIMenuItemComponent, UIMenuDetailComponent,CommonModule], \r\n  templateUrl: './uimenu.component.html',\r\n  styleUrl: '../../../Styles/index.css'\r\n})\r\nexport class UIMenuComponent implements AfterViewInit{\r\n\r\n  @ContentChildren(UIMenuItemComponent) public nodes?: QueryList<UIMenuItemComponent>;\r\n  @Input() public class:string = \"\";\r\n  buttonText?:string = undefined;\r\n  buttonClass:string|undefined = undefined;\r\n\r\n\r\nconstructor(private cdr:ChangeDetectorRef)\r\n{\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\nngAfterViewInit(): void {\r\n//console.log(this.nodes);\r\n\r\n}\r\n\r\n\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'ul-menuDropdown',\r\n  standalone: true,\r\n  imports: [UIMenuItemComponent,CommonModule,UIMenuDetailComponent], \r\n  templateUrl: './uimenuDropdown.component.html',\r\n  styleUrl: '../../../Styles/index.css'\r\n})\r\nexport class UIMenuDropdownComponent implements AfterViewInit {\r\n\r\n  @ContentChildren(UIMenuItemComponent) public nodes?: QueryList<UIMenuItemComponent>;\r\n  @Input() public class:string = \"\";\r\n  @Input() buttonText:string|undefined;\r\n  @Input() buttonClass:string|undefined;\r\n\r\n\r\n\r\nngAfterViewInit(): void {\r\n//console.log(this.nodes);\r\n\r\n}\r\n\r\n\r\n}","\r\n<ul class=\"menu rounded-box bg-base-200 z-50\">\r\n    <ng-content />\r\n</ul>\r\n\r\n","<div class=\"dropdown\" [ngClass]=\"class\">\r\n    <div tabindex=\"0\" role=\"button\" class=\"btn m-1\" [ngClass]=\"buttonClass\">{{buttonText}}</div>\r\n    <ul tabindex=\"0\" class=\"dropdown-content menu rounded-box bg-base-200 z-50\">\r\n        <ng-content />\r\n    </ul>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ContentChild, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { UIColumnHandler } from '../../ul-lib.service';\r\nimport { ULHeaderCellDirective } from '../../Directives/ul-header-cell.directive';\r\n\r\n@Component({\r\n  selector: 'ul-column',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uibasic-table-column-component.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIBasicTableColumnComponent implements OnInit {\r\n\r\n  @Input() sortable: boolean|string = true;\r\n  @Input() isDatabound:boolean = true;\r\n  @Input() display:string = \"\";\r\n  @Input() dataKey:string = \"\";\r\n  @Input() isFilter:boolean = true;\r\n  @Input() isRowID?:string;\r\n  @Input() hide?:string;\r\n\r\n\r\n\r\n  @ContentChild(TemplateRef) public cellTemplate?:TemplateRef<any>;\r\n  public dataRow:any = undefined;\r\n\r\n\r\n  ngOnInit(): void {\r\n    \r\n\r\n\r\n\r\n  }\r\n\r\n  GetColumnHandler():UIColumnHandler\r\n  {\r\n    var v = new UIColumnHandler();\r\n    v.DataKey = this.dataKey;\r\n    v.Display = this.display;\r\n    v.Sortable = (this.sortable as boolean) || this.sortable === '';\r\n    v.CellTemplate = this.cellTemplate;\r\n    v.IsFilter = this.isFilter;\r\n    v.IsRowID = this.isRowID != undefined;\r\n    v.isHidden = this.hide != undefined;\r\n    return v;\r\n  }\r\n\r\n}\r\n","\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ContentChild, Input, input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ul-nestedRow',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uinested-table-row.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UINestedTableRowComponent {\r\n\r\n @ContentChild(TemplateRef) public rowTemplate?: TemplateRef<any> | null;\r\n @Input() class:string = '';\r\n @Input() rowClass:string = 'bg-base-200';\r\n\r\n\r\n\r\n}\r\n","","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, EventEmitter, input, Input, OnInit } from '@angular/core';\r\nimport { IFilterItem, IFilterValue } from '../../Models/FilterItemModel';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { Observable } from 'rxjs';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'ul-filterItem',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uifilter-item.component.html',\r\n  styleUrl: './uifilter-item.component.css'\r\n})\r\nexport class UIFilterItemComponent implements OnInit{\r\n\r\n\r\n  @Input() public config!: IFilterItem;\r\n  @Input() public context?: any;\r\n\r\n\r\n  constructor(private cdr: ChangeDetectorRef)\r\n  {\r\n    \r\n  }\r\n  ngOnInit(): void {\r\n    this.cdr.markForCheck();\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  \r\n\r\n}\r\n","<p>uifilter-item works!</p>\r\n","import { KeyedWrite } from \"@angular/compiler\";\r\nimport { UIBasicInputFieldComponent } from \"../Components/uibasic-input-field/uibasic-input-field.component\";\r\nimport { UIFormComponent } from \"../Components/uiform/uiform.component\";\r\n\r\nexport class FormModel\r\n{\r\n\r\n    public elementKey!:string;\r\n    public label: string |undefined;\r\n    public rowIndex!: number;\r\n    public value:any|undefined;\r\n    public dataKey:string|undefined;\r\n    public invalidErrors:string[] | null;\r\n\r\n\r\n    constructor(input: UIBasicInputFieldComponent, int:number)\r\n    {\r\n\r\n        this.elementKey= input.inputKey == \"\" ? \"Element_\" + int.toString() : input.inputKey;\r\n        this.label = input.label;\r\n        this.rowIndex = input.rowIndex;\r\n        this.value = input.GetValue();\r\n        this.dataKey= input.dataKey;\r\n        this.invalidErrors = input.validationErrors;\r\n    }\r\n\r\n    AsValue<T>():T\r\n    {\r\n        var val:T = this.value;\r\n        return val;\r\n    }\r\n}\r\n\r\n\r\nexport class FormModels\r\n{\r\n    public nested: FormModels[] |undefined\r\n    public values:FormModel[] | undefined\r\n    public formName!:string;\r\n\r\n    constructor(inForm: UIFormComponent)\r\n    {\r\n        this.values = inForm.inputs?.map((x, i) => {\r\n            return new FormModel(x, i);\r\n          });    \r\n        this.formName = inForm.name;\r\n        this.nested = inForm.innerForms?.map(x => x.GetValues());\r\n    }\r\n\r\n    getValueByPathDataKey(path:string)\r\n    {\r\n        var paths = path.split(\".\");\r\n        var currentForm: FormModels|undefined = this;\r\n        if (paths.length == 1)\r\n        {\r\n            return this.getFirstValueByDataKey(paths[0]);\r\n        }\r\n        var lastItem = paths[paths.length - 1];\r\n\r\n\r\n        paths.filter((x,i) => i != paths.length - 1 ).forEach(x => {\r\n            if (currentForm != undefined)\r\n            {\r\n                currentForm = currentForm.getFirstByFormName(x);\r\n            }\r\n        });\r\n\r\n        return currentForm == undefined ? undefined: currentForm.getFirstValueByDataKey(lastItem);\r\n    }\r\n\r\n    getObjectByDataKey<T>(obj:any)\r\n    {\r\n        var keys = Object.keys(obj);\r\n        var mapObject:Map<string,any> = new Map<string, any>();\r\n        keys.forEach(x => {\r\n            mapObject.set(x, this.getValueByPathDataKey(obj[x])?.value);\r\n        });\r\n        return Object.fromEntries(mapObject) as T;\r\n    }\r\n\r\n    getValueByPathLabel(path:string)\r\n    {\r\n        var paths = path.split(\".\");\r\n        var currentForm: FormModels|undefined = this;\r\n        if (paths.length == 1)\r\n        {\r\n            return this.getFirstValueByLabel(paths[0]);\r\n        }\r\n        var lastItem = paths[paths.length - 1];\r\n\r\n\r\n        paths.filter((x,i) => i != paths.length - 1 ).forEach(x => {\r\n            if (currentForm != undefined)\r\n            {\r\n                currentForm = currentForm.getFirstByFormName(x);\r\n            }\r\n        });\r\n\r\n        return currentForm == undefined ? undefined: currentForm.getFirstValueByLabel(lastItem);\r\n    }\r\n    getByFormName(inFormName:string) : FormModels[] | undefined\r\n    {\r\n        return this.nested?.filter(x => x.formName.toUpperCase() == inFormName.toUpperCase());\r\n    }\r\n\r\n    getFirstByFormName(inFormName:string) : FormModels | undefined\r\n    {\r\n        var results = this.getByFormName(inFormName);\r\n        return results?.length == undefined ||results.length > 0 ? results![0] : undefined;\r\n    }\r\n\r\n\r\n    getValueByLabel(label:string): FormModel[] | undefined\r\n    {\r\n        return this.values?.filter(x => x.label?.toUpperCase() == label.toUpperCase());\r\n    }\r\n\r\n    getFirstValueByLabel(label:string) :FormModel|undefined\r\n    {\r\n        var results = this.getValueByLabel(label);\r\n        return results?.length == undefined ||results.length > 0 ? results![0] : undefined;\r\n    }\r\n\r\n\r\n    getValueByDataKey(dataKey:string): FormModel[] | undefined\r\n    {\r\n        return this.values?.filter(x => x.dataKey?.toUpperCase() == dataKey.toUpperCase());\r\n    }\r\n\r\n\r\n    getFirstValueByDataKey(dataKey:string) :FormModel|undefined\r\n    {\r\n        var results = this.getValueByDataKey(dataKey);\r\n        return results?.length == undefined ||results.length > 0 ? results![0] : undefined;\r\n    }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, ContentChildren, EventEmitter, HostBinding, Input, Output, QueryList } from '@angular/core';\r\nimport { UIBasicInputFieldComponent } from '../uibasic-input-field/uibasic-input-field.component';\r\nimport { FormModel, FormModels } from '../../Models/FormModel';\r\n\r\n@Component({\r\n  selector: 'ul-form',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uiform.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIFormComponent {\r\n  /* \r\n  The point of this component is to throw a bunch of BasicInputs into the UIForm. With this you can name the elements\r\n  by aria-label for the Host Basic Input component. The output expected is below: \r\n  [{\"Element_1\": \"Value1\"},\r\n   {\"CustomElement\": \"Value2\"}]  \r\n  */\r\n\r\n  @ContentChildren(UIBasicInputFieldComponent) inputs: QueryList<UIBasicInputFieldComponent> |undefined;\r\n  @ContentChildren(UIFormComponent) innerForms: QueryList<UIFormComponent> |undefined;\r\n\r\n\r\n\r\n  @Input() public name:string = \"Form_1\";\r\n  @Input() public defaultBehavior?:string ;\r\n\r\n  @Input() public context:any|undefined;\r\n  @HostBinding('style.display') displayStyle: string = 'contents';\r\n  @Input() class:string = \"\";\r\n  @Output() Submit: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n\r\n\r\n  GetByIndex(i:number):UIBasicInputFieldComponent|undefined\r\n  {\r\n    return this.inputs?.get(i);\r\n  }\r\n\r\n  onSubmit(ev:Event)\r\n  {\r\n    if (this.defaultBehavior == undefined)\r\n    {\r\n    ev.preventDefault()\r\n    }\r\n    this.Submit.emit(ev);\r\n  }\r\n  \r\n  GetValues(): FormModels\r\n  {\r\n    return new FormModels(this);\r\n  }\r\n\r\n  Clear()\r\n  {\r\n    this.inputs?.forEach(x => {\r\n      x.SetValue(undefined);\r\n    });\r\n  }\r\n\r\n  invalidInputs()\r\n  {\r\n    var invalidMessages: string[] = [];\r\n    var invalidInputs = this.inputs?.filter(x => x.validate()?.length ?? 0 > 0 )?.map(x => x.validate()!.filter(v => v != undefined)! );\r\n    var invalidForms = this.innerForms?.map(x => x.invalidInputs());\r\n\r\n    invalidInputs?.forEach(x => x.forEach(invalidMessage => invalidMessages.push(invalidMessage))  );\r\n    invalidForms?.forEach(x =>  x.forEach(invalidMessage => invalidMessages.push(invalidMessage) ) );\r\n\r\n    return invalidMessages;\r\n  }\r\n\r\n  isInvalid()\r\n  {\r\n    return this.invalidInputs().filter(x => x != undefined).length > 0;\r\n  }\r\n\r\n  ClearAll()\r\n  {\r\n    this.Clear();\r\n    this.innerForms?.forEach(x => {\r\n      x.ClearAll();\r\n    });\r\n  }\r\n\r\n  GetInnerForm(formName:string) :UIFormComponent|undefined\r\n  {\r\n    var targetForm = this.innerForms?.filter(x => x.name == formName)[0];\r\n    return targetForm;\r\n  }\r\n\r\n\r\n}\r\n","\r\n<form [class]=\"class\" (submit)=\"onSubmit($event)\">\r\n    <ng-content></ng-content>\r\n\r\n    </form>\r\n\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\r\nimport { UIFilterItemComponent } from '../uifilter-item/uifilter-item.component';\r\nimport { IFilterItem, IFilterValue } from '../../Models/FilterItemModel';\r\nimport { UIBasicInputFieldComponent } from '../uibasic-input-field/uibasic-input-field.component';\r\nimport { BehaviorSubject, map, Observable, of } from 'rxjs';\r\nimport { UIFormComponent } from '../uiform/uiform.component';\r\nimport { UITooltipComponent } from '../uitooltip/uitooltip.component';\r\nimport { ListItem } from '../../ul-lib.service';\r\nimport { FlatpickrDefaults, FlatpickrDefaultsInterface } from 'angularx-flatpickr';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { ValidatorFn, Validators } from '@angular/forms';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'ul-filter',\r\n  standalone: true,\r\n  imports: [CommonModule, UIBasicInputFieldComponent, UIFormComponent, UITooltipComponent],\r\n  templateUrl: './uiadvanced-filter.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIAdvancedFilterComponent implements OnInit {\r\n  @ContentChildren(UIFilterItemComponent) public filterOptions: QueryList<UIFilterItemComponent> = new QueryList<UIFilterItemComponent>();\r\n  public selectedFilters: BehaviorSubject<IFilterItem[]> = new BehaviorSubject<IFilterItem[]>([]);\r\n  @ViewChildren('filterInputs') filterInputs: QueryList<UIFormComponent> | undefined;\r\n  @ViewChildren('inputOption') inputOptions: QueryList<UIBasicInputFieldComponent> | undefined;\r\n  public appliedFilters: IFilterItem[] = [];\r\n  @Output() filter: EventEmitter<IFilterItem[]> = new EventEmitter<IFilterItem[]>();\r\n  defaultDateOptions:FlatpickrDefaultsInterface = new FlatpickrDefaults();\r\n  @Input() contentClass?:string;\r\n  @Input() preventInvalidInputs:boolean = true;\r\n  public defaultOperations:ListItem<string>[] = [{Key: \"Include\", Value: \"Include\"}, {Key: \"Exclude\", Value: \"Exclude\"}, {Key: \"Contains\", Value: \"Contains\"}, {Key: \"Equal To (=)\", Value: \"=\"}, {Key: \"Lesser Or Equal To (\\<=)\", Value: \"\\<=\"}, {Key: \"Greater Or Equal To (>=)\", Value: \">=\"}, {Key: \"Greater Than (>)\", Value: \">\"}, {Key: \"Lesser Than (\\<)\", Value: \"\\<\"}, {Key: \"Empty (NULL)\", Value: \"Empty\"}, {Key: \"Exists (Value is not NULL)\", Value: \"Exist\"}];\r\n//REMEMBER: I need to set up the filters to be pre filled out upon opening based on pre-defined filters.\r\nconstructor(private cdr: ChangeDetectorRef)\r\n{\r\n  \r\n}\r\nngOnInit(): void {\r\n  this.cdr.markForCheck();\r\n  this.filterOptions.notifyOnChanges();\r\n}\r\n  setZIndex(index:number)\r\n  {\r\n    var count = (this.selectedFilters.getValue()?.filter(x => x.type == 'autocomplete' )?.length ?? 0) + 2;\r\n    count = count - index;\r\n    return count;\r\n  }\r\n\r\n  applyFilterById(id:string, value: string, callback?:(filter:IFilterItem) => IFilterItem )\r\n  {\r\n    var filterItem = this.filterOptions.find(x => x.config.id == id)?.config;\r\n    if (filterItem != undefined)\r\n    {\r\n      filterItem.selected = true;\r\n      if (!this.selectedFilters.getValue().map(x => x.id).includes(id))\r\n      {\r\n        var copyFilter: IFilterItem = Object.fromEntries(Object.entries(filterItem)) as IFilterItem;\r\n        copyFilter.defaultValue = value;\r\n        copyFilter.value = value;\r\n        if (callback != undefined)\r\n        {\r\n        callback(copyFilter);\r\n        }\r\n        this.addFilterClick(null, copyFilter);\r\n        this.cdr.detectChanges();\r\n        setTimeout(() => {\r\n          //Timeout is needed because the Table Component needs time to subscribe to the datasource\r\n          this.completeClick(null);                 \r\n        }, 1000);\r\n      }\r\n    }\r\n  }\r\n\r\n  getHandlerById(id:String)\r\n  {\r\n    return this.filterOptions.find(x => x.config.id == id )?.context;\r\n  }\r\n\r\n  filterValueToAutocomplete(targetFilter:IFilterItem )\r\n  {        \r\n    var context =  this.getHandlerById(targetFilter.id);\r\n    if(targetFilter.$autocomplete == null)\r\n    {\r\n\r\n      return (input?:string) => of([]);\r\n    }else{\r\n      \r\n      return (input?:string) => targetFilter.$autocomplete!(input, context).ToListItems(x => new ListItem<string>(x.display, x.value));\r\n    }\r\n  }\r\n\r\n  filterValueToListItem(filterValue:IFilterValue[]|undefined)\r\n  {\r\n    return filterValue?.map(x => {\r\n      return new ListItem<string>(x.display, x.value);\r\n    });\r\n  }\r\n\r\ncheckClicked(elem:HTMLInputElement,filterItem: IFilterItem )\r\n{\r\n  var items = this.selectedFilters.getValue();\r\n  if (elem.checked)\r\n  {\r\n    items.push(filterItem);\r\n  }\r\n  else{\r\n    items = items.filter(x => x.id != filterItem.id);\r\n  }\r\n  this.selectedFilters.next(items);\r\n}\r\n\r\n\r\naddFilterClick(ev:any,filterItem: IFilterItem)\r\n{\r\n  var items = this.selectedFilters.getValue();\r\n  var tmp:IFilterItem = JSON.parse(JSON.stringify( filterItem));\r\n  tmp.index = (items.filter(x => x.id == filterItem.id)?.length ?? 0) + 1;\r\n  tmp.$autocomplete = filterItem.$autocomplete;\r\n  items.push(tmp);\r\n  this.selectedFilters.next(items);\r\n}\r\n\r\nuncheckSelection(filterItem: IFilterItem)\r\n{\r\n  var filterOption = this.filterOptions.find(x => x.config.id == filterItem.id) ;\r\n  if (filterOption != undefined)\r\n  {\r\n    filterOption.config.selected = false;\r\n  }\r\n}\r\n\r\nremoveFilterClick(ev:any,filterItem: IFilterItem)\r\n{\r\n  var items = this.selectedFilters.getValue();\r\n  items = items.filter(x => x.id != filterItem.id || (x.id ==filterItem.id &&  x.index != filterItem.index) );\r\n  if (items.filter(x => x.id == filterItem.id).length == 0)\r\n  {\r\n    this.uncheckSelection(filterItem);\r\n  }\r\n  this.selectedFilters.next(items);\r\n\r\n}\r\nremoveAllFilterClick(ev:any,filterItem: IFilterItem)\r\n{\r\n  var items = this.selectedFilters.getValue();\r\n  items = items.filter(x => x.id != filterItem.id );\r\n  this.uncheckSelection(filterItem);\r\n  this.selectedFilters.next(items);\r\n}\r\n\r\nremoveAllFilters(ev:any)\r\n{\r\n  this.filterOptions.forEach(x => {\r\n    x.config.selected = false;\r\n  });\r\n  this.inputOptions?.forEach(x => {\r\n    x.SetValue(false);\r\n  });\r\n  this.selectedFilters.next([]);\r\n  this.cdr.detectChanges();\r\n  this.completeClick(null);    \r\n}\r\n\r\ncompleteClick(ev:any)\r\n{\r\n  const datePipe = new DatePipe('en-US');\r\n\r\n  var result = this.filterInputs?.map(x => {\r\n    var val = x.GetValues();\r\n    var ctx:IFilterItem =  x.context;\r\n    ctx.customBools  = undefined;\r\n    ctx.value = String(val.getValueByPathDataKey(\"UserInput.filterInput\")?.value);\r\n    ctx.operationType =  val.getValueByPathDataKey(\"operation.operationType\")?.AsValue<string>();\r\n    if (ctx.type == 'dateRange' && (ctx.value?.split('to')?.length ??0)  >= 2 )\r\n    {\r\n      ctx.datasource = [];\r\n      var start = ctx.value?.split('to')[0] ?? '';\r\n      var end = ctx.value?.split('to')[1] ?? '';\r\n      if (start != '' && end != '')\r\n      {\r\n        var sDate = new Date(start);\r\n        var eDate = new Date(end);\r\n        ctx.datasource?.push({display: 'Begin', value: ctx?.utcDate != null && ctx?.utcDate ?  sDate.LocalToUTCString() ?? '' : start });\r\n        ctx.datasource?.push({display: 'End', value: ctx?.utcDate != null && ctx?.utcDate ?  eDate.LocalToUTCString() ?? '' : end });\r\n      }      \r\n    }\r\n    if(ctx.type == 'date' && ctx.value != '' && ctx.value != null)\r\n    {\r\n      ctx.value = ctx?.utcDate != null && ctx?.utcDate ?  new Date(ctx.value).LocalToUTCString() ?? '' : ctx.value;\r\n    }\r\n    return ctx;\r\n  });\r\n\r\n  var allErrors = this.filterInputs?.filter(x => x.isInvalid()).map(x => x.invalidInputs() )?.flat()?.filter(x => x != undefined);\r\n  if ((allErrors?.length ?? 0) >= 1 && this.preventInvalidInputs)\r\n  {\r\n\r\n    alert('Could not complete applying search filters - Invalid Filters Count: ' +  (allErrors?.length ?? 0).toString());\r\n  }\r\n  else{\r\n  this.appliedFilters = result ?? [];\r\n  this.filter.emit(this.appliedFilters);\r\n  }\r\n}\r\n\r\n\r\n\r\n\r\n}\r\n","\r\n<div >\r\n  <div class=\"my-2 grid grid-cols-1 gap-2\">\r\n    <h1 class=\"badge badge-success my-2 p-3 badge-sm text-sm md:badge-md md:text-base lg:badge-lg lg:text-xl\"> <i class=\"fa-solid fa-filter mx-2 fa-sm lg:fa-1x\"></i> Advanced Search</h1>\r\n\r\n    <div class=\"block min-h-80 w-full overflow-y-scroll\" style=\"height: 500px;\" [ngClass]=\"contentClass\">\r\n      <div class=\"flex overflow-x-clip\">\r\n        <div class=\"block w-2/6 grid-cols-1 border border-base-300\">\r\n          <span class=\"block bg-base-300 pl-2 underline underline-offset-2 h-fit w-full text-sm lg:text-base\">Filter Options:</span>\r\n          <div class=\"h-fit grid gap-2 py-2\">\r\n          @for(item of filterOptions  ;track $index )\r\n          {\r\n            <ul-input #inputOption contentType=\"checkbox\" \r\n            [defaultValue]=\"(item.config.selected ?? false)\" \r\n            [label]=\"item.config.name\" \r\n            formClass=\"px-2\"\r\n            isReactive\r\n            (Change)=\"checkClicked($event, item.config)\"></ul-input>\r\n          }\r\n        </div>\r\n        </div>\r\n        <div class=\"grid w-full border border-base-300 pl-1 py-8 gap-5\">\r\n\r\n            @for(item of (selectedFilters | async); track $index  )\r\n            {\r\n                <ul-form #filterInputs [context]=\"item\" class=\"flex gap-1 h-fit\">\r\n                    <ul-form class=\"w-3/12\" name=\"operation\">\r\n                        <ul-input #opType alt dataKey=\"operationType\" formClass=\"w-full\" class=\"w-full\" isReactive contentType=\"select\" label=\"Type\" defaultValue=\"Include\" [datasource]=\"item.customOperations ?? defaultOperations\" ></ul-input>\r\n                    </ul-form>\r\n                    <ul-form class=\"w-6/12\" name=\"UserInput\">\r\n                      @switch(item.type)\r\n                    {\r\n                      @case('number')\r\n                      {\r\n                        <ul-input alt dataKey=\"filterInput\" pattern=\"^-?\\d*\\.?\\d*$\" autoValidate  formClass=\"w-full\" isReactive  class=\"w-full\" [label]=\"item.name\"  [defaultValue]=\"item?.defaultValue ?? ''\"  > \r\n                          <ng-template let-invalid let-validity=\"validity\" >\r\n                              <p class=\"validator-hint hidden\">\r\n                                  {{item.invalidMessage ?? \"Value must be a numeric\"}}\r\n                              </p>\r\n                          </ng-template>\r\n                        </ul-input>\r\n                      }\r\n                      @case('text')\r\n                      {\r\n                        <ul-input alt dataKey=\"filterInput\" [disabled]=\"(opType.GetValue() ?? '') == 'Empty' ? '': undefined\" autoValidate  formClass=\"w-full\" isReactive  class=\"w-full\" [label]=\"item.name\"  [defaultValue]=\"item?.defaultValue ?? ''\"  > </ul-input>\r\n                      }\r\n                      @case('dropdown')\r\n                      {\r\n                        <ul-input alt dataKey=\"filterInput\" class=\"w-full\" isReactive  autoValidate  contentType=\"select\" [dataDefault]=\"{Key:'Select ' + item.name, Value:'-1'}\" [datasource]=\"filterValueToListItem(item.datasource)\" formClass=\"w-full\"  [label]=\"item.name\"  [defaultValue]=\"item?.defaultValue ?? '-1'\"  > </ul-input>\r\n                      }\r\n                      @case('autocomplete')\r\n                      {\r\n                        <ul-input alt style=\"position: relative;\" class=\"w-full\" isReactive  dataKey=\"filterInput\"  autoValidate [style.z-index]=\"setZIndex($index)\"  contentType=\"autocomplete\" [autoComplete]=\"filterValueToAutocomplete(item)\" placeholder=\"Type to search for value..\" formClass=\"w-full\" [label]=\"item.name\"  [defaultValue]=\"item?.defaultValue ?? '-1'\"  > </ul-input>\r\n                      }\r\n                      @case('date')\r\n                      {\r\n                        <ul-input dataKey=\"filterInput\"  class=\"w-full\" isReactive   [dateOptions]=\"item.dateOptions ?? defaultDateOptions\" autoValidate inputType=\"date\" formClass=\"w-full\" [label]=\"item.name\"  [defaultValue]=\"item?.defaultValue ?? ''\"  > </ul-input>\r\n                      }\r\n                      @case('dateRange')\r\n                      {\r\n                        <ul-input dataKey=\"filterInput\" class=\"w-full\" isReactive   [dateOptions]=\"item.dateOptions ?? defaultDateOptions\" autoValidate inputType=\"date\" formClass=\"w-full\" [label]=\"item.name\"  [defaultValue]=\"item?.defaultValue ?? ''\"  > </ul-input>\r\n                      }\r\n                      @default{\r\n                        <ul-input alt dataKey=\"filterInput\" class=\"w-full\" isReactive  autoValidate  formClass=\"w-full\" [label]=\"item.name\"  [defaultValue]=\"item?.defaultValue ?? ''\"  > </ul-input>\r\n                      }\r\n                    }\r\n                    </ul-form>\r\n                    <div class=\"flex w-3/12 gap-1 mx-2 justify-center md:gap-2 lg:gap-3 \">\r\n                      <ul-tip tooltip=\"Remove all of this filter\" tipClass=\"tooltip-primary tooltip-bottom\">\r\n                      <button class=\"btn btn-error btn-xs md:btn-sm lg:btn-md\"  (click)=\"removeAllFilterClick($event, item )\"><i class=\"fa-solid fa-trash-can fa-sm lg:fa-1x\"></i></button>        \r\n                    </ul-tip>\r\n                    <ul-tip tooltip=\"Add new filter\" tipClass=\"tooltip-primary tooltip-bottom\">\r\n                      <button class=\"btn btn-success btn-xs md:btn-sm lg:btn-md\" (click)=\"addFilterClick($event, item )\"><i class=\"fa-solid fa-plus fa-sm lg:fa-1x\"></i></button>\r\n                    </ul-tip>\r\n                    <ul-tip tooltip=\"Remove this filter\" tipClass=\"tooltip-primary tooltip-left\">\r\n                      <button class=\"btn btn-warning btn-xs md:btn-sm lg:btn-md\" (click)=\"removeFilterClick($event, item )\"><i class=\"fa-solid fa-x fa-sm lg:fa-1x\"></i></button>\r\n                    </ul-tip>\r\n                    </div>\r\n                  </ul-form>\r\n\r\n            }\r\n\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n  </div>\r\n</div>\r\n<div class=\"w-full flex justify-end mr-2 gap-2\"> \r\n  <button class=\"btn btn-error btn-sm lg:btn-md\" (click)=\"removeAllFilters($event)\"> <i class=\"fa-solid fa-trash fa-sm lg:fa-1x\"></i>Remove All</button>\r\n    <button class=\"btn btn-success btn-sm lg:btn-md\" (click)=\"completeClick($event)\"> <i class=\"fa-solid fa-magnifying-glass fa-sm lg:fa-1x\"></i> Search</button>\r\n  </div>","import { AfterViewInit, Component, ContentChild, ContentChildren, ElementRef, Input, QueryList, TemplateRef, ViewChild, viewChild } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CommonComponentService, CommonService } from '../../Services/CommonService';\r\n\r\n@Component({\r\n  selector: 'ul-modal',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uimodal-view.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIModalViewComponent implements AfterViewInit {\r\n\r\n  @Input() public buttonText:string ='';\r\n  @Input() public buttonClass:string ='';\r\n  @Input() public iconClass:string ='';\r\n  @Input() public modalClass:string ='';\r\n  @Input() public contentClass:string ='';\r\n  @Input() public inactive:boolean = false;\r\n\r\n  @ViewChild('Modal1') public modal!: ElementRef<HTMLDialogElement>;\r\n\r\n\r\n  ngAfterViewInit(): void {\r\n\r\n\r\n\r\n  }\r\n\r\n\r\n  Close()\r\n  {\r\n    this.modal.nativeElement.close();    \r\n  }\r\n\r\n}\r\n","<ng-container>\r\n<button class=\"btn\" (click)=\"Modal1.showModal()\" \r\n[ngClass]=\"buttonClass\"\r\n[class.btn-disabled]=\"inactive\"\r\n>\r\n    @if(iconClass != ''){\r\n        <i [class]=\"iconClass\"></i>\r\n    } \r\n    {{buttonText}}\r\n</button>\r\n<dialog #Modal1 class=\"modal overflow-y-auto\" [ngClass]=\"modalClass\">\r\n    <div class=\"modal-box max-w-fit\" [ngClass]=\"contentClass\">\r\n        <ng-content></ng-content>\r\n        <div class=\"modal-action\">\r\n            <form method=\"dialog\">\r\n                <button class=\"btn btn-sm btn-circle btn-ghost absolute right-2 top-2\">✕</button>\r\n                <ng-content select=\"[actions]\"></ng-content>\r\n            </form>\r\n        </div>\r\n    </div>\r\n</dialog>\r\n</ng-container>","import { Directive, EmbeddedViewRef, HostBinding, inject, Input, TemplateRef, ViewContainerRef, ViewRef } from '@angular/core';\r\nimport { UIColumnHandler } from '../ul-lib.service';\r\nimport { UINestedTableRowComponent } from '../Components/uinested-table-row/uinested-table-row.component';\r\nimport { TableCacheContext, TableRenderCache, UIBasicTableColumnComponent, UIBasicTableComponent } from '../../public-api';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Directive({\r\n  selector: 'tr[ul-row], [ul-row]',\r\n  standalone: true\r\n})\r\nexport class UlTableRowDirective \r\n{\r\n\r\n  public template:TemplateRef<any> = inject(TemplateRef);\r\n  public vcr:ViewContainerRef = inject(ViewContainerRef);\r\n  public doc:Document = inject(DOCUMENT);\r\n\r\n  constructor() { \r\n  }\r\n\r\n  public RenderNested<T>(ctx:TableCacheContext<T>, nestedContainer: TemplateRef<any>) :EmbeddedViewRef<TableCacheContext<T>> | undefined\r\n  {\r\n    //ViewRef for the nested Row\r\n    if (ctx.nestedComponent != undefined)\r\n      {      \r\n      var nestedRowRef:EmbeddedViewRef<TableCacheContext<T>> = nestedContainer.createEmbeddedView(ctx); //Create nestedRow using context\r\n      Object.assign(nestedRowRef.context, {isDataRow: false});\r\n      nestedRowRef.detectChanges(); //Full Render\r\n      return nestedRowRef; //Return Row\r\n      }\r\n      return undefined;\r\n  }\r\n\r\n\r\n  public UpdateCellsForRow<T>(viewRefRow:EmbeddedViewRef<TableCacheContext<T>>, newContext:TableCacheContext<T>, noTemplateCell: TemplateRef<any>)\r\n  {\r\n    var tableRow:HTMLTableRowElement =  viewRefRow.rootNodes[0];\r\n    if (tableRow.ariaLabel != 'nested') {\r\n      while (tableRow.firstChild) {\r\n        tableRow.removeChild(tableRow.firstChild);\r\n      }\r\n      this.RenderCells(newContext, tableRow, noTemplateCell);\r\n    }\r\n  }\r\n\r\n  private RenderCells<T>(ctx:TableCacheContext<T>, tableRowElement:HTMLTableRowElement,noTemplateCell: TemplateRef<any> ):EmbeddedViewRef<TableCacheContext<T>>[]\r\n  {\r\n    var cellRefs = ctx.columns.map(x => {\r\n      ctx.cell = x; //Contains the column data as part of the template injection\r\n      var cellContent = (x.CellTemplate ?? noTemplateCell).createEmbeddedView(ctx); //Create/Render the cell\r\n      cellContent.detectChanges(); //Ensure the data/elements render properly\r\n      return cellContent;\r\n    });\r\n    var cells = cellRefs.map(x => {\r\n      var cellElem = this.doc.createElement('td'); //Create cell element\r\n      //Add cell into cell content. It should be 1 element but can be muliple\r\n      x?.rootNodes.forEach(cell => {\r\n        cellElem.appendChild(cell); //Add cellContent to cell\r\n      });\r\n      return cellElem;//Return the finished cell\r\n     });   \r\n     //Add all cells into row element\r\n     cells.forEach(x => {\r\n      tableRowElement.appendChild(x);\r\n     });\r\n     return cellRefs;\r\n  }\r\n\r\n  public RenderRow<T>(ctx:TableCacheContext<T>, noTemplateCell: TemplateRef<any>, rowClickDelegate: () => void):EmbeddedViewRef<TableCacheContext<T>>\r\n  {\r\n    //ViewRef for the dataRow\r\n   var rowRef = this.template.createEmbeddedView(ctx);\r\n   rowRef.detectChanges(); //Used to properly render inner elements with correct template data\r\n   var tableRowElement:HTMLTableRowElement = rowRef.rootNodes[0]; //Get table row\r\n   tableRowElement.addEventListener('click', rowClickDelegate); //Set the on click row logic\r\n   //Render cells\r\n   var cellRefs = this.RenderCells(ctx, tableRowElement,noTemplateCell  );\r\n   return rowRef; //return rendered row\r\n  }\r\n\r\n\r\n\r\n}\r\n","import { Directive, ElementRef, inject, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[rowView]',\r\n  standalone: true\r\n})\r\nexport class RowViewDirective {\r\n\r\n  viewContainerRef = inject(ViewContainerRef);\r\n  elem = inject(ElementRef);\r\n\r\n  constructor() { }\r\n\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: 'th[ul-header], [ul-header]',\r\n  standalone: true\r\n})\r\nexport class ULHeaderCellDirective {\r\n  public template:TemplateRef<any> = inject(TemplateRef);\r\n\r\n\r\n  constructor() { }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChild, ContentChildren, ElementRef, EmbeddedViewRef, EventEmitter, HostBinding, Input, OnInit, Output, QueryList, TemplateRef, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation, ViewRef } from '@angular/core';\r\nimport {  UIColumnHandler } from '../../ul-lib.service';\r\nimport { Sort, SortDirection, PageEvent } from '../../Models/TableModels';\r\nimport { CommonModule, formatNumber } from '@angular/common';\r\nimport { SearchRequest, SearchRequestOrderBy } from '../../Models/search-request';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { UIBasicInputFieldComponent } from '../uibasic-input-field/uibasic-input-field.component';\r\nimport { ListItem } from '../../ul-lib.service';\r\nimport { UIBasicFilterComponent } from '../uibasic-filter/uibasic-filter.component';\r\nimport { UIBasicTableColumnComponent } from '../uibasic-table-column-component/uibasic-table-column-component.component';\r\nimport { UINestedTableRowComponent } from '../uinested-table-row/uinested-table-row.component';\r\nimport { BehaviorSubject, map, Observable, of, filter } from 'rxjs';\r\nimport { UIAdvancedFilterComponent } from '../uiadvanced-filter/uiadvanced-filter.component';\r\nimport { UIModalViewComponent } from '../uimodal-view/uimodal-view.component';\r\nimport { IFilterItem } from '../../Models/FilterItemModel';\r\nimport { UlTableRowDirective } from '../../Directives/ul-table-row.directive';\r\nimport { RowViewDirective } from '../../Directives/row-view.directive';\r\nimport { ULHeaderCellDirective } from '../../Directives/ul-header-cell.directive';\r\n\r\n\r\nexport interface TableCacheContext<T>\r\n{\r\n  $implicit: T;\r\n  $index: number;\r\n  selectedExpandRow?: T;\r\n  rowSelected: boolean;\r\n  rowTriggered:boolean;\r\n  nestedComponent: UINestedTableRowComponent | undefined;\r\n  columns: UIColumnHandler[];\r\n  cell?:UIColumnHandler ;\r\n  isDataRow:boolean;\r\n}\r\nexport interface TableRenderCache<T>\r\n{\r\n  dataRow: EmbeddedViewRef<TableCacheContext<T>> | undefined;\r\n  nestedRow: EmbeddedViewRef<TableCacheContext<T>> | undefined;\r\n  context: TableCacheContext<T>;\r\n}\r\n\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'ul-table',\r\n  standalone: true,\r\n  imports: [CommonModule, UIBasicInputFieldComponent, UIModalViewComponent , UlTableRowDirective,RowViewDirective , UIAdvancedFilterComponent, UIBasicFilterComponent, UIBasicTableColumnComponent,UINestedTableRowComponent],\r\n  templateUrl: './uibasic-table.component.html',\r\n  styleUrls: [\r\n    '../../Styles/index.css'\r\n  ],\r\n  host: {ngSkipHyrdation: 'true'}\r\n})\r\nexport class UIBasicTableComponent<T> implements OnInit,AfterViewInit {\r\n  \r\n  public dataSourceView: BehaviorSubject<T[]> = new BehaviorSubject<T[]>([]); //Source for table data\r\n  ItemsCount: number = 0; //Keeps track of the full count (from external source) of rows available\r\n  PageCount: BehaviorSubject<number> = new BehaviorSubject<number>(1); //Page size considering the item count and page size\r\n  PgIndex: number = 0; //Page index\r\n\r\n  isLoading: boolean = true; \r\n  isInitialized: boolean = false;\r\n\r\n  DataDelegate: (sr: SearchRequest) => void = (s:SearchRequest) => {}; //Builds a request delegat for obtaining a new table source from an external source\r\n  SelectedExpandRow: BehaviorSubject<T |undefined> = new BehaviorSubject<T |undefined>(undefined); //Saves a data row for the selected row\r\n  SelectedExpandRowItem: BehaviorSubject<T |undefined> = new BehaviorSubject<T |undefined>(undefined); //Saves a Row Identity for when a row selected *More percise\r\n  public SavedSort:BehaviorSubject<Sort|undefined> = new BehaviorSubject<Sort | undefined>( undefined); //Saved sort selection from user\r\n  private SavedFilter: ListItem<string>[] = []; //Saved Filter selection\r\n  private savedSubscription: Subscription|undefined; //Saves the subscription to the DataDelegate\r\n  public columnBuilder: UIColumnHandler[]|undefined = []; \r\n  private refreshSubscription: Subscription |undefined; //Subscribes to the refresh observer\r\n  public refreshCache:BehaviorSubject<T |undefined> = new BehaviorSubject<T |undefined>(undefined ); //Saves the most recent refresh object (DataRow)\r\n  private _renderCache: BehaviorSubject<TableRenderCache<T>[]> = new BehaviorSubject<TableRenderCache<T>[]>([]); //Saves the building objects for insert Table Rows in the DOM\r\n  public availablePages:BehaviorSubject<number[]> = new BehaviorSubject([] as number[]);\r\n  @Input() defaultSort:Sort|undefined = undefined;\r\n  @Input() pageSizeOptions = [5, 10, 25]; //Selection of Page Sizes\r\n  @Input() PageSize: number = 10;   //Current Selected Page Size\r\n  @Input() public trackBy?: (row:T| undefined) => any; //Delegate used to single out a rowID from each row that is rendered  \r\n  @Input() public dataSource: any = []; //Sets the overall Datasource for building the datasourceView and renderRows\r\n  @Input() public columns: BehaviorSubject<UIColumnHandler[]> = new BehaviorSubject<UIColumnHandler[]>([]); //Sets columns\r\n  @Input() searchRequest: SearchRequest = new SearchRequest(); // Can be used to modify filter/sort/paging request\r\n  @Input() public headerClass:string = 'bg-base-300'; //Sets class for the header in the table\r\n  @Input() public containerClass:string = ''; //\r\n  @Input() public class:string = ''; //Sets the class for the table\r\n  @Input() public footerClass:string = 'overflow-x-clip'; //Sets the class for the footer in table\r\n  @Input() public showFilter:boolean = true; //Determines if there is filter option\r\n  @Input() public nestedClickEnabled?:string; //Determines if just clicking anywhere in the row opens the nested row or if you wish to trigger it some other way\r\n  @Input() public refreshTrigger?:Observable<T>;  // Sets the source for triggering a refresh on the table (SignalR). Binds with dataRow 'row.$refresh'\r\n  @Input() public triggerHandle?: (source: T, tableSource:BehaviorSubject<T[]>) =>  void //Determines what should be done with the new refresh object (Update). Binds with dataRow 'row.$trigger()'\r\n  @Input() public disablePaging?: string;\r\n  @Input() public expandRowIndex?: number;\r\n  @Input() public isReactive?: string;\r\n  @Input() public pageRange:number = 200;\r\n  @Input() public filterContainer:string = \"flex justify-start\";\r\n  @Input() public autoScroll?:string;\r\n  @Input() public hideRefresh?:string;\r\n\r\n\r\n\r\n  \r\n  @Output() rowAction = new EventEmitter<T>(); //Meant to be a delegate contains the row that was clicked\r\n \r\n  @ViewChild(UIBasicFilterComponent) fltr?: UIBasicFilterComponent; //Used to access and interact with Basic Filter data\r\n  @ViewChild(RowViewDirective) rowOutlet!: RowViewDirective; //Place holder for the view container that populates the rows\r\n  @ViewChild(UlTableRowDirective) defaultRow!:UlTableRowDirective; //Contains the default row definition for building the rows\r\n  @ViewChild('nestedRow', {read:TemplateRef, static:false}) nestedContainer!: TemplateRef<any>; //Template used to build nested row\r\n  @ViewChild('noData', {read:TemplateRef, static:false}) public defaultTemplate!:TemplateRef<any>; //Template used to build a cell with no template definition (Span Default)\r\n  @ViewChild('Modal') public filterModal?:UIModalViewComponent; //Controls the modal for the filter pop-up\r\n  @ViewChild('currentTable') public currentTable?: ElementRef<HTMLTableElement>;\r\n  @ContentChildren(UIBasicTableColumnComponent) public columnComponents?: QueryList<UIBasicTableColumnComponent>; //Used to define columns (Optionally you can use Columns or this property)\r\n  @ContentChild(UINestedTableRowComponent) public nestedRow?: UINestedTableRowComponent; //Retrieves the Nested component to obtain the template for the nested row\r\n  @ContentChild(UIAdvancedFilterComponent) public advancedFilter?: UIAdvancedFilterComponent; //Contains the definiton/component for building the advanced filter\r\n  @ContentChildren(UlTableRowDirective) public rowDef?: QueryList<UlTableRowDirective>; //Contains a custom row definition that overrides the `defaultRow` definition\r\n  @ContentChild(ULHeaderCellDirective) public headerDef?: ULHeaderCellDirective;\r\n\r\n  @HostBinding('style.display') displayStyle: string = 'contents';\r\n\r\n   constructor(private cd: ChangeDetectorRef, public vcr:ViewContainerRef)\r\n   {\r\n    this.cd.markForCheck();   \r\n\r\n   }\r\n\r\n  ngOnInit(): void {\r\n    this.dataSource = Array.isArray(this.dataSource) ? of(this.dataSource) : this.dataSource;\r\n    if (this.defaultSort != undefined)\r\n    {\r\n      this.SavedSort.next(this.defaultSort);\r\n    }\r\n  }\r\n  \r\n  closeModal()\r\n  {\r\n    if(this.filterModal != undefined)\r\n    {\r\n    this.filterModal?.Close();\r\n    }\r\n  }\r\n\r\n\r\n  clearFilter()\r\n  {\r\n    this.SavedFilter = [];\r\n    this.searchRequest.searchFilters = [];\r\n  }\r\n  \r\n  clearSort()\r\n  {\r\n    this.SavedSort.next(undefined); \r\n    this.searchRequest.searchRequestOrderBy = [];\r\n  }\r\n\r\n  getRowDef():UlTableRowDirective\r\n  {\r\n      return this.rowDef?.get(0) != undefined ? this.rowDef.get(0)! : this.defaultRow;\r\n  }\r\n\r\n  onRefreshClick(ev:any)\r\n  {\r\n    this.forceRefresh();\r\n  }\r\n\r\n  handleFilter(filterItems:IFilterItem[])\r\n  {\r\n    this.searchRequest.searchFilters = filterItems;\r\n    this.forceRefresh();\r\n  }\r\n\r\n  setFilter(filterItems:IFilterItem[])\r\n  {\r\n    if (this.savedSubscription != undefined)\r\n    {\r\n      this.savedSubscription.unsubscribe();\r\n      this.savedSubscription = undefined;\r\n    }\r\n    this.handleFilter(filterItems);\r\n    this.closeModal();\r\n  }\r\n\r\n  /**\r\n   * Used to configure columns for target table using either [ContentChildren] 'columnComponents' or [Input] 'columns'. \r\n   * @source\r\n   */\r\n  configureColumns()\r\n  {\r\n    this.searchRequest.pageSize = this.PageSize;\r\n    this.columnBuilder = this.columnComponents?.map((x: UIBasicTableColumnComponent) =>  x.GetColumnHandler() );\r\n    var setColumns = this.columns.getValue().length == 0 ? this.columnBuilder!: this.columns.getValue(); //Alternate column definition\r\n\r\n    var columnRowID = setColumns.filter(x => x.IsRowID && x.DataKey != '');\r\n    if (this.trackBy == undefined)\r\n    {\r\n      this.trackBy = columnRowID.length > 0 ? (row:any) => {\r\n        var colItem:UIColumnHandler = columnRowID[0];\r\n        return row == undefined ? undefined: row[colItem.DataKey];\r\n      }: (row) => row;\r\n    }\r\n    this.columns.next(setColumns.filter(x => !x.isHidden));\r\n\r\n    if (this.dataSource != null) {\r\n      this.DataDelegate = this.GetDelegateFromServiceParam();\r\n      }\r\n\r\n  }\r\n\r\n  private getDataSource()\r\n  {\r\n    return this.dataSourceView.getValue();\r\n  }\r\n\r\n  /**\r\n   * Used to determine if a column is sortable for header row.\r\n   * @source\r\n   * @param dataKey - DataKey for target column\r\n   * @returns If target column has sortable enabled.\r\n   */\r\n  isSortableByDataKey(dataKey:string):boolean\r\n  {\r\n    var col =  this.columnBuilder?.filter(x => x.DataKey == dataKey)!;\r\n    return (col != undefined && col?.length > 0 ? col[0].Sortable : false)!;  \r\n  }\r\n  /**\r\n   * Used to open nested row if the a nestedRow definition was provided.\r\n   * @source\r\n   * @param r - Target Row that was clicked.\r\n   */\r\n  ExpandRowClicked(r:T) {\r\n    if (this.nestedRow != null && this.nestedClickEnabled == undefined)\r\n    {\r\n      this.ToggleSelectedRow(r);\r\n    }\r\n    this.rowAction.emit(r);\r\n  }\r\n\r\n\r\n        /**\r\n   * Compare RowID or DataRow to determine if a row matched the selected row.\r\n   * @param rowTarget - Target Data Row to compare with selected row.\r\n   * @source\r\n   */\r\n  compareRowId(rowTarget:T) :boolean\r\n  {\r\n    var result = false;\r\n    if (this.trackBy != undefined)\r\n    {\r\n      var rowID = this.trackBy(rowTarget);\r\n      result =  rowID == this.SelectedExpandRowItem.getValue() && this.SelectedExpandRowItem.getValue() != undefined;\r\n    }else{\r\n\r\n      result =  rowTarget == this.SelectedExpandRow.getValue();\r\n    }\r\n    return result;\r\n     \r\n  }\r\n\r\n\r\n      /**\r\n   * Toggle selected/nested row based on raw data row.\r\n   * @param r - Data Row\r\n   * @source\r\n   */\r\n  ToggleSelectedRow(r:T|undefined )\r\n  {\r\n    var selectedByRowItem = this.SelectedExpandRow.getValue() == null || this.trackBy == null ? null:  this.trackBy!(this.SelectedExpandRow.getValue());\r\n    var isRowSelected = r == this.SelectedExpandRow.getValue();\r\n    var rowByRowItem = selectedByRowItem != null ? r : undefined;\r\n    var targetRow = isRowSelected ? rowByRowItem : r;\r\n    if (this.SelectedExpandRow.getValue() != targetRow)\r\n    {\r\n    this.SelectedExpandRow.next( isRowSelected ? rowByRowItem : r);\r\n    this.SelectedExpandRowItem.next(selectedByRowItem);\r\n    }\r\n    else{\r\n      this.SelectedExpandRow.next( undefined);\r\n      this.SelectedExpandRowItem.next(undefined);\r\n      this.expandRowIndex = undefined;\r\n    }\r\n  }\r\n\r\n\r\n    /**\r\n   * Close Nested Row if opened\r\n   * @source\r\n   */\r\n  CloseNestedRow():void\r\n  {\r\n    this.SelectedExpandRow.next(undefined);\r\n    this.SelectedExpandRowItem.next(undefined);\r\n  }\r\n  \r\n  /**\r\n   * Checks previous sortDirection and loops between the options each time its clicked. 'asc' | 'desc' | ''\r\n   * @source\r\n   * @returns - SortDirection to switch based on function logic.\r\n   */\r\n  private GetSortSwitcher():SortDirection\r\n  {\r\n\r\n    if (this.SavedSort.getValue()?.direction == 'asc'){ return 'desc'} else\r\n    if (this.SavedSort.getValue()?.direction == 'desc'){ return ''}else{\r\n\r\n      return 'asc';\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Constructs array for key/value relationship for pageOption selection.\r\n   * @source\r\n   * @returns Gets a list of page options from 'pageSizeOptions' in key/value format.\r\n   */\r\n  GetPageOptionsList(): ListItem<string>[]\r\n  {\r\n    return this.pageSizeOptions.map(x => new ListItem<string>(String(x), String(x)) );\r\n  }\r\n\r\n  /**\r\n   * Sets new Page size and refresh table.\r\n   * @source\r\n   * @param PageSelection - Value from basicInputField select change event.\r\n   */\r\n  UpdatePageSize(PageSelection:any)\r\n  {\r\n    \r\n    this.PageSize = Number( PageSelection.value);\r\n    this.searchRequest.pageSize = this.PageSize;\r\n    this.generatePageEvent(0);\r\n  }\r\n\r\n  pageChangeSelected(ev:any)\r\n  {\r\n    var selectElement:HTMLSelectElement = ev.target;\r\n    var newPage = Number(selectElement.value);\r\n    this.generatePageEvent(newPage);\r\n  }\r\n\r\n\r\n  /**\r\n   * Takes in EventEmitter from UIBasicFilter to reconfigure filters and refresh table with new filters.\r\n   * @source\r\n   * @param selectedFilters - Filters that have been set by UIBasicFilter\r\n   */\r\n  GetFilters(selectedFilters:any[]) {\r\n    this.SavedFilter = selectedFilters;\r\n    this.searchRequest.pageNumber = 0;\r\n    if (this.SavedSort.getValue() != undefined) {\r\n      this.sortDataTable(this.SavedSort.getValue()!);\r\n\r\n    } else {\r\n      this.handleFilter(this.SavedFilter.map(x => {  var item: IFilterItem = { id: x.Key,name : x.Key, type : \"text\" , value : x.Value, operationType: \"Include\" }; return item; }  ));\r\n    }\r\n    this.generatePageEvent(0);\r\n  }\r\n\r\n  /**\r\n   * \r\n   * Sets new savedSort then refresh table.\r\n   * @source\r\n   * @param dataKey - Target column   \r\n   */\r\n  SortClicked(dataKey:string)\r\n  {\r\n    var NewSort = {direction: this.SavedSort == undefined ? 'asc': this.GetSortSwitcher(),\r\n      active:dataKey\r\n     }\r\n      this.sortDataTable(NewSort);\r\n  }\r\n\r\n  \r\n  forceClearRows()\r\n  {\r\n    /* This was created because for some reason sometimes a table will create the rows with no view ref\r\n     * all before the renderRows is called to properly render the rows. So to make sure the outlet is clean before the\r\n     * rows are built, this function is called to remove the elements from DOM.\r\n     */\r\n    this.rowOutlet.viewContainerRef.clear();\r\n    var tbodyElem = (this.rowOutlet.elem.nativeElement.parentElement as HTMLTableSectionElement |undefined);\r\n    if (tbodyElem)\r\n    {\r\n      tbodyElem.childNodes.forEach(x => {\r\n        if (x.nodeName == \"TR\")\r\n        {\r\n          x.remove();\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit()\r\n  {\r\n    this.configureColumns();\r\n    this.forceClearRows();\r\n    this.DataDelegate(this.searchRequest);\r\n    this.isLoading = false;\r\n    this.isInitialized = true;\r\n    this.renderRows();\r\n    this.PageCount.subscribe(x => {\r\n      var tmpArray = Array.from([].constructor(x));\r\n      var newArray:number[] = tmpArray.map((m, i) => i).filter((n:number) => this.PgIndex - this.pageRange <= n && this.PgIndex + this.pageRange  >= n );\r\n      this.availablePages.next(newArray);\r\n    });\r\n    this.advancedFilter?.filter.subscribe(x => {\r\n      this.setFilter(x);\r\n    });\r\n    this.cd.detectChanges();\r\n\r\n    this.refreshSubscription =  this.refreshTrigger?.pipe(untilDestroyed(this))\r\n      .subscribe(x => {\r\n        this.refreshCache.next(x);\r\n        if (this.triggerHandle != undefined)\r\n        {\r\n        this.triggerHandle!(x, this.dataSourceView); //Used to update rows with new signal information.\r\n        }\r\n        this.refresh();\r\n      });\r\n  }\r\n\r\n\r\n  /**\r\n   * Pre-configures some handling for staging subscription, sorting and searchRequest.\r\n   * @source\r\n   * @param subFunction - Use as function to carry over the SearchRequest object and build data.\r\n   * @returns - Delegate with searchRequest\r\n   */\r\n  GetDelegate(subFunction: (req:SearchRequest)=> Promise<Subscription> ) : (sr:SearchRequest)=> void {\r\n    return (s:SearchRequest) => {\r\n      \r\n      if (this.SavedSort.getValue() != null) {\r\n        s.sortColumn = s.sortColumn ?? this.SavedSort.getValue()!.active;\r\n        s.sortDirection = s.sortDirection ?? this.SavedSort.getValue()!.direction;  \r\n      }\r\n      if (this.savedSubscription != undefined) {\r\n        this.savedSubscription.unsubscribe();\r\n        this.savedSubscription = undefined;\r\n      }\r\n      subFunction(s).then(x => {\r\n        this.savedSubscription = x;\r\n      });\r\n    };\r\n  }\r\n\r\n\r\n  forceRefresh()\r\n  {\r\n    this.rowOutlet.viewContainerRef.clear();\r\n    this.refresh();\r\n  }\r\n\r\n\r\n  /**\r\n   * Used to sort data when there is no searchRequest available for dataSource. Sorts using raw data no new GET request.\r\n   * @source\r\n   * @param sState - Target Sort Direction\r\n   */\r\n  localSort(sState: Sort) {\r\n\r\n    var h = this.getDataSource().sort((a:any, b:any) => {\r\n      if (typeof b[sState.active] == \"number\") {\r\n\r\n        return (a[sState.active]) - (b[sState.active]);\r\n      }\r\n      return b[sState.active].toString().localeCompare(a[sState.active].toString());\r\n    });\r\n    if (sState.direction == 'asc') {\r\n      this.build(h.reverse());\r\n\r\n    } else if (sState.direction == 'desc') {\r\n      this.build(h);\r\n    }else{\r\n      this.BuildData(this.getDataSource());\r\n    }\r\n\r\n  }\r\n\r\n  /**\r\n   * Uses page information and datasource count to determine the page index, count and range.\r\n   * @source\r\n   * \r\n   * @returns - Gets page index description.\r\n   */\r\n  GetPageCountDescription() :string\r\n  {\r\n    var CurrentViewIndex = (this.PgIndex * this.PageSize) + 1;\r\n    var MaxViewIndex = Math.min( (CurrentViewIndex - 1) + this.PageSize, this.ItemsCount);\r\n    var FullCount = this.ItemsCount;\r\n    return this.ItemsCount == 0 ? \"No Results Found\" : formatNumber(CurrentViewIndex, 'en-US') + '-' + formatNumber(MaxViewIndex, 'en-US') + ' of ' + formatNumber(FullCount, \"en-US\");\r\n  }\r\n\r\n  /**\r\n   * Sets target sort direction and performs GET using searchRequest and calling the observable to refresh table.\r\n   * @source\r\n   * @param sState - Sort Direction\r\n   */\r\n  sortDataTable(sState: Sort): void {\r\n    this.SavedSort.next(sState);\r\n    if (sState.active != \"\") {\r\n      this.searchRequest.searchRequestOrderBy = [];\r\n      var ordrBy = new SearchRequestOrderBy();\r\n      this.searchRequest.sortColumn = sState.direction == \"\" ? \"\" : sState.active;\r\n      this.searchRequest.sortDirection = sState.direction;\r\n      ordrBy.columnName = this.searchRequest.sortColumn;\r\n      ordrBy.isAscending = this.searchRequest.sortDirection == 'asc';\r\n      this.searchRequest.searchRequestOrderBy.push(ordrBy);\r\n      //this.DataDelegate(this.searchRequest);\r\n      //  this.localSort(sState);\r\n      this.handleFilter(this.SavedFilter.map(x => {  var item: IFilterItem = { id: x.Key,name : x.Key, type : \"text\" , value : x.Value }; return item; }  ));\r\n    } \r\n  }\r\n  /**\r\n   *  Refreshes table with current searchRequest.\r\n   * @source\r\n   */\r\n  refresh() {\r\n     \r\n     this.DataDelegate(this.searchRequest);   \r\n  }\r\n\r\n\r\n\r\n  /**\r\n   * Builds data after completion of observable and determines how to build the data based on return Object information.\r\n   * @source\r\n   * @param res - Result data table data (Any[]|Any)\r\n   * @param searchRequestUpdate - Search Request\r\n   */\r\n  BuildDelegate(res:any, searchRequestUpdate:SearchRequest) {\r\n    var resultKeys: string[] = Object.keys(res);\r\n    var IsearchRes = ['count', 'results'];\r\n    var foundKeys = resultKeys.map(x => IsearchRes.includes(x)).filter(x => x == true);\r\n    if (foundKeys.length == IsearchRes.length) {\r\n      //`res` is of SearchResponse Type\r\n      this.ItemsCount = res.count;\r\n      this.searchRequest = searchRequestUpdate;\r\n      var refresher:Observable<any> |undefined  = res.results?.First((f?:any) => f?.$refresh != undefined )?.$refresh;\r\n      this.refreshTrigger = refresher;\r\n      this.triggerHandle = res.results?.First((f?:any) => f?.$trigger != undefined )?.$trigger;\r\n      this.refreshSubscription = this.refreshSubscription ?? this.refreshTrigger?.pipe(untilDestroyed(this))\r\n      .subscribe(x => {\r\n        this.refreshCache.next(x);\r\n        if (this.triggerHandle != undefined  && this.dataSourceView.getValue().length > 0 )\r\n        {\r\n        this.triggerHandle!(x, this.dataSourceView); //Used to update rows with new signal information.\r\n        }\r\n        this.refresh();\r\n      });\r\n      this.BuildData(res.results);\r\n    } else {\r\n      //`res` is not of SearchResponse Type\r\n      this.ItemsCount = res.length;\r\n      this.searchRequest = searchRequestUpdate;\r\n      var refresher:Observable<any> |undefined  = res?.First((f?:any) => f?.$refresh != undefined )?.$refresh;\r\n      this.refreshTrigger = refresher;\r\n      this.triggerHandle = res?.First((f?:any) => f?.$trigger  != undefined )?.$trigger;\r\n      this.refreshSubscription = this.refreshSubscription ?? this.refreshTrigger?.pipe(untilDestroyed(this)) //This is meant to set the refresh trigger using the source observable\r\n      .subscribe(x => {\r\n        this.refreshCache.next(x);\r\n        if (this.triggerHandle != undefined && this.dataSourceView.getValue().length > 0 )\r\n        {\r\n        this.triggerHandle!(x, this.dataSourceView); //Used to update rows with new signal information.\r\n        }\r\n        this.refresh();\r\n      });\r\n      this.BuildData(res);\r\n    }        \r\n\r\n\r\n\r\n  }\r\n  /**\r\n   * This is meant to filter, sort and refresh the table.\r\n   * @source\r\n   * @param filterSelection - Array of filter selection\r\n   * @param dataList - dataSource to filter.\r\n   */\r\n  ProcessFilters(filterSelection: ListItem<string>[], dataList: T[]) {    \r\n    var output = filterSelection.length == 0 ? dataList : [];\r\n      filterSelection.forEach(y => {\r\n        var l = dataList.filter((x:any) => x[y.Key].toString().toUpperCase().includes(y.Value!.toUpperCase()));\r\n        l.forEach(h => {\r\n          if (!output.includes(h)) {\r\n            output.push(h);\r\n          }\r\n        });\r\n      });\r\n    if (this.SavedSort.getValue() != undefined && typeof (this.dataSource) == 'function')\r\n    {\r\n      var sortState = this.SavedSort.getValue();\r\n      output = output.sort((a:any, b:any) => {\r\n        if (typeof b[sortState!.active] == \"number\") {\r\n\r\n          return (+a[sortState!.active]) < (+b[sortState!.active])\r\n        }\r\n        return b[sortState!.active].toString().localeCompare(a[sortState!.active].toString());\r\n      });\r\n    }\r\n    this.build(output ?? []);\r\n    if (output.length != 0) {\r\n      if (typeof (this.dataSource) != 'function' && this.SavedSort.getValue() != undefined){\r\n        this.ItemsCount = output.length;\r\n        this.localSort(this.SavedSort.getValue()!);\r\n      }\r\n    }\r\n  }\r\n\r\n/**\r\n * Get observable datasource subscription for obtaining data to populate table.\r\n* @source\r\n * @returns - Gets delegate for subscribing to dataSource observable and receiving data.\r\n */\r\n  GetDelegateFromServiceParam(): (sr:SearchRequest) => void {\r\n    return this.GetDelegate(async (s) => {\r\n      if (typeof (this.dataSource) == 'function') {\r\n\r\n        return await this.dataSource(s).pipe(untilDestroyed(this)).subscribe((r:any) => this.BuildDelegate(r, s));\r\n      } else {\r\n        return await this.dataSource.pipe(untilDestroyed(this)).subscribe((r:any) => this.BuildDelegate(r, s));\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n\r\n\r\n  /**\r\n   * Gets Max page index\r\n   * @source\r\n   * @param n - Target page index\r\n   * @returns - Max page index\r\n   */\r\n  getMaxPage(n:number) :number {\r\n    return Math.min(n, this.PageCount.getValue() - 1);\r\n  }\r\n  /**\r\n   * Gets Min page index\r\n   * @source\r\n   * @param n - Target page index\r\n   * @returns - Min page index\r\n   */\r\n  getMinPage(n:number):number{\r\n    return Math.max(n, 0);\r\n  }\r\n\r\n  \r\n\r\n  scrollToTable():void\r\n  {\r\n    if (this.autoScroll != undefined)\r\n    {\r\n      this.currentTable?.nativeElement.scrollIntoView({behavior:'smooth'});\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Selects new page and refresh table.\r\n   * @source\r\n   * @param PageNumber - Target Page Number\r\n   */\r\n  generatePageEvent(PageNumber:number):void\r\n  {\r\n    this.scrollToTable();\r\n    var pgEvent = { pageIndex:PageNumber,  pageSize:this.PageSize, length:  this.getDataSource().length};\r\n    this.refreshPage(pgEvent);\r\n\r\n  }\r\n\r\n  /**\r\n   * Sets page information based on page event and refresh page.\r\n   * @source\r\n   * @param e - Target Page Event\r\n   */\r\n\r\n  refreshPage(e: PageEvent): void {\r\n    this.searchRequest.pageNumber = e.pageIndex;\r\n    this.isLoading = true;    \r\n    this.searchRequest.pageSize = e.pageSize;\r\n    this.searchRequest.pageNumber = e.pageIndex;\r\n    //this.searchRequest.pageSize = this.DefaultPageSize <= (e.pageIndex * e.pageSize) ? 0 : this.DefaultPageSize;\r\n    this.PageSize = e.pageSize;\r\n    this.PgIndex = e.pageIndex;     \r\n    this.refresh();\r\n  }\r\n\r\n\r\n  /**\r\n   * Builds table with raw data passed in 'inData'.\r\n   * @source\r\n   * @param inData - Raw datasource data\r\n   */\r\n  BuildData(inData:T[] = []) {\r\n    this.ProcessFilters(this.SavedFilter ?? [], inData);\r\n  }\r\n\r\n    /**\r\n   * Compare 1 dataRow with another.\r\n   * @source\r\n   * @param dataItem - DataRow \r\n   * @param _dataItem - Comparable DataRow \r\n   */\r\n  compareTrackBy(dataItem:T, _dataItem?:T) :Boolean\r\n  {\r\n    \r\n    return this.trackBy!(dataItem) == this.trackBy!(_dataItem);\r\n  }\r\n\r\n      /**\r\n   * Insert Row in RowOutlet Container.\r\n   * @source\r\n   * @param row - Cached Table Render row (Contains views)\r\n   * @param targetIndex - Index to insert view\r\n   */\r\n  insertRowInContainer(row:TableRenderCache<T>, targetIndex?:number):ViewRef[]\r\n  {\r\n    var arr:ViewRef[] = [];\r\n    arr.push(this.rowOutlet.viewContainerRef.insert(row.dataRow!, targetIndex));\r\n    if (row.nestedRow != undefined)\r\n    {\r\n      arr.push(this.rowOutlet.viewContainerRef.insert(row.nestedRow!,targetIndex == undefined? undefined:  targetIndex + 1 ));\r\n    }\r\n    return arr.reverse();\r\n  }\r\n\r\n  /**\r\n   * Get an array of the ViewRefs inside of the rowOutlet viewContainerRef\r\n   * @source\r\n   */\r\n  getViewRefs(): ViewRef[]\r\n  {\r\n    var views: ViewRef[] = [];\r\n    for (let i= 0; i < this.rowOutlet.viewContainerRef.length; i++)\r\n    {\r\n      var item = this.rowOutlet.viewContainerRef.get(i);\r\n      if (item != undefined)\r\n      {\r\n        views.push(this.rowOutlet.viewContainerRef.get(i)!);\r\n      }\r\n    }\r\n    return views;\r\n  }\r\n\r\n      /**\r\n   * Delete row viewRefs from the viewContainer\r\n   * @source\r\n   * @param views - Array of views to Delete from rowOutlet ViewContainer\r\n   */\r\n  deleteByViews(views:ViewRef[])\r\n  {\r\n    views?.forEach(x => {\r\n      var index = this.rowOutlet.viewContainerRef.indexOf(x);\r\n      if (index != -1)\r\n      {\r\n      this.rowOutlet.viewContainerRef.detach(index); \r\n      if (this.rowOutlet.viewContainerRef.length > 0)\r\n      {\r\n      this.rowOutlet.viewContainerRef.remove(index); \r\n      }\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n      /**\r\n   * Delete row from container based on TableRenderCache\r\n   * @source\r\n   * @param row - Table Row Render Cache\r\n   */\r\n  deleteRowInContainer(row:TableRenderCache<T>)\r\n  {\r\n    var viewsToDelete:ViewRef[] = this.getViewRefs().filter(x =>  (x as EmbeddedViewRef<TableCacheContext<T>>).context.$index == row.context.$index  );\r\n    this.deleteByViews(viewsToDelete);\r\n  }\r\n\r\n      /**\r\n   * Apply Expanded row action to reveal or close a selected row\r\n   * @source\r\n   * @param targetDataRow - Row data that corresponds with the target viewRef seleceted\r\n   */\r\n  private applyExpandRow(targetDataRow: T | undefined)\r\n  {\r\n    var viewRefs = this.getViewRefs().map(view => view as EmbeddedViewRef<TableCacheContext<T>>);\r\n    viewRefs.forEach(view => {\r\n      Object.assign(view.context, {selectedExpandRow: undefined, rowSelected: false   } );\r\n    })\r\n    var targetViews = viewRefs?.filter(view => this.compareTrackBy( view.context.$implicit, targetDataRow)  );\r\n    if (targetDataRow != undefined)\r\n    {\r\n    this.expandRow(targetDataRow, targetViews);\r\n    }\r\n  }\r\n        /**\r\n   * Update Cell Values and refreshes the rows with new values that correspond to correct View Row\r\n   * @source\r\n   * @param rows - Dataset from the DatasourceView to use to apply new Data\r\n   */\r\n  private updateValues(rows:TableRenderCache<T>[])\r\n  {\r\n    var views = this.getViewRefs() \r\n    .map(view => view as EmbeddedViewRef<TableCacheContext<T>>);  //Get all rendered views\r\n    views\r\n    .forEach(view => {\r\n      var isUpdatable = rows.filter(row => {\r\n        //Find matching updated rows *Also this is where setting a TrackBy rowIdentity is important\r\n        var sameDataRow = this.compareTrackBy(view.context.$implicit,row.context.$implicit);            \r\n        return sameDataRow;\r\n      }); \r\n      isUpdatable.forEach(newRow => {\r\n        view.detectChanges();\r\n        this.getRowDef().UpdateCellsForRow(view,newRow.context, this.defaultTemplate); //Re-render cells for rendered row\r\n        Object.assign(view.context,{$implicit: newRow.context.$implicit, $index: newRow.context.$index, rowSelected: newRow.context.rowSelected } ); //Assign new context for viewRef of Rendered Row\r\n      });      \r\n    });\r\n  }\r\n\r\n          /**\r\n   * This will trigger a target row to expand its nested row\r\n   * @source\r\n   * @param expandRowData - Target row from DataSourceView\r\n   * @param views - Uses a source of ViewRefs to perform action\r\n   */\r\n  private expandRow(expandRowData:T, views:Array<EmbeddedViewRef<TableCacheContext<T>>|undefined>)\r\n  {\r\n    views\r\n    .filter(x => x != undefined)\r\n    .forEach(x => {\r\n      Object.assign( x!.context, {selectedExpandRow: expandRowData, rowSelected: true   } );\r\n    });\r\n  }\r\n\r\n            /**\r\n   * This function takes in a array of columns based on your column definitions to re-organize the columns or hide/show some columns.\r\n   * @source\r\n   * @param columnNames - Array of dataKey/display in the order that you desire for your table\r\n   */\r\n  public reshuffleColumns(columnNames?:string[])\r\n  {\r\n    var newColumnSet: UIColumnHandler[] = [];\r\n    var originalColumns = this.columnComponents?.map((x: UIBasicTableColumnComponent) =>  x.GetColumnHandler() ) ?? [];\r\n    columnNames?.forEach(x => {\r\n      var foundColumn = originalColumns?.find(col => col.DataKey == x || col.Display == x );\r\n      if (foundColumn != undefined && !newColumnSet.includes(foundColumn))\r\n      {\r\n        newColumnSet.push(foundColumn);\r\n      }\r\n    });\r\n    this.columns.next(newColumnSet.length == 0 ? originalColumns: newColumnSet);\r\n    this.forceRefresh();\r\n  }\r\n\r\n\r\nprivate performMoves(rows:TableRenderCache<T>[])\r\n{\r\n\r\n  var views = this.getViewRefs().map(x => x as EmbeddedViewRef<TableCacheContext<T>>); //Get all rendered rows from container\r\n  var i = 0; \r\n  //In order of the raw row data find a view that matches the data row and move the matching render row to its correct position\r\n  //from top to bottom (Index: 0). During update the selected nestedRow is maintained along with any data that a user inputs (Maintains seemless updating)\r\n  rows.forEach((x) => {\r\n    var foundViews = views.filter(view => this.compareTrackBy(x.context.$implicit, view.context.$implicit)); // Find view that matches data\r\n    foundViews.forEach(view => {\r\n      if (this.rowOutlet.viewContainerRef.get(i) != view)\r\n      {\r\n        //If the view has been found then move it to position index\r\n      this.rowOutlet.viewContainerRef.move(view, i);\r\n      }\r\n      i++;\r\n    });\r\n  });\r\n\r\n  if (this.getViewRefs().map(x => x as EmbeddedViewRef<TableCacheContext<T>>).map(x => this.trackBy!( x.context.$implicit)) == rows.map(x => this.trackBy!(x.context.$implicit)) )\r\n  {\r\n    console.debug('All rows are positioned properly');\r\n  }\r\n}\r\n  \r\n\r\n  /**\r\n   * Applies Delete/Insert/Merge actions to the rendered rows to ultimately output a view that matches the DatasourceView exactly.\r\n   * @source\r\n   * @param rows - Dataset from the DatasourceView to use to apply new Data\r\n   */\r\n  private renderUpdate(rows:TableRenderCache<T>[])\r\n  {\r\n    var renderCacheValue = this._renderCache.getValue();\r\n      //Move - Sequence the moves in order with all of the new source rows\r\n      //Insert - Index did not exist in the cache (renderCacheValue) but showed up in the 'x'\r\n      //Delete - Index existed in cache (renderCacheValue) but not in newValues 'x'\r\n      //Delete/Insert/Move\r\n      var updateInstructions = rows.map(row =>  {\r\n        var cacheEquivalent = renderCacheValue.find(cache => this.compareTrackBy(cache.context.$implicit,row.context.$implicit ));\r\n        var previousIndex = cacheEquivalent?.context.$index;\r\n        var newIndex = row.context.$index;\r\n        return {\r\n          BuildItems: row,\r\n          CurrentIndex: newIndex,\r\n          PreviousIndex: previousIndex\r\n        };\r\n      });\r\n\r\n      var newRows = updateInstructions\r\n      .filter(row => row.PreviousIndex == undefined);\r\n\r\n      var deleteFromCache = renderCacheValue\r\n      .filter(cache =>  !rows.find(row => this.compareTrackBy(row.context.$implicit, cache.context.$implicit) ));     \r\n\r\n      deleteFromCache\r\n      .forEach(row => this.deleteRowInContainer(row)); //Delete Rows\r\n\r\n      newRows\r\n      .forEach(row =>  this.insertRowInContainer(row.BuildItems)); //Added Rows\r\n\r\n      this.performMoves(rows); //Move Rows      \r\n      \r\n      this.updateValues(rows); //Update Cell Values\r\n  }\r\n\r\n  /**\r\n   * Subscribes to DatasourceView observable and ExpandRow handle. Initializes rendering for all table rows.\r\n   * @source\r\n   */\r\n  renderRows()\r\n  {\r\n    //Create an observable of the rendered rows/context/index\r\n    var $rows:Observable<TableRenderCache<T>[]> = this.dataSourceView \r\n    .pipe(untilDestroyed(this))\r\n    .pipe(map(x => {\r\n      var rows = x.map((r, i) => {\r\n        var context: TableCacheContext<T> = {$implicit: r, $index:i, selectedExpandRow: this.SelectedExpandRow.getValue(), rowSelected: this.compareRowId(r), nestedComponent: this.nestedRow, columns: this.columns.getValue(), rowTriggered: false, isDataRow:true  };\r\n        var dataRowRef = this.getRowDef().RenderRow(context, this.defaultTemplate, () =>  this.ExpandRowClicked(r));\r\n        var nestedRowRef = this.getRowDef().RenderNested(context,this.nestedContainer );\r\n        return {dataRow: dataRowRef, nestedRow: nestedRowRef, context:context, index: i};\r\n      }).filter(r => r.dataRow != undefined);\r\n      return rows;\r\n    }));\r\n\r\n    //Subscribe to the row-rendering observable and build the the rows into the \r\n    //dataRow outlet\r\n    $rows.subscribe(x => {\r\n      if (this.rowOutlet.viewContainerRef.length == 0)\r\n      {\r\n        this.rowOutlet.viewContainerRef.clear();\r\n        //No data so insert all\r\n      x.forEach(row => {\r\n        this.insertRowInContainer(row);\r\n        if (this.expandRowIndex != undefined && row.context.$index == this.expandRowIndex)\r\n          {\r\n            this.expandRow(row.context.$implicit, [row.dataRow, row.nestedRow]);\r\n          }\r\n      });\r\n\r\n      }else{\r\n        this.renderUpdate(x);\r\n      }\r\n      this._renderCache.next(x);\r\n\r\n    });\r\n\r\n    //When a user clicks to select a nested row data then it will attempt to update the selectedRow logic\r\n    this.SelectedExpandRow\r\n    .pipe(untilDestroyed(this))\r\n    .subscribe(x => {\r\n       this.applyExpandRow(x);\r\n        this.renderUpdate(this._renderCache.getValue());\r\n      });     \r\n  }\r\n\r\n\r\n  /**\r\n   * Builds table on refresh and on init.\r\n   * @source\r\n   * @param inSource - Raw datasource data\r\n   */\r\n  private build(inSource: T[] = []): void {\r\n      var StartIndex = 0 + (this.PageSize * this.PgIndex);\r\n      if (this.disablePaging == undefined)\r\n      {\r\n        if(typeof (this.dataSource) != 'function')\r\n        {\r\n          this.dataSourceView.next( inSource?.slice(StartIndex, StartIndex + this.PageSize));\r\n          this.ItemsCount = inSource.length;\r\n        }else{\r\n          this.dataSourceView.next( inSource?.slice(0, this.PageSize));\r\n        }\r\n      }else {\r\n        this.ItemsCount = inSource.length;\r\n        this.dataSourceView.next( inSource);\r\n      }\r\n      this.PageCount.next(Math.ceil(this.ItemsCount / this.PageSize));\r\n      this.isLoading = false;\r\n        if (this.fltr != undefined)\r\n        {\r\n          this.fltr!.build(inSource, this.columns.getValue().filter(x => x.IsFilter == true && !x.isHidden));     \r\n        }\r\n\r\n  }\r\n}\r\n\r\n\r\n","<div [ngClass]=\"{'hidden': !isLoading}\">\r\n    <progress class=\"progress w-full \"></progress>\r\n</div>\r\n<div class=\"pb-1 mb-3 flex\" [ngClass]=\"filterContainer\">\r\n    @if (hideRefresh == undefined)\r\n    {\r\n    <button class=\"btn btn-accent btn-sm btn-soft ml-2 mt-1\" (click)=\"onRefreshClick($event)\" > <i class=\"fa-solid fa-rotate-right\"></i></button>\r\n    }\r\n    @if(advancedFilter == undefined)\r\n    {\r\n    <ul-basic-filter (SelectedFilters)=\"GetFilters($event)\" [enabled]=\"showFilter\" [inactive]=\"isInitialized && ItemsCount === 0\"></ul-basic-filter>\r\n    }\r\n    @if(advancedFilter != undefined)\r\n    {\r\n        <div class=\"indicator\">\r\n            <span class=\"indicator-item badge badge-sm !badge-soft badge-accent\" [ngClass]=\"{'hidden': (advancedFilter?.selectedFilters | async)?.length == 0}\">\r\n                {{((advancedFilter?.selectedFilters | async)?.length ?? 0) > 10 ? '10+' : ((advancedFilter?.selectedFilters | async)?.length ?? 0) }}\r\n            </span>\r\n        <ul-modal #Modal iconClass=\"fa fa-filter\" [inactive]=\"isInitialized && ItemsCount === 0 && ((advancedFilter?.selectedFilters | async)?.length ?? 0) === 0\" buttonClass=\"btn-accent btn-sm ml-2 mt-1\">\r\n            <div class=\"modalSizeReactive\" >\r\n                <ng-content select=\"[search]\" ></ng-content>\r\n            </div>\r\n            </ul-modal>\r\n        </div>\r\n    }\r\n</div>\r\n<!---->\r\n\r\n<div class=\"border-2 border-base-200 border-solid rounded-md overflow-x-clip\" [ngClass]=\"{'hidden': !isInitialized,'motion-preset-slide-up motion-delay-300':isInitialized}\">\r\n    <div class=\"w-full h-full\" [ngClass]=\"containerClass\">\r\n    <table #currentTable [class]=\"'table ' + class\" [ngClass]=\"{'opacity-0': !isInitialized }\" [class.table-sticky]=\"disablePaging != undefined\" [class.tableSizeReactive]=\"isReactive == ''\"   >\r\n        <thead class=\"shadow-inner\">\r\n            <tr [class]=\"headerClass\">\r\n                @for (item of (columns| async ); track $index) {\r\n                    @if (headerDef == undefined)\r\n                    {\r\n                    <th>\r\n                        <div class=\"flex container group hover:text-slate-400 \">\r\n                            @if (item.Sortable)\r\n                            {\r\n                            <button (click)=\"SortClicked(item.DataKey)\">\r\n                             @for (sort of [(SavedSort|async)]; track sort?.active)\r\n                             {\r\n                                <span class=\"px-1\">{{item.Display}}</span>\r\n                                <i #Up class=\"fa fa-long-arrow-up\" \r\n                                    style=\"padding-right: 1px;\" \r\n                                    [ngClass]=\"{\r\n                                    'invisible': !item.Sortable || (sort?.active != item.DataKey) || (sort?.direction ?? '') == 'desc' || (sort?.direction ?? '') == '',\r\n                                    'group-hover:visible': item.Sortable && ( (sort?.direction ?? '') == '' || (sort?.direction == 'desc' && item.DataKey == sort?.active))\r\n                                     }\"                           \r\n                                    aria-hidden=\"true\"></i>\r\n                                <i #Down class=\"fa fa-long-arrow-down\" \r\n                                [ngClass]=\"{\r\n                                    'invisible':!item.Sortable || (sort?.active != item.DataKey ) || sort?.direction == 'asc'  || (sort?.direction ?? '') == '',\r\n                                    'group-hover:visible': item.Sortable && (sort?.direction == 'asc' && item.DataKey == sort?.active)\r\n                                }\"\r\n                                aria-hidden=\"true\"></i>\r\n                             }  \r\n                            </button>\r\n                            }\r\n                            @else {\r\n                            <span class=\"px-1\">{{item.Display}}</span>\r\n                            }\r\n                        </div>\r\n                    </th>\r\n            \r\n                    }\r\n                    @else{\r\n                    <ng-container\r\n                        *ngTemplateOutlet=\"headerDef.template; context:{$implicit: item,Sort: SavedSort |async }\"></ng-container>\r\n                    }\r\n                }\r\n            </tr>\r\n        </thead>\r\n        <tbody>\r\n            <ng-template #nestedRow let-row=\"$implicit\" \r\n            let-selectedExpandRow=\"selectedExpandRow\" \r\n            let-rowSelected=\"rowSelected\" \r\n            let-columns=\"columns\" \r\n            let-nestedComponent=\"nestedComponent\">\r\n                <tr [class]=\"'w-full ' + nestedComponent?.rowClass\" [ngClass]=\"{'hidden max-h-0': !rowSelected, 'motion-preset-focus motion-delay-200 motion-duration-2000': rowSelected}\" aria-label=\"nested\" >\r\n                    <td [colSpan]=\"columns.length\">\r\n                        @if (nestedComponent != null && rowSelected)\r\n                        {\r\n                        <div class=\"w-full\" [ngClass]=\"nestedComponent.class\">\r\n\r\n                            <ng-container *ngTemplateOutlet=\"nestedComponent!.rowTemplate!; context: {$implicit: row, rowId: selectedExpandRow   }\">\r\n    \r\n                            </ng-container> \r\n                        </div>\r\n                        }\r\n                    </td>\r\n                </tr>\r\n            </ng-template>\r\n\r\n            <ng-container rowView >\r\n\r\n\r\n            </ng-container>            \r\n        </tbody>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    </table>\r\n    </div>\r\n    @if(isInitialized && ItemsCount != 0 && disablePaging == undefined)\r\n    {\r\n    <div class=\"flex flex-row gap-2 items-center justify-end border-t-2 border-base-200 border-solid bg-base-300 h-12 md:h-fit\" [ngClass]=\"footerClass\">\r\n\r\n        <div class=\"align-middle motion-preset-slide-left motion-delay-400\">\r\n\r\n            <ul-input label=\"Size\" contentType=\"select\" [defaultValue]=\"PageSize\" formClass=\"overflow-x-clip\"\r\n                [datasource]=\"GetPageOptionsList()\" class=\"min-w-fit select-xs sm:select-sm\"\r\n                style=\"padding-left: 0px; padding-right: 0px;\" (Change)=\"UpdatePageSize($event)\"\r\n                labelClass=\"min-w-fit\"></ul-input>\r\n        </div>\r\n\r\n\r\n        <div class=\"align-middle\">\r\n \r\n            <span class=\"badge badge-ghost motion-preset-slide-left motion-delay-300 w-max\">{{GetPageCountDescription()}}</span>\r\n    \r\n        </div>\r\n        <div class=\"join mt-2 mb-2 flex mr-2 drop-shadow-lg\">\r\n            <button class=\"join-item btn btn-sm md:btn\" (click)=\"generatePageEvent(0)\" >«</button>\r\n            <button class=\"join-item btn btn-sm md:btn\" (click)=\"generatePageEvent( getMinPage( PgIndex - 1 ))\" >← </button>\r\n            <div class=\"join-item\"> \r\n                <select class=\"select select-ghost\" (change)=\"pageChangeSelected($event)\"> \r\n                    @for(pageItem of  (availablePages | async) ; track $index )\r\n                    {\r\n                    <option [value]=\"pageItem\" [selected]=\"PgIndex == pageItem\" >Page {{ pageItem + 1 }}</option>\r\n                    }\r\n                </select> \r\n            </div>\r\n            <button class=\"join-item btn btn-sm md:btn\" (click)=\"generatePageEvent( getMaxPage( PgIndex + 1))\">→</button>\r\n            <button class=\"join-item btn btn-sm md:btn\" (click)=\"generatePageEvent(getMaxPage( PageCount.getValue()))\">»</button>\r\n        </div>\r\n    </div>\r\n    }\r\n    @if(isInitialized && ItemsCount === 0)\r\n    {\r\n        <ng-content select=\"[empty]\"></ng-content>\r\n    }\r\n</div>\r\n\r\n<ng-template #noData let-row let-cell=\"cell\">\r\n    <span>{{row[cell.DataKey]}}</span>\r\n</ng-template>\r\n<tr *ul-row=\"let row;let $index='$index';\"\r\n[class.bg-base-200]=\"$index%2 == 1\">\r\n\r\n\r\n</tr>","import { Component, Input, input } from '@angular/core';\r\nimport { UIButton } from '../../Models/TableModels';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n@Component({\r\n  selector: 'ul-card',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uicard-view.component.html',\r\n  styleUrl:'../../Styles/index.css'\r\n})\r\nexport class UICardViewComponent {\r\n\r\n\r\n@Input() public header:string = \"\";\r\n@Input() public content:string = \"\";\r\n@Input() public cardClass:string = \"\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","<div class=\"card motion-preset-expand motion-delay-300\" [class.bg-base-100]=\"cardClass == ''\"  [ngClass]=\"cardClass\">\r\n    <div class=\"card-body overflow-x-auto\">\r\n        @if(header != \"\")\r\n        {\r\n        <h2 class=\"card-title\">{{header}}</h2>\r\n        }\r\n        @if(content != \"\")\r\n        {\r\n        <p>{{content}}</p>\r\n        }\r\n        <ng-content ></ng-content>\r\n        <div class=\"card-actions justify-end flex flex-row\">\r\n            <ng-content select=\"[actions]\"></ng-content>\r\n        </div>\r\n    </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, HostBinding, Input, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges, Type, ViewChildren, ViewEncapsulation, ChangeDetectorRef, ViewChild, ViewContainerRef, forwardRef } from '@angular/core';\r\nimport { UIAlertComponent } from '../uialert/uialert.component';\r\nimport { UIButton } from '../../Models/TableModels';\r\nimport { Observable, of } from 'rxjs';\r\nimport {CommonService} from '../../Services/CommonService'\r\nimport { ULAlertsModule } from '../../../public-api';\r\n\r\n@Component({\r\n  selector: 'ul-alerts',\r\n  standalone: true,\r\n  imports: [CommonModule, forwardRef(() =>  UIAlertComponent)], \r\n  templateUrl: './uialerts.component.html',\r\n  styleUrl:'../../Styles/index.css'\r\n})\r\nexport class UIAlertsComponent implements OnDestroy, AfterViewInit, OnChanges {\r\n\r\n  @Input() public allAlerts: any[] = UIAlertsComponent.SavedAlerts;\r\n  public ComponentType:Type<any> = UIAlertComponent;\r\n  public static SavedAlerts:any[] = [];\r\n  @HostBinding('style.z-index') zindex: string = \"50\";\r\n  @HostBinding('style.position') positionStyle: string = \"fixed\";\r\n  public static initialized:boolean = false;\r\n\r\n  constructor(private cdr:ChangeDetectorRef)\r\n  {\r\n    cdr.markForCheck();\r\n\r\n  }\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    \r\n  }\r\n  ngAfterViewInit(): void {\r\n    UIAlertsComponent.initialized = true;\r\n    this.cdr.detectChanges();\r\n  }\r\n  ngOnDestroy(): void {\r\n    UIAlertsComponent.initialized = false;\r\n  }\r\n\r\n\r\n\r\n  public static CreateAlert(headerString:string,textString:string, classString:string, timeSecs:number = 7, showAlertBool:boolean=true, buttonList:UIButton[] = [] ):any\r\n  {\r\n    return {\r\n      header: headerString,\r\n      text: textString,\r\n      class:classString,\r\n      showAlert:showAlertBool,\r\n      buttons: buttonList,\r\n      showAlertClass: 'fadeIn',\r\n      timeSeconds: timeSecs,\r\n      index: UIAlertsComponent.SavedAlerts.length\r\n    };\r\n  }\r\n\r\n\r\n\r\npublic static UpdateAlerts()\r\n{\r\n  UIAlertsComponent.SavedAlerts =  UIAlertsComponent.SavedAlerts.map(x => {\r\n    x.index = UIAlertsComponent.SavedAlerts.indexOf(x);\r\n    return x;\r\n  });\r\n}\r\n\r\n  public static AddAlert(headerString:string,textString:string, classString:string, timeSecs:number = 7, showAlertBool:boolean=true,buttonList:UIButton[] = [] )\r\n  {\r\n    var newAlert = UIAlertsComponent.CreateAlert(headerString, textString, classString,timeSecs, showAlertBool,buttonList);    \r\n    UIAlertsComponent.SavedAlerts.push(newAlert);\r\n    \r\n  }\r\n\r\n  public static RemoveAlert(alertObject:any)\r\n  {\r\n    UIAlertsComponent.SavedAlerts = UIAlertsComponent.SavedAlerts.filter(x => x != alertObject);    \r\n  }\r\n  public static ClearAlerts()\r\n  {\r\n    this.SavedAlerts = [];\r\n  }\r\n\r\n\r\n}\r\n\r\nexport class UIAlerts\r\n{\r\n\r\n  static AddInfo(title:string, body:string, seconds:number = 10, btns:UIButton[] = [], classString:string = '')\r\n  {\r\n    UIAlertsComponent.AddAlert(title, body, \"alert-info \" + classString, seconds, true, btns );\r\n  }\r\n  \r\n  static AddError(title:string, body:string, seconds:number = 10, btns:UIButton[] = [], classString:string = '')\r\n  {\r\n    UIAlertsComponent.AddAlert(title, body, \"alert-error \" + classString, seconds, true, btns );\r\n  }\r\n\r\n  static AddWarning(title:string, body:string, seconds:number = 10, btns:UIButton[] = [], classString:string = '')\r\n  {\r\n    UIAlertsComponent.AddAlert(title, body, \"alert-warning \" + classString, seconds, true, btns );\r\n  }\r\n\r\n  static AddSuccess(title:string, body:string, seconds:number = 10, btns:UIButton[] = [], classString:string = '')\r\n  {\r\n    UIAlertsComponent.AddAlert(title, body, \"alert-success \" + classString, seconds, true, btns );\r\n  }\r\n  \r\n\r\n}","\r\n\r\n<div class=\"fixed bottom-1 left-0 w-full grid grid-cols-1 h-fit px-3\" style=\"position: fixed; bottom: 5px; left: 0px; height: fit-content;\">    \r\n    @for(alert of allAlerts; track $index)\r\n    {\r\n        <ng-container #alertContainer *ngComponentOutlet=\"ComponentType; inputs: alert\">\r\n\r\n        </ng-container>\r\n    }\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { UIButton } from '../../Models/TableModels';\r\nimport { CommonService } from '../../Services/CommonService';\r\nimport { UIAlertsComponent } from '../uialerts/uialerts.component';\r\n\r\n\r\n@Component({\r\n  selector: 'ul-alert',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uialert.component.html',\r\n  styleUrl:'../../Styles/index.css'\r\n})\r\nexport class UIAlertComponent implements AfterViewInit, OnInit {\r\n  @Input() public header:string = '';\r\n  @Input() public text:string = '';\r\n  @Input() public class:string = '';\r\n  @Input() public showAlert:Boolean =false;\r\n  @Input() public showAlertClass:string = 'fadeIn';\r\n  @Input() public buttons:UIButton[] = [];\r\n  @Input() public index:number = -1;\r\n  @ViewChild('myAlert') public myAlert?:any;\r\n  @Input() public timeSeconds:number = 7;\r\n\r\n  constructor(private cdr:ChangeDetectorRef)\r\n  {\r\n\r\n    \r\n\r\n  }\r\n  ngOnInit(): void {\r\n    this.cdr.markForCheck();\r\n    \r\n  }\r\n  ngAfterViewInit(): void {\r\n    this.cdr.detectChanges();\r\n    setTimeout(() => {\r\n      this.showAlertClass = this.showAlertClass == 'fadeIn'? 'fadeOut' : ''; \r\n      this.RemoveAlert();\r\n    }, this.timeSeconds * 1000);\r\n  }\r\n\r\n  RemoveAlert()\r\n  {\r\n    setTimeout(() => {\r\n      var elem:HTMLElement =  this.myAlert.nativeElement.parentElement;\r\n      elem.parentElement?.removeChild(elem);\r\n      var thisAlert = UIAlertsComponent.SavedAlerts.filter(x => x.index == this.index);\r\n      CommonService.sleep(UIAlertsComponent.RemoveAlert, 2000, thisAlert);\r\n    },this.timeSeconds * 1000 );    \r\n  }\r\n\r\n  LoadEvent(x:any)\r\n  {\r\n    console.log('test');\r\n    console.log(this.myAlert);\r\n  }\r\n\r\n\r\n}\r\n","\r\n<div #myAlert role=\"alert\" [class]=\"'alert w-full mb-1 mx-2 ' + (showAlert ? showAlertClass: '')\" [ngClass]=\"class\"  >\r\n    <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\r\n    <div>\r\n    <h3>{{header}}</h3>\r\n    <span>{{text}}</span>\r\n    </div>\r\n    <div>\r\n        @for(button of buttons;track $index)\r\n        {\r\n            <button (click)=\"button.Click($event)\" [class]=\"button.Class\"> {{button.Value}}</button>\r\n        }\r\n    </div>\r\n  </div>","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Input, input, Output, ViewChild } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'ul-accordion',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uiaccordion.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIAccordionComponent implements AfterViewInit {\r\n\r\n  @Input() public label:string = \"\";\r\n  @Input() public isOpened:boolean =false;\r\n  @Input() public name:string = \"accordion_0\"; \r\n  @Input() public type:string | \"radio\" | \"checkbox\" = \"radio\"; \r\n  @Input() public containerClass:string = \"\" ;  \r\n  @Input() public accordionClass:string = \"\" ;  \r\n  @Input() public labelClass:string = \"\"; //peer-checked:bg-secondary\r\n  @Input() public contentClass?:string;// peer-checked:bg-secondary\r\n  @Output() selected = new EventEmitter<boolean>();\r\n  @ViewChild('inputElem') public inputElement?: ElementRef<HTMLInputElement>;\r\n  public checked: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n\r\n  constructor()\r\n  {\r\n  }\r\n  ngAfterViewInit(): void {\r\n    this.checked.next(this.isOpened);\r\n  }\r\n  \r\n\r\n\r\n  setOnSelected(x:any)\r\n  {\r\n    var isChecked:boolean = x.target.checked;\r\n    this.checked.next(isChecked);\r\n    this.selected.emit(isChecked);\r\n  }\r\n\r\n\r\n}\r\n","<div class=\"collapse collapse-arrow\" [ngClass]=\"accordionClass\">\r\n    <input #inputElem class=\"peer\" [type]=\"type\" [name]=\"name\" (change)=\"setOnSelected($event)\" [checked]=\"isOpened\" />\r\n    <div class=\"collapse-title text-xl font-medium\" [ngClass]=\"labelClass\">{{label}}</div>\r\n    <div class=\"collapse-content\" [ngClass]=\"contentClass\" >\r\n      <div [class]=\"containerClass\">\r\n      <ng-content></ng-content> \r\n    </div>\r\n    </div>\r\n  </div>","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ul-divider',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uidivider.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIDividerComponent implements OnInit {\r\n\r\n\r\n  @Input() isHorizontal: boolean = true;\r\n  @Input() color:string = '';\r\n  @Input() position?:string| undefined| 'divider-start' | 'divider-end' ;\r\n  @Input() class:string = '';\r\n  @Input() divideText?:string ;\r\n\r\nngOnInit(): void {\r\n  \r\n}\r\n\r\n\r\n}\r\n","<div class=\"flex w-full\" [ngClass]=\"[class, (isHorizontal ? '': 'flex-col')]\">\r\n    <ng-content select=\"[start]\"></ng-content>\r\n    @if(divideText != undefined)\r\n    {\r\n    <div class=\"divider\" [ngClass]=\"[(position ?? ''), color, (isHorizontal ? 'divider-horizontal': '')]\">\r\n        {{divideText}} </div>\r\n    }@else{\r\n    <div class=\"divider\" [ngClass]=\"[(position?? ''), color,(isHorizontal ? 'divider-horizontal': '')]\"> </div>\r\n    }\r\n    <ng-content select=\"[end]\"></ng-content>\r\n</div>","import { CommonModule, isPlatformBrowser } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChild, contentChild, ContentChildren, ElementRef, EventEmitter, Inject, input, Input, OnChanges, OnInit, Output, PLATFORM_ID, QueryList, SimpleChanges, Type, ViewChild } from '@angular/core';\r\nimport {ActiveElement, BarControllerDatasetOptions, Chart, ChartDataCustomTypesPerDataset, ChartDataset, ChartDatasetCustomTypesPerDataset, ChartEvent, ChartOptions, ChartType, ChartTypeRegistry, CoreChartOptions, Plugin} from 'chart.js/auto';\r\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\r\nimport { ControlContainer, Validators } from '@angular/forms';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'ul-dataset',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  template:''\r\n})\r\nexport class UIChartDatasetComponent \r\n{\r\n\r\n  @Input() public data:any[] | BehaviorSubject<any[]> = [65, 59, 80, 81, 56, 55, 40] \r\n  @Input() public label:string = 'My first dataset';  \r\n  @Input() public options?:ChartDatasetCustomTypesPerDataset<typeof this.type>;\r\n  @Input() public type:ChartType = 'bar';\r\n  public index:number = 0;\r\n\r\n  constructor(private cdr:ChangeDetectorRef)\r\n  {\r\n    \r\n\r\n\r\n\r\n  }\r\n\r\n  public static NewOptions(chartType:ChartType): ChartDatasetCustomTypesPerDataset<typeof chartType>\r\n  {\r\n    var options: ChartDatasetCustomTypesPerDataset<typeof chartType> = \r\n    {\r\n      type: chartType,\r\n      data:[],\r\n      label:\"\"\r\n    };    \r\n    return options;\r\n  }\r\n\r\n\r\n\r\n\r\n  GetOption():ChartDatasetCustomTypesPerDataset<typeof this.type>\r\n  {\r\n    var newSet:  ChartDatasetCustomTypesPerDataset<typeof this.type> = {\r\n      data: this.data instanceof BehaviorSubject  ? (this.data as BehaviorSubject<any[]>).getValue() : this.data as any[]  ,\r\n      label: this.label,\r\n      type: this.type\r\n    };\r\n    if  (this.data instanceof BehaviorSubject )\r\n    {\r\n      (this.data as BehaviorSubject<any[]>)\r\n      .pipe(untilDestroyed(this))\r\n      .subscribe(x => {\r\n        this.cdr.detectChanges();\r\n      });\r\n    }\r\n\r\n    if (this.options != undefined)\r\n    {\r\n      var newOptions : ChartDatasetCustomTypesPerDataset<typeof this.type> = this.options;\r\n      newOptions.data = newSet.data;\r\n      newOptions.label = newSet.label;\r\n      newOptions.type = newSet.type;\r\n      newSet = newOptions;\r\n    }\r\n      return newSet;\r\n  }\r\n\r\n}\r\n\r\n@Component({\r\n  selector: 'ul-chartOptions',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  template:''\r\n})\r\nexport class UIChartOptionsComponent\r\n{\r\n\r\n  @Input() public options?: ChartOptions<typeof this.type>;\r\n  @Input() public type:ChartType = 'bar';\r\n\r\n  Get(): ChartOptions<typeof this.type> | undefined\r\n  {\r\n    if(this.options != undefined)\r\n    {\r\n      var newOptions : ChartOptions<typeof this.type> = this.options;\r\n      return newOptions;\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n}\r\n\r\n@Component({\r\n  selector: 'ul-chart',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uichart.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIChartComponent implements AfterViewInit, OnInit, OnChanges {\r\n  chart:any |undefined;\r\n  @Input() chartClass:string = \"\";\r\n  @Input() plugins:Plugin[] = [];\r\n  @Output() clickAction: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() hoverEvent: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() resizeEvent: EventEmitter<any> = new EventEmitter<any>();\r\n  @Input()  labels:string[] | BehaviorSubject<string[] | undefined> | BehaviorSubject<string[]> = ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'];\r\n  @ViewChild('chart') chartElement?: ElementRef<HTMLCanvasElement>;\r\n  public isBrowser: BehaviorSubject< boolean> = new BehaviorSubject(false);\r\n  @ContentChildren(UIChartDatasetComponent) datasetComponents?: QueryList<UIChartDatasetComponent>;\r\n  @ContentChild(UIChartOptionsComponent) optionsComponents?: UIChartOptionsComponent;\r\n  datasets:ChartDatasetCustomTypesPerDataset[] = [];\r\n  @Input() options?:ChartOptions;\r\n\r\n\r\n  constructor(@Inject(PLATFORM_ID) platformId: Object, private cdr:ChangeDetectorRef)\r\n  {\r\n    /*\r\n    This is needed because during testing you will get an error \r\n    about the canvas element not being available. Therefore I needed\r\n    to wait for the browser to be ready before attempting to process the \r\n    rendering of the chart.\r\n    */\r\n    this.isBrowser.next( isPlatformBrowser(platformId));\r\n  }\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    //console.log(changes);\r\n\r\n  }\r\n  \r\n  private ClearArray<T>(values: T[]): T[]\r\n  {\r\n    values = values.filter(x => false);\r\n    return values;\r\n  }\r\n\r\n\r\n  load()\r\n  {\r\n\r\n    this.datasetComponents?.forEach((x, i) => {\r\n      x.index = i;\r\n    });\r\n\r\n    var observables:any[] = this.datasetComponents\r\n    ?.filter(x => x.data instanceof BehaviorSubject)\r\n    .map(x => {   return { component:x ,  chartData:  (x.data as BehaviorSubject<any[]>) }})\r\n    .filter(x => x.chartData != undefined) ?? new Array<BehaviorSubject<any[]>>();\r\n\r\n    combineLatest(observables.map(x => (x.chartData as BehaviorSubject<any[]>).pipe(map(mapdata => { return {chartData: mapdata, Component:x.component as UIChartDatasetComponent  } })) ))\r\n    .subscribe(x => {\r\n      if (this.chartElement != undefined)\r\n      {\r\n      var elemChartObject = Chart.getChart(this.chartElement!.nativeElement);\r\n      if (elemChartObject?.data != undefined)\r\n      {\r\n      elemChartObject?.bindEvents();\r\n        x.forEach(item => {\r\n          elemChartObject!.data.datasets[item.Component.index].data = this.ClearArray(elemChartObject!.data.datasets[item.Component.index].data);        \r\n          elemChartObject!.data.labels = this.ClearArray(elemChartObject!.data.labels ?? []);\r\n          this.getLabels().forEach(lbl => {\r\n            elemChartObject?.data.labels?.push(lbl);\r\n          });\r\n          item.chartData.forEach(newItem => {          \r\n            elemChartObject?.data.datasets[item.Component.index].data.push(newItem as number);\r\n          });\r\n        });\r\n      }\r\n        elemChartObject?.update();\r\n        elemChartObject?.render();\r\n        this.cdr.detectChanges();\r\n      }\r\n    });\r\n\r\n    this.datasetComponents?.changes.subscribe(x => {\r\n      this.buildChart();\r\n    });\r\n  }\r\n\r\n  getLabels()\r\n  {\r\n    return this.labels instanceof BehaviorSubject ? this.labels.getValue() ?? [] : this.labels;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.cdr.markForCheck();\r\n    if (this.labels instanceof BehaviorSubject)\r\n    {\r\n      this.labels.subscribe(x => {\r\n        this.load();\r\n      });\r\n    }\r\n\r\n\r\n  }\r\n\r\nbuildChart()\r\n{\r\n  if (this.chart != undefined)\r\n  {\r\n    (this.chart as Chart).destroy();\r\n    this.chart = undefined;\r\n  }\r\n  this.datasets =  this.datasetComponents?.map(x => x.GetOption()! ) ?? [];  \r\n  this.options = this.options ??( this.optionsComponents?.Get() ?? {});\r\n  this.options.onClick = (ev, elems, chartObject ) =>  this.clickAction.emit({ Event: ev, Elements: elems, ChartObject: chartObject});\r\n  this.options.onHover = (ev, elems, chartObject ) =>  this.hoverEvent.emit({ Event: ev, Elements: elems, ChartObject: chartObject});\r\n  this.options.onResize = (chart: any, size: {width: number;height: number;} ) =>  this.resizeEvent.emit({ Event: size, ChartObject: chart});\r\n  this.chart = new Chart(this.chartElement!.nativeElement,{\r\n    data: {\r\n     labels:this.getLabels(),\r\n     datasets: this.datasets,\r\n    },\r\n    options: this.options,\r\n    plugins:this.plugins\r\n   });\r\n}\r\n\r\npublic GetChart():Chart\r\n{\r\n  return this.chart;\r\n}\r\n\r\n  \r\n  ngAfterViewInit(): void {\r\n    this.isBrowser.subscribe(x => {\r\n      if (x)\r\n      {\r\n        this.buildChart();\r\n      }\r\n    });\r\n    this.load();\r\n  }\r\n\r\n  \r\n\r\n\r\n\r\n\r\n}\r\n\r\nexport class UIChart{\r\n\r\n\r\n  static DatasetOptions(chartType:ChartType)\r\n  {\r\n    return UIChartDatasetComponent.NewOptions(chartType);\r\n  }\r\n\r\n}","<div [ngClass]=\"chartClass\"> \r\n    @if(isBrowser)\r\n    {\r\n<canvas #chart>\r\n    {{chart}}\r\n</canvas>\r\n    }\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, ContentChild, ContentChildren, Input, OnInit, QueryList, input } from '@angular/core';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Component({\r\nselector: 'ul-timeLineItem',\r\nimports: [CommonModule],\r\nstandalone: true,\r\ntemplate:'',\r\nstyleUrls: [\r\n  '../../Styles/index.css'\r\n]\r\n})\r\nexport class UITimelineItemComponent {\r\n  @Input() public labelClass: string = 'timeline-start timeline-box';\r\n  @Input() public labelText: string = 'Test';\r\n  @Input() public containerClass: string = 'timeline-middle';\r\n  @Input() public iconClass: string = 'fa-sharp fa-solid fa-circle-check text-primary';\r\n  @Input() public iconColor?: string;\r\n  @Input() public lineClass: string = '';\r\n\r\n  @Input() public enabled?:string;\r\n\r\n  isEnabled()\r\n  {\r\n    return this.enabled != undefined;\r\n  }\r\n\r\n}\r\n\r\n\r\n@UntilDestroy()\r\n@Component({\r\n  selector: 'ul-timeline',\r\n  imports: [CommonModule, UITimelineItemComponent],\r\n  templateUrl: './uitimeline.component.html',\r\n  standalone: true\r\n})\r\nexport class UITimelineComponent implements AfterViewInit, OnInit{\r\n\r\n  @Input() public timelineClass: string = '';\r\n  @Input() public autoApply?: string;\r\n  @Input() public applyIcon: string = 'fa-sharp fa-solid fa-circle-check ';\r\n  @Input() public activeColor:string = 'primary';\r\n  @Input() public activeLineColor:string = 'bg-primary';\r\n  @Input() public activeLabelClass:string = '';\r\n  @Input() public inactiveLabelClass:string = '';\r\n\r\n\r\n\r\n  @ContentChildren(UITimelineItemComponent) public items?: QueryList<UITimelineItemComponent>;\r\n  public currentItems: BehaviorSubject<UITimelineItemComponent[]> = new BehaviorSubject<UITimelineItemComponent[]>([]);\r\n  public currentCount: BehaviorSubject<number> = new BehaviorSubject<number>(0);\r\n  ngOnInit(): void {\r\n    this.items?.forEach(x => {\r\n\r\n      if (this.autoApply != undefined)\r\n        {\r\n          x.lineClass = x.isEnabled() ? this.activeLineColor : '';\r\n        }\r\n\r\n    });\r\n  }\r\n  ngAfterViewInit(): void {\r\n\r\n    this.items?.forEach((x, i) => {\r\n\r\n      if (this.autoApply != undefined)\r\n        {\r\n          x.lineClass = x.isEnabled() ? this.activeLineColor : '';\r\n          x.labelClass = this.applyAutoLabel(i) + ' ' + ( x.enabled != undefined ? this.activeLabelClass : this.inactiveLabelClass);\r\n        }\r\n\r\n    });\r\n    this.currentItems.next(this.items?.toArray() ?? []);\r\n    this.currentCount.next(this.items?.length ?? 0);\r\n    this.items?.changes\r\n    .pipe(untilDestroyed(this))\r\n    .subscribe(x => {\r\n      this.currentItems.next(x.toArray());\r\n      this.currentCount.next(x.length);\r\n    });\r\n  }\r\n\r\n\r\n  applyAutoLabel(number:number)\r\n  {\r\n    return 'timeline-box ' + (number % 2 == 0 ? 'timeline-start' : 'timeline-end');\r\n  }\r\n\r\n  applyAutoIcon(isActive:boolean)\r\n  {\r\n    return isActive ? this.applyIcon + ' text-' + this.activeColor : this.applyIcon;\r\n  }\r\n\r\n  applyAutoLine(isActive:boolean)\r\n  {\r\n    return isActive ? (\"!bg-\" + this.activeColor) : \"\";\r\n  }\r\n\r\n\r\n}\r\n","<ul class=\"timeline\" [ngClass]=\"timelineClass\">\r\n\r\n@for(item of (currentItems | async); track $index)\r\n{\r\n    <li>\r\n        <hr [class.hidden]=\"($index == 0)\" [ngClass]=\"item.lineClass\" />\r\n\r\n        <div [class]=\"item.labelClass\" > {{item.labelText}}</div>\r\n\r\n        <div [class]=\"item.containerClass\" >\r\n            <i [class]=\"autoApply != undefined ? applyAutoIcon(item.isEnabled()) : item.iconClass\" [style.color]=\"item.iconColor\" ></i>    \r\n        </div>\r\n\r\n        <hr [class.hidden]=\"!(((currentCount | async) ?? 0) - 1 > $index)\" [ngClass]=\"item.lineClass\" />\r\n\r\n    </li>\r\n}\r\n</ul>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ul-nav',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uinav-bar.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UINavBarComponent {\r\n\r\n@Input() titleText: string = '';\r\n@Input() titleClass: string = 'btn-ghost';\r\n@Input() customTitle?:string;\r\n@Input() class: string = '';\r\n@Output() Click: EventEmitter<any> = new EventEmitter<any>();\r\n\r\nonClick(ev:any)\r\n{\r\n  this.Click.emit(ev);\r\n}\r\n\r\n}\r\n","\r\n<div class=\"navbar bg-base-100\" [ngClass]=\"class\">\r\n    <div class=\"navbar-start\">\r\n        <ng-content select=\"[start]\" ></ng-content>\r\n    </div>\r\n    <div class=\"navbar-center\">\r\n      @if(customTitle == undefined)\r\n      {\r\n      <button class=\"btn text-xl\" [ngClass]=\"titleClass\" (click)=\"onClick($event)\">{{titleText}}</button>\r\n      }@else{\r\n\r\n        <ng-content select=\"[center]\"></ng-content>\r\n      }\r\n    </div>\r\n    <div class=\"navbar-end\">\r\n        <ng-content select=\"[end]\" ></ng-content>\r\n    </div>\r\n  </div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, TemplateRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ul-stat',\r\n  standalone: true,\r\n  imports: [CommonModule], \r\n  templateUrl: './uistat.component.html',\r\nstyleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIStatComponent {\r\n\r\n@Input() public title: string = \"\";\r\n@Input() public value:string = \"\";\r\n@Input() public desc:string = \"\";\r\n\r\n\r\n@Input() public titleClass:string = \"\";\r\n@Input() public valueClass :string = \"\";\r\n@Input() public descClass:string = \"\";\r\n\r\n@Input() public statClass:string = \"\";\r\n@Input() public iconClass:string = \"\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","<ng-container>\r\n    <div class=\"stat\" [ngClass]=\"statClass\">\r\n        <div class=\"stat-title\" [ngClass]=\"titleClass\" >{{title}}</div>\r\n        <div class=\"stat-value\"  [ngClass]=\"valueClass\" >{{value}}   \r\n            @if(iconClass != \"\")\r\n            {\r\n            <i [class]=\"iconClass\" aria-hidden=\"true\" [ngClass]=\"valueClass\"></i>\r\n            }\r\n        </div>\r\n        <div class=\"stat-desc\" [ngClass]=\"descClass\" >{{desc}}</div>\r\n      </div>\r\n\r\n\r\n    </ng-container>","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, ContentChildren, Input, QueryList, TemplateRef } from '@angular/core';\r\nimport { UIStatComponent } from '../uistat/uistat.component';\r\n\r\n@Component({\r\n  selector: 'ul-stats',\r\n  standalone: true,\r\n  imports: [CommonModule,UIStatComponent],\r\n  templateUrl: './uistats.component.html',\r\nstyleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIStatsComponent implements AfterViewInit {\r\n  @Input() public statClass: string = \"\";\r\n  @ContentChildren(UIStatComponent) public allStats? :QueryList<UIStatComponent>;\r\n\r\nngAfterViewInit(): void {\r\n\r\n}\r\n\r\n\r\n\r\n}\r\n","<div class=\"stats shadow\" [ngClass]=\"statClass\">\r\n\r\n    <ng-content></ng-content>\r\n</div>","import { ValidatorFn } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport class SearchFilter {\r\n  public id: number = 0;\r\n  public name?: string;\r\n  public type: string = \"text\";  // text, dropdown, autocomplete, date\r\n  public value?: string;\r\n  public objectValue?: SearchSubFilter;\r\n  public defaultValue: any;\r\n  public autocompleteData$?: Observable<any>;\r\n  public dropdownValues?: Array<SearchSubFilter>;\r\n  public operator: string = \"=\";\r\n  public operatorText: string = \"equals\";\r\n  public defaultDateOperator?: string;\r\n  public dateSign?: SearchSubFilter;\r\n  public allowMultiple: boolean = true;\r\n  public isMainViewFilter: boolean = false;\r\n  public mainFilterChecked?: boolean;\r\n  public excludeFilter?: boolean;\r\n  public defaultExcludeFilter?: boolean;\r\n  public parentFilterName: string = \"\";\r\n  public parentFilterItemID?: number;\r\n  public groupName: string = \"\";\r\n  public groupID: number = 0;\r\n  public isMainGroupFilter: boolean = false;\r\n  public validators?: ValidatorFn;\r\n  public formControlName?: string;\r\n\r\n  constructor(initialValues?: Partial<SearchFilter>) {\r\n    if (initialValues) {\r\n      Object.assign(this, initialValues);\r\n    }\r\n  }\r\n};\r\n\r\nexport class SearchSubFilter {\r\n  public id?: number;\r\n  public display?: string;\r\n  public value: string = \"\";\r\n  public parentFilterItemId?: number;\r\n\r\n  constructor() { }\r\n}\r\n\r\nexport class SearchQueryDTO {\r\n  searchText: string|undefined;\r\n  searchID: string|undefined;\r\n}\r\n","\r\nexport class MonthMetaData {\r\n    name!: string\r\n    short!: string\r\n    number!: number\r\n    days!: number\r\n\r\n    \r\n\r\n  \r\n    constructor(input: any)\r\n    {\r\n      this.name = input.name;\r\n      this.short = input.short;\r\n      this.number = input.number;\r\n      this.days = input.days;\r\n    }\r\n  \r\n    public getDaysArray(year:number):number[]\r\n    {\r\n      var result:number[] =[];\r\n      var monthDays = this.number == 2 && year % 4 == 0 ? this.days + 1: this.days;\r\n      for (let i = 1; i <= monthDays; i++)\r\n      {\r\n        result.push(i);\r\n      }\r\n     return result;\r\n    }\r\n    public getLastDay(year:number)\r\n    {\r\n      var items = this.getDaysArray(year);\r\n      return items[items.length - 1];\r\n    }\r\n  \r\n    public getGetDayofWeek(year:number, prevMonth:MonthMetaData):number\r\n    {\r\n      var day: Date = new Date(`${prevMonth.number}/${prevMonth.getLastDay(year)}/${year}`);\r\n      return day.getDay();\r\n    }\r\n    public getPrependDays(year:number):number[]\r\n    {\r\n        var prevMonth:MonthMetaData = this.previousMonth();\r\n        var dayOfWeek:number = this.getGetDayofWeek(prevMonth.number == 12 ?   year - 1 : year,prevMonth );\r\n        var result:number[] =[];\r\n        var startDayIndex = prevMonth.getLastDay(year) - dayOfWeek;\r\n        if (dayOfWeek < 6)\r\n        {\r\n          for (let i = 0; i <= dayOfWeek; i++)\r\n          {\r\n          result.push(startDayIndex + i);\r\n          }\r\n        }\r\n        return result;\r\n    }\r\n\r\n    public previousMonth(): MonthMetaData\r\n    {\r\n      return CalendarMetaData.getPreviousMonth(this);\r\n    }\r\n\r\n    public nextMonth()\r\n    {\r\n        return CalendarMetaData.getNextMonth(this);\r\n    }\r\n  }\r\n  \r\n  export class CalendarMetaData\r\n  {\r\n  \r\n    public static January: MonthMetaData = new MonthMetaData({\r\n      name: \"January\",\r\n      short: \"Jan\",\r\n      number: 1,\r\n      days: 31\r\n    })\r\n    public static February: MonthMetaData = new MonthMetaData({\r\n    name: \"February\",\r\n    short: \"Feb\",\r\n    number: 2,\r\n    days: 28\r\n  })\r\n    public static March: MonthMetaData = new MonthMetaData({\r\n      name: \"March\",\r\n      short: \"Mar\",\r\n      number: 3,\r\n      days: 31\r\n    })\r\n    public static April: MonthMetaData = new MonthMetaData({\r\n      name: \"April\",\r\n      short: \"Apr\",\r\n      number: 4,\r\n      days: 30\r\n    })\r\n    public static May: MonthMetaData = new MonthMetaData({\r\n      name: \"May\",\r\n      short: \"May\",\r\n      number: 5,\r\n      days: 31\r\n    })\r\n    public static June: MonthMetaData =  new MonthMetaData({\r\n      name: \"June\",\r\n      short: \"Jun\",\r\n      number: 6,\r\n      days: 30\r\n    })\r\n    public static July: MonthMetaData = new MonthMetaData ({\r\n      name: \"July\",\r\n      short: \"Jul\",\r\n      number: 7,\r\n      days: 31\r\n    })\r\n    public static August: MonthMetaData = new MonthMetaData({\r\n      name: \"August\",\r\n      short: \"Aug\",\r\n      number: 8,\r\n      days: 31\r\n    })\r\n    public static September: MonthMetaData = new MonthMetaData({\r\n      name: \"September\",\r\n      short: \"Sep\",\r\n      number: 9,\r\n      days: 30\r\n    })\r\n    public static October: MonthMetaData =  new MonthMetaData({\r\n      name: \"October\",\r\n      short: \"Oct\",\r\n      number: 10,\r\n      days: 31\r\n    })\r\n    public static November: MonthMetaData = new MonthMetaData({\r\n      name: \"November\",\r\n      short: \"Nov\",\r\n      number: 11,\r\n      days: 30\r\n    })\r\n    public static December: MonthMetaData = new MonthMetaData({\r\n      name: \"December\",\r\n      short: \"Dec\",\r\n      number: 12,\r\n      days: 31\r\n    })\r\n    public static monthMap:Map<string, MonthMetaData> = CalendarMetaData.getMonthMap();\r\n  \r\n    static getPreviousMonth(currentMonth: MonthMetaData)\r\n    {\r\n      return Array.from(CalendarMetaData.monthMap.values())\r\n      .filter(x => x.number == ( currentMonth.number >= 2 ? currentMonth.number - 1: 12))[0];\r\n    }\r\n    static getNextMonth(currentMonth: MonthMetaData)\r\n  {\r\n    return Array.from(CalendarMetaData.monthMap.values())\r\n    .filter(x => x.number == ( currentMonth.number <= 11 ? currentMonth.number + 1: 1))[0];\r\n  }\r\n\r\n    static getMonthMap(): Map<string, MonthMetaData>\r\n    {\r\n  \r\n      var map:Map<string, MonthMetaData> = new Map<string, MonthMetaData>();\r\n      map.set(\"January\", CalendarMetaData.January);\r\n      map.set(\"February\", CalendarMetaData.February);\r\n      map.set(\"March\", CalendarMetaData.March);\r\n      map.set(\"April\", CalendarMetaData.April);\r\n      map.set(\"May\", CalendarMetaData.May);\r\n      map.set(\"June\", CalendarMetaData.June);\r\n      map.set(\"July\", CalendarMetaData.July);\r\n      map.set(\"August\", CalendarMetaData.August);\r\n      map.set(\"September\", CalendarMetaData.September);\r\n      map.set(\"October\", CalendarMetaData.October);\r\n      map.set(\"November\", CalendarMetaData.November);\r\n      map.set(\"December\", CalendarMetaData.December);\r\n  \r\n      return map;\r\n    }\r\n  \r\n    static getMonth(monthName: string) : MonthMetaData\r\n    {\r\n      var result = CalendarMetaData.monthMap.get(monthName);\r\n      if (result == undefined)\r\n      {\r\n        throw new Error(\"Month not found!\");\r\n      }else{\r\n        return result;\r\n      }\r\n  \r\n    }\r\n  \r\n  }","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef, Type, viewChild, ViewChild, ContentChildren, ComponentRef, ViewChildren, ViewContainerRef, QueryList, ComponentFactory } from '@angular/core';\r\nimport { ModalService } from '../../Services/ModalService';\r\nimport { ControlContainer } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'ul-modalPopUp',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uimodal-pop-up.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UIModalPopUpComponent<T> implements AfterViewInit, OnDestroy {\r\n\r\n  @Input() modalClass:string = '';\r\n  @Input() contentClass:string = '';\r\n  @Input() id:string = '';\r\n  @Input() componentType?:Type<T>;\r\n  @Output() closed = new EventEmitter<T>();\r\n  contentCompRef:ComponentRef<T> |undefined;\r\n  @Input() loader:(comp:ComponentRef<T>) => void = (c:ComponentRef<T>) => {};\r\n  @ViewChild(\"wrapper\", {read:ViewContainerRef}) wrapper?: ViewContainerRef;\r\n\r\n  ngOnDestroy(): void {\r\n\r\n    \r\n    \r\n  }\r\n\r\n\r\n  ngAfterViewInit(): void {\r\n\r\n    this.contentCompRef = this.wrapper!.createComponent<T>(this.componentType!);\r\n    this.loader(this.contentCompRef);\r\n\r\n    const modalElem:any =  document.getElementById(this.id);\r\n    modalElem.showModal();\r\n    const modalElement: HTMLDialogElement = modalElem;\r\n    modalElement.onclose = (ev) => {\r\n      console.info('onClose Modal ' + this.id);\r\n      this.closed.emit(this.contentCompRef?.instance);      \r\n    };\r\n\r\n  }\r\n\r\n  \r\n}\r\n","<dialog [id]=\"id\" class=\"modal\" [ngClass]=\"modalClass\">\r\n    <div class=\"modal-box max-w-fit\" [ngClass]=\"contentClass\">\r\n        <ng-container #wrapper></ng-container>\r\n        <div class=\"modal-action\">\r\n            <form method=\"dialog\">\r\n                <button class=\"btn btn-sm btn-circle btn-ghost absolute right-2 top-2\">✕</button>\r\n            </form>\r\n        </div>\r\n    </div>\r\n</dialog>","import { ComponentRef, EventEmitter, Injectable, InjectionToken, TemplateRef, Type, ViewContainerRef } from \"@angular/core\";\r\nimport { UIModalPopUpComponent } from '../Components/uimodal-pop-up/uimodal-pop-up.component';\r\nimport { Observable, of } from \"rxjs\";\r\nimport { UntilDestroy, untilDestroyed } from \"@ngneat/until-destroy\";\r\n\r\n@Injectable({providedIn:'root'})\r\n@UntilDestroy()\r\nexport class ModalService<T> {\r\n\r\n    private ModalComponent:Type<UIModalPopUpComponent<T>> = UIModalPopUpComponent;\r\n    private componentRef: ComponentRef<UIModalPopUpComponent<T>> | undefined;\r\n    private id:string = 'myModal';\r\n    public compLoader:(c:ComponentRef<T>) => void = (c:ComponentRef<T>) => {};\r\n    public class:string = \"\";\r\n    public contentClass:string = \"\";\r\n    private dataReceived = new EventEmitter<boolean>();\r\n\r\nconstructor(public vcr:ViewContainerRef)\r\n{\r\n\r\n\r\n\r\n}\r\n\r\n\r\npublic afterClosed():Observable<T>\r\n{\r\n    return this.componentRef!.instance.closed\r\n.asObservable()\r\n.pipe(untilDestroyed(this));\r\n\r\n}\r\n\r\npublic close()\r\n{\r\n\r\nthis.dataReceived.emit(true);\r\n\r\n}\r\n\r\nprivate closeDialog()\r\n{\r\n    this.dataReceived.asObservable()\r\n    .subscribe((isComplete) => {\r\n        console.info(\"onCloseDialog:\" + isComplete);\r\n        if (isComplete)\r\n        {\r\n            this.componentRef?.destroy();\r\n        }\r\n    });\r\n}\r\n\r\n\r\n\r\npublic open(diagComp:Type<T>, setInputs:((comp:ComponentRef<T>) => void) |undefined = undefined)\r\n{\r\n    this.dataReceived.emit(false);\r\n    this.compLoader = setInputs ?? this.compLoader;\r\nthis.componentRef = this.vcr.createComponent(this.ModalComponent);\r\nthis.componentRef.setInput('id',this.id );\r\nthis.componentRef.setInput('componentType', diagComp); \r\nthis.componentRef.setInput('loader', this.compLoader); \r\nthis.componentRef.setInput('modalClass', this.class); \r\nthis.componentRef.setInput('contentClass', this.contentClass); \r\nthis.closeDialog();\r\n}\r\n\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","import { Injectable, ViewContainerRef } from \"@angular/core\";\r\nimport { UntilDestroy, untilDestroyed } from \"@ngneat/until-destroy\";\r\nimport { UIAlertsComponent } from \"../../public-api\";\r\n\r\n\r\n@Injectable({providedIn:'root'})\r\n@UntilDestroy()\r\nexport class AlertsService{\r\n\r\n    constructor(public vcr:ViewContainerRef)\r\n    {\r\n        this.CreateAlertContainer();\r\n\r\n    }\r\n\r\n\r\n\r\n    CreateAlertContainer()\r\n    {\r\n        if(!UIAlertsComponent.initialized)\r\n        {\r\n            this.vcr.clear();\r\n            var compRef = this.vcr.createComponent(UIAlertsComponent);\r\n        }\r\n    }\r\n\r\n\r\n\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ul-sideBar',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './uisidebar.component.html',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UISidebarComponent {\r\n@Input() actionClass:string = 'btn btn-accent';\r\n@Input() actionText:string = '';\r\n@Input() sidebarClass:string = '';\r\n@Input() sidebarZIndex:string = '52';\r\n\r\n\r\n\r\n  \r\n\r\n}\r\n","<div class=\"drawer\">\r\n    <input id=\"my-drawer\" type=\"checkbox\" class=\"drawer-toggle\" />\r\n    <div class=\"drawer-content\">\r\n      <!-- Page content here -->\r\n      <label for=\"my-drawer\" class=\"drawer-button\" [ngClass]=\"actionClass\"  >{{actionText}}</label>\r\n    </div>\r\n    <div class=\"drawer-side\" [style.z-index]=\"sidebarZIndex\">\r\n      <label for=\"my-drawer\" aria-label=\"close sidebar\" class=\"drawer-overlay\"></label>\r\n      <ul class=\"menu bg-base-200 text-base-content min-h-full w-80 p-4\" [ngClass]=\"sidebarClass\" >\r\n        <ng-content>            \r\n        </ng-content>\r\n      </ul>\r\n    </div>\r\n  </div>","import { AfterViewInit, ChangeDetectorRef, Component, ContentChild, input, Input, OnChanges, OnInit, SimpleChanges, TemplateRef, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\r\nimport { UICardViewComponent } from '../uicard-view/uicard-view.component';\r\nimport { CalendarMetaData, MonthMetaData } from '../../Models/calendarModel';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n\r\n@Component({\r\n  selector: 'ul-calHeader',\r\n  standalone: true,\r\n  imports: [ CommonModule],\r\n  template:'',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UICalendarHeaderComponent\r\n{\r\n  @ContentChild(TemplateRef) public cellTemplate?:TemplateRef<any>;\r\n\r\n\r\n\r\n\r\n\r\n}\r\n@Component({\r\n  selector: 'ul-day',\r\n  standalone: true,\r\n  imports: [ CommonModule],\r\n  template:'',\r\n  styleUrl: '../../Styles/index.css'\r\n})\r\nexport class UICalendarCellComponent\r\n{\r\n  @ContentChild(TemplateRef) public cellTemplate?:TemplateRef<any>;\r\n\r\n\r\n\r\n\r\n\r\n}\r\n@Component({\r\n  selector: 'ul-cal',\r\n  standalone: true,\r\n  imports: [UICardViewComponent, CommonModule],\r\n  templateUrl: './uicalendar-view.component.html',\r\n  styleUrl: '../../Styles/index.css',\r\n  host: {ngSkipHyrdation: 'true'}\r\n})\r\nexport class UICalendarViewComponent implements AfterViewInit {\r\n\r\n\r\n  @Input() year?:number;\r\n  @Input() month?:number;\r\n  _offset:number = 0;\r\n  \r\n@Input() set offset(value:number){\r\n  this._offset = value;\r\n  this.handleOffset(value);\r\n  this.isLoaded = true;\r\n}\r\n\r\nget offset(): number{\r\n\r\n  return this._offset;\r\n}\r\n\r\n\r\n  @Input() public dayClass:string = \"\";\r\n  @Input() public disabledClass:string = \"bg-slate-300\";\r\n  @Input() public headerClass:string = \"\";\r\n  @Input() public cellClass:string = \"\";\r\n  @Input() public calendarClass:string = \"\";\r\n  @Input() public dayLabelClass:string = \"badge badge-ghost\";\r\n\r\n\r\n  @ContentChild(UICalendarCellComponent) public dayCell?: UICalendarCellComponent;\r\n  @ContentChild(UICalendarHeaderComponent) public headerCell?: UICalendarHeaderComponent;\r\n  \r\n\r\n  startDayOfWeek:number = 1;\r\n  currentYear:number = 2024;\r\n  currentMonth:MonthMetaData = CalendarMetaData.January;\r\n  prependDays: number[] = [];\r\n  daysArray:  number[] = [];\r\n  isLoaded:boolean = false;\r\n\r\n\r\nconstructor(private cdr:ChangeDetectorRef)\r\n{\r\n\r\n\r\n}\r\n  ngAfterViewInit(): void {\r\n\r\n    if (this.offset != 0)\r\n    {\r\n    this.handleOffset(this.offset);\r\n    this.isLoaded =true\r\n    }\r\n\r\n  }\r\n\r\n\r\n  \r\n  loadDefault()\r\n  {\r\n    this.currentMonth  = Array.from( CalendarMetaData.getMonthMap().values())?.filter(x => x.number == this.month)[0] ?? CalendarMetaData.January;\r\n    this.currentYear  = this.year?? 2024;\r\n    this.prependDays = this.currentMonth.getPrependDays(this.currentYear);\r\n    this.daysArray = this.currentMonth.getDaysArray(this.currentYear);\r\n  }\r\n  dayToDate(dayNumber:number, isPrevious:boolean = false)\r\n  {\r\n    var dateString:string = `${isPrevious ? this.currentMonth.previousMonth().number : this.currentMonth.number}/${dayNumber}/${isPrevious && this.currentMonth.number == 1 ? this.currentYear - 1 : this.currentYear}`;\r\n    return new Date(dateString);\r\n  }\r\n\r\n\r\n\r\n  nextOffset(index:number, inMonth:MonthMetaData, inYear: number)\r\n  {\r\n    var outMonth = inMonth;\r\n    var outYear = inYear;\r\n    for(let i= 0; i <= index-1; i++)\r\n      {\r\n        outMonth = outMonth.nextMonth();\r\n        if(outMonth.number == 1)\r\n        {\r\n          outYear++;\r\n        }\r\n      }\r\n      this.currentMonth = outMonth;\r\n    this.currentYear = outYear;\r\n    this.prependDays = this.currentMonth.getPrependDays(this.currentYear);\r\n    this.daysArray = this.currentMonth.getDaysArray(this.currentYear);\r\n  }\r\n  previousOffset(index:number, inMonth:MonthMetaData, inYear: number )\r\n  {\r\n    index = Math.abs(index);\r\n    var outMonth = inMonth;\r\n    var outYear = inYear;\r\n    for(let i= 0; i <= index-1; i++)\r\n    {\r\n      outMonth = outMonth.previousMonth();\r\n      if(outMonth.number == 12)\r\n      {\r\n        outYear--;\r\n      }\r\n    }\r\n\r\n    this.currentMonth = outMonth;\r\n    this.currentYear = outYear;\r\n    this.prependDays = this.currentMonth.getPrependDays(this.currentYear);\r\n    this.daysArray = this.currentMonth.getDaysArray(this.currentYear);\r\n\r\n  }\r\n\r\n\r\n  public handleOffset(index:number)\r\n  {\r\n    var defaultMonth =Array.from( CalendarMetaData.getMonthMap().values())?.filter(x => x.number == this.month)[0] ?? CalendarMetaData.January;\r\n    if (index > 0)\r\n    {\r\n      this.nextOffset(index, defaultMonth,this.year ?? 2024 );\r\n    }else if (index < 0)\r\n    {      \r\n      this.previousOffset(index, defaultMonth,this.year ?? 2024 );\r\n    }else{\r\n      this.loadDefault();\r\n    }\r\n  }\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","\r\n<ng-template #none>\r\n\r\n\r\n</ng-template>\r\n\r\n<div class=\"grid\" [class]=\"calendarClass\">\r\n    <div class=\"flex\" [class]=\"headerClass\">\r\n    <div class=\"flex items-center justify-center border-2 border-solid border-stone-500 w-full\" >\r\n        @if(headerCell?.cellTemplate == undefined )\r\n        {\r\n            <span >Sunday</span>\r\n        }\r\n        <ng-container *ngTemplateOutlet=\"headerCell?.cellTemplate ?? null; context:{$implicit:'Sunday',index:0}\" >\r\n        </ng-container>\r\n    </div>\r\n    <div class=\"flex items-center justify-center border-2 border-solid border-stone-500 w-full\" >\r\n        @if(headerCell?.cellTemplate == undefined )\r\n        {\r\n            <span>Monday</span>\r\n        }\r\n        <ng-container *ngTemplateOutlet=\"headerCell?.cellTemplate ?? null; context:{$implicit:'Monday',index:1}\" >\r\n        </ng-container>\r\n    </div>\r\n    <div class=\"flex items-center justify-center border-2 border-solid border-stone-500 w-full\" >\r\n        @if(headerCell?.cellTemplate == undefined )\r\n        {\r\n            <span>Tuesday</span>\r\n        }\r\n        <ng-container *ngTemplateOutlet=\"headerCell?.cellTemplate ?? null; context:{$implicit:'Tuesday',index:2}\" >\r\n        </ng-container>\r\n    </div>\r\n    <div class=\"flex items-center justify-center border-2 border-solid border-stone-500 w-full\" >\r\n        @if(headerCell?.cellTemplate == undefined )\r\n        {\r\n            <span>Wednesday</span>\r\n        }\r\n        <ng-container *ngTemplateOutlet=\"headerCell?.cellTemplate ?? null; context:{$implicit:'Wednesday',index:3}\" >\r\n        </ng-container>\r\n        \r\n    </div>\r\n    <div class=\"flex items-center justify-center border-2 border-solid border-stone-500 w-full\" >\r\n        @if(headerCell?.cellTemplate == undefined )\r\n        {\r\n            <span>Thursday</span>\r\n        }\r\n        <ng-container *ngTemplateOutlet=\"headerCell?.cellTemplate ?? null; context:{$implicit:'Thursday',index:4}\" >\r\n        </ng-container>\r\n    </div>\r\n    <div class=\"flex items-center justify-center border-2 border-solid border-stone-500 w-full\" >\r\n        @if(headerCell?.cellTemplate == undefined )\r\n        {\r\n            <span>Friday</span>\r\n        }\r\n        <ng-container *ngTemplateOutlet=\"headerCell?.cellTemplate ?? null; context:{$implicit:'Friday',index:5}\" >\r\n        </ng-container>\r\n    </div>\r\n    <div class=\"flex items-center justify-center border-2 border-solid border-stone-500 w-full\" >\r\n        @if(headerCell?.cellTemplate == undefined )\r\n        {\r\n            <span>Saturday</span>\r\n        }\r\n        <ng-container *ngTemplateOutlet=\"headerCell?.cellTemplate ?? null; context:{$implicit:'Saturday',index:6}\" >\r\n        </ng-container>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"grid grid-cols-7\">\r\n\r\n    @for(prevDays of prependDays; track $index )\r\n    {\r\n        <div class=\"grid border-2 border-solid border-stone-500 \" [ngClass]=\"disabledClass\" [class]=\"cellClass\">\r\n            <span class=\"m-2\" [ngClass]=\"dayLabelClass\">{{prevDays}}</span>\r\n\r\n            <ng-container *ngTemplateOutlet=\"dayCell?.cellTemplate ?? none; context:{$implicit:dayToDate(prevDays, true), isPrevious:true}\" >\r\n            </ng-container>\r\n\r\n        </div>\r\n    }\r\n\r\n    @for(days of daysArray; track $index)\r\n    {\r\n    <div class=\"grid border-2 border-solid border-stone-500\" [ngClass]=\"dayClass\" [class]=\"cellClass\" >\r\n        <span class=\"m-2\" [ngClass]=\"dayLabelClass\">{{days}}</span>\r\n\r\n        <ng-container *ngTemplateOutlet=\"dayCell?.cellTemplate ?? none; context:{$implicit:dayToDate(days), isPrevious:false}\" >\r\n        </ng-container>\r\n    \r\n    </div>\r\n    }\r\n\r\n</div>\r\n\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UIAlertComponent, UIAlertsComponent } from '../../../public-api';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UIAlertComponent,\r\n    UIAlertsComponent\r\n  ],\r\n  exports:[UIAlertComponent, UIAlertsComponent]\r\n})\r\nexport class ULAlertsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UIBasicInputFieldComponent, UIFormComponent } from '../../../public-api';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UIBasicInputFieldComponent,\r\n    UIFormComponent\r\n  ],\r\n  exports:[    UIBasicInputFieldComponent,\r\n    UIFormComponent\r\n  ]\r\n})\r\nexport class ULInputsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UIMenuComponent, UIMenuItemComponent,UIMenuDetailComponent, UIMenuDropdownComponent } from '../../../public-api';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UIMenuComponent,\r\n    UIMenuItemComponent,\r\n    UIMenuDropdownComponent,\r\n    UIMenuDetailComponent\r\n  ],\r\n  exports:[    UIMenuComponent,\r\n    UIMenuItemComponent,\r\n    UIMenuDropdownComponent,\r\n    UIMenuDetailComponent]\r\n})\r\nexport class ULMenuModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UIModalPopUpComponent, UIModalViewComponent } from '../../../public-api';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UIModalPopUpComponent,\r\n    UIModalViewComponent\r\n  ],\r\n  exports:[UIModalPopUpComponent,\r\n    UIModalViewComponent\r\n  ]\r\n})\r\nexport class ULModalModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UIStatComponent, UIStatsComponent } from '../../../public-api';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UIStatComponent,\r\n    UIStatsComponent\r\n  ],\r\n  exports:[UIStatComponent,UIStatsComponent]\r\n})\r\nexport class ULStatsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UIFilterItemComponent, UIAdvancedFilterComponent, UIBasicTableColumnComponent, UIBasicTableComponent, UINestedTableRowComponent } from '../../../public-api';\r\nimport { UlTableRowDirective } from '../../Directives/ul-table-row.directive';\r\nimport { ULHeaderCellDirective } from '../../Directives/ul-header-cell.directive';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UIBasicTableComponent,\r\n    UIBasicTableColumnComponent,\r\n    UINestedTableRowComponent,\r\n    UIAdvancedFilterComponent,\r\n    UIFilterItemComponent,\r\n    UlTableRowDirective,\r\n    ULHeaderCellDirective\r\n    \r\n  ],\r\n  exports:[    UIBasicTableComponent,\r\n    UIBasicTableColumnComponent,\r\n    UINestedTableRowComponent,\r\n    UIAdvancedFilterComponent,\r\n    UIFilterItemComponent,\r\n    UlTableRowDirective,\r\n    ULHeaderCellDirective\r\n  ]\r\n})\r\nexport class ULTableModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UITabComponent, UITabViewComponent } from '../../../public-api';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UITabComponent,\r\n    UITabViewComponent\r\n  ],\r\n  exports:[  UITabComponent,\r\n    UITabViewComponent]\r\n})\r\nexport class ULTabsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UIAccordionComponent, UITooltipComponent,UIBasicChipComponent, UICardViewComponent, UIDividerComponent, UINavBarComponent, UISidebarComponent, UICalendarViewComponent, UICalendarCellComponent, UICalendarHeaderComponent, UIChartComponent, UIChartDatasetComponent, UIChartOptionsComponent } from '../../../public-api';\r\nimport { UITimelineComponent, UITimelineItemComponent } from '../../Components/uitimeline/uitimeline.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UIAccordionComponent,\r\n    UICardViewComponent,\r\n    UIDividerComponent,\r\n    UIBasicChipComponent,\r\n    UINavBarComponent,\r\n    UISidebarComponent,\r\n    UITooltipComponent,\r\n    UICalendarViewComponent,\r\n    UICalendarCellComponent,\r\n    UICalendarHeaderComponent,\r\n    UIChartComponent,\r\n    UIChartDatasetComponent,\r\n    UIChartOptionsComponent,\r\n    UITimelineComponent,\r\n    UITimelineItemComponent\r\n  ],\r\n  exports:[    UIAccordionComponent,\r\n    UICardViewComponent,\r\n    UIDividerComponent,\r\n    UIBasicChipComponent,\r\n    UINavBarComponent,\r\n    UISidebarComponent,\r\n    UITooltipComponent,\r\n    UICalendarViewComponent,\r\n    UICalendarCellComponent,\r\n    UICalendarHeaderComponent,\r\n    UIChartComponent,\r\n    UIChartDatasetComponent,\r\n    UIChartOptionsComponent,\r\n    UITimelineComponent,\r\n    UITimelineItemComponent\r\n  ]\r\n})\r\nexport class ULViewsModule { }\r\n","import { DatePipe } from \"@angular/common\";\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n\r\n\r\n@Pipe({\r\n    name: 'localDate',\r\n    standalone:true\r\n  })\r\n  export class LocalDatePipe implements PipeTransform {\r\n  \r\n    transform(value: Date | string, format: string = 'mediumDate'): string | null {\r\n      const datePipe = new DatePipe('en-US');\r\n      if (value != null)\r\n      {\r\n      var localDate = new Date(value.toString().includes('Z') ? value.toString() : value.toString() + 'Z');\r\n      return datePipe.transform(localDate, format);\r\n      }else\r\n      {\r\n        return null;\r\n      }\r\n    }\r\n  }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LocalDatePipe } from '../../Pipes/LocalDatePipe';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    LocalDatePipe\r\n  ],\r\n  providers:[LocalDatePipe],\r\n  exports:[LocalDatePipe]\r\n})\r\nexport class ULCommonModule { }\r\n","/*\r\n * Public API Surface of ul-lib\r\n */\r\n\r\nexport * from './lib/ul-lib.service';\r\nexport * from './lib/ul-lib.component';\r\nexport * from './lib/Components/uibasic-input-field/uibasic-input-field.component';\r\nexport * from './lib/Components/uibasic-chip/uibasic-chip.component';\r\nexport * from './lib/Components/uibasic-filter/uibasic-filter.component';\r\nexport * from './lib/Components/uidetail-view/uidetail-view.component';\r\nexport * from './lib/Components/uitab-view/uitab-view.component';\r\nexport * from './lib/Components/Menu/uimenu/uimenu.component';\r\nexport * from './lib/Components/Menu/uimenu-item/uimenu-item.component';\r\nexport * from './lib/Components/Menu/uimenu-detail/uimenu-detail.component';\r\nexport * from './lib/Components/uibasic-table/uibasic-table.component';\r\nexport * from './lib/Components/uibasic-table-column-component/uibasic-table-column-component.component';\r\nexport * from './lib/Components/uicard-view/uicard-view.component';\r\nexport * from './lib/Components/uidetail-view/uidetail-view.component';\r\nexport * from './lib/Components/uialert/uialert.component';\r\nexport * from './lib/Components/uialerts/uialerts.component';\r\nexport * from './lib/Components/uiaccordion/uiaccordion.component';\r\nexport * from './lib/Components/uidivider/uidivider.component';\r\nexport * from './lib/Components/uichart/uichart.component';\r\nexport * from './lib/Components/uitimeline/uitimeline.component';\r\n\r\n\r\nexport * from './lib/Components/uinav-bar/uinav-bar.component';\r\nexport * from './lib/Directives/ul-header-cell.directive';\r\nexport * from './lib/Components/uistats/uistats.component';\r\nexport * from './lib/Components/uistat/uistat.component';\r\nexport * from './lib/Models/TableModels';\r\nexport * from './lib/Models/FormModel';\r\nexport * from './lib/Models/search-request';\r\nexport * from './lib/Models/search-filter';\r\nexport * from './lib/Models/search-response';\r\nexport * from './lib/Models/calendarModel';\r\nexport * from './lib/Models/FilterItemModel';\r\nexport * from './lib/Models/PageObservable';\r\n\r\nexport * from './lib/Components/uiform/uiform.component';\r\nexport * from './lib/Services/CommonService';\r\nexport * from './lib/Components/uimodal-view/uimodal-view.component';\r\nexport * from './lib/Components/uinested-table-row/uinested-table-row.component';\r\nexport * from './lib/Components/uimodal-pop-up/uimodal-pop-up.component';\r\nexport * from './lib/Services/ModalService'\r\nexport * from './lib/Services/AlertService'\r\nexport * from  './lib/Components/uisidebar/uisidebar.component'\r\nexport * from './lib/Components/uitooltip/uitooltip.component'\r\nexport * from './lib/Components/uicalendar-view/uicalendar-view.component';\r\nexport * from './lib/Components/uifilter-item/uifilter-item.component';\r\nexport * from './lib/Components/uiadvanced-filter/uiadvanced-filter.component';\r\nexport * from './lib/Directives/ul-table-row.directive';\r\n\r\nexport * from './lib/Modules/ulalerts/ulalerts.module'\r\nexport * from './lib/Functions/CommonTableFunctions';\r\n\r\nexport * from './lib/Modules/ulinputs/ulinputs.module'\r\nexport * from './lib/Modules/ulmenu/ulmenu.module'\r\nexport * from './lib/Modules/ulmodal/ulmodal.module'\r\nexport * from './lib/Modules/ulstats/ulstats.module'\r\nexport * from './lib/Modules/ultable/ultable.module'\r\nexport * from './lib/Modules/ultabs/ultabs.module'\r\nexport * from './lib/Modules/ulviews/ulviews.module'\r\nexport * from './lib/Pipes/LocalDatePipe'\r\nexport * from './lib/Modules/ulcommon/ulcommon.module'\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}