{"version":3,"file":"satvasoftech-simplify-angular.mjs","sources":["../../../packages/simplify-angular/src/lib/utilities/simple-result.ts","../../../packages/simplify-angular/src/lib/utilities/simple-event-execution-result.ts","../../../packages/simplify-angular/src/lib/configs/enum.ts","../../../packages/simplify-angular/src/lib/configs/constants.ts","../../../packages/simplify-angular/src/lib/utilities/simple-logger.ts","../../../packages/simplify-angular/src/lib/utilities/simple-extension-methods.ts","../../../packages/simplify-angular/src/lib/utilities/simplify.ts","../../../packages/simplify-angular/src/lib/utilities/simple-events.ts","../../../packages/simplify-angular/src/lib/utilities/simple-storage.ts","../../../packages/simplify-angular/src/lib/utilities/simple-http.ts","../../../packages/simplify-angular/src/lib/services/components-register.service.ts","../../../packages/simplify-angular/src/lib/database/simple-database.ts","../../../packages/simplify-angular/src/lib/services/data-dictionary.service.ts","../../../packages/simplify-angular/src/lib/services/dynamic-component.service.ts","../../../packages/simplify-angular/src/lib/services/simple-activity-detection.service.ts","../../../packages/simplify-angular/src/lib/configs/models.ts","../../../packages/simplify-angular/src/lib/services/simple-alert.service.ts","../../../packages/simplify-angular/src/lib/services/viewport.service.ts","../../../packages/simplify-angular/src/lib/services/simplify.service.ts","../../../packages/simplify-angular/src/lib/_base/simple-base-class.ts","../../../packages/simplify-angular/src/lib/_base/simple-base-for-input.component.ts","../../../packages/simplify-angular/src/lib/components/buttons/simple-sort-button/simple-sort-button.component.ts","../../../packages/simplify-angular/src/lib/components/buttons/simple-sort-button/simple-sort-button.component.html","../../../packages/simplify-angular/src/lib/services/app-browser.service.ts","../../../packages/simplify-angular/src/lib/components/html-print-preview/html-print-preview.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/filter-input/filter-input.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/filter-input/filter-input.component.html","../../../packages/simplify-angular/src/lib/configs/svgs.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input/simple-input.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input/simple-input.component.html","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload-preview-empty/simple-input-file-upload-preview-empty.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload-preview-empty/simple-input-file-upload-preview-empty.component.html","../../../packages/simplify-angular/src/lib/components/simple-file-preview/simple-file-preview.component.ts","../../../packages/simplify-angular/src/lib/components/simple-file-preview/simple-file-preview.component.html","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload.component.html","../../../packages/simplify-angular/src/lib/components/simple-dynamic-component/simple-dynamic-component.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-database-input/simple-database-input-template/simple-database-input-element/simple-database-input-element.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-database-input/simple-database-input-template/simple-database-input-element/simple-database-input-element.component.html","../../../packages/simplify-angular/src/lib/utilities/simple-data-dictionary.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-select/simple-input-select.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-select/simple-input-select.component.html","../../../packages/simplify-angular/src/lib/components/inputs/simple-database-input/simple-database-input-template/simple-database-input-template.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-database-input/simple-database-input-template/simple-database-input-template.component.html","../../../packages/simplify-angular/src/lib/utilities/simple-database-input.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-database-input/simple-database-input.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-database-input/simple-database-input.component.html","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-date/simple-input-date.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-date/simple-input-date.component.html","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/auto-simple-input/auto-simple-input.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/auto-simple-input/auto-simple-input.component.html","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-check/simple-input-check.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-check/simple-input-check.component.html","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-key-value-pair/simple-input-key-value-pair.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-textarea/simple-input-textarea.component.ts","../../../packages/simplify-angular/src/lib/components/inputs/simple-inputs/simple-input-textarea/simple-input-textarea.component.html","../../../packages/simplify-angular/src/lib/services/ajax.service.ts","../../../packages/simplify-angular/src/lib/components/repeater/repeater.component.ts","../../../packages/simplify-angular/src/lib/components/repeater/repeater.component.html","../../../packages/simplify-angular/src/lib/utilities/simple-data-operations.ts","../../../packages/simplify-angular/src/lib/components/records-list/records-list.component.ts","../../../packages/simplify-angular/src/lib/components/records-list/records-list.component.html","../../../packages/simplify-angular/src/lib/components/simple-collapsible-container/simple-collapsible-container.component.ts","../../../packages/simplify-angular/src/lib/components/simple-collapsible-container/simple-collapsible-container.component.html","../../../packages/simplify-angular/src/lib/directives/templates.directive.ts","../../../packages/simplify-angular/src/lib/components/simple-conversation-form/simple-conversation-form-input/simple-conversation-form-input.component.ts","../../../packages/simplify-angular/src/lib/components/simple-conversation-form/simple-conversation-form-input/simple-conversation-form-input.component.html","../../../packages/simplify-angular/src/lib/components/simple-conversation-form/simple-conversation-form.component.ts","../../../packages/simplify-angular/src/lib/components/simple-conversation-form/simple-conversation-form.component.html","../../../packages/simplify-angular/src/lib/components/simple-fields-customizer/simple-fields-customizer.component.ts","../../../packages/simplify-angular/src/lib/components/simple-fields-customizer/simple-fields-customizer.component.html","../../../packages/simplify-angular/src/lib/components/simple-filters/simple-filters.component.ts","../../../packages/simplify-angular/src/lib/components/simple-filters/simple-filters.component.html","../../../packages/simplify-angular/src/lib/components/simple-form/simple-form.component.ts","../../../packages/simplify-angular/src/lib/components/simple-iframe-content/simple-iframe-content.component.ts","../../../packages/simplify-angular/src/lib/components/simple-iframe-content/simple-iframe-content.component.html","../../../packages/simplify-angular/src/lib/components/simple-repeating-items/simple-repeating-items.component.ts","../../../packages/simplify-angular/src/lib/components/simple-repeater/simple-repeater.component.ts","../../../packages/simplify-angular/src/lib/directives/simple-resize.directive.ts","../../../packages/simplify-angular/src/lib/components/simple-records-list/simple-records-list.component.ts","../../../packages/simplify-angular/src/lib/components/simple-records-list/simple-records-list.component.html","../../../packages/simplify-angular/src/lib/configs/simplify-configurations.ts","../../../packages/simplify-angular/src/lib/directives/in-viewport.directive.ts","../../../packages/simplify-angular/src/lib/directives/remove-component-tag.directive.ts","../../../packages/simplify-angular/src/lib/directives/simple-auto-focus-element.directive.ts","../../../packages/simplify-angular/src/lib/directives/simple-comment-element-tag.directive.ts","../../../packages/simplify-angular/src/lib/directives/simple-context-menu-template.directive.ts","../../../packages/simplify-angular/src/lib/directives/simple-repeating-item.directive.ts","../../../packages/simplify-angular/src/lib/directives/simple-runtime-html.directive.ts","../../../packages/simplify-angular/src/lib/directives/simple-templates-list.directive.ts","../../../packages/simplify-angular/src/lib/mixins/lifecycle-multi-listener.mixin.ts","../../../packages/simplify-angular/src/lib/services/printing.service.ts","../../../packages/simplify-angular/src/lib/services/simple-runtime.service.ts","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid-column/simple-datagrid-column.component.ts","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid-column/simple-datagrid-column.component.html","../../../packages/simplify-angular/src/lib/_base/simple-base-repeater.component.ts","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid-column-head/simple-datagrid-column-head.component.ts","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid-column-head/simple-datagrid-column-head.component.html","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid-cell/simple-datagrid-cell.component.ts","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid-cell/simple-datagrid-cell.component.html","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid-row/simple-datagrid-row.component.ts","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid-row/simple-datagrid-row.component.html","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid/simple-datagrid.component.ts","../../../packages/simplify-angular/src/lib/simple-datagrid/components/simple-datagrid/simple-datagrid.component.html","../../../packages/simplify-angular/src/lib/simplify-angular.module.ts","../../../packages/simplify-angular/src/lib/simple-datagrid/simple-datagrid.module.ts","../../../packages/simplify-angular/src/lib/simple-pagination/simple-pagination/simple-pagination.component.ts","../../../packages/simplify-angular/src/lib/simple-pagination/simple-pagination/simple-pagination.component.html","../../../packages/simplify-angular/src/lib/simple-pagination/simple-pagination.module.ts","../../../packages/simplify-angular/src/lib/utilities/number-to-words.ts","../../../packages/simplify-angular/src/lib/utilities/simple-database-column.ts","../../../packages/simplify-angular/src/lib/utilities/simple-email.ts","../../../packages/simplify-angular/src/lib/utilities/simple-functions.ts","../../../packages/simplify-angular/src/public-api.ts","../../../packages/simplify-angular/src/satvasoftech-simplify-angular.ts"],"sourcesContent":["import { SimpleLogger } from \"./simple-logger\";\r\n\r\nexport interface SimpleResultValueParams {\r\n  logException?: boolean,\r\n  logger?: SimpleLogger,\r\n  message?: string,\r\n  stackTrace?: Error,\r\n  value?: any,\r\n\r\n}\r\n\r\nexport class SimpleResult {\r\n  static readonly codeNothingExecuted = 0;\r\n  static readonly codeSuccess = 1;\r\n  static readonly codeFailure = -1;\r\n  static readonly codeException = -2;\r\n\r\n  static readonly keyCode = \"code\";\r\n  static readonly keyMessage = \"message\";\r\n  static readonly keyOtherDetails = \"other_details\";\r\n  static readonly keyStatus = \"status\";\r\n  static readonly keyValue = \"value\";\r\n\r\n  exception: any;\r\n  stackTrace?: Error;\r\n  logger?: SimpleLogger;\r\n  code: number = SimpleResult.codeNothingExecuted;\r\n  message: any = \"\";\r\n  status: string = \"failure\";\r\n  value: any;\r\n  otherDetails: Record<string, any> = {};\r\n  log: any[] = [];\r\n\r\n  static fromJson(mapData: Record<string, any>): SimpleResult {\r\n    const instance = new SimpleResult();\r\n    instance.setValuesFromMap(mapData);\r\n    return instance;\r\n  }\r\n\r\n  get isException(): boolean {\r\n    return this.status === \"failure\" && this.code === SimpleResult.codeException;\r\n  }\r\n\r\n  get isFailure(): boolean {\r\n    return this.status === \"failure\";\r\n  }\r\n\r\n  get isSuccess(): boolean {\r\n    return this.status === \"success\";\r\n  }\r\n\r\n  appendResultLog(result: SimpleResult) {\r\n    this.log.push(...result.log);\r\n  }\r\n\r\n  prependResultLog(result: SimpleResult) {\r\n    this.log.unshift(...result.log);\r\n  }\r\n\r\n  setFromResult(result: SimpleResult) {\r\n    this.status = result.status;\r\n    this.message = result.message;\r\n    this.code = result.code;\r\n    if (this.isException) {\r\n      this.exception = result.exception;\r\n      this.message = result.message;\r\n    } else if (this.isSuccess) {\r\n      this.value = result.value;\r\n    }\r\n  }\r\n\r\n  setSuccess(params: SimpleResultValueParams = {}) {\r\n    const { value, message, logger } = params;\r\n    this.status = \"success\";\r\n    this.code = SimpleResult.codeSuccess;\r\n    if (value !== undefined) {\r\n      this.value = value;\r\n    }\r\n    if (message) {\r\n      this.message = message;\r\n      logger?.success([message]);\r\n      this.logger?.success([message]);\r\n    }\r\n  }\r\n\r\n  setFailure(params: SimpleResultValueParams = {}) {\r\n    const { message, logger } = params;\r\n    this.status = \"failure\";\r\n    this.code = SimpleResult.codeFailure;\r\n    if (message) {\r\n      this.message = message;\r\n      logger?.error([message]);\r\n      this.logger?.error([message]);\r\n    }\r\n  }\r\n\r\n  setException(\r\n    exception: any,\r\n    params: SimpleResultValueParams = {}\r\n  ) {\r\n    const { stackTrace, message, logException = true, logger } = params;\r\n    this.code = SimpleResult.codeException;\r\n    this.exception = exception;\r\n    this.stackTrace = stackTrace;\r\n    this.message = message || exception.toString();\r\n    logger?.error([exception, stackTrace]);\r\n    this.logger?.error([exception, stackTrace]);\r\n  }\r\n\r\n  setValuesFromMap(mapData: Record<string, any>) {\r\n    if (SimpleResult.keyCode in mapData) {\r\n      this.code = mapData[SimpleResult.keyCode];\r\n    }\r\n    if (SimpleResult.keyMessage in mapData) {\r\n      this.message = mapData[SimpleResult.keyMessage];\r\n    }\r\n    if (SimpleResult.keyOtherDetails in mapData) {\r\n      this.otherDetails = mapData[SimpleResult.keyOtherDetails];\r\n    }\r\n    if (SimpleResult.keyStatus in mapData) {\r\n      this.status = mapData[SimpleResult.keyStatus];\r\n    }\r\n    if (SimpleResult.keyValue in mapData) {\r\n      this.value = mapData[SimpleResult.keyValue];\r\n    }\r\n  }\r\n\r\n  toJson(): Record<string, any> {\r\n    return {\r\n      [SimpleResult.keyCode]: this.code,\r\n      [SimpleResult.keyMessage]: this.message,\r\n      [SimpleResult.keyOtherDetails]: this.otherDetails,\r\n      [SimpleResult.keyStatus]: this.status,\r\n      [SimpleResult.keyValue]: this.value,\r\n    };\r\n  }\r\n\r\n  toString(): string {\r\n    return JSON.stringify(this.toJson());\r\n  }\r\n}\r\n\r\n","import { SimpleResult } from \"./simple-result\";\r\n\r\nexport class SimpleEventExecutionResult extends SimpleResult {\r\n    static keyHasResults = \"has_results\";\r\n    hasResults: boolean = false;\r\n    results: any = {};\r\n\r\n    override toJson(): any {\r\n        let result: any = super.toJson();\r\n        result[SimpleEventExecutionResult.keyHasResults] = this.hasResults;\r\n        return result;\r\n    }\r\n\r\n}\r\n","export enum ApiResponseField {\r\n  message = 'message',\r\n  error = 'error',\r\n  record = 'record',\r\n  records = 'records',\r\n  status = 'status',\r\n}\r\n\r\nexport enum ApiResponseStatus {\r\n  success = 'success',\r\n  failure = 'failure',\r\n}\r\n\r\nexport enum AppBrowserType {\r\n  cefBrowser = \"cefBrowser\",\r\n  webviewBrowser = \"webviewBrowser\"\r\n}\r\n\r\nexport enum FileExtension {\r\n  Aac = 'aac',\r\n  Aaf = 'aaf',\r\n  Aca = 'aca',\r\n  Accdb = 'accdb',\r\n  Accde = 'accde',\r\n  Accdt = 'accdt',\r\n  Acx = 'acx',\r\n  Adt = 'adt',\r\n  Adts = 'adts',\r\n  Afm = 'afm',\r\n  Ai = 'ai',\r\n  Aif = 'aif',\r\n  Aifc = 'aifc',\r\n  Aiff = 'aiff',\r\n  Application = 'application',\r\n  Art = 'art',\r\n  Asd = 'asd',\r\n  Asf = 'asf',\r\n  Asi = 'asi',\r\n  Asm = 'asm',\r\n  Asr = 'asr',\r\n  Asx = 'asx',\r\n  Atom = 'atom',\r\n  Au = 'au',\r\n  Avi = 'avi',\r\n  Axs = 'axs',\r\n  Bas = 'bas',\r\n  Bcpio = 'bcpio',\r\n  Bin = 'bin',\r\n  Bmp = 'bmp',\r\n  C = 'c',\r\n  Cab = 'cab',\r\n  Calx = 'calx',\r\n  Cat = 'cat',\r\n  Cdf = 'cdf',\r\n  Chm = 'chm',\r\n  Class = 'class',\r\n  Clp = 'clp',\r\n  Cmx = 'cmx',\r\n  Cnf = 'cnf',\r\n  Cod = 'cod',\r\n  Cpio = 'cpio',\r\n  Cpp = 'cpp',\r\n  Crd = 'crd',\r\n  Crl = 'crl',\r\n  Crt = 'crt',\r\n  Csh = 'csh',\r\n  Css = 'css',\r\n  Csv = 'csv',\r\n  Cur = 'cur',\r\n  Dcr = 'dcr',\r\n  Deploy = 'deploy',\r\n  Der = 'der',\r\n  Dib = 'dib',\r\n  Dir = 'dir',\r\n  Disco = 'disco',\r\n  Dll = 'dll',\r\n  Dllconfig = 'dllconfig',\r\n  Dlm = 'dlm',\r\n  Doc = 'doc',\r\n  Docm = 'docm',\r\n  Docx = 'docx',\r\n  Dot = 'dot',\r\n  Dotm = 'dotm',\r\n  Dotx = 'dotx',\r\n  Dsp = 'dsp',\r\n  Dtd = 'dtd',\r\n  Dvi = 'dvi',\r\n  DvrMs = 'dvr_ms',\r\n  Dwf = 'dwf',\r\n  Dwp = 'dwp',\r\n  Dxr = 'dxr',\r\n  Eml = 'eml',\r\n  Emz = 'emz',\r\n  Eot = 'eot',\r\n  Eps = 'eps',\r\n  Etx = 'etx',\r\n  Evy = 'evy',\r\n  Exe = 'exe',\r\n  Execonfig = 'execonfig',\r\n  F90 = \"f90\",\r\n  Fbx = \"fbx\",\r\n  Fdf = 'fdf',\r\n  Fif = 'fif',\r\n  Fla = 'fla',\r\n  Flac = 'flac',\r\n  Flf = 'Flf',\r\n  Flr = 'flr',\r\n  Flv = 'flv',\r\n  Fox = 'fox',\r\n  Fpx = 'fpx',\r\n  Fst = 'fst',\r\n  Ftl = 'ftl',\r\n  Ftn = 'ftn',\r\n  Gbx = 'gbx',\r\n  Gdb = 'gdb',\r\n  Gds = 'gds',\r\n  Gif = 'gif',\r\n  Git = 'git',\r\n  Gitignore = 'gitignore',\r\n  Gpx = 'gpx',\r\n  Gsi = 'gsi',\r\n  Gtar = 'gtar',\r\n  Gz = 'gz',\r\n  H = 'h',\r\n  Har = 'har',\r\n  Hbm = 'hbm',\r\n  Hdd = 'hdd',\r\n  Hdf = 'hdf',\r\n  Hdml = 'hdml',\r\n  Hhc = 'hhc',\r\n  Hhk = 'hhk',\r\n  Hhp = 'hhp',\r\n  Hlp = 'hlp',\r\n  Hqx = 'hqx',\r\n  Hta = 'hta',\r\n  Htc = 'htc',\r\n  Htm = 'htm',\r\n  Html = 'html',\r\n  Htt = 'htt',\r\n  Hxt = 'hxt',\r\n  Iam = 'iam',\r\n  Icd = 'icd',\r\n  Ico = 'ico',\r\n  Ics = 'ics',\r\n  Idml = 'idml',\r\n  Ief = 'ief',\r\n  Iex = 'iex',\r\n  Iii = 'iii',\r\n  Inf = 'inf',\r\n  Ini = 'ini',\r\n  Ins = 'ins',\r\n  Ips = 'ips',\r\n  Isp = 'isp',\r\n  Its = 'its',\r\n  Iv = 'iv',\r\n  Ivf = 'ivf',\r\n  Jar = 'jar',\r\n  Java = 'java',\r\n  Jck = 'jck',\r\n  Jcz = 'jcz',\r\n  Jfif = 'jfif',\r\n  Jpb = 'jpb',\r\n  Jpe = 'jpe',\r\n  Jpeg = 'jpeg',\r\n  Jpg = 'jpg',\r\n  Js = 'js',\r\n  Json = 'json',\r\n  Jsonp = \"jsonp\",\r\n  Jsp = 'jsp',\r\n  Key = 'key',\r\n  Kml = 'kml',\r\n  Jsx = 'jsx',\r\n  Latex = 'latex',\r\n  Let = 'let',\r\n  Lit = 'lit',\r\n  Log = 'log',\r\n  Lpk = 'lpk',\r\n  Lsf = 'lsf',\r\n  Lsx = 'lsx',\r\n  Lua = 'lua',\r\n  Lzh = 'lzh',\r\n  Lzma = 'lzma',\r\n  M13 = 'm13',\r\n  M14 = 'm14',\r\n  M1v = 'm1v',\r\n  M2ts = 'm2ts',\r\n  M3u = 'm3u',\r\n  M4a = 'm4a',\r\n  M4b = 'm4d',\r\n  M4p = 'm4p',\r\n  M4v = 'm4v',\r\n  Man = 'man',\r\n  Manifest = 'manifest',\r\n  Map = 'map',\r\n  Md = 'md',\r\n  Mdb = 'mdb',\r\n  Mdp = 'mdp',\r\n  Me = 'me',\r\n  Mht = 'mht',\r\n  Mhtml = 'mhtml',\r\n  Mid = 'mid',\r\n  Mkv = 'mkv',\r\n  Midi = 'midi',\r\n  Mix = 'mix',\r\n  Mmf = 'mmf',\r\n  Mno = 'mno',\r\n  Mny = 'mny',\r\n  Mobi = 'mobi',\r\n  Mov = 'mov',\r\n  Movie = 'movie',\r\n  Mp2 = 'mp2',\r\n  Mp3 = 'mp3',\r\n  Mp4 = 'mp4',\r\n  Mp4a = 'mp4a',\r\n  Mp4v = 'mp4v',\r\n  Mpa = 'mpa',\r\n  Mpe = 'mpe',\r\n  Mpeg = 'mpeg',\r\n  Mpg = 'mpg',\r\n  Mpp = 'mpp',\r\n  Mpv2 = 'mpv2',\r\n  Ms = 'ms',\r\n  Msi = 'msi',\r\n  Mso = 'mso',\r\n  Mvb = 'mvb',\r\n  Mvc = 'mvc',\r\n  Nc = 'nc',\r\n  Nsc = 'nsc',\r\n  Nws = 'nws',\r\n  Ocx = 'ocx',\r\n  Oda = 'oda',\r\n  Odc = 'odc',\r\n  Odp = 'odp',\r\n  Ods = 'ods',\r\n  Odt = 'odt',\r\n  Oga = 'oga',\r\n  Ogg = 'ogg',\r\n  Ogv = 'ogv',\r\n  One = 'one',\r\n  Onea = 'onea',\r\n  Onetoc = 'onetoc',\r\n  Onetoc2 = 'onetoc2',\r\n  Onetmp = 'onetmp',\r\n  Onepkg = 'onepkg',\r\n  Osdx = 'osdx',\r\n  Otf = 'otf',\r\n  P10 = 'p10',\r\n  P12 = 'p12',\r\n  P7b = 'p7b',\r\n  P7c = 'p7c',\r\n  P7m = 'p7m',\r\n  P7r = 'p7r',\r\n  P7s = 'p7s',\r\n  Pbm = 'pbm',\r\n  Pcx = 'pcx',\r\n  Pcz = 'pcz',\r\n  Pdf = 'pdf',\r\n  Pem = 'pem',\r\n  Pfb = 'pfb',\r\n  Pfm = 'pfm',\r\n  Pfx = 'pfx',\r\n  Pgm = 'pgm',\r\n  Pkg = 'pkg',\r\n  Pko = 'pko',\r\n  Pl = 'pl',\r\n  Pma = 'pma',\r\n  Pmc = 'pmc',\r\n  Pml = 'pml',\r\n  Pmr = 'pmr',\r\n  Pmw = 'pmw',\r\n  Png = 'png',\r\n  Pnm = 'pnm',\r\n  Pnz = 'pnz',\r\n  Pot = 'pot',\r\n  Potm = 'potm',\r\n  Potx = 'potx',\r\n  Ppam = 'ppam',\r\n  Ppm = 'ppm',\r\n  Pps = 'pps',\r\n  Ppsm = 'ppsm',\r\n  Ppsx = 'ppsx',\r\n  Ppt = 'ppt',\r\n  Pptm = 'pptm',\r\n  Pptx = 'pptx',\r\n  Prf = 'prf',\r\n  Prm = 'prm',\r\n  Prx = 'prx',\r\n  Ps = 'ps',\r\n  Psd = 'psd',\r\n  Psm = 'psm',\r\n  Psp = 'psp',\r\n  Pub = 'pub',\r\n  Qt = 'qt',\r\n  Qtl = 'qtl',\r\n  Qxd = 'qxd',\r\n  Ra = 'ra',\r\n  Ram = 'ram',\r\n  Rar = 'rar',\r\n  Ras = 'ras',\r\n  Rd = 'rd',\r\n  Rf = 'rf',\r\n  Rgb = 'rgb',\r\n  Rm = 'rm',\r\n  Rmi = 'rmi',\r\n  Roff = 'roff',\r\n  Rpm = 'rpm',\r\n  Rtf = 'rtf',\r\n  Rtx = 'rtx',\r\n  Scd = 'scd',\r\n  Sct = 'sct',\r\n  Sea = 'sea',\r\n  Setpay = 'setpay',\r\n  Setreg = 'setreg',\r\n  Sgml = 'sgml',\r\n  Sh = 'sh',\r\n  Shar = 'shar',\r\n  Sit = 'sit',\r\n  Sldm = 'sldm',\r\n  Sldx = 'sldx',\r\n  Smd = 'smd',\r\n  Smi = 'smi',\r\n  Smx = 'smx',\r\n  Smz = 'smz',\r\n  Snd = 'snd',\r\n  Snp = 'snp',\r\n  Spc = 'spc',\r\n  Spl = 'spl',\r\n  Spx = 'spx',\r\n  Sql = 'sql',\r\n  Src = 'src',\r\n  Srt = 'srt',\r\n  Ssm = 'ssm',\r\n  Sst = 'sst',\r\n  Stl = 'stl',\r\n  Sv4cpio = 'sv4cpio',\r\n  Sv4crc = 'sv4crc',\r\n  Svg = 'svg',\r\n  Svgz = 'svgz',\r\n  Swf = 'swf',\r\n  Tar = 'tar',\r\n  Taz = 'taz',\r\n  Tcl = 'tcl',\r\n  Tex = 'tex',\r\n  Texi = 'texi',\r\n  Text = 'text',\r\n  Tgz = 'tgz',\r\n  Tiff = 'tiff',\r\n  Tif = 'tif',\r\n  Tsv = 'tsv',\r\n  Ts = 'ts',\r\n  Ttar = 'ttar',\r\n  Ttf = 'ttf',\r\n  Txt = 'txt',\r\n  Ubi = 'ubi',\r\n  Udl = 'udl',\r\n  Uif = 'uif',\r\n  Uix = 'uix',\r\n  Unv = 'unv',\r\n  Uos = 'uos',\r\n  Ust = 'ust',\r\n  Vb = 'vb',\r\n  Vbd = 'vbd',\r\n  Vbs = 'vbs',\r\n  Vcf = 'vcf',\r\n  Vcx = 'vcx',\r\n  Vdx = 'vdx',\r\n  Vp = 'vp',\r\n  Vsd = 'vsd',\r\n  Vst = 'vst',\r\n  Vss = 'vss',\r\n  Vstx = 'vstx',\r\n  Vx = 'vx',\r\n  Wa = 'wa',\r\n  Wav = 'wav',\r\n  Wax = 'wax',\r\n  Wb2 = 'wb2',\r\n  Wbmp = 'wbmp',\r\n  Weba = 'weba',\r\n  Webm = 'webm',\r\n  Webp = 'webp',\r\n  Wdx = 'wdx',\r\n  Wks = 'wks',\r\n  Wma = 'wma',\r\n  Wmf = 'wmf',\r\n  Wmv = 'wmv',\r\n  Wmz = 'wmz',\r\n  Woff = 'woff',\r\n  Woff2 = 'woff2',\r\n  Wpd = 'wpd',\r\n  Wps = 'wps',\r\n  Wri = 'wri',\r\n  Wsf = 'wsf',\r\n  Wtv = 'wtv',\r\n  X3d = 'x3d',\r\n  Xaml = 'xaml',\r\n  Xap = 'xap',\r\n  Xbm = 'xbm',\r\n  Xd = 'xd',\r\n  Xdp = 'xdp',\r\n  Xls = 'xls',\r\n  Xlsx = 'xlsx',\r\n  Xlt = 'xlt',\r\n  Xltx = 'xltx',\r\n  Xml = 'xml',\r\n  Xpm = 'xpm',\r\n  Xps = 'xps',\r\n  Xsl = 'xsl',\r\n  Xslt = 'xslt',\r\n  Xwd = 'xwd',\r\n  Xspf = 'xspf',\r\n  Xul = 'xul',\r\n  Yaml = 'yaml',\r\n  Yml = 'yml',\r\n  Zip = 'zip',\r\n  Zsh = 'zsh',\r\n  Zz = 'zz',\r\n  SevenZ = '7z',\r\n  ThreeGp = '3gp',\r\n  ThreeGpp = '3gpp',\r\n  ThreeGp2 = '3gp2',\r\n  ThreeG2 = '3g2',\r\n  ThreeTwoThree = '323',\r\n}\r\n\r\nexport enum FormatDate{\r\n  input = 'input',\r\n  display ='display'\r\n}\r\n\r\nexport enum FormatString{\r\n  lowercase ='lowercase',\r\n  uppercase = 'uppercase',\r\n}\r\n\r\nexport enum HttpMethod {\r\n  connect = 'CONNECT',\r\n  delete = 'DELETE',\r\n  get = 'GET',\r\n  head = 'HEAD',\r\n  options = 'OPTIONS',\r\n  patch = 'PATCH',\r\n  post = 'POST',\r\n  put = 'PUT',\r\n  trace = 'TRACE',\r\n}\r\n\r\nexport enum InputType {\r\n  checkBox = 'checkbox',\r\n  comboBox = 'combobox',\r\n  date = 'date',\r\n  dateTimeLocal = 'datetime-local',\r\n  email = 'email',\r\n  dateRange = 'daterange',\r\n  file = 'file',\r\n  label = 'label',\r\n  multiSelect = 'multi-select',\r\n  number = 'number',\r\n  password = 'password',\r\n  radio = 'radio',\r\n  select = 'select',\r\n  text = 'text',\r\n  textarea = 'textarea',\r\n  selectList = 'select-list'\r\n}\r\n\r\nexport enum SimpleAlertType {\r\n  sonner = 'sonner',\r\n  sweetAlert = 'sweetalert',\r\n  sweetAlertToast = 'sweetalert_toast',\r\n  toaster = 'toaster',\r\n}\r\n\r\nexport enum SimpleCollapseDirection{\r\n  btt = \"btt\",\r\n  ltr = \"ltr\",\r\n  rtl = \"rtl\",\r\n  ttb = \"ttb\"\r\n}\r\n\r\nexport enum SimpleConversationFormInputStatus {\r\n  pending = \"pending\",\r\n  completed = \"completed\",\r\n  skipped = \"skipped\",\r\n  active = \"active\",\r\n}\r\n","import { FileExtension } from \"./enum\";\r\nimport { getFileSvg } from \"./svgs\";\r\n\r\nexport const CSSUnits:any = {\r\n  \"px\":{\"value\":\"px\",\"label\":\"PX (Pixels)\"},\r\n  \"cm\":{\"value\":\"cm\",\"label\":\"CM (Centimeters)\"},\r\n  \"mm\":{\"value\":\"cm\",\"label\":\"CM (Millimeters)\"},\r\n  \"in\":{\"value\":\"in\",\"label\":\"CM (Inches)\"},\r\n  \"pt\":{\"value\":\"pt\",\"label\":\"PT (Points)\"},\r\n  \"pc\":{\"value\":\"pc\",\"label\":\"PC (Picas)\"},\r\n};\r\nexport const FileExtensions: any = {\r\n  [FileExtension.Aac]: { name: 'AAC Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Aaf]: { name: 'AAF Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Aca]: { name: 'ACA File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Accdb]: { name: 'Microsoft Access Database', type: 'document', svg: \"database\" },\r\n  [FileExtension.Accde]: { name: 'Microsoft Access Executable', type: 'document', svg: \"database\" },\r\n  [FileExtension.Accdt]: { name: 'Microsoft Access Database Template', type: 'document', svg: \"database\" },\r\n  [FileExtension.Acx]: { name: 'ACX File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Adt]: { name: 'ADT File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Adts]: { name: 'ADTS Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Afm]: { name: 'AFM Font File', type: 'font', svg: \"file\" },\r\n  [FileExtension.Ai]: { name: 'Adobe Illustrator File', type: 'image', svg: \"image\" },\r\n  [FileExtension.Aif]: { name: 'AIFF Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Aifc]: { name: 'AIFF-C Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Aiff]: { name: 'AIFF Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Application]: { name: 'Application File', type: 'executable', svg: \"file\" },\r\n  [FileExtension.Art]: { name: 'Art File', type: 'image', svg: \"image\" },\r\n  [FileExtension.Asd]: { name: 'AutoSave Document', type: 'document', svg: \"document\" },\r\n  [FileExtension.Asf]: { name: 'Advanced Streaming Format', type: 'video', svg: \"video\" },\r\n  [FileExtension.Asi]: { name: 'ASI File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Asm]: { name: 'Assembly File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Asr]: { name: 'ASR File', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Asx]: { name: 'ASX File', type: 'video', svg: \"video\" },\r\n  [FileExtension.Atom]: { name: 'Atom Feed', type: 'data', svg: \"data\" },\r\n  [FileExtension.Au]: { name: 'AU Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Avi]: { name: 'AVI Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Axs]: { name: 'AXS File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Bas]: { name: 'BAS File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Bcpio]: { name: 'BCPIO Archive', type: 'archive', svg: \"archive\" },\r\n  [FileExtension.Bin]: { name: 'Binary File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Bmp]: { name: 'Bitmap Image', type: 'image', svg: \"image\" },\r\n  [FileExtension.C]: { name: 'C Source Code', type: 'code', svg: \"code\" },\r\n  [FileExtension.Cab]: { name: 'CAB Archive', type: 'archive', svg: \"archive\" },\r\n  [FileExtension.Calx]: { name: 'Microsoft Excel CALX File', type: 'document', svg: \"table\" },\r\n  [FileExtension.Cat]: { name: 'Catalog File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Cdf]: { name: 'Common Data Format', type: 'data', svg: \"file\" },\r\n  [FileExtension.Chm]: { name: 'Compiled HTML Help', type: 'document', svg: \"document\" },\r\n  [FileExtension.Class]: { name: 'Java Class File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Clp]: { name: 'Clipboard File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Cmx]: { name: 'Corel Metafile Exchange', type: 'image', svg: \"image\" },\r\n  [FileExtension.Cnf]: { name: 'Configuration File', type: 'system', svg: \"system\" },\r\n  [FileExtension.Cod]: { name: 'COD File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Cpio]: { name: 'CPIO Archive', type: 'archive', svg: \"archive\" },\r\n  [FileExtension.Cpp]: { name: 'C++ Source Code', type: 'code', svg: \"code\" },\r\n  [FileExtension.Crd]: { name: 'Card File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Crl]: { name: 'Certificate Revocation List', type: 'data', svg: \"file\" },\r\n  [FileExtension.Crt]: { name: 'Certificate File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Csh]: { name: 'C Shell Script', type: 'code', svg: \"code\" },\r\n  [FileExtension.Css]: { name: 'Cascading Style Sheets', type: 'code', svg: \"css\" },\r\n  [FileExtension.Csv]: { name: 'Comma-Separated Values', type: 'document', svg: \"table\" },\r\n  [FileExtension.Cur]: { name: 'Cursor File', type: 'image', svg: \"image\" },\r\n  [FileExtension.Dcr]: { name: 'Director Resource', type: 'data', svg: \"file\" },\r\n  [FileExtension.Deploy]: { name: 'Deployment Descriptor', type: 'data', svg: \"file\" },\r\n  [FileExtension.Der]: { name: 'DER Encoded Certificate', type: 'data', svg: \"file\" },\r\n  [FileExtension.Dib]: { name: 'Device Independent Bitmap', type: 'image', svg: \"image\" },\r\n  [FileExtension.Dir]: { name: 'Directory File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Disco]: { name: 'Discovery File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Dll]: { name: 'Dynamic Link Library', type: 'executable', svg: \"file\" },\r\n  [FileExtension.Dllconfig]: { name: 'DLL Configuration File', type: 'system', svg: \"system\" },\r\n  [FileExtension.Dlm]: { name: 'Data Log Module', type: 'data', svg: \"file\" },\r\n  [FileExtension.Doc]: { name: 'Microsoft Word Document', type: 'document', svg: \"document\" },\r\n  [FileExtension.Docm]: { name: 'Microsoft Word Macro-Enabled Document', type: 'document', svg: \"document\" },\r\n  [FileExtension.Docx]: { name: 'Microsoft Word Document (OpenXML)', type: 'document', svg: \"document\" },\r\n  [FileExtension.Dot]: { name: 'Microsoft Word Template', type: 'document', svg: \"document\" },\r\n  [FileExtension.Dotm]: { name: 'Microsoft Word Macro-Enabled Template', type: 'document', svg: \"document\" },\r\n  [FileExtension.Dotx]: { name: 'Microsoft Word Template (OpenXML)', type: 'document', svg: \"document\" },\r\n  [FileExtension.Dsp]: { name: 'DSP File', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Dtd]: { name: 'Document Type Definition', type: 'code', svg: \"code\" },\r\n  [FileExtension.Dvi]: { name: 'DeVice Independent File', type: 'document', svg: \"document\" },\r\n  [FileExtension.DvrMs]: { name: 'Microsoft DVR-MS Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Dwf]: { name: 'Design Web Format', type: 'data', svg: \"file\" },\r\n  [FileExtension.Dwp]: { name: 'Dynamic Web Page', type: 'data', svg: \"file\" },\r\n  [FileExtension.Dxr]: { name: 'Director Movie File', type: 'video', svg: \"video\" },\r\n  [FileExtension.Eml]: { name: 'Email File', type: 'document', svg: \"email\" },\r\n  [FileExtension.Emz]: { name: 'Compressed EMF File', type: 'image', svg: \"image\" },\r\n  [FileExtension.Eot]: { name: 'Embedded OpenType Font', type: 'font', svg: \"font\" },\r\n  [FileExtension.Eps]: { name: 'Encapsulated PostScript', type: 'image', svg: \"image\" },\r\n  [FileExtension.Etx]: { name: 'EText File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Evy]: { name: 'Evy File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Exe]: { name: 'Executable File', type: 'executable', svg: \"executable\" },\r\n  [FileExtension.F90]: { name: 'Fortran 90 Source File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Fbx]: { name: 'FBX File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Fdf]: { name: 'Form Data Format', type: 'document', svg: \"document\" },\r\n  [FileExtension.Flf]: { name: 'Flf File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Fox]: { name: 'FoxPro Database File', type: 'document', svg: \"database\" },\r\n  [FileExtension.Fpx]: { name: 'FlashPix Image', type: 'image', svg: \"image\" },\r\n  [FileExtension.Fst]: { name: 'FST File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Ftl]: { name: 'FTL File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Ftn]: { name: 'FTN File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Gbx]: { name: 'GBX File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Gdb]: { name: 'GDB File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Gds]: { name: 'GDS File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Gitignore]: { name: 'Git Ignore File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Gpx]: { name: 'GPS Exchange File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Gsi]: { name: 'GSI File', type: 'data', svg: \"file\" },\r\n  [FileExtension.H]: { name: 'Header File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Har]: { name: 'HTTP Archive File', type: 'data', svg: \"Wmv\" },\r\n  [FileExtension.Hbm]: { name: 'Hibernate Mapping File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Hdd]: { name: 'HDD File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Htm]: { name: 'HTML File', type: 'document', svg: \"html\" },\r\n  [FileExtension.Html]: { name: 'HTML File', type: 'document', svg: \"html\" },\r\n  [FileExtension.Iam]: { name: 'IAM File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Icd]: { name: 'ICD File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Ics]: { name: 'iCalendar File', type: 'data', svg: \"calendar\" },\r\n  [FileExtension.Idml]: { name: 'InDesign Markup Language', type: 'document', svg: \"code\" },\r\n  [FileExtension.Iex]: { name: 'IEX File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Ips]: { name: 'IPS File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Its]: { name: 'ITS File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Iv]: { name: 'IV File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Java]: { name: 'Java Source File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Jpeg]: { name: 'JPEG Image', type: 'image', svg: \"image\" },\r\n  [FileExtension.Jpg]: { name: 'JPEG Image', type: 'image', svg: \"image\" },\r\n  [FileExtension.Json]: { name: 'JSON File', type: 'data', svg: \"json\" },\r\n  [FileExtension.Jsonp]: { name: 'JSONP File', type: 'data', svg: \"json\" },\r\n  [FileExtension.Jsp]: { name: 'JavaServer Pages File', type: 'code', svg: \"code\" },\r\n  [FileExtension.Key]: { name: 'Keynote Presentation', type: 'document', svg: \"presentation\" },\r\n  [FileExtension.Kml]: { name: 'KML File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Let]: { name: 'Let File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Lua]: { name: 'Lua Script', type: 'code', svg: \"code\" },\r\n  [FileExtension.Lzma]: { name: 'LZMA Compressed File', type: 'archive', svg: \"archive\" },\r\n  [FileExtension.M4a]: { name: 'MPEG-4 Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.M4b]: { name: 'MPEG-4 Audio Book', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.M4v]: { name: 'MPEG-4 Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.M4p]: { name: 'MPEG-4 Protected Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Mdb]: { name: 'Microsoft Access Database', type: 'document', svg: \"database\" },\r\n  [FileExtension.Mid]: { name: 'MIDI File', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Mkv]: { name: 'Matroska Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Mobi]: { name: 'Mobipocket eBook', type: 'document', svg: \"ebook\" },\r\n  [FileExtension.Mov]: { name: 'QuickTime Movie', type: 'video', svg: \"video\" },\r\n  [FileExtension.Mp3]: { name: 'MP3 Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Mp4]: { name: 'MPEG-4 Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Mp4a]: { name: 'MPEG-4 Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Mp4v]: { name: 'MPEG-4 Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Mpg]: { name: 'MPEG Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Msi]: { name: 'Microsoft Installer File', type: 'executable', svg: \"file\" },\r\n  [FileExtension.Odp]: { name: 'OpenDocument Presentation', type: 'document', svg: \"presentation\" },\r\n  [FileExtension.Ods]: { name: 'OpenDocument Spreadsheet', type: 'document', svg: \"table\" },\r\n  [FileExtension.Odt]: { name: 'OpenDocument Text', type: 'document', svg: \"document\" },\r\n  [FileExtension.P7b]: { name: 'PKCS#7 Certificate', type: 'data', svg: \"certificate\" },\r\n  [FileExtension.Pem]: { name: 'Privacy Enhanced Mail', type: 'data', svg: \"file\" },\r\n  [FileExtension.Pkg]: { name: 'Package File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Pl]: { name: 'Perl Script', type: 'code', svg: \"code\" },\r\n  [FileExtension.Png]: { name: 'PNG Image', type: 'image', svg: \"image\" },\r\n  [FileExtension.Ppt]: { name: 'PowerPoint Presentation', type: 'document', svg: \"presentation\" },\r\n  [FileExtension.Pptx]: { name: 'PowerPoint Presentation (OpenXML)', type: 'document', svg: \"presentation\" },\r\n  [FileExtension.Psd]: { name: 'Photoshop Document', type: 'image', svg: \"image\" },\r\n  [FileExtension.Rar]: { name: 'RAR Archive', type: 'archive', svg: \"archive\" },\r\n  [FileExtension.Rd]: { name: 'R Markdown File', type: 'document', svg: \"document\" },\r\n  [FileExtension.Rtf]: { name: 'Rich Text Format', type: 'document', svg: \"document\" },\r\n  [FileExtension.Sql]: { name: 'SQL Script File', type: 'script', svg: \"database\" },\r\n  [FileExtension.Srt]: { name: 'SubRip Subtitle', type: 'subtitle', svg: \"file\" },\r\n  [FileExtension.Svg]: { name: 'Scalable Vector Graphics', type: 'image', svg: \"image\" },\r\n  [FileExtension.Tar]: { name: 'TAR Archive', type: 'archive', svg: \"archive\" },\r\n  [FileExtension.Tiff]: { name: 'TIFF Image', type: 'image', svg: \"image\" },\r\n  [FileExtension.Txt]: { name: 'Text File', type: 'document', svg: \"text\" },\r\n  [FileExtension.Vcf]: { name: 'vCard File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Wa]: { name: 'WA File', type: 'data', svg: \"file\" },\r\n  [FileExtension.Wav]: { name: 'WAV Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Webm]: { name: 'WebM Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Webp]: { name: 'WebP Image', type: 'image', svg: \"image\" },\r\n  [FileExtension.Wma]: { name: 'Windows Media Audio', type: 'audio', svg: \"audio\" },\r\n  [FileExtension.Wmv]: { name: 'Windows Media Video', type: 'video', svg: \"video\" },\r\n  [FileExtension.Xml]: { name: 'XML File', type: 'data', svg: \"code\" },\r\n  [FileExtension.Xls]: { name: 'Microsoft Excel File', type: 'document', svg: \"table\" },\r\n  [FileExtension.Xlsx]: { name: 'Microsoft Excel File (OpenXML)', type: 'document', svg: \"table\" },\r\n  [FileExtension.Zip]: { name: 'ZIP Archive', type: 'archive', svg: \"archive\" },\r\n};\r\n;\r\n\r\nexport const MimeTypes:any = {\r\n  \"323\": \"text/h323\",\r\n  \"3g2\": \"video/3gpp2\",\r\n  \"3gp2\": \"video/3gpp2\",\r\n  \"3gp\": \"video/3gpp\",\r\n  \"3gpp\": \"video/3gpp\",\r\n  \"aaf\": \"application/octet-stream\",\r\n  \"aac\": \"audio/aac\",\r\n  \"aca\": \"application/octet-stream\",\r\n  \"accdb\": \"application/msaccess\",\r\n  \"accde\": \"application/msaccess\",\r\n  \"accdt\": \"application/msaccess\",\r\n  \"acx\": \"application/internet-property-stream\",\r\n  \"adt\": \"audio/vnd.dlna.adts\",\r\n  \"adts\": \"audio/vnd.dlna.adts\",\r\n  \"afm\": \"application/octet-stream\",\r\n  \"ai\": \"application/postscript\",\r\n  \"aif\": \"audio/x-aiff\",\r\n  \"aifc\": \"audio/aiff\",\r\n  \"aiff\": \"audio/aiff\",\r\n  \"application\": \"application/x-ms-application\",\r\n  \"art\": \"image/x-jg\",\r\n  \"asd\": \"application/octet-stream\",\r\n  \"asf\": \"video/x-ms-asf\",\r\n  \"asi\": \"application/octet-stream\",\r\n  \"asm\": \"text/plain\",\r\n  \"asr\": \"video/x-ms-asf\",\r\n  \"asx\": \"video/x-ms-asf\",\r\n  \"atom\": \"application/atom+xml\",\r\n  \"au\": \"audio/basic\",\r\n  \"avi\": \"video/avi\",\r\n  \"axs\": \"application/olescript\",\r\n  \"bas\": \"text/plain\",\r\n  \"bcpio\": \"application/x-bcpio\",\r\n  \"bin\": \"application/octet-stream\",\r\n  \"bmp\": \"image/bmp\",\r\n  \"c\": \"text/plain\",\r\n  \"cab\": \"application/vnd.ms-cab-compressed\",\r\n  \"calx\": \"application/vnd.ms-office.calx\",\r\n  \"cat\": \"application/vnd.ms-pki.seccat\",\r\n  \"cdf\": \"application/x-cdf\",\r\n  \"chm\": \"application/octet-stream\",\r\n  \"class\": \"application/x-java-applet\",\r\n  \"clp\": \"application/x-msclip\",\r\n  \"cmx\": \"image/x-cmx\",\r\n  \"cnf\": \"text/plain\",\r\n  \"cod\": \"image/cis-cod\",\r\n  \"cpio\": \"application/x-cpio\",\r\n  \"cpp\": \"text/plain\",\r\n  \"crd\": \"application/x-mscardfile\",\r\n  \"crl\": \"application/pkix-crl\",\r\n  \"crt\": \"application/x-x509-ca-cert\",\r\n  \"csh\": \"application/x-csh\",\r\n  \"css\": \"text/css\",\r\n  \"csv\": \"application/octet-stream\",\r\n  \"cur\": \"application/octet-stream\",\r\n  \"dcr\": \"application/x-director\",\r\n  \"deploy\": \"application/octet-stream\",\r\n  \"der\": \"application/x-x509-ca-cert\",\r\n  \"dib\": \"image/bmp\",\r\n  \"dir\": \"application/x-director\",\r\n  \"disco\": \"text/xml\",\r\n  \"dll\": \"application/x-msdownload\",\r\n  \"dllconfig\": \"text/xml\",\r\n  \"dlm\": \"text/dlm\",\r\n  \"doc\": \"application/msword\",\r\n  \"docm\": \"application/vnd.ms-word.document.macroEnabled.12\",\r\n  \"docx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n  \"dot\": \"application/msword\",\r\n  \"dotm\": \"application/vnd.ms-word.template.macroEnabled.12\",\r\n  \"dotx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\",\r\n  \"dsp\": \"application/octet-stream\",\r\n  \"dtd\": \"text/xml\",\r\n  \"dvi\": \"application/x-dvi\",\r\n  \"dvr_ms\": \"video/x-ms-dvr\",\r\n  \"dwf\": \"drawing/x-dwf\",\r\n  \"dwp\": \"application/octet-stream\",\r\n  \"dxr\": \"application/x-director\",\r\n  \"eml\": \"message/rfc822\",\r\n  \"emz\": \"application/octet-stream\",\r\n  \"eot\": \"application/vnd.ms-fontobject\",\r\n  \"eps\": \"application/postscript\",\r\n  \"etx\": \"text/x-setext\",\r\n  \"evy\": \"application/envoy\",\r\n  \"exe\": \"application/octet-stream\",\r\n  \"execonfig\": \"text/xml\",\r\n  \"fdf\": \"application/vnd.fdf\",\r\n  \"fif\": \"application/fractals\",\r\n  \"fla\": \"application/octet-stream\",\r\n  \"flr\": \"x-world/x-vrml\",\r\n  \"flv\": \"video/x-flv\",\r\n  \"gif\": \"image/gif\",\r\n  \"gtar\": \"application/x-gtar\",\r\n  \"gz\": \"application/x-gzip\",\r\n  \"h\": \"text/plain\",\r\n  \"hdf\": \"application/x-hdf\",\r\n  \"hdml\": \"text/x-hdml\",\r\n  \"hhc\": \"application/x-oleobject\",\r\n  \"hhk\": \"application/octet-stream\",\r\n  \"hhp\": \"application/octet-stream\",\r\n  \"hlp\": \"application/winhlp\",\r\n  \"hqx\": \"application/mac-binhex40\",\r\n  \"hta\": \"application/hta\",\r\n  \"htc\": \"text/x-component\",\r\n  \"htm\": \"text/html\",\r\n  \"html\": \"text/html\",\r\n  \"htt\": \"text/webviewhtml\",\r\n  \"hxt\": \"text/html\",\r\n  \"ico\": \"image/x-icon\",\r\n  \"ics\": \"text/calendar\",\r\n  \"ief\": \"image/ief\",\r\n  \"iii\": \"application/x-iphone\",\r\n  \"inf\": \"application/octet-stream\",\r\n  \"ins\": \"application/x-internet-signup\",\r\n  \"isp\": \"application/x-internet-signup\",\r\n  \"ivf\": \"video/x-ivf\",\r\n  \"jar\": \"application/java-archive\",\r\n  \"java\": \"application/octet-stream\",\r\n  \"jck\": \"application/liquidmotion\",\r\n  \"jcz\": \"application/liquidmotion\",\r\n  \"jfif\": \"image/pjpeg\",\r\n  \"jpb\": \"application/octet-stream\",\r\n  \"jpe\": \"image/jpeg\",\r\n  \"jpeg\": \"image/jpeg\",\r\n  \"jpg\": \"image/jpeg\",\r\n  \"js\": \"application/javascript\",\r\n  \"jsx\": \"text/jscript\",\r\n  \"latex\": \"application/x-latex\",\r\n  \"lit\": \"application/x-ms-reader\",\r\n  \"lpk\": \"application/octet-stream\",\r\n  \"lsf\": \"video/x-la-asf\",\r\n  \"lsx\": \"video/x-la-asf\",\r\n  \"lzh\": \"application/octet-stream\",\r\n  \"m13\": \"application/x-msmediaview\",\r\n  \"m14\": \"application/x-msmediaview\",\r\n  \"m1v\": \"video/mpeg\",\r\n  \"m2ts\": \"video/vnd.dlna.mpeg-tts\",\r\n  \"m3u\": \"audio/x-mpegurl\",\r\n  \"m4a\": \"audio/mp4\",\r\n  \"m4v\": \"video/mp4\",\r\n  \"man\": \"application/x-troff-man\",\r\n  \"manifest\": \"application/x-ms-manifest\",\r\n  \"map\": \"text/plain\",\r\n  \"mdb\": \"application/x-msaccess\",\r\n  \"mdp\": \"application/octet-stream\",\r\n  \"me\": \"application/x-troff-me\",\r\n  \"mht\": \"message/rfc822\",\r\n  \"mhtml\": \"message/rfc822\",\r\n  \"mid\": \"audio/mid\",\r\n  \"midi\": \"audio/mid\",\r\n  \"mix\": \"application/octet-stream\",\r\n  \"mmf\": \"application/x-smaf\",\r\n  \"mno\": \"text/xml\",\r\n  \"mny\": \"application/x-msmoney\",\r\n  \"mov\": \"video/quicktime\",\r\n  \"movie\": \"video/x-sgi-movie\",\r\n  \"mp2\": \"video/mpeg\",\r\n  \"mp3\": \"audio/mpeg\",\r\n  \"mp4\": \"video/mp4\",\r\n  \"mp4v\": \"video/mp4\",\r\n  \"mpa\": \"video/mpeg\",\r\n  \"mpe\": \"video/mpeg\",\r\n  \"mpeg\": \"video/mpeg\",\r\n  \"mpg\": \"video/mpeg\",\r\n  \"mpp\": \"application/vnd.ms-project\",\r\n  \"mpv2\": \"video/mpeg\",\r\n  \"ms\": \"application/x-troff-ms\",\r\n  \"msi\": \"application/octet-stream\",\r\n  \"mso\": \"application/octet-stream\",\r\n  \"mvb\": \"application/x-msmediaview\",\r\n  \"mvc\": \"application/x-miva-compiled\",\r\n  \"nc\": \"application/x-netcdf\",\r\n  \"nsc\": \"video/x-ms-asf\",\r\n  \"nws\": \"message/rfc822\",\r\n  \"ocx\": \"application/octet-stream\",\r\n  \"oda\": \"application/oda\",\r\n  \"odc\": \"text/x-ms-odc\",\r\n  \"ods\": \"application/oleobject\",\r\n  \"oga\": \"audio/ogg\",\r\n  \"ogg\": \"video/ogg\",\r\n  \"ogv\": \"video/ogg\",\r\n  \"one\": \"application/onenote\",\r\n  \"onea\": \"application/onenote\",\r\n  \"onetoc\": \"application/onenote\",\r\n  \"onetoc2\": \"application/onenote\",\r\n  \"onetmp\": \"application/onenote\",\r\n  \"onepkg\": \"application/onenote\",\r\n  \"osdx\": \"application/opensearchdescription+xml\",\r\n  \"otf\": \"font/otf\",\r\n  \"p10\": \"application/pkcs10\",\r\n  \"p12\": \"application/x-pkcs12\",\r\n  \"p7b\": \"application/x-pkcs7-certificates\",\r\n  \"p7c\": \"application/pkcs7-mime\",\r\n  \"p7m\": \"application/pkcs7-mime\",\r\n  \"p7r\": \"application/x-pkcs7-certreqresp\",\r\n  \"p7s\": \"application/pkcs7-signature\",\r\n  \"pbm\": \"image/x-portable-bitmap\",\r\n  \"pcx\": \"application/octet-stream\",\r\n  \"pcz\": \"application/octet-stream\",\r\n  \"pdf\": \"application/pdf\",\r\n  \"pfb\": \"application/octet-stream\",\r\n  \"pfm\": \"application/octet-stream\",\r\n  \"pfx\": \"application/x-pkcs12\",\r\n  \"pgm\": \"image/x-portable-graymap\",\r\n  \"pko\": \"application/vnd.ms-pki.pko\",\r\n  \"pma\": \"application/x-perfmon\",\r\n  \"pmc\": \"application/x-perfmon\",\r\n  \"pml\": \"application/x-perfmon\",\r\n  \"pmr\": \"application/x-perfmon\",\r\n  \"pmw\": \"application/x-perfmon\",\r\n  \"png\": \"image/png\",\r\n  \"pnm\": \"image/x-portable-anymap\",\r\n  \"pnz\": \"image/png\",\r\n  \"pot\": \"application/vnd.ms-powerpoint\",\r\n  \"potm\": \"application/vnd.ms-powerpoint.template.macroEnabled.12\",\r\n  \"potx\": \"application/vnd.openxmlformats-officedocument.presentationml.template\",\r\n  \"ppam\": \"application/vnd.ms-powerpoint.addin.macroEnabled.12\",\r\n  \"ppm\": \"image/x-portable-pixmap\",\r\n  \"pps\": \"application/vnd.ms-powerpoint\",\r\n  \"ppsm\": \"application/vnd.ms-powerpoint.slideshow.macroEnabled.12\",\r\n  \"ppsx\": \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\",\r\n  \"ppt\": \"application/vnd.ms-powerpoint\",\r\n  \"pptm\": \"application/vnd.ms-powerpoint.presentation.macroEnabled.12\",\r\n  \"pptx\": \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n  \"prf\": \"application/pics-rules\",\r\n  \"prm\": \"application/octet-stream\",\r\n  \"prx\": \"application/octet-stream\",\r\n  \"ps\": \"application/postscript\",\r\n  \"psd\": \"application/octet-stream\",\r\n  \"psm\": \"application/octet-stream\",\r\n  \"psp\": \"application/octet-stream\",\r\n  \"pub\": \"application/x-mspublisher\",\r\n  \"qt\": \"video/quicktime\",\r\n  \"qtl\": \"application/x-quicktimeplayer\",\r\n  \"qxd\": \"application/octet-stream\",\r\n  \"ra\": \"audio/x-pn-realaudio\",\r\n  \"ram\": \"audio/x-pn-realaudio\",\r\n  \"rar\": \"application/octet-stream\",\r\n  \"ras\": \"image/x-cmu-raster\",\r\n  \"rf\": \"image/vnd.rn-realflash\",\r\n  \"rgb\": \"image/x-rgb\",\r\n  \"rm\": \"application/vnd.rn-realmedia\",\r\n  \"rmi\": \"audio/mid\",\r\n  \"roff\": \"application/x-troff\",\r\n  \"rpm\": \"audio/x-pn-realaudio-plugin\",\r\n  \"rtf\": \"application/rtf\",\r\n  \"rtx\": \"text/richtext\",\r\n  \"scd\": \"application/x-msschedule\",\r\n  \"sct\": \"text/scriptlet\",\r\n  \"sea\": \"application/octet-stream\",\r\n  \"setpay\": \"application/set-payment-initiation\",\r\n  \"setreg\": \"application/set-registration-initiation\",\r\n  \"sgml\": \"text/sgml\",\r\n  \"sh\": \"application/x-sh\",\r\n  \"shar\": \"application/x-shar\",\r\n  \"sit\": \"application/x-stuffit\",\r\n  \"sldm\": \"application/vnd.ms-powerpoint.slide.macroEnabled.12\",\r\n  \"sldx\": \"application/vnd.openxmlformats-officedocument.presentationml.slide\",\r\n  \"smd\": \"audio/x-smd\",\r\n  \"smi\": \"application/octet-stream\",\r\n  \"smx\": \"audio/x-smd\",\r\n  \"smz\": \"audio/x-smd\",\r\n  \"snd\": \"audio/basic\",\r\n  \"snp\": \"application/octet-stream\",\r\n  \"spc\": \"application/x-pkcs7-certificates\",\r\n  \"spl\": \"application/futuresplash\",\r\n  \"spx\": \"audio/ogg\",\r\n  \"src\": \"application/x-wais-source\",\r\n  \"ssm\": \"application/streamingmedia\",\r\n  \"sst\": \"application/vnd.ms-pki.certstore\",\r\n  \"stl\": \"application/vnd.ms-pki.stl\",\r\n  \"sv4cpio\": \"application/x-sv4cpio\",\r\n  \"sv4crc\": \"application/x-sv4crc\",\r\n  \"svg\": \"image/svg+xml\",\r\n  \"svgz\": \"image/svg+xml\",\r\n  \"swf\": \"application/x-shockwave-flash\",\r\n  \"t\": \"application/x-troff\",\r\n  \"tar\": \"application/x-tar\",\r\n  \"tcl\": \"application/x-tcl\",\r\n  \"tex\": \"application/x-tex\",\r\n  \"texi\": \"application/x-texinfo\",\r\n  \"texinfo\": \"application/x-texinfo\",\r\n  \"tgz\": \"application/x-compressed\",\r\n  \"thmx\": \"application/vnd.ms-officetheme\",\r\n  \"thn\": \"application/octet-stream\",\r\n  \"tif\": \"image/tiff\",\r\n  \"tiff\": \"image/tiff\",\r\n  \"toc\": \"application/octet-stream\",\r\n  \"tr\": \"application/x-troff\",\r\n  \"trm\": \"application/x-msterminal\",\r\n  \"ts\": \"video/vnd.dlna.mpeg-tts\",\r\n  \"tsv\": \"text/tab-separated-values\",\r\n  \"ttf\": \"application/octet-stream\",\r\n  \"tts\": \"video/vnd.dlna.mpeg-tts\",\r\n  \"txt\": \"text/plain\",\r\n  \"u32\": \"application/octet-stream\",\r\n  \"uls\": \"text/iuls\",\r\n  \"ustar\": \"application/x-ustar\",\r\n  \"vbs\": \"text/vbscript\",\r\n  \"vcf\": \"text/x-vcard\",\r\n  \"vcs\": \"text/plain\",\r\n  \"vdx\": \"application/vnd.ms-visio.viewer\",\r\n  \"vml\": \"text/xml\",\r\n  \"vsd\": \"application/vnd.visio\",\r\n  \"vss\": \"application/vnd.visio\",\r\n  \"vst\": \"application/vnd.visio\",\r\n  \"vsto\": \"application/x-ms-vsto\",\r\n  \"vsw\": \"application/vnd.visio\",\r\n  \"vsx\": \"application/vnd.visio\",\r\n  \"vtx\": \"application/vnd.visio\",\r\n  \"wav\": \"audio/wav\",\r\n  \"wax\": \"audio/x-ms-wax\",\r\n  \"wbmp\": \"image/vnd.wap.wbmp\",\r\n  \"wcm\": \"application/vnd.ms-works\",\r\n  \"wdb\": \"application/vnd.ms-works\",\r\n  \"webm\": \"video/webm\",\r\n  \"wks\": \"application/vnd.ms-works\",\r\n  \"wm\": \"video/x-ms-wm\",\r\n  \"wma\": \"audio/x-ms-wma\",\r\n  \"wmd\": \"application/x-ms-wmd\",\r\n  \"wmf\": \"application/x-msmetafile\",\r\n  \"wml\": \"text/vnd.wap.wml\",\r\n  \"wmlc\": \"application/vnd.wap.wmlc\",\r\n  \"wmls\": \"text/vnd.wap.wmlscript\",\r\n  \"wmlsc\": \"application/vnd.wap.wmlscriptc\",\r\n  \"wmp\": \"video/x-ms-wmp\",\r\n  \"wmv\": \"video/x-ms-wmv\",\r\n  \"wmx\": \"video/x-ms-wmx\",\r\n  \"wmz\": \"application/x-ms-wmz\",\r\n  \"woff\": \"font/x-woff\",\r\n  \"wps\": \"application/vnd.ms-works\",\r\n  \"wri\": \"application/x-mswrite\",\r\n  \"wrl\": \"x-world/x-vrml\",\r\n  \"wrz\": \"x-world/x-vrml\",\r\n  \"wsdl\": \"text/xml\",\r\n  \"wtv\": \"video/x-ms-wtv\",\r\n  \"wvx\": \"video/x-ms-wvx\",\r\n  \"x\": \"application/directx\",\r\n  \"xaf\": \"x-world/x-vrml\",\r\n  \"xaml\": \"application/xaml+xml\",\r\n  \"xap\": \"application/x-silverlight-app\",\r\n  \"xbap\": \"application/x-ms-xbap\",\r\n  \"xbm\": \"image/x-xbitmap\",\r\n  \"xdr\": \"text/plain\",\r\n  \"xht\": \"application/xhtml+xml\",\r\n  \"xhtml\": \"application/xhtml+xml\",\r\n  \"xla\": \"application/vnd.ms-excel\",\r\n  \"xlam\": \"application/vnd.ms-excel.addin.macroEnabled.12\",\r\n  \"xlc\": \"application/vnd.ms-excel\",\r\n  \"xlm\": \"application/vnd.ms-excel\",\r\n  \"xls\": \"application/vnd.ms-excel\",\r\n  \"xlsb\": \"application/vnd.ms-excel.sheet.binary.macroEnabled.12\",\r\n  \"xlsm\": \"application/vnd.ms-excel.sheet.macroEnabled.12\",\r\n  \"xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n  \"xlt\": \"application/vnd.ms-excel\",\r\n  \"xltm\": \"application/vnd.ms-excel.template.macroEnabled.12\",\r\n  \"xltx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\",\r\n  \"xlw\": \"application/vnd.ms-excel\",\r\n  \"xml\": \"text/xml\",\r\n  \"xof\": \"x-world/x-vrml\",\r\n  \"xpm\": \"image/x-xpixmap\",\r\n  \"xps\": \"application/vnd.ms-xpsdocument\",\r\n  \"xsd\": \"text/xml\",\r\n  \"xsf\": \"text/xml\",\r\n  \"xsl\": \"text/xml\",\r\n  \"xslt\": \"text/xml\",\r\n  \"xsn\": \"application/octet-stream\",\r\n  \"xtp\": \"application/octet-stream\",\r\n  \"xwd\": \"image/x-xwindowdump\",\r\n  \"z\": \"application/x-compress\",\r\n  \"zip\": \"application/x-zip-compressed\"\r\n};\r\n\r\nexport const PageSizes:any = {\r\n  \"4A0\":{\"width\":\"1682\",\"height\":\"2378\",\"value\":\"4A0\",\"label\":\"4A0\"},\r\n  \"2A0\":{\"width\":\"1189\",\"height\":\"1682\",\"value\":\"2A0\",\"label\":\"2A0\"},\r\n  \"A0\":{\"width\":\"841\",\"height\":\"1189\",\"value\":\"A0\",\"label\":\"A0\"},\r\n  \"A1\":{\"width\":\"594\",\"height\":\"841\",\"value\":\"A1\",\"label\":\"A1\"},\r\n  \"A2\":{\"width\":\"420\",\"height\":\"594\",\"value\":\"A2\",\"label\":\"A2\"},\r\n  \"A3\":{\"width\":\"297\",\"height\":\"420\",\"value\":\"A3\",\"label\":\"A3\"},\r\n  \"A4\":{\"width\":\"210\",\"height\":\"297\",\"value\":\"A4\",\"label\":\"A4\"},\r\n  \"A5\":{\"width\":\"148\",\"height\":\"210\",\"value\":\"A5\",\"label\":\"A5\"},\r\n  \"A6\":{\"width\":\"105\",\"height\":\"148\",\"value\":\"A6\",\"label\":\"A6\"},\r\n  \"A7\":{\"width\":\"74\",\"height\":\"105\",\"value\":\"A7\",\"label\":\"A7\"},\r\n  \"A8\":{\"width\":\"52\",\"height\":\"74\",\"value\":\"A8\",\"label\":\"A8\"},\r\n  \"A9\":{\"width\":\"37\",\"height\":\"52\",\"value\":\"A9\",\"label\":\"A9\"},\r\n  \"A10\":{\"width\":\"26\",\"height\":\"37\",\"value\":\"A10\",\"label\":\"A10\"},\r\n  \"B0\":{\"width\":\"1000\",\"height\":\"1414\",\"value\":\"B0\",\"label\":\"B0\"},\r\n  \"B1\":{\"width\":\"707\",\"height\":\"1000\",\"value\":\"B1\",\"label\":\"B1\"},\r\n  \"B2\":{\"width\":\"500\",\"height\":\"707\",\"value\":\"B2\",\"label\":\"B2\"},\r\n  \"B3\":{\"width\":\"353\",\"height\":\"500\",\"value\":\"B3\",\"label\":\"B3\"},\r\n  \"B4\":{\"width\":\"250\",\"height\":\"353\",\"value\":\"B4\",\"label\":\"B4\"},\r\n  \"B5\":{\"width\":\"176\",\"height\":\"250\",\"value\":\"B5\",\"label\":\"B5\"},\r\n  \"B6\":{\"width\":\"125\",\"height\":\"176\",\"value\":\"B6\",\"label\":\"B6\"},\r\n  \"B7\":{\"width\":\"88\",\"height\":\"125\",\"value\":\"B7\",\"label\":\"B7\"},\r\n  \"B8\":{\"width\":\"62\",\"height\":\"88\",\"value\":\"B8\",\"label\":\"B8\"},\r\n  \"B9\":{\"width\":\"44\",\"height\":\"62\",\"value\":\"B9\",\"label\":\"B9\"},\r\n  \"B10\":{\"width\":\"31\",\"height\":\"44\",\"value\":\"B10\",\"label\":\"B10\"},\r\n  \"C0\":{\"width\":\"917\",\"height\":\"1297\",\"value\":\"C0\",\"label\":\"C0\"},\r\n  \"C1\":{\"width\":\"648\",\"height\":\"917\",\"value\":\"C1\",\"label\":\"C1\"},\r\n  \"C2\":{\"width\":\"458\",\"height\":\"648\",\"value\":\"C2\",\"label\":\"C2\"},\r\n  \"C3\":{\"width\":\"324\",\"height\":\"458\",\"value\":\"C3\",\"label\":\"C3\"},\r\n  \"C4\":{\"width\":\"229\",\"height\":\"324\",\"value\":\"C4\",\"label\":\"C4\"},\r\n  \"C5\":{\"width\":\"162\",\"height\":\"229\",\"value\":\"C5\",\"label\":\"C5\"},\r\n  \"C6\":{\"width\":\"114\",\"height\":\"162\",\"value\":\"C6\",\"label\":\"C6\"},\r\n  \"C7\":{\"width\":\"81\",\"height\":\"114\",\"value\":\"C7\",\"label\":\"C7\"},\r\n  \"C8\":{\"width\":\"57\",\"height\":\"81\",\"value\":\"C8\",\"label\":\"C8\"},\r\n  \"C9\":{\"width\":\"40\",\"height\":\"57\",\"value\":\"C9\",\"label\":\"C9\"},\r\n  \"C10\":{\"width\":\"28\",\"height\":\"40\",\"value\":\"C10\",\"label\":\"C10\"},\r\n  \"EXECUTIVE\":{\"width\":\"190\",\"height\":\"254\",\"value\":\"EXECUTIVE\",\"label\":\"Executive\"},\r\n  \"FOOLSCAP\":{\"width\":\"203\",\"height\":\"330\",\"value\":\"FOOLSCAP\",\"label\":\"Foolscap/Government\"},\r\n  \"LEDGER\":{\"width\":\"279\",\"height\":\"432\",\"value\":\"LEDGER\",\"label\":\"Ledger\"},\r\n  \"LEGAL\":{\"width\":\"216\",\"height\":\"356\",\"value\":\"LEGAL\",\"label\":\"Legal/Tabloid\"},\r\n  \"LETTER\":{\"width\":\"216\",\"height\":\"279\",\"value\":\"LETTER\",\"label\":\"Letter\"},\r\n  \"POSTCARD\":{\"width\":\"105\",\"height\":\"148\",\"value\":\"POSTCARD\",\"label\":\"Postcard\"},\r\n  \"ROLL_44\":{\"width\":\"44\",\"height\":\"0\",\"value\":\"ROLL_44\",\"label\":\"Roll 44\",\"is_roll\":true},\r\n  \"ROLL_58\":{\"width\":\"58\",\"height\":\"0\",\"value\":\"ROLL_58\",\"label\":\"Roll 58\",\"is_roll\":true},\r\n  \"ROLL_76\":{\"width\":\"76\",\"height\":\"0\",\"value\":\"ROLL_76\",\"label\":\"Roll 76\",\"is_roll\":true},\r\n  \"ROLL_80\":{\"width\":\"80\",\"height\":\"0\",\"value\":\"ROLL_80\",\"label\":\"Roll 80\",\"is_roll\":true},\r\n  \"ROLL_90\":{\"width\":\"90\",\"height\":\"0\",\"value\":\"ROLL_90\",\"label\":\"Roll 90\",\"is_roll\":true}\r\n};\r\n\r\n","export class SimpleLogger{\r\n  logMessages : boolean = true;\r\n  constructor(logMessages:boolean = true){\r\n    this.logMessages = logMessages;\r\n  }\r\n  assert(...args:any[]) {\r\n    if(this.logMessages){\r\n      console.assert(...args);\r\n    }\r\n  }\r\n\r\n  debug(...args:any[]) {\r\n    if(this.logMessages){\r\n      console.debug(...args);\r\n    }\r\n  }\r\n\r\n  error(...args:any[]) {\r\n    if(this.logMessages){\r\n      console.error(...args);\r\n    }\r\n  }\r\n\r\n  info(...args:any[]) {\r\n    if(this.logMessages){\r\n      console.info(...args);\r\n    }\r\n  }\r\n\r\n  log(...args:any[]) {\r\n    if(this.logMessages){\r\n      console.log(...args);\r\n    }\r\n  }\r\n\r\n  success(...args:any[]) {\r\n    if(this.logMessages){\r\n      console.log(...args);\r\n    }\r\n  }\r\n\r\n  warn(...args:any[]) {\r\n    if(this.logMessages){\r\n      console.warn(...args);\r\n    }\r\n  }\r\n\r\n}\r\n","import { Simplify } from \"./simplify\";\r\n\r\nexport class SimpleExtensionMethods {\r\n\r\n  static arrayDifference<T>(arr1: T[], arr2: T[]): T[] {\r\n    return arr1.filter(x => !arr2.includes(x));\r\n  }\r\n\r\n  static arrayDifferenceSymmetrical<T>(arr1: T[], arr2: T[]): T[] {\r\n    return arr1.filter(x => !arr2.includes(x)).concat(arr2.filter(x => !arr1.includes(x))); // Corrected `this.includes` usage\r\n  }\r\n\r\n  static arrayIntersection<T>(arr1: T[], arr2: T[]): T[] {\r\n    return arr1.filter(x => arr2.includes(x));\r\n  }\r\n\r\n  static arrayPrepend<T>(arr: T[], value: T): T[] {\r\n    arr.unshift(value);\r\n    return arr; // Return a new array (recommended)\r\n  }\r\n\r\n  static arrayRemove<T>(arr: T[], value: T): T[] {\r\n    let index = arr.indexOf(value);\r\n    if (index >= 0) {\r\n      arr.splice(index,1);\r\n    }\r\n    return arr;\r\n  }\r\n\r\n  static arrayRemoveByIndex<T>(arr: T[], index: number): T[] {\r\n    if (index >= 0 && index < arr.length) {\r\n      arr.splice(index,1);\r\n      return arr;\r\n    }\r\n    return arr; // Return the original array if index is invalid\r\n  }\r\n\r\n  static arrayUnion<T>(arr1: T[], arr2: T[]): T[] {\r\n    const set = new Set([...arr1, ...arr2]);\r\n    return Array.from(set);\r\n  }\r\n\r\n  static arrayToObject(arr: any[], key: string): any {\r\n    let result:any = {};\r\n    arr.forEach((item:any)=>{\r\n      result[item[key]] = item;\r\n    });\r\n    return result;\r\n  }\r\n\r\n  static convertBlobToBase64(blob: Blob): Promise<string> {\r\n    return new Promise((resolve, reject) => {\r\n      const reader = new FileReader();\r\n      reader.onloadend = () => {\r\n        const base64String = reader.result?.toString().split(',')[1] || '';\r\n        resolve(base64String);\r\n      };\r\n      reader.onerror = () => {\r\n        reject(new Error('Failed to convert Blob to Base64'));\r\n      };\r\n      reader.readAsDataURL(blob);\r\n    });\r\n  }\r\n\r\n  static convertFileDataToBase64(fileData:Blob | number[],fileName: string): Promise<string> {\r\n    let blob = new Blob();\r\n    if (fileData instanceof Blob) {\r\n        blob = fileData;\r\n    } else if (Array.isArray(fileData)) {\r\n        blob = new Blob([new Uint8Array(fileData)], { type: Simplify.getMimeTypeFromFileName(fileName) });\r\n    }\r\n    return this.convertBlobToBase64(blob);\r\n  }\r\n\r\n  static fileFromBase64(fileBase64String: string,fileName:string): File {\r\n    let arr:any = fileBase64String.split(','),\r\n        mime = arr[0].match(/:(.*?);/)[1],\r\n        bstr = atob(arr[arr.length - 1]),\r\n        n = bstr.length,\r\n        u8arr = new Uint8Array(n);\r\n    while(n--){\r\n        u8arr[n] = bstr.charCodeAt(n);\r\n    }\r\n    return new File([u8arr], fileName, {type:mime});\r\n  }\r\n\r\n  static async fileToBytesObject(file: File): Promise<any> {\r\n    const result: any = {\r\n      name: file.name,\r\n      lastModified: file.lastModified,\r\n      size: file.size,\r\n      type: file.type,\r\n    };\r\n    result.bytes = Object.values(new Uint8Array(await file.arrayBuffer()));\r\n    return result;\r\n  }\r\n\r\n  static async fileToBlobObject(file: File): Promise<any> {\r\n    const result: any = {\r\n      name: file.name,\r\n      lastModified: file.lastModified,\r\n      size: file.size,\r\n      type: file.type,\r\n    };\r\n    result.blob = new Blob([new Uint8Array(await file.arrayBuffer())], { type: file.type });\r\n    return result;\r\n  }\r\n\r\n  static elementRemove(element: HTMLElement) {\r\n    // this.renderer.removeChild(element.parentElement, element); // Remove child from parent\r\n  }\r\n\r\n  static numberRound(number: any,decimals:number=0): number {\r\n    let result:number = 0;\r\n    try {\r\n      if(number!=undefined && number!=null && !isNaN(number)){\r\n        result = parseFloat(number.toString());\r\n        let multiple:number = 1;\r\n        if(decimals>0){\r\n          let index:number = 0;\r\n          while(index<decimals){\r\n            multiple*=10;\r\n            index++;\r\n          }\r\n        }\r\n        result = Math.round((result * multiple))/multiple;\r\n      }\r\n    } catch (e) {\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static objectChangese(oldObject: any,newObject:any): any {\r\n    let result: any = {};\r\n    const isObject = (value: any): value is Record<string, any> => {\r\n      return value !== null && typeof value === 'object' && !Array.isArray(value);\r\n    };\r\n    try {\r\n      if (isObject(oldObject) && isObject(newObject)) {\r\n        const keys1 = Object.keys(oldObject);\r\n        const keys2 = Object.keys(newObject);\r\n        keys2.forEach(key => {\r\n          if (!(key in oldObject)) {\r\n            result[key] = { old:undefined,new: newObject[key],\"change\":\"add\"};\r\n          } else if (oldObject[key] !== newObject[key]) {\r\n            result[key] = { old: oldObject[key], new: newObject[key],\"change\":\"modify\"};\r\n          }\r\n        });\r\n        keys1.forEach(key => {\r\n          if (!(key in newObject)) {\r\n            result[key] = { new:undefined,old: oldObject[key],\"change\":\"remove\"};\r\n          }\r\n        });\r\n      }\r\n      else if(isObject(oldObject)){\r\n        const keys = Object.keys(oldObject);\r\n        keys.forEach(key => {\r\n          result[key] = { new:undefined,old: oldObject[key],\"change\":\"remove\"};\r\n        });\r\n      }\r\n      else if(isObject(newObject)){\r\n        const keys = Object.keys(newObject);\r\n        keys.forEach(key => {\r\n          result[key] = { old:undefined,new: newObject[key],\"change\":\"add\"};\r\n        });\r\n      }\r\n    } catch (error) {\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static objectClone(obj: any): any {\r\n    let object = this;\r\n    let result: any = obj;\r\n    if (obj != null && obj != undefined) {\r\n      try {\r\n        result = JSON.parse(JSON.stringify(obj));\r\n      }\r\n      catch {\r\n        Object.keys(obj).forEach((key) => {\r\n          let value = obj[key];\r\n          if (value instanceof Object && value.constructor !== Object) {\r\n            result[key] = value;\r\n          }\r\n          else {\r\n            result[key] = object.objectClone(value);\r\n          }\r\n        });\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static objectFilter<T>(obj: Object, filterFunction: (key: string, value: T) => boolean): Object {\r\n    const result: any = {};\r\n    if (typeof filterFunction === 'function') {\r\n      Object.entries(obj).forEach(([key, value]) => {\r\n        if (filterFunction(key, value)) {\r\n          result[key] = value;\r\n        }\r\n      });\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static stringToCapitalCase(str: string): string {\r\n    let words = str.toLowerCase().split(' ');\r\n    for (let i = 0; i < words.length; i++) {\r\n      words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1);\r\n    }\r\n    return words.join(' ');\r\n  }\r\n\r\n  static stringIsJson(str: string): boolean {\r\n    try {\r\n      JSON.parse(str);\r\n      return true;\r\n    } catch (e) {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  static stringIsNumeric(str: string): boolean {\r\n    return !isNaN(parseFloat(str));\r\n  }\r\n\r\n  static stringRandom(): string {\r\n    return Math.random().toString(36).replace('0.', '') + Date.now();\r\n  }\r\n}\r\n","import { formatNumber } from '@angular/common';\r\nimport moment from 'moment';\r\nimport { MimeTypes } from '../configs/constants';\r\nimport { Type } from '@angular/core';\r\nimport { SimpleLogger } from './simple-logger';\r\nimport { SimpleExtensionMethods } from './simple-extension-methods';\r\n\r\nexport class Simplify {\r\n  static logger:SimpleLogger = new SimpleLogger();\r\n  static uniqueIds:any={};\r\n  static decimalPlaces = 2;\r\n  static characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\r\n  static checkElementDataValue(element:any,value:any){\r\n    try{\r\n      if(element!=undefined){\r\n        let originalResult=value;\r\n        if(element.hasAttribute(\"sim-data-type\")!=undefined){\r\n          let dataType=element.getAttribute(\"sim-data-type\");\r\n          if(dataType==\"number\"){\r\n            if(value!=null&&value!=undefined){\r\n              value=parseFloat(value);\r\n              if(isNaN(value)){\r\n                value=originalResult;\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }\r\n      if(value==null){\r\n        if(element.hasAttribute(\"sim-data-default\")!=undefined){\r\n          value=element.getAttribute(\"sim-data-default\");\r\n        }\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return value;\r\n  }\r\n\r\n  static checkObjectValueSame(objectA:any,objectB:any){\r\n    let result=true;\r\n    let objectAKeys = Object.keys(objectA);\r\n    let objectBKeys = Object.keys(objectB);\r\n    objectAKeys.forEach(key => {\r\n      if(JSON.stringify(objectA[key])!=JSON.stringify(objectB[key])){\r\n        result = false;\r\n      }\r\n    });\r\n    objectBKeys.forEach(key => {\r\n      if(JSON.stringify(objectA[key])!=JSON.stringify(objectB[key])){\r\n        result = false;\r\n      }\r\n    });\r\n    return result;\r\n  }\r\n\r\n  static convertJsonStringToArray(jsonString:string){\r\n    var result=[];\r\n    try{\r\n      let jsonResult=JSON.parse(jsonString);\r\n      if(Array.isArray(jsonResult)){\r\n          result=jsonResult;\r\n      }\r\n      else{\r\n        Object.keys(jsonResult).forEach((key)=>{\r\n          result.push(jsonResult[key]);\r\n        });\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static convertArrayToObject(sourceArray:any,keyField:any,params:any={}){\r\n    let result:any={};\r\n    try{\r\n      if(sourceArray!=undefined&&sourceArray!=null){\r\n        if(keyField!=undefined&&keyField!=null){\r\n          for(let i=0;i<sourceArray.length;i++){\r\n            let record=sourceArray[i];\r\n            result[record[keyField]]=record;\r\n          }\r\n        }\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static convertObjectToRequestString(requestData:any){\r\n    let requestString:any=[];\r\n    try{\r\n      Object.keys(requestData).forEach((key)=>{\r\n        let value=requestData[key];\r\n        if(value!=\"\"&&value!=undefined){\r\n          requestString.push(key+\"=\"+value);\r\n        }\r\n      });\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return requestString.join(\"&\");\r\n  }\r\n\r\n  static copyObjectValues(source:any,destination:any){\r\n    Object.keys(source).forEach((key)=>{\r\n      destination[key]=source[key];\r\n    });\r\n    return destination;\r\n  }\r\n\r\n  static disableElementControls(container:Element){\r\n    try{\r\n      let elementsToDisable = container.querySelectorAll('input, select, button');\r\n      elementsToDisable.forEach(element => {\r\n        element.setAttribute('disabled', 'true');\r\n      });\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static debug(message:any){\r\n    this.logger.debug(message);\r\n  }\r\n\r\n  static async downloadFile(fileData: Blob | number[] | File, fileName: string = \"\"): Promise<void> {\r\n    let blob = new Blob();\r\n    if (fileData instanceof File) {\r\n      if(fileName==\"\"){\r\n        fileName = fileData.name;\r\n      }\r\n      let blobObject:any = await SimpleExtensionMethods.fileToBlobObject(fileData);\r\n      blob = blobObject.blob;\r\n    }\r\n    else if (fileData instanceof Blob) {\r\n      blob = fileData;\r\n    }\r\n    else if (Array.isArray(fileData)) {\r\n        blob = new Blob([new Uint8Array(fileData)], { type: Simplify.getMimeTypeFromFileName(fileName) });\r\n    }\r\n    if(fileName==\"\"){\r\n      fileName = Simplify.generateId();\r\n    }\r\n    const a = document.createElement('a');\r\n    const url = URL.createObjectURL(blob);\r\n    a.href = url;\r\n    a.download = fileName;\r\n    document.body.appendChild(a);\r\n    a.click();\r\n    document.body.removeChild(a);\r\n    setTimeout(() => {\r\n        URL.revokeObjectURL(url);\r\n    }, 200);\r\n  }\r\n\r\n  static elementIndexInParent(element:any){\r\n    let index=-1;\r\n    try{\r\n      index = Array.prototype.indexOf.call(element.parentNode.childNodes, element);\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return index;\r\n  }\r\n\r\n  static elementIsVisible(element:any) {\r\n    try{\r\n      const elementRect = element.getBoundingClientRect();\r\n      const inViewport = (\r\n        elementRect.top >= 0 &&\r\n        elementRect.left >= 0 &&\r\n        elementRect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n        elementRect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n      );\r\n      if (inViewport) {\r\n        let currentElement = element.parentElement;\r\n\r\n        while (currentElement) {\r\n          if (currentElement === document) break;\r\n          const containerRect = currentElement.getBoundingClientRect();\r\n          if (\r\n            elementRect.top >= containerRect.top &&\r\n            elementRect.left >= containerRect.left &&\r\n            elementRect.bottom <= containerRect.bottom &&\r\n            elementRect.right <= containerRect.right\r\n          ) {\r\n            return true;\r\n          }\r\n          currentElement = currentElement.parentElement;\r\n        }\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return false;\r\n  }\r\n\r\n  static elementPrepend(containerElement:any,newElement:any){\r\n    try{\r\n      containerElement.insertBefore(newElement, containerElement.firstChild);\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static elementMoveToIndex(element: HTMLElement, newIndex:number): void {\r\n    try{\r\n      let parent = element.parentNode;\r\n      if (!parent) {\r\n        console.error('Element has no parent.');\r\n        return;\r\n      }\r\n      let currentIndex = Array.from(parent.children).indexOf(element);\r\n      if (currentIndex === -1 || newIndex < 0 || newIndex >= parent.children.length) {\r\n        console.error('Invalid indices for moving element.');\r\n        return;\r\n      }\r\n      if (currentIndex !== newIndex) {\r\n        let referenceNode = parent.children[newIndex + (currentIndex < newIndex ? 1 : 0)];\r\n        parent.insertBefore(element, referenceNode);\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static elementReplace(elementToReplace:any,newElement:any){\r\n    try{\r\n      elementToReplace.parentNode.replaceChild(newElement,elementToReplace);\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static elementSwap(elementA: HTMLElement, elementB: HTMLElement): void {\r\n    try{\r\n      let parent = elementA.parentNode;\r\n      if (!parent || !parent.isEqualNode(elementB.parentNode)) {\r\n        console.error('Elements do not share the same parent.');\r\n        return;\r\n      }\r\n      let indexA = Array.from(parent.children).indexOf(elementA);\r\n      let indexB = Array.from(parent.children).indexOf(elementB);\r\n      if (indexA === -1 || indexB === -1) {\r\n        console.error('One or both elements are not children of the parent.');\r\n        return;\r\n      }\r\n      parent.insertBefore(elementB, elementA);\r\n      parent.insertBefore(elementA, parent.children[indexB + 1]);\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static elementSwapByIndex(container: HTMLElement, indexA:number,indexB:number): void {\r\n    try{\r\n      if (indexA === -1 || indexB === -1) {\r\n        console.error('One or both elements are not children of the parent.');\r\n        return;\r\n      }\r\n      let elementA=Array.from(container.children)[indexA];\r\n      let elementB=Array.from(container.children)[indexB];\r\n      container.insertBefore(elementB, elementA);\r\n      container.insertBefore(elementA, container.children[indexB + 1]);\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static enableElementControls(container:Element){\r\n    try{\r\n      let elementsToEnable = container.querySelectorAll('input, select, button');\r\n      elementsToEnable.forEach(element => {\r\n        element.setAttribute('disabled', 'false');\r\n      });\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static escapeRegExp(string:string){\r\n    return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\r\n  }\r\n\r\n  static executeEventFunctions(event:string,functions:any,params:any={}){\r\n    try{\r\n      if(Simplify.validValue(functions[event])){\r\n        Simplify.executeFunctions(functions[event],params);\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static executeFunctions(functions:any,params:any={}){\r\n    try{\r\n      let objectKeys=Object.keys(functions);\r\n      objectKeys.forEach((id)=>{\r\n        functions[id](params);\r\n      });\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static formatCurrencySymbol(currency:any){\r\n    let result=currency;\r\n    try{\r\n      // if(currency==undefined||currency==\"\"||currency==null){\r\n      //   currency=Simplify.formatCurrency;\r\n      // }\r\n      // if(currency!=undefined&&currency!=\"\"){\r\n      //   if(Simplify.currencySymbols[currency.toUpperCase()]!=undefined){\r\n      //     result=Simplify.currencySymbols[currency.toUpperCase()];\r\n      //   }\r\n      // }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static formatDateTime(date:any,format:any,params:any={}){\r\n    let result=date;\r\n    try{\r\n      if(date){\r\n        let type=\"date\";\r\n        let orgFormat=\"\";\r\n        if(params[\"type\"]!=undefined){\r\n            type=params[\"type\"];\r\n        }\r\n        if(params[\"originalFormat\"]!=undefined){\r\n            orgFormat=params[\"originalFormat\"];\r\n        }\r\n        if(type==\"date\"){\r\n          if(format.toUpperCase()==\"INPUT\"){\r\n            format='YYYY-MM-DD';\r\n          }\r\n          else if(format.toUpperCase()==\"DISPLAY\"){\r\n            format='DD/MM/YYYY';\r\n          }\r\n          if(orgFormat.toUpperCase()==\"INPUT\"){\r\n            orgFormat='YYYY-MM-DD';\r\n          }\r\n          else if(orgFormat.toUpperCase()==\"DISPLAY\"){\r\n            orgFormat='DD/MM/YYYY';\r\n          }\r\n        }\r\n        else if(type==\"datetime\"){\r\n          if(format.toUpperCase()==\"INPUT\"){\r\n            format='YYYY-MM-DD HH:mm:ss';\r\n          }\r\n          else if(format.toUpperCase()==\"DISPLAY\"){\r\n            format='DD/MM/YYYY hh:mm A';\r\n          }\r\n          if(orgFormat.toUpperCase()==\"INPUT\"){\r\n            orgFormat=\"YYYY-MM-DD HH:mm:ss\";\r\n          }\r\n          else if(orgFormat.toUpperCase()==\"DISPLAY\"){\r\n            orgFormat='DD/MM/YYYY hh:mm A';\r\n          }\r\n        }\r\n        if(orgFormat!=format){\r\n          result=moment(date,orgFormat).format(format);\r\n        }\r\n        if(result==\"Invalid date\"){\r\n          result=\"\";\r\n        }\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static formatElement(element:any){\r\n    try{\r\n      let type=Simplify.getElementContentType(element);\r\n      let value=Simplify.getElementDataValue(element);\r\n      let formattedValue = value;\r\n      if(element.getAttribute(\"sim-format-date\")!=undefined){\r\n        let format=element.getAttribute(\"sim-format-date\");\r\n        formattedValue=Simplify.formatDateTime(value,format);\r\n      }\r\n      if(element.getAttribute(\"sim-format-datetime\")!=undefined){\r\n        let format=element.getAttribute(\"sim-format-datetime\");\r\n        formattedValue=Simplify.formatDateTime(value,format,{\"type\":\"datetime\"});\r\n      }\r\n      if(element.getAttribute(\"sim-format-number\")!=undefined){\r\n        let format=element.getAttribute(\"sim-format-number\");\r\n        formattedValue=Simplify.formatNumber(parseFloat(value),format);\r\n      }\r\n      if(element.getAttribute(\"sim-format\")!=undefined){\r\n        let format=element.getAttribute(\"sim-format\");\r\n        if(format==\"CURRENCY_SYMBOL\"){\r\n          formattedValue=Simplify.formatCurrencySymbol(value);\r\n        }\r\n      }\r\n      if(type==\"html\"){\r\n        element.innerHTML = formattedValue;\r\n      }\r\n      else{\r\n        element.value = formattedValue;\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static formatElementData(element:any){\r\n    try{\r\n      let object=this;\r\n      element.querySelectorAll(\"[sim-format-date]\").forEach((formatElement:any)=>{\r\n        Simplify.formatElement(formatElement);\r\n      });\r\n      element.querySelectorAll(\"[sim-format-datetime]\").forEach((formatElement:any)=>{\r\n        Simplify.formatElement(formatElement);\r\n      });\r\n      element.querySelectorAll(\"[sim-format-number]\").forEach((formatElement:any)=>{\r\n        Simplify.formatElement(formatElement);\r\n      });\r\n      element.querySelectorAll(\"[sim-format]\").forEach((formatElement:any)=>{\r\n        Simplify.formatElement(formatElement);\r\n      });\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static formatNumber(number:any,format:any,params:any={}){\r\n    let result=number;\r\n    try{\r\n      number=parseFloat(number);\r\n      if(isNaN(number)){\r\n        number = 0;\r\n      }\r\n      result=number;\r\n      let decimals=Simplify.decimalPlaces;\r\n      if(params[\"decimals\"]!=undefined){\r\n        decimals=params[\"decimals\"];\r\n      }\r\n      if(format==\"INTEGER\"){\r\n        decimals=0;\r\n      }\r\n      if(format==\"INPUT\"){\r\n        result=formatNumber( number,\"\",\"\");\r\n      }\r\n      else if (format == \"PERCENT\" || format == \"PERCENTAGE\"){\r\n        result = formatNumber( number,\"\",\"\");\r\n        result = result + \"%\";\r\n      }\r\n      else if (format == \"POSITIVE\"){\r\n        if(number<0){\r\n          number=number*-1;\r\n        }\r\n        result = formatNumber( number,\"\",\"\");\r\n      }\r\n      else if(format==\"CURRENCY\"){\r\n        result=formatNumber( number,\"\",\"\");\r\n        let currency=\"\";\r\n        if(typeof params[\"currency\"]!=\"undefined\"){\r\n          currency=params[\"currency\"];\r\n        }\r\n        else if(typeof params[\"element\"]!=\"undefined\"){\r\n          currency=params[\"element\"].getAttribute(\"sim-currency\");\r\n        }\r\n        currency=Simplify.formatCurrencySymbol({\"currency\":currency});\r\n        result=currency+\"\"+result;\r\n      }\r\n      else{\r\n        result=formatNumber(number,\"en-IN\", \"1.2-2\");\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static generateGuid(){\r\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\r\n      const random = (Math.random() * 16) | 0;\r\n      const value = char === 'x' ? random : (random & 0x3) | 0x8;\r\n      return value.toString(16);\r\n    });;\r\n  }\r\n\r\n  static generateId(){\r\n    let id=\"\";\r\n    try{\r\n      let timestamp = new Date().getTime().toString(16);\r\n      let randomPart = Math.random().toString(16).substring(2);\r\n      id=\"simId_\"+Simplify.generateRandomString()+timestamp + randomPart;\r\n      if(Simplify.validValue(Simplify.uniqueIds[timestamp])){\r\n        while(Simplify.validValue(Simplify.uniqueIds[timestamp][id])){\r\n          randomPart = Math.random().toString(16).substring(2);\r\n          id=\"simId_\"+Simplify.generateRandomString()+timestamp + randomPart;\r\n        }\r\n      }\r\n      else{\r\n        Simplify.uniqueIds[timestamp]={};\r\n      }\r\n      Simplify.uniqueIds[timestamp][id]=id;\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return id;\r\n  }\r\n\r\n  static generateRandomString(length: number = 10): string {\r\n    let result = '';\r\n    try{\r\n      for (let i = 0; i < length; i++) {\r\n        const randomIndex = Math.floor(Math.random() * Simplify.characters.length);\r\n        result += Simplify.characters.charAt(randomIndex);\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getClassNameFromInstance(instance:any){\r\n    return instance.constructor.name.substring(1);\r\n  }\r\n\r\n  static getClassNameFromType(type:Type<any>){\r\n    let result = \"\";\r\n    if(type){\r\n      if(type.prototype){\r\n        if(type.prototype.constructor){\r\n          if(type.prototype.constructor.name){\r\n            result = type.prototype.constructor.name.substring(1);\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getElementContentType(element:Element){\r\n    let result=\"html\";\r\n    try{\r\n      let elementType: string = element.tagName.toString().toLowerCase();\r\n      if(elementType=='input'){\r\n        result=\"val\";\r\n      }\r\n    }\r\n    catch(ex){\r\n      // Simplify.getExceptionDetails(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getElementData(mainElement:Element,params:any={}){\r\n    let valueObject:any={};\r\n    try{\r\n      let query=\"[sim-data]\";\r\n      if(params[\"find\"]!=undefined){\r\n        query+=params[\"find\"];\r\n      }\r\n      let elements:any=mainElement.querySelectorAll(query);\r\n      elements.forEach((element:any) => {\r\n        let valid=true;\r\n        if(element.getAttribute(\"type\")==\"radio\"||element.getAttribute(\"type\")==\"checkbox\"){\r\n          valid=element.checked;\r\n        }\r\n        if(valid){\r\n          let dataField=element.getAttribute(\"sim-data\");\r\n          var elementValue=Simplify.getFormattedData(element);\r\n          valueObject[dataField]=elementValue;\r\n        }\r\n      });\r\n      }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return valueObject;\r\n  }\r\n\r\n  static getElementDataValue(element:any,params:any={}){\r\n    let result=null;\r\n    try{\r\n      if(element!=undefined){\r\n        let type=Simplify.getElementContentType(params);\r\n        if(type==\"html\"){\r\n          result=element.innerHTML;\r\n        }\r\n        else{\r\n          result=element.value;\r\n        }\r\n        if(element.hasAttribute(\"sim-data-original\")){\r\n          result=element.getAttribute(\"sim-data-original\");\r\n        }\r\n        result=Simplify.checkElementDataValue(element,result);\r\n      }\r\n    }\r\n    catch(ex){\r\n        Simplify.debug(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getElementType(element:Element){\r\n    let result=\"\";\r\n    try{\r\n      result=element.tagName.toLowerCase();\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getExceptionDetails(ex:any){\r\n    console.error(ex.name,ex.message,ex);\r\n  }\r\n\r\n  static getExtensionFromFileName(fileName:string){\r\n    return Simplify.getFileExtensionFromPath(fileName);\r\n  }\r\n\r\n  static getFileExtensionFromPath(filePath:string) {\r\n    filePath=filePath.replaceAll(\"\\\\\",\"/\");\r\n    let fileName = filePath.split('/').pop();\r\n    let extension = fileName!.split('.').pop();\r\n    return extension;\r\n  }\r\n\r\n  static getFormattedData(element:any){\r\n    var value=Simplify.getElementDataValue(element);\r\n    return value;\r\n  }\r\n\r\n  static getMimeTypeFromFileName(fileName:string){\r\n    let extension=Simplify.getExtensionFromFileName(fileName);\r\n    return MimeTypes[extension!];\r\n  }\r\n\r\n  static isJson(str:any) {\r\n    try {\r\n        JSON.parse(str);\r\n    } catch (e) {\r\n        return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  static isMobileView(){\r\n    let result=false;\r\n    if(window.matchMedia(\"(max-width: 767px)\").matches){\r\n        result=true;\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static log(message:any){\r\n    this.logger.log(message);\r\n  }\r\n\r\n  static openUrlInNewTab(url:string){\r\n    window.open(url, '_blank');\r\n  }\r\n\r\n  static printImage(src: string): void {\r\n    const iframe = document.createElement('iframe');\r\n    iframe.style.cssText = 'height: 100%; width: 100%; visibility: hidden; position: fixed;';\r\n    iframe.src = '';\r\n    document.body.appendChild(iframe);\r\n\r\n    const frame = iframe;\r\n    const dstDoc = frame.contentDocument || (frame.contentWindow as Window).document;\r\n    dstDoc.clear();\r\n\r\n    iframe.onload = function() {\r\n        (frame.contentWindow as Window).print();\r\n        document.body.removeChild(iframe);\r\n    };\r\n\r\n    dstDoc.write(`\r\n        <html>\r\n            <head>\r\n            </head>\r\n            <body>\r\n                <img src=\"${src}\"/>\r\n            </body>\r\n        </html>\r\n    `);\r\n    dstDoc.close();\r\n  }\r\n\r\n  static  registerEventFunction(functions:any,event:string,callback:any){\r\n    let id = Simplify.generateId();\r\n    if(!Simplify.validValue(functions[event])){\r\n      functions[event] = {};\r\n    }\r\n    functions[event][id] = callback;\r\n    return {\"functions\":functions,\"id\":id};\r\n  }\r\n\r\n  static removeButtonProcessing(element:any){\r\n    try{\r\n      element.setAttribute(\"disabled\",\"false\");\r\n      let originalHtml=element.getAttribute(\"sim-processing-original-html\");\r\n      if(originalHtml!=undefined&&originalHtml!=null){\r\n        element.innerHTML = originalHtml;\r\n        element.removeAttribute(\"sim-processing-original-html\");\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static setElementDataValue(element:any,data:any){\r\n    try{\r\n      if(element!=undefined&&data!=undefined){\r\n        let type=Simplify.getElementContentType(element);\r\n        element.setAttribute('sim-data-original',data);\r\n        if(type==\"html\"){\r\n          element.innerHTML = data;\r\n        }\r\n        else{\r\n          element.value = data;\r\n        }\r\n        element.removeAttribute(\"sim-pre-format-data\");\r\n      }\r\n      else{\r\n          Simplify.debug(\"params missing\");\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static setElementDefaults(mainElement:any){\r\n    try{\r\n      let elements = mainElement.querySelectorAll('[sim-data]');\r\n      elements.forEach((element:any) => {\r\n        let data=element.getAttribute(\"sim-default-data\");\r\n        if(data==undefined){\r\n          data=\"\";\r\n        }\r\n        Simplify.setElementData(element,data);\r\n      });\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static setElementData(mainElement:any,dataObject:any,params:any={}){\r\n    let mapping={};\r\n    let prefix=\"\";\r\n    let skip={};\r\n    let objectsList=[];\r\n    let arraysList=[];\r\n    let keys:any[]=[];\r\n    if(params.mapping!=undefined){\r\n      mapping=params.mapping;\r\n    }\r\n    if(params.prefix!=undefined){\r\n      prefix=params.prefix;\r\n    }\r\n    if(params.skip!=undefined){\r\n      skip=params.skip;\r\n    }\r\n    try{\r\n      if(Simplify.validValue(dataObject)){\r\n        if(typeof dataObject==\"object\"){\r\n          keys=Object.keys(dataObject);\r\n          for(let i=0;i<keys.length;i++){\r\n            if(!skip.hasOwnProperty(keys[i])){\r\n              let typeFound:string=typeof dataObject[keys[i]];\r\n                if(typeFound==\"string\"){\r\n                  if(dataObject[keys[i]].charAt(0)==\"{\"){\r\n                    typeFound=\"string_object\";\r\n                  }\r\n                  if(dataObject[keys[i]].charAt(0)==\"[\"){\r\n                    typeFound=\"string_array\";\r\n                  }\r\n                }\r\n                    let _key=keys[i];\r\n                    if(typeFound==\"string\"||typeFound==\"number\"){\r\n                        let originalKey=_key;\r\n                        if(typeFound==\"string\"){\r\n                            if(prefix!=\"\"){\r\n                                _key=prefix+\".\"+_key;\r\n                            }\r\n                        }\r\n                        let elements = mainElement.querySelectorAll('[sim-data='+originalKey+']');\r\n                        elements.forEach((element:any) => {\r\n                          let data=dataObject[originalKey];\r\n                          Simplify.setElementDataValue(element,data);\r\n                        });\r\n                    }\r\n                    else{\r\n                        if(typeFound==\"string_object\"||typeFound==\"object\"){\r\n                            objectsList.push(keys[i]);\r\n                        }\r\n                        else if(typeFound==\"string_array\"||typeFound==\"array\"){\r\n                            arraysList.push(keys[i]);\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        let elements = mainElement.querySelectorAll('[sim-data-function]');\r\n        elements.forEach((element:any) => {\r\n          let data=null;\r\n          // eval(\"data=\"+element.getAttribute(\"sim-data-function\")+\"(\"+JSON.stringify(dataObject)+\")\");\r\n          Simplify.setElementData(element,data);\r\n        });\r\n        let tempPrefix=\"\";\r\n        for(let i=0;i<objectsList.length;i++){\r\n          tempPrefix=objectsList[i];\r\n          if(prefix!=\"\"){\r\n            tempPrefix=prefix+\".\"+tempPrefix;\r\n          }\r\n          let _tempObject=dataObject[objectsList[i]];\r\n          if(typeof dataObject[objectsList[i]]==\"string\"){\r\n            let jsonString:string=dataObject[objectsList[i]];\r\n            if(Simplify.isJson(jsonString)){\r\n              _tempObject=JSON.parse(jsonString);\r\n            }\r\n          }\r\n          if(mapping.hasOwnProperty(objectsList[i])){\r\n          }\r\n          else{\r\n            Simplify.setElementData(mainElement,_tempObject,{\"mapping\":mapping,\"prefix\":tempPrefix,\"skip\":skip});\r\n          }\r\n        }\r\n        for(let i=0;i<arraysList.length;i++){\r\n          tempPrefix=arraysList[i];\r\n          if(prefix!=\"\"){\r\n            tempPrefix=prefix+\".\"+tempPrefix;\r\n          }\r\n          let _array=dataObject[arraysList[i]];\r\n          if(typeof dataObject[arraysList[i]]==\"string\"){\r\n            let jsonString:string=dataObject[arraysList[i]];\r\n            if(Simplify.isJson(jsonString)){\r\n              _array=JSON.parse(jsonString);\r\n            }\r\n          }\r\n          for(let j=0;j<_array.length;j++){\r\n            let element=mainElement;\r\n            if(mapping.hasOwnProperty(arraysList[i])){\r\n            }\r\n            else{\r\n              Simplify.setElementData(mainElement,_array[j],{\"mapping\":mapping,\"prefix\":tempPrefix+\"[]\",\"skip\":skip});\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n    catch(ex){\r\n      // console.log({\"dataObject\":dataObject,\"mainElement\":mainElement,\"params\":params});\r\n      // Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n  static validPrimaryKey(value:any): boolean{\r\n    let valid:boolean=false;\r\n    if(value!=null&&value!=undefined){\r\n      if(typeof value == \"string\"){\r\n        if(value!=\"0\"&&value!=\"\"){\r\n          valid=true;\r\n        }\r\n      }\r\n      if(typeof value == \"number\"){\r\n        if(value!=0&&!isNaN(value)){\r\n          valid=true;\r\n        }\r\n      }\r\n    }\r\n    return valid;\r\n  }\r\n\r\n  static validValue(value:any){\r\n    try{\r\n      if(value!=undefined&&value!=null){\r\n        return true;\r\n      }\r\n    }\r\n    catch(ex){}\r\n    return false;\r\n  }\r\n\r\n  static unwrapElement(element: HTMLElement) {\r\n    try{\r\n      if (element && element.parentNode) {\r\n        const parentElement = element.parentNode;\r\n        while (element.firstChild) {\r\n          parentElement.insertBefore(element.firstChild, element);\r\n        }\r\n        parentElement.removeChild(element);\r\n      }\r\n    }\r\n    catch(ex){\r\n      Simplify.getExceptionDetails(ex);\r\n    }\r\n  }\r\n\r\n\r\n}\r\n","import { SimpleEventExecutionResult } from \"./simple-event-execution-result\";\r\nimport { Simplify } from \"./simplify\";\r\n\r\nexport interface ISimpleEventExecuteCallbackParams {\r\n  key: string,\r\n  args: any | undefined,\r\n  functionResults:any\r\n}\r\n\r\nexport class SimpleEvents {\r\n  events: any = {};\r\n  executeCallback: Function;\r\n\r\n  async execute(key: string, args?: any | undefined) {\r\n    let result: SimpleEventExecutionResult = new SimpleEventExecutionResult();\r\n    try {\r\n      let functionResults: any = {};\r\n      if (this.events[key]) {\r\n        let functionsToExecute: any = this.events[key]!;\r\n        for (var functionId in functionsToExecute) {\r\n          let fun: Function = functionsToExecute[functionId]!;\r\n          let functionResult: any;\r\n          if (args) {\r\n            functionResult = await fun(args);\r\n          }\r\n          else {\r\n            functionResult = await fun();\r\n          }\r\n          if (functionResult != null) {\r\n            if (functionResult.status == \"success\") {\r\n              functionResults[functionId] = functionResult;\r\n            }\r\n          }\r\n        }\r\n      }\r\n      functionResults = await this.executeCallback({\r\n        key:key,args:args,functionResults:functionResults\r\n      });\r\n      if (functionResults.isNotEmpty) {\r\n        result.hasResults = true;\r\n        result.results = functionResults;\r\n      }\r\n      result.setSuccess();\r\n    }\r\n    catch (ex) {\r\n      result.setException(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  register(eventName: string, fun: Function): string {\r\n    if (this.events[eventName] == undefined) {\r\n      this.events[eventName] = {};\r\n    }\r\n    let functionId: string = Simplify.generateId();\r\n    this.events[eventName]![functionId] = fun;\r\n    return functionId;\r\n  }\r\n\r\n}\r\n\r\n","export class SimpleStorage {\r\n\r\n  version: number = 1;\r\n  constructor() { }\r\n\r\n  checkLocalExist(name: string) {\r\n    let exist = false;\r\n    let value = this.getLocalData(name);\r\n    if (value != undefined) {\r\n      exist = true;\r\n    }\r\n    return exist;\r\n  }\r\n\r\n  getAllLocalData() {\r\n    const values: any = {};\r\n    Object.keys(localStorage).forEach((key) => {\r\n      let value = this.getLocalData(key);\r\n      if (value != undefined) {\r\n        values[key] = value;\r\n      }\r\n    });\r\n    return values;\r\n  }\r\n\r\n  getLocalData(name: any) {\r\n    let value = undefined;\r\n    let valueString:any = localStorage.getItem(name);\r\n    if (typeof valueString == \"string\") {\r\n      if (this.isJSON(valueString)) {\r\n        let valueObject = JSON.parse(valueString);\r\n        if (valueObject[\"simpleStorageVersion\"] != undefined) {\r\n          value = this.parse({ \"value\": valueObject[\"value\"], \"type\": valueObject[\"value_type\"] });\r\n        }\r\n      }\r\n      else {\r\n        value = valueString;\r\n      }\r\n    }\r\n    return value;\r\n  }\r\n\r\n  removeLocalData(name: string) {\r\n    localStorage.removeItem(name);\r\n  }\r\n\r\n  setLocalData(name: string, value: any) {\r\n    const expires = -1;\r\n    const valueObject = { \"value\": value, \"value_type\": typeof value, \"expires\": expires, \"simpleStorageVersion\": this.version };\r\n    localStorage.setItem(name, JSON.stringify(valueObject));\r\n    return true;\r\n  }\r\n\r\n  isJSON(value: string): boolean {\r\n    let result = true;\r\n    try {\r\n      let resultObject = JSON.parse(value);\r\n      result = typeof resultObject != null && typeof resultObject == \"object\";\r\n    } catch (e) {\r\n    }\r\n    return result;\r\n  }\r\n\r\n  parse(params: any) {\r\n    let value = params[\"value\"];\r\n    let type = params[\"type\"];\r\n    if (typeof value == \"string\") {\r\n      if (type != undefined) {\r\n        if (type == \"object\" || type == \"array\") {\r\n          value = JSON.parse(value);\r\n        }\r\n        else if (type == \"number\") {\r\n          value = parseFloat(value);\r\n        }\r\n      }\r\n    }\r\n    return value;\r\n  }\r\n}\r\n","import { SimpleExtensionMethods } from \"./simple-extension-methods\";\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Simplify } from \"./simplify\";\r\nimport { ISimpleHttpRequestParams } from \"../interfaces/simple-http-request-params.interface\";\r\nimport { HttpMethod } from \"../configs/enum\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SimpleHttp {\r\n  static baseUrl: string = \"\";\r\n  private static httpClient: HttpClient;\r\n  static requestInterceptor?: Function;\r\n\r\n  static convertObjectToFormData(formData: FormData, data: any, parentKey?: string): void {\r\n    for (const key in data) {\r\n      if (data.hasOwnProperty(key)) {\r\n        const formKey = parentKey ? `${parentKey}[${key}]` : key;\r\n        const isFileType = data[key] instanceof File;\r\n        if (\r\n          typeof data[key] === 'object' &&\r\n          !isFileType &&\r\n          data[key] !== null\r\n        ) {\r\n          if (Object.keys(data[key]).length > 0) {\r\n            this.convertObjectToFormData(formData, data[key], formKey);\r\n          }\r\n          else {\r\n            formData.append(formKey, '');\r\n          }\r\n        } else {\r\n          formData.append(\r\n            formKey,\r\n            Simplify.validValue(data[key]) ? data[key] : ''\r\n          );\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  static deleteObservable(requestParams: ISimpleHttpRequestParams): Observable<any> {\r\n    if (SimpleHttp.requestInterceptor) {\r\n      requestParams = SimpleHttp.requestInterceptor(requestParams);\r\n    }\r\n    requestParams = SimpleHttp.processRequestParams(requestParams);\r\n    const options = {\r\n      headers: requestParams.headers,\r\n    };\r\n    return SimpleHttp.httpClient.delete<any>(requestParams.url, options);\r\n  }\r\n\r\n  static deletePromise(requestParams: ISimpleHttpRequestParams): Promise<any> {\r\n    return new Promise((resolve, reject) => {\r\n      this.deleteObservable(requestParams).pipe().subscribe({\r\n        next: async (data) => {\r\n          resolve(data);\r\n        },\r\n        error: (error) => {\r\n          reject(error);\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n  static async getFileContentAsBase64FromUrl(url: string) {\r\n    try {\r\n      const response = await fetch(url);\r\n      if (!response.ok) {\r\n        throw new Error(`Failed to fetch file from URL: ${response.statusText}`);\r\n      }\r\n      const blob = await response.blob();\r\n      return await SimpleExtensionMethods.convertBlobToBase64(blob);\r\n    } catch (error) {\r\n      console.error('Error fetching file from URL:', error);\r\n      throw error;\r\n    }\r\n  }\r\n\r\n  static getObservable(requestParams: ISimpleHttpRequestParams): Observable<any> {\r\n    if (SimpleHttp.requestInterceptor) {\r\n      requestParams = SimpleHttp.requestInterceptor(requestParams);\r\n    }\r\n    requestParams = SimpleHttp.processRequestParams(requestParams);\r\n    const options = {\r\n      headers: requestParams.headers,\r\n    };\r\n    console.log(SimpleHttp.httpClient,requestParams);\r\n    return SimpleHttp.httpClient.get<any>(requestParams.url, options);\r\n  }\r\n\r\n  static getPromise(requestParams: ISimpleHttpRequestParams): Promise<any> {\r\n    return new Promise((resolve, reject) => {\r\n      SimpleHttp.getObservable(requestParams).pipe().subscribe({\r\n        next: async (data) => {\r\n          resolve(data);\r\n        },\r\n        error: (error) => {\r\n          reject(error);\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n  static initialize(http: HttpClient): void {\r\n    SimpleHttp.httpClient = http;\r\n  }\r\n\r\n  static postObservable(requestParams: ISimpleHttpRequestParams): Observable<any> {\r\n    if (SimpleHttp.requestInterceptor) {\r\n      requestParams = SimpleHttp.requestInterceptor(requestParams);\r\n    }\r\n    requestParams = SimpleHttp.processRequestParams(requestParams);\r\n    const options = {\r\n      headers: requestParams.headers,\r\n    };\r\n    return SimpleHttp.httpClient.post<any>(requestParams.url, requestParams.formData, options);\r\n  }\r\n\r\n  static postPromise(requestParams: ISimpleHttpRequestParams): Promise<any> {\r\n    return new Promise((resolve, reject) => {\r\n      SimpleHttp.postObservable(requestParams).pipe().subscribe({\r\n        next: async (data) => {\r\n          resolve(data);\r\n        },\r\n        error: (error) => {\r\n          reject(error);\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n  private static processRequestParams(requestParams: ISimpleHttpRequestParams):ISimpleHttpRequestParams {\r\n    let params:ISimpleHttpRequestParams = {...requestParams};\r\n    if (params.queryParams) {\r\n      const queryParams: string[] = [];\r\n      if (params.queryParams) {\r\n        Object.keys(params.queryParams).forEach((key) => {\r\n          queryParams.push(key + '=' + params.queryParams![key]);\r\n        });\r\n      }\r\n      if (queryParams.length > 0) {\r\n        if (params.url.indexOf(\"?\") < 0) {\r\n          params.url += '?';\r\n        }\r\n        params.url += queryParams.join('&');\r\n      }\r\n    }\r\n    if(params.data){\r\n      if(params.formData == undefined || params.formData == null){\r\n        params.formData = new FormData();\r\n      }\r\n      this.convertObjectToFormData(params.formData, params.data);\r\n    }\r\n    if(SimpleHttp.baseUrl != \"\"){\r\n      if(params.url.indexOf(\"http\") != 0 ){\r\n        params.url = SimpleHttp.baseUrl+params.url;\r\n      }\r\n    }\r\n    return params;\r\n  }\r\n\r\n  static putObservable(requestParams: ISimpleHttpRequestParams): Observable<any> {\r\n    if (SimpleHttp.requestInterceptor) {\r\n      requestParams = SimpleHttp.requestInterceptor(requestParams);\r\n    }\r\n    requestParams = SimpleHttp.processRequestParams(requestParams);\r\n    const options = {\r\n      headers: requestParams.headers,\r\n    };\r\n    return SimpleHttp.httpClient.put<any>(requestParams.url, requestParams.formData, options);\r\n  }\r\n\r\n  static putPromise(requestParams: ISimpleHttpRequestParams): Promise<any> {\r\n    return new Promise((resolve, reject) => {\r\n      SimpleHttp.postObservable(requestParams).pipe().subscribe({\r\n        next: async (data) => {\r\n          resolve(data);\r\n        },\r\n        error: (error) => {\r\n          reject(error);\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n  static requestObservable(requestParams: ISimpleHttpRequestParams,method:HttpMethod = HttpMethod.get): Observable<any> {\r\n    if (method == HttpMethod.post) {\r\n      return SimpleHttp.postObservable(requestParams);\r\n    }\r\n    else if (method == HttpMethod.put) {\r\n      return SimpleHttp.putObservable(requestParams);\r\n    }\r\n    else if (method == HttpMethod.delete) {\r\n      return SimpleHttp.deleteObservable(requestParams);\r\n    }\r\n    else {\r\n      return SimpleHttp.getObservable(requestParams);\r\n    }\r\n  }\r\n\r\n  static requestPromise(requestParams: ISimpleHttpRequestParams,method:HttpMethod = HttpMethod.get): Promise<any> {\r\n    return new Promise((resolve, reject) => {\r\n      SimpleHttp.requestObservable(requestParams,method).pipe().subscribe({\r\n        next: async (data) => {\r\n          resolve(data);\r\n        },\r\n        error: (error) => {\r\n          reject(error);\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ComponentsRegisterService {\r\n  private register:any = {};\r\n  constructor() { }\r\n\r\n  getInstance(identifier:string){\r\n    return this.register[identifier];\r\n  }\r\n\r\n  registerInstance(instance:any,identifier:any){\r\n    this.register[identifier] = instance;\r\n  }\r\n}\r\n","import { Simplify } from \"../utilities/simplify\";\r\n\r\nexport class SimpleDatabase {\r\n  static attributeAutoIncrement = \"AUTOINCREMENT\";\r\n  static attributeCheckModify = \"CHECK_ON_MODIFY\";\r\n  static attributeCheckUnique = \"CHECK_FOR_UNIQUE\";\r\n  static attributeCheckUpdate = \"CHECK_ON_UPDATE\";\r\n  static attributeRequired = \"ATTRIBUTE_REQUIRED\";\r\n  static attributePrimaryKey = \"PRIMARY KEY\";\r\n  static attributeUniqueKey = \"UNIQUE_KEY\";\r\n  static attributeUpdateTimestamp = \"UPDATE_TIMESTAMP\";\r\n  static attributeTimestamp = \"TIMESTAMP\";\r\n\r\n  static databaseTypeSQLite = 'sqlite';\r\n  static databaseTypeMySQL = 'mysql';\r\n\r\n  static dataDictionaryFunctions = \"functions\";\r\n  static dataDictionaryTables = \"tables\";\r\n  static dataDictionaryViews = \"views\";\r\n\r\n  static defaultCurrentTimestamp = \"DEFAULT CURRENT_TIMESTAMP\";\r\n\r\n  static fieldAttributes = \"field_attribute\";\r\n  static fieldFormats = \"field_formats\";\r\n  static fieldName = \"field_name\";\r\n  static fieldProperties = \"field_properties\";\r\n  static fieldSize = \"field_size\";\r\n  static fieldStacks = \"field_stacks\";\r\n  static fieldType = \"field_type\";\r\n  static fieldUserFunction = \"field_user_function\";\r\n  static fieldValue = \"field_value\";\r\n\r\n  static formatDate = \"DATE\";\r\n  static formatJson = \"JSON\";\r\n  static formatEncrypt = \"ENCRYPT\";\r\n  static formatLowercase = \"LOWERCASE\";\r\n  static formatUppercase = \"UPPERCASE\";\r\n\r\n  static functionName = \"function_name\";\r\n  static functionScript = \"function_script\";\r\n  static functionParameters = \"function_parameters\";\r\n  static functionValueTableField = \"function_value_table_field\";\r\n\r\n  static propertyAutoNumberLength = \"auto_number_length\";\r\n  static propertyAutoNumberPrefix = \"auto_number_prefix\";\r\n  static propertyCheckForAutoNumber = \"check_in_autonumber\";\r\n  static propertyCheckInModify = \"check_in_modify\";\r\n  static propertyCheckInSave = \"check_in_save\";\r\n  static propertyDefaultValue = \"default_value\";\r\n  static propertyFieldRemarks = \"field_remarks\";\r\n  static propertyFieldTitle = \"field_title\";\r\n  static propertyFormat = \"format\";\r\n  static propertyIsSelectDistinct = \"is_select_distinct\";\r\n  static propertyInSearchQuery = \"in_search_query\";\r\n  static propertyRequired = \"required\";\r\n  static propertyPrimaryKey = \"primary_key\";\r\n  static propertySelectOptions = \"select_options\";\r\n  static propertySize = \"size\";\r\n  static propertyUniqueKey = \"unique_key\";\r\n\r\n  static recordSingularName = \"singular_name\";\r\n  static recordPluralName = \"plural_name\";\r\n\r\n  static relationshipCascadeDeleteDestination = \"relationship_cascade_delete_destination\";\r\n  static relationshipCascadeDeleteSource = \"relationship_cascade_delete_source\";\r\n  static relationshipDestinationField = \"relationship_destination_field\";\r\n  static relationshipDestinationTable = \"relationship_destination_table\";\r\n  static relationshipSourceField = \"relationship_source_field\";\r\n  static relationshipSourceTable = \"relationship_source_table\";\r\n\r\n  static resultPrimaryKeyField = \"primary_key_field\";\r\n  static resultPrimaryKeyValue = \"primary_key_value\";\r\n\r\n  static selectQueryFields = \"select_query_fields\";\r\n  static selectDistinctFields = \"select_distinct_fields\";\r\n  static selectRequestFields = \"select_request_fields\";\r\n\r\n  static stackUpdateAll = -1;\r\n  static stackUpdateSkipMain = 0;\r\n\r\n  static tableFields = \"table_fields\";\r\n  static tableName = \"table_name\";\r\n  static tableQuery = \"table_query\";\r\n  static tableViewName = \"table_view_name\";\r\n  static tableViewQuery = \"table_view_query\";\r\n\r\n  static typeAutoNumber = \"AUTONUMBER\";\r\n  static typeBlob = \"BLOB\";\r\n  static typeDate = \"DATE\";\r\n  static typeDateTime = \"DATETIME\";\r\n  static typeDouble = \"REAL\";\r\n  static typeInt = \"INTEGER\";\r\n  static typeJson = \"JSON\";\r\n  static typeMediaJson = \"MEDIA_JSON\";\r\n  static typePassword = \"PASSWORD\";\r\n  static typeString = \"STRING\";\r\n  static typeText = \"TEXT\";\r\n  static typeUserDefinedFunction = \"USER_DEFINED_FUNCTION\";\r\n  static typeVarchar = \"VARCHAR\";\r\n\r\n  static viewFields = \"view_fields\";\r\n  static viewName = \"view_name\";\r\n  static viewQuery = \"view_query\";\r\n\r\n  table: string = \"\";\r\n  fields: any = {};\r\n  tableDetails: any = {};\r\n  tableForeignKeys: any = {};\r\n\r\n\r\n  constructor() {\r\n  }\r\n\r\n  checkHasField(fieldName:string){\r\n    return Object.keys(this.fields).includes(fieldName);\r\n  }\r\n\r\n  checkFieldIsForeignKey(fieldName:string){\r\n    return Object.keys(this.getFieldForeignKeyDetails(fieldName)).length > 0;\r\n  }\r\n\r\n  debug(message: any) {\r\n    console.log(message);\r\n  }\r\n\r\n  getFieldForeignKeyDetails(fieldName:string){\r\n    let result:any = {};\r\n    if(this.tableForeignKeys){\r\n      if(this.tableForeignKeys[fieldName]){\r\n        let sourceTableName:string = Object.keys(this.tableForeignKeys[fieldName])[0];\r\n        let sourceFieldName:string = Object.keys(this.tableForeignKeys[fieldName][sourceTableName])[0];\r\n        result = this.tableForeignKeys[fieldName][sourceTableName][sourceFieldName];\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getField(name: string = \"\", attributes: any[] = []): any {\r\n    let object = this;\r\n    let result = {};\r\n    if (Simplify.validValue(object.fields[name])) {\r\n      result = object.fields[name]!;\r\n    }\r\n    else {\r\n      if (attributes.length > 0) {\r\n        let fieldNames = Object.keys(object.fields);\r\n        fieldNames.forEach((name) => {\r\n          let field = object.fields[name];\r\n          if (Object.keys(result).length <= 0) {\r\n            let fieldAttributes: any[] = object.getFieldAttributes(field);\r\n            attributes.forEach((attribute) => {\r\n              if (fieldAttributes.includes(attribute)) {\r\n                result = field;\r\n              }\r\n            });\r\n          }\r\n        });\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getFieldAttributes(fieldDetails: any) {\r\n    let object = this;\r\n    let result = [];\r\n    if (Simplify.validValue(fieldDetails)) {\r\n      if (Simplify.validValue(fieldDetails[SimpleDatabase.fieldAttributes])) {\r\n        result = fieldDetails[SimpleDatabase.fieldAttributes];\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getFieldProperties(fieldName:string) {\r\n    let result = {};\r\n    let fieldDetails:any = this.getField(fieldName);\r\n    if (Simplify.validValue(fieldDetails)) {\r\n      if (Simplify.validValue(fieldDetails[SimpleDatabase.fieldProperties])) {\r\n        result = fieldDetails[SimpleDatabase.fieldProperties];\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getFieldSelectOptions(fieldName:string){\r\n    let options:any[] = [];\r\n    if (this.fields[fieldName]) {\r\n      let fieldDetails = this.fields[fieldName];\r\n      if (fieldDetails[SimpleDatabase.fieldProperties]) {\r\n        let fieldProperties = fieldDetails[SimpleDatabase.fieldProperties];\r\n        if(fieldProperties[SimpleDatabase.propertySelectOptions]) {\r\n          options = Object.values(fieldProperties[SimpleDatabase.propertySelectOptions]);\r\n        }\r\n      }\r\n    }\r\n    return options;\r\n  }\r\n\r\n  getFieldTitle(name:string){\r\n    let result = name;\r\n    if(this.fields[name]){\r\n      let properties:any = this.fields[name][SimpleDatabase.fieldProperties];\r\n      if(properties){\r\n        if(properties[SimpleDatabase.propertyFieldTitle]){\r\n          result = properties[SimpleDatabase.propertyFieldTitle];\r\n        }\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getFieldTitles(names:string[]){\r\n    let result:string[] = [];\r\n    names.forEach((fName:string)=>{\r\n      result.push(this.getFieldTitle(fName))\r\n    });\r\n    return result;\r\n  }\r\n\r\n  getPrimaryKeyField() {\r\n    return this.getField(\"\", [SimpleDatabase.attributePrimaryKey]);\r\n  }\r\n\r\n  setTableDetails(tableDetails: any) {\r\n    let object = this;\r\n    object.tableDetails = tableDetails;\r\n    if (Simplify.validValue(tableDetails)) {\r\n      if (Simplify.validValue(tableDetails[SimpleDatabase.tableName])) {\r\n        object.table = tableDetails[SimpleDatabase.tableName];\r\n      }\r\n      if (Simplify.validValue(tableDetails[SimpleDatabase.tableFields])) {\r\n        object.fields = tableDetails[SimpleDatabase.tableFields];\r\n      }\r\n    }\r\n  }\r\n\r\n  setTableForeignKeys(foreignKeys:any){\r\n    this.tableForeignKeys = foreignKeys;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SimpleDatabase } from '../database/simple-database';\r\nimport { Simplify } from '../utilities/simplify';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class DataDictionaryService {\r\n  static dataDictionary:any={};\r\n  constructor(){\r\n  }\r\n\r\n  getSimpleDatabaseTable(table:string){\r\n    let object=this;\r\n    let simpleDatabase=new SimpleDatabase();\r\n    if(Simplify.validValue(DataDictionaryService.dataDictionary)){\r\n      if(Simplify.validValue(DataDictionaryService.dataDictionary[\"tables\"])){\r\n        if(Simplify.validValue(DataDictionaryService.dataDictionary[\"tables\"][table])){\r\n          simpleDatabase.setTableDetails(DataDictionaryService.dataDictionary[\"tables\"][table]);\r\n        }\r\n        else{\r\n          console.warn(\"Table Not Found in Data Dictionary\",DataDictionaryService.dataDictionary);\r\n        }\r\n      }\r\n    }\r\n    else{\r\n      console.warn(\"Invalid Data Dictionary\",DataDictionaryService.dataDictionary);\r\n    }\r\n    return simpleDatabase;\r\n  }\r\n\r\n  getTablesFieldPropertiesObject(tableName:string,fieldName:string){\r\n    let result:any = {};\r\n    let object=this;\r\n    let fields = object.getTablesFieldsObject(tableName);\r\n    let fieldDetails:any = fields[fieldName];\r\n    if(Simplify.validValue(fieldDetails)){\r\n      if(Simplify.validValue(fieldDetails[SimpleDatabase.fieldProperties])){\r\n        result = fieldDetails[SimpleDatabase.fieldProperties];\r\n      }\r\n    }\r\n    else{\r\n      console.warn(\"Invalid Data Dictionary\",DataDictionaryService.dataDictionary);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getTableFieldPropertiesListSelectOptions(tableName:string,fieldName:string){\r\n    let result:any[] = [];\r\n    let properties:any = this.getTablesFieldPropertiesObject(tableName,fieldName);\r\n    for(let propertyName in properties){\r\n      result.push({\"label\":propertyName,\"value\":propertyName,\"property_value\":properties[propertyName]});\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getTablesFieldsObject(tableName:string,includeViews:boolean = true){\r\n    let result:any = {};\r\n    let object=this;\r\n    if(Simplify.validValue(DataDictionaryService.dataDictionary)){\r\n      if(Simplify.validValue(DataDictionaryService.dataDictionary[\"tables\"])){\r\n        let tables:any = DataDictionaryService.dataDictionary[\"tables\"];\r\n        let tableDetails = tables[tableName];\r\n        if(Simplify.validValue(tableDetails)){\r\n          if(Simplify.validValue(tableDetails[SimpleDatabase.tableFields])){\r\n            result = tableDetails[SimpleDatabase.tableFields];\r\n          }\r\n          if(includeViews){\r\n            if(DataDictionaryService.dataDictionary[\"views\"]){\r\n              if(tableDetails[SimpleDatabase.tableViewName]){\r\n                let viewDetails:any = DataDictionaryService.dataDictionary[\"views\"][tableDetails[SimpleDatabase.tableViewName]];\r\n                if(viewDetails){\r\n                  if(viewDetails[SimpleDatabase.viewFields]){\r\n                    for(let fieldName in viewDetails[SimpleDatabase.viewFields]){\r\n                      if(result[fieldName]==undefined){\r\n                        result[fieldName] = viewDetails[SimpleDatabase.viewFields][fieldName];\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n\r\n      }\r\n    }\r\n    else{\r\n      console.warn(\"Invalid Data Dictionary\",DataDictionaryService.dataDictionary);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getTableFieldsListSelectOptions(tableName:string,includeViews:boolean = true){\r\n    let result:any[] = [];\r\n    let fields:any = this.getTablesFieldsObject(tableName,includeViews);\r\n    for(let fieldName in fields){\r\n      result.push({\"label\":fieldName,\"value\":fieldName,\"field\":fields[fieldName]});\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getTablesObject(){\r\n    let result:any = {};\r\n    let object=this;\r\n    if(Simplify.validValue(DataDictionaryService.dataDictionary)){\r\n      if(Simplify.validValue(DataDictionaryService.dataDictionary[\"tables\"])){\r\n        result = DataDictionaryService.dataDictionary[\"tables\"];\r\n      }\r\n    }\r\n    else{\r\n      console.warn(\"Invalid Data Dictionary\",DataDictionaryService.dataDictionary);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getTablesListSelectOptions(){\r\n    let result:any[] = [];\r\n    let tables:any = this.getTablesObject();\r\n    for(let tableName in tables){\r\n      result.push({\"label\":tableName,\"value\":tableName,\"table\":tables[tableName]});\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getTableFieldSelectOptions(tableName:string,fieldName:string){\r\n    let object = this;\r\n    let options:any = [];\r\n    if(Simplify.validValue(DataDictionaryService.dataDictionary[\"tables\"])){\r\n      let tables = DataDictionaryService.dataDictionary[\"tables\"];\r\n      if(Simplify.validValue(tables[tableName])){\r\n        let tableDetails = tables[tableName];\r\n        if(Simplify.validValue(tableDetails[SimpleDatabase.tableFields])){\r\n          let tableFields = tables[tableName][SimpleDatabase.tableFields];\r\n          if(Simplify.validValue(tableFields[fieldName])){\r\n            let fieldDetails = tableFields[fieldName];\r\n            if(Simplify.validValue(fieldDetails[SimpleDatabase.fieldProperties])){\r\n              let fieldProperties = fieldDetails[SimpleDatabase.fieldProperties];\r\n              if(Simplify.validValue(fieldProperties[SimpleDatabase.propertySelectOptions])){\r\n                options = Object.values(fieldProperties[SimpleDatabase.propertySelectOptions]);\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return options;\r\n  }\r\n\r\n  registerDataDictionary(dataDictionary:any){\r\n    let object=this;\r\n    DataDictionaryService.dataDictionary = dataDictionary;\r\n  }\r\n\r\n}\r\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, ComponentRef, Type } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class DynamicComponentService {\r\n  static componentRegistry: { [name: string]: Type<any> } = {};\r\n\r\n  constructor(\r\n    private componentFactoryResolver: ComponentFactoryResolver,\r\n    private appRef: ApplicationRef,\r\n    public injector: Injector\r\n  ) {  }\r\n\r\n  getComponentRef(nameOrType:string | Type<any>){\r\n    return typeof nameOrType === 'string' ? DynamicComponentService.componentRegistry[nameOrType] : nameOrType;\r\n  }\r\n\r\n  registerReference(componentType: Type<any>): void {\r\n    this.registerComponent(componentType.prototype.constructor.name.substring(1),componentType);\r\n  }\r\n\r\n  registerComponent(name: string, componentType: Type<any>): void {\r\n    DynamicComponentService.componentRegistry[name] = componentType;\r\n  }\r\n\r\n  createComponent(nameOrType: string | Type<any>, data?: any): ComponentRef<any> | null {\r\n    let componentType = typeof nameOrType === 'string' ? DynamicComponentService.componentRegistry[nameOrType] : nameOrType;\r\n    if (componentType) {\r\n      let componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n      let componentRef = componentFactory.create(this.injector);\r\n      this.appRef.attachView(componentRef.hostView);\r\n      if (data) {\r\n        Object.keys(data).forEach((key) => {\r\n          componentRef.instance[key] = data[key];\r\n        });\r\n      }\r\n      return componentRef;\r\n    } else {\r\n      console.error(`Component with name or type ${nameOrType} not registered.`);\r\n      return null;\r\n    }\r\n  }\r\n\r\n  destroyComponent(componentRef: ComponentRef<any>): void {\r\n    // this.appRef.detachView(componentRef.hostView);\r\n    componentRef.destroy();\r\n  }\r\n}\r\n","import { Injectable, NgZone, Renderer2, RendererFactory2 } from '@angular/core';\r\nimport { fromEvent, merge, timer, Subject, Observable, EMPTY } from 'rxjs';\r\nimport { switchMap, takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SimpleActivityDetectionService {\r\n  private renderer: Renderer2;\r\n  private resetTimer$ = new Subject<void>();\r\n\r\n  constructor(private ngZone: NgZone, private rendererFactory: RendererFactory2) {\r\n    this.renderer = this.rendererFactory.createRenderer(null, null);\r\n  }\r\n\r\n  resetInactivityListener() {\r\n    this.resetTimer$.next();\r\n  }\r\n\r\n  startInactivityListener(inactivityDuration: number, callback: () => void): Observable<void> {\r\n    if (typeof window === 'undefined' || typeof document === 'undefined') {\r\n      return EMPTY;\r\n    }\r\n\r\n    this.ngZone.runOutsideAngular(() => {\r\n      const activityEvents$ = merge(\r\n        fromEvent(document, 'mousemove'),\r\n        fromEvent(document, 'mousedown'),\r\n        fromEvent(document, 'keypress'),\r\n        fromEvent(document, 'touchstart')\r\n      );\r\n\r\n      activityEvents$.pipe(\r\n        switchMap(() => timer(inactivityDuration)),\r\n        takeUntil(this.resetTimer$)\r\n      ).subscribe(() => {\r\n        this.ngZone.run(callback);\r\n      });\r\n    });\r\n\r\n    return this.resetTimer$;\r\n  }\r\n\r\n  stopInactivityListener() {\r\n    this.resetTimer$.complete();\r\n  }\r\n}\r\n","import { SimpleAlertType } from \"./enum\";\r\n\r\nexport class DefaultConfigs{\r\n  static simpleAlertConfig: SimpleAlertConfig = {\r\n    alertType:SimpleAlertType.sonner,\r\n    cancelButtonText: \"Cancel\",\r\n    confirmButtonText: \"Confirm\",\r\n    customClass:{\r\n      denyButton: 'btn-secondary',\r\n      confirmButton:'btn-danger'\r\n    },\r\n    displayDuration:3000,\r\n    icon: \"info\",\r\n    position: \"top-right\",\r\n    showCancelButton: false,\r\n    showConfirmButton: false,\r\n    showProgressBar: false,\r\n    toast : false\r\n  };\r\n}\r\n\r\nexport interface SimpleAlertConfig{\r\n  alertType?:any|undefined,\r\n  cancelButtonText?: any|undefined,\r\n  confirmButtonText?: any|undefined,\r\n  customClass?: any|undefined,\r\n  displayDuration?:any|undefined,\r\n  icon?:any|undefined,\r\n  iconColor?:any|undefined,\r\n  position?:any|undefined,\r\n  onCancel?:any|undefined,\r\n  onConfirm?:any|undefined,\r\n  showCancelButton?:any|undefined,\r\n  showConfirmButton?:any|undefined,\r\n  showProgressBar?: any|undefined,\r\n  toast?:any|undefined\r\n}\r\nexport class SimpleAlertConfigUtil{\r\n  static from(config: Partial<SimpleAlertConfig>,defaultConfig:Partial<SimpleAlertConfig> = {}): SimpleAlertConfig {\r\n    return {\r\n      ...DefaultConfigs.simpleAlertConfig,\r\n      ...defaultConfig,\r\n      ...config };\r\n  }\r\n}\r\n\r\n\r\n","import { ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, input, numberAttribute, Renderer2, RendererFactory2 } from '@angular/core';\r\nimport { SimpleAlertType } from '../configs/enum';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { SimpleAlertConfig, SimpleAlertConfigUtil } from '../configs/models';\r\nimport Swal from 'sweetalert2';\r\nimport { NgxSonnerToaster, toast } from 'ngx-sonner';\r\ndeclare var document: any;\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SimpleAlertService {\r\n  static initialized: boolean = false;\r\n  static instance: any;\r\n  constructor(private toastr: ToastrService, private injector: Injector,\r\n    private appRef: ApplicationRef,\r\n    private componentFactoryResolver: ComponentFactoryResolver,\r\n    private rendererFactory: RendererFactory2) {\r\n    if (!SimpleAlertService.initialized) {\r\n      SimpleAlertService.initialized = true;\r\n      this.setupNgxSoonerInstance();\r\n    }\r\n  }\r\n\r\n\r\n\r\n\r\n\r\n  confirmPopup(message: string, config: SimpleAlertConfig = {}) {\r\n    let alertConfig = SimpleAlertConfigUtil.from(config, {\r\n      icon: \"question\",\r\n      showCancelButton: true,\r\n      showConfirmButton: true,\r\n      toast: false,\r\n      displayDuration: undefined,\r\n      showProgressBar: false,\r\n      position: \"middle-center\"\r\n    });\r\n    Swal.fire({\r\n      'title': message,\r\n      icon: alertConfig.icon,\r\n      showConfirmButton: alertConfig.showConfirmButton,\r\n      showCancelButton: alertConfig.showCancelButton,\r\n      cancelButtonText: alertConfig.cancelButtonText,\r\n      confirmButtonText: alertConfig.confirmButtonText,\r\n      toast: alertConfig.toast,\r\n      timer: alertConfig.displayDuration,\r\n      timerProgressBar: alertConfig.showProgressBar,\r\n      position: alertConfig.position\r\n    }).then((result) => {\r\n      if (result.isConfirmed) {\r\n        if (alertConfig.onConfirm) {\r\n          alertConfig.onConfirm();\r\n        }\r\n      }\r\n      else {\r\n        if (alertConfig.onCancel) {\r\n          alertConfig.onCancel();\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  confirmDelete(message: string, config: SimpleAlertConfig = {}) {\r\n    let alertConfig = SimpleAlertConfigUtil.from(config, {\r\n      confirmButtonText: \"Confirm Delete\",\r\n      cancelButtonText: \"Cancel\",\r\n      icon: \"question\",\r\n      iconColor: \"red\",\r\n      showCancelButton: true,\r\n      showConfirmButton: true,\r\n      toast: false,\r\n      displayDuration: undefined,\r\n      showProgressBar: false,\r\n      position: \"middle-center\"\r\n    });\r\n    Swal.fire({\r\n      'title': message,\r\n      icon: alertConfig.icon,\r\n      showConfirmButton: alertConfig.showConfirmButton,\r\n      showCancelButton: alertConfig.showCancelButton,\r\n      cancelButtonText: alertConfig.cancelButtonText,\r\n      confirmButtonText: alertConfig.confirmButtonText,\r\n      toast: alertConfig.toast,\r\n      timer: alertConfig.displayDuration,\r\n      timerProgressBar: alertConfig.showProgressBar,\r\n      position: alertConfig.position,\r\n      customClass: alertConfig.customClass\r\n    }).then((result) => {\r\n      if (result.isConfirmed) {\r\n        if (alertConfig.onConfirm) {\r\n          alertConfig.onConfirm();\r\n        }\r\n      }\r\n      else {\r\n        if (alertConfig.onCancel) {\r\n          alertConfig.onCancel();\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  error(message: string, config: SimpleAlertConfig = {}) {\r\n    let alertConfig = SimpleAlertConfigUtil.from(config, {\r\n      icon: \"error\",\r\n      toast: true,\r\n      showProgressBar: true\r\n    });\r\n    switch (alertConfig.alertType) {\r\n      case SimpleAlertType.sonner:\r\n        toast.error(message, {\r\n          position: alertConfig.position,\r\n          duration: alertConfig.displayDuration,\r\n        });\r\n        break;\r\n      case SimpleAlertType.sweetAlert:\r\n      case SimpleAlertType.sweetAlertToast:\r\n        Swal.fire({\r\n          icon: alertConfig.icon,\r\n          position: alertConfig.position,\r\n          showConfirmButton: alertConfig.showConfirmButton,\r\n          timer: alertConfig.displayDuration,\r\n          timerProgressBar: alertConfig.showProgressBar,\r\n          title: message,\r\n          toast: alertConfig.toast,\r\n          customClass: {\r\n            container: \"swal-notification-toast-container\"\r\n          }\r\n        });\r\n        break;\r\n      case SimpleAlertType.toaster:\r\n        this.toastr.error(message);\r\n        break;\r\n    }\r\n  }\r\n\r\n  info(message: string, config: SimpleAlertConfig = {}) {\r\n    let alertConfig = SimpleAlertConfigUtil.from(config, {\r\n      toast: true,\r\n      showProgressBar: true\r\n    });\r\n    switch (alertConfig.alertType) {\r\n      case SimpleAlertType.sonner:\r\n        toast.info(message, {\r\n          position: alertConfig.position,\r\n          duration: alertConfig.displayDuration,\r\n        });\r\n        break;\r\n      case SimpleAlertType.toaster:\r\n        this.toastr.info(message);\r\n        break;\r\n      case SimpleAlertType.sweetAlert:\r\n      case SimpleAlertType.sweetAlertToast:\r\n        Swal.fire({\r\n          icon: alertConfig.icon,\r\n          position: alertConfig.position,\r\n          showConfirmButton: alertConfig.showConfirmButton,\r\n          timer: alertConfig.displayDuration,\r\n          timerProgressBar: alertConfig.showProgressBar,\r\n          title: message,\r\n          toast: alertConfig.toast,\r\n          customClass: {\r\n            container: \"swal-notification-toast-container\"\r\n          }\r\n        });\r\n        break;\r\n    }\r\n  }\r\n\r\n  notify(message: string, config: SimpleAlertConfig = {}) {\r\n    let alertConfig = SimpleAlertConfigUtil.from(config, {\r\n      icon: \"info\",\r\n      showConfirmButton: false,\r\n      showCancelButton: false,\r\n      toast: true\r\n    });\r\n    Swal.fire({\r\n      'title': message,\r\n      icon: alertConfig.icon,\r\n      showConfirmButton: alertConfig.showConfirmButton,\r\n      showCancelButton: alertConfig.showCancelButton,\r\n      cancelButtonText: alertConfig.cancelButtonText,\r\n      confirmButtonText: alertConfig.confirmButtonText,\r\n      toast: alertConfig.toast,\r\n      timer: alertConfig.displayDuration,\r\n      timerProgressBar: alertConfig.showProgressBar,\r\n      position: alertConfig.position\r\n    }).then((result) => {\r\n      if (result.isConfirmed) {\r\n        if (alertConfig.onConfirm) {\r\n          alertConfig.onConfirm();\r\n        }\r\n      }\r\n      else {\r\n        if (alertConfig.onCancel) {\r\n          alertConfig.onCancel();\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  private setupNgxSoonerInstance() {\r\n    let setupSuccess:boolean = false;\r\n    if(document){\r\n      if(document.body){\r\n        const componentFactory = this.componentFactoryResolver.resolveComponentFactory(NgxSonnerToaster);\r\n        const componentRef: any = componentFactory.create(this.injector);\r\n        SimpleAlertService.instance = componentRef.instance;\r\n        SimpleAlertService.instance.visibleToasts = () => { return 50; };\r\n        SimpleAlertService.instance.richColors = () => { return true; };\r\n        this.appRef.attachView(componentRef.hostView);\r\n        const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0];\r\n        setTimeout(() => {\r\n          document.body.appendChild(domElem);\r\n        }, 1000);\r\n        document[\"ngxSoonerInstance\"] = SimpleAlertService.instance;\r\n        setupSuccess = true;\r\n      }\r\n      else{\r\n        console.log(\"Document body not found\");\r\n      }\r\n    }\r\n    else{\r\n      console.log(\"Document not found\");\r\n    }\r\n    if(!setupSuccess){\r\n      this.setupNgxSoonerInstance();\r\n    }\r\n  }\r\n\r\n  success(message: string, config: SimpleAlertConfig = {}) {\r\n    let alertConfig = SimpleAlertConfigUtil.from(config, {\r\n      icon: \"success\",\r\n      toast: true,\r\n      showProgressBar: true\r\n    });\r\n    switch (alertConfig.alertType) {\r\n      case SimpleAlertType.sonner:\r\n        toast.success(message, {\r\n          position: alertConfig.position,\r\n          duration: alertConfig.displayDuration,\r\n        });\r\n        break;\r\n      case SimpleAlertType.toaster:\r\n        this.toastr.success(message);\r\n        break;\r\n      case SimpleAlertType.sweetAlert:\r\n      case SimpleAlertType.sweetAlertToast:\r\n        Swal.fire({\r\n          icon: alertConfig.icon,\r\n          position: alertConfig.position,\r\n          showConfirmButton: alertConfig.showConfirmButton,\r\n          timer: alertConfig.displayDuration,\r\n          timerProgressBar: alertConfig.showProgressBar,\r\n          title: message,\r\n          toast: alertConfig.toast,\r\n          customClass: {\r\n            container: \"swal-notification-toast-container\"\r\n          }\r\n        });\r\n        break;\r\n    }\r\n  }\r\n\r\n  warning(message: string, config: SimpleAlertConfig = {}) {\r\n    let alertConfig = SimpleAlertConfigUtil.from(config, {\r\n      icon: \"warning\",\r\n      toast: true,\r\n      showProgressBar: true\r\n    });\r\n    switch (alertConfig.alertType) {\r\n      case SimpleAlertType.sonner:\r\n        toast.warning(message, {\r\n          position: alertConfig.position,\r\n          duration: alertConfig.displayDuration,\r\n        });\r\n        break;\r\n      case SimpleAlertType.toaster:\r\n        this.toastr.warning(message);\r\n        break;\r\n      case SimpleAlertType.sweetAlert:\r\n      case SimpleAlertType.sweetAlertToast:\r\n        Swal.fire({\r\n          icon: alertConfig.icon,\r\n          position: alertConfig.position,\r\n          showConfirmButton: alertConfig.showConfirmButton,\r\n          timer: alertConfig.displayDuration,\r\n          timerProgressBar: alertConfig.showProgressBar,\r\n          title: message,\r\n          toast: alertConfig.toast,\r\n          customClass: {\r\n            container: \"swal-notification-toast-container\"\r\n          }\r\n        });\r\n        break;\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport 'intersection-observer';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ViewportService {\r\n  private observer: IntersectionObserver;\r\n\r\n  constructor() {\r\n    this.observer = new IntersectionObserver(entries => {\r\n      entries.forEach(entry => {\r\n        const inViewport = entry.isIntersecting;\r\n        this.triggerViewportChange(entry.target, inViewport);\r\n      });\r\n    }, { threshold: [0] });\r\n  }\r\n\r\n  observe(element: any, callback: (inViewport: boolean) => void): void {\r\n    this.observer.observe(element);\r\n    element.addEventListener('viewportChange', (event: CustomEvent) => {\r\n      callback(event.detail.inViewport);\r\n    });\r\n  }\r\n\r\n  cancel(element: Element): void {\r\n    this.observer.unobserve(element);\r\n    // element.removeEventListener('viewportChange', this.handleViewportChangeEvent);\r\n  }\r\n\r\n  private triggerViewportChange(target: Element, inViewport: boolean): void {\r\n    const event = new CustomEvent('viewportChange', { detail: { inViewport } });\r\n    target.dispatchEvent(event);\r\n  }\r\n\r\n  addViewportChangeListener(element: Element, callback: (inViewport: boolean) => void): void {\r\n    this.observe(element, callback);\r\n  }\r\n\r\n  removeViewportChangeListener(element: Element): void {\r\n    this.cancel(element);\r\n  }\r\n}\r\n","import { ApplicationRef,  ElementRef,  Inject,  Injectable, Injector, PLATFORM_ID, Renderer2, RendererFactory2, Type} from '@angular/core';\r\nimport { DynamicComponentService } from './dynamic-component.service';\r\nimport { ComponentsRegisterService } from './components-register.service';\r\nimport { DataDictionaryService } from './data-dictionary.service';\r\nimport { SimpleAlertService } from './simple-alert.service';\r\nimport { ViewportService } from './viewport.service';\r\nimport { SimpleActivityDetectionService } from './simple-activity-detection.service';\r\nimport { Simplify } from '../utilities/simplify';\r\nimport { SimpleStorage } from '../utilities/simple-storage';\r\nimport { SimpleExtensionMethods } from '../utilities/simple-extension-methods';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { SimpleLogger } from '../utilities/simple-logger';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SimpleHttp } from '../utilities/simple-http';\r\nimport FingerprintJS from '@fingerprintjs/fingerprintjs';\r\ndeclare var document: any;\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SimplifyService {\r\n  public renderer: Renderer2;\r\n  public components: { [name: string]: Type<any> } = {}\r\n  public configurations:any = {};\r\n  public globals:any = {};\r\n  public services:any ={};\r\n  _functions:any={};\r\n  intersectionObserver:IntersectionObserver;\r\n  simpleStorage:SimpleStorage = new SimpleStorage();;\r\n  simpleExtensionMethods:SimpleExtensionMethods = new SimpleExtensionMethods();\r\n  simpleLogger:SimpleLogger = new SimpleLogger();\r\n  constructor(\r\n    @Inject(PLATFORM_ID) public platformId:Object,\r\n    public appRef: ApplicationRef,\r\n    public componentsRegisterService:ComponentsRegisterService,\r\n    public dataDictionaryService:DataDictionaryService,\r\n    public dynamicComponentService:DynamicComponentService,\r\n    public injector: Injector,\r\n    public rendererFactory:RendererFactory2,\r\n    public simpleActivityDetectionService:SimpleActivityDetectionService,\r\n    public simpleAlertService:SimpleAlertService,\r\n    public viewportService:ViewportService,\r\n    public deviceDetectorService: DeviceDetectorService,\r\n    public httpClient:HttpClient\r\n  ) {\r\n    SimpleHttp.initialize(httpClient);\r\n    this.renderer = rendererFactory.createRenderer(null, null);\r\n  }\r\n\r\n  addComponentToElement(container:Element,component:any, data?: any):any {\r\n    try{\r\n      let componentRef=this.dynamicComponentService.createComponent(component,data);;\r\n      if(componentRef!=null){\r\n        let componentNativeElement = (componentRef!.hostView as any).rootNodes[0] as Element;\r\n        container.innerHTML='';\r\n        container.appendChild(componentNativeElement);\r\n        return componentRef!.instance;\r\n      }\r\n    }\r\n    catch(ex){\r\n      this.getExceptionDetails(ex);\r\n    }\r\n    return null;\r\n  }\r\n\r\n  applyButtonProcessing(element:any){\r\n  }\r\n\r\n  checkElementDataValue(element:any,value:any){\r\n    return Simplify.checkElementDataValue(element,value);\r\n  }\r\n\r\n  checkObjectValueSame(objectA:any,objectB:any){\r\n    return Simplify.checkObjectValueSame(objectA,objectB);\r\n  }\r\n\r\n  commentElementTag(elementRef:ElementRef){\r\n    let initialized:boolean = false;\r\n    if(elementRef){\r\n      if(elementRef.nativeElement){\r\n        initialized = true;\r\n        const hostElement = elementRef.nativeElement; // The component's host element\r\n        const parentElement = hostElement.parentElement;\r\n\r\n        if (!parentElement) {\r\n          // console.warn('Cannot comment out element because it has no parent.');\r\n          return;\r\n        }\r\n\r\n        // Get the tag name of the component\r\n        const tagName = hostElement.tagName.toLowerCase(); // e.g., 'app-my-component'\r\n\r\n        // Create comments for opening and closing tags\r\n        const openingComment = this.renderer.createComment(`<${tagName}>`);\r\n        const closingComment = this.renderer.createComment(`</${tagName}>`);\r\n\r\n        // Insert the opening comment before the host element\r\n        this.renderer.insertBefore(parentElement, openingComment, hostElement);\r\n\r\n        // Move the host's children into the parent\r\n        while (hostElement.firstChild) {\r\n          this.renderer.insertBefore(parentElement, hostElement.firstChild, hostElement);\r\n        }\r\n\r\n        // Insert the closing comment after the content\r\n        this.renderer.insertBefore(parentElement, closingComment, hostElement.nextSibling);\r\n\r\n        // Remove the host element\r\n        this.renderer.removeChild(parentElement, hostElement);\r\n      }\r\n    }\r\n    if(!initialized){\r\n      setTimeout(() => {\r\n        this.commentElementTag(elementRef);\r\n      }, 100);\r\n    }\r\n  }\r\n\r\n  convertJsonStringToArray(jsonString:string){\r\n    return Simplify.convertJsonStringToArray(jsonString);\r\n  }\r\n\r\n  convertArrayToObject(sourceArray:any,keyField:any,params:any={}){\r\n    return Simplify.convertArrayToObject(sourceArray,keyField);\r\n  }\r\n\r\n  convertObjectToRequestString(requestData:any){\r\n    return Simplify.convertObjectToRequestString(requestData);\r\n  }\r\n\r\n  copyObjectValues(source:any,destination:any){\r\n    return Simplify.copyObjectValues(source,destination);\r\n  }\r\n\r\n  disableElementControls(container:Element){\r\n    Simplify.disableElementControls(container);\r\n  }\r\n\r\n  debug(message:any){\r\n    Simplify.debug(message);\r\n  }\r\n\r\n  downloadFile(fileData: Blob | number[], fileName: string): void {\r\n    Simplify.downloadFile(fileData,fileName);\r\n  }\r\n\r\n  elementIndexInParent(element:any){\r\n    return Simplify.elementIndexInParent(element);\r\n  }\r\n\r\n  elementIsVisible(element:any) {\r\n    return Simplify.elementIsVisible(element);\r\n  }\r\n\r\n  elementPrepend(containerElement:any,newElement:any){\r\n    Simplify.elementPrepend(containerElement,newElement);\r\n  }\r\n\r\n  elementMoveToIndex(element: HTMLElement, newIndex:number): void {\r\n    Simplify.elementMoveToIndex(element,newIndex);\r\n  }\r\n\r\n  elementReplace(elementToReplace:any,newElement:any){\r\n    Simplify.elementReplace(elementToReplace,newElement);\r\n  }\r\n\r\n  elementSwap(elementA: HTMLElement, elementB: HTMLElement): void {\r\n    Simplify.elementSwap(elementA,elementB);\r\n  }\r\n\r\n  elementSwapByIndex(container: HTMLElement, indexA:number,indexB:number): void {\r\n    Simplify.elementSwapByIndex(container,indexA,indexB);\r\n  }\r\n\r\n  enableElementControls(container:Element){\r\n    Simplify.enableElementControls(container);\r\n  }\r\n\r\n  escapeRegExp(string:string){\r\n    return Simplify.escapeRegExp(string);\r\n  }\r\n\r\n  executeEventFunctions(event:string,functions:any,params:any={}){\r\n    Simplify.executeEventFunctions(event,functions,params);\r\n  }\r\n\r\n  executeFunctions(functions:any,params:any={}){\r\n    Simplify.executeFunctions(functions,params);\r\n  }\r\n\r\n  formatCurrencySymbol(currency:any){\r\n    return Simplify.formatCurrencySymbol(currency);\r\n  }\r\n\r\n  formatDateTime(date:any,format:any,params:any={}){\r\n    return Simplify.formatDateTime(date,format,params);\r\n  }\r\n\r\n  formatElement(element:any){\r\n    Simplify.formatElement(element);\r\n  }\r\n\r\n  formatElementData(element:any){\r\n    Simplify.formatElementData(element);\r\n  }\r\n\r\n  formatNumber(number:any,format:any,params:any={}){\r\n    return Simplify.formatNumber(number,format,params);\r\n  }\r\n\r\n  generateId(){\r\n    return Simplify.generateId();\r\n  }\r\n\r\n  generateRandomString(length: number = 10): string {\r\n    return Simplify.generateRandomString(length);\r\n  }\r\n\r\n  getClassNameFromInstance(instance:any){\r\n    return Simplify.getClassNameFromInstance(instance);\r\n  }\r\n\r\n  getComponentInstance(identifier:any){\r\n    return this.componentsRegisterService.getInstance(identifier);\r\n  }\r\n\r\n  getComponentInstanceFromElement(element:Element){\r\n    let identifier:any = element.getAttribute(\"sim-component-instance-identifier\");\r\n    if(identifier!=undefined){\r\n      return this.getComponentInstance(identifier);\r\n    }\r\n    return null;\r\n  }\r\n\r\n  getDeviceDetails(): string {\r\n    let result:any = {...this.deviceDetectorService.getDeviceInfo()};\r\n    return result;\r\n  }\r\n\r\n  async getDeviceId(): Promise<string> {\r\n    let result:string = \"\";\r\n    if(this.simpleStorage.checkLocalExist(\"simplifyDeviceId\")){\r\n      result = this.simpleStorage.getLocalData(\"simplifyDeviceId\");\r\n    }\r\n    else{\r\n      const fp = await FingerprintJS.load();\r\n      const fpResult = await fp.get();\r\n      result = fpResult.visitorId;\r\n      this.setDeviceId(result);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getElementContentType(element:Element){\r\n    return Simplify.getElementContentType(element);\r\n  }\r\n\r\n  getElementData(mainElement:Element,params:any={}){\r\n    return Simplify.getElementData(mainElement,params);\r\n  }\r\n\r\n  getElementDataValue(element:any,params:any={}){\r\n    return Simplify.getElementDataValue(element,params);\r\n  }\r\n\r\n  getElementType(element:Element){\r\n    return Simplify.getElementType(element);\r\n  }\r\n\r\n  getExceptionDetails(ex:any){\r\n    Simplify.getExceptionDetails(ex);\r\n  }\r\n\r\n  getExtensionFromFileName(fileName:string){\r\n    Simplify.getExtensionFromFileName(fileName);\r\n  }\r\n\r\n  getFileExtensionFromPath(filePath:string) {\r\n    return Simplify.getFileExtensionFromPath(filePath);\r\n  }\r\n\r\n  getFormattedData(element:any){\r\n    return Simplify.getFormattedData(element);\r\n  }\r\n\r\n  getMimeTypeFromFileName(fileName:string){\r\n    return Simplify.getMimeTypeFromFileName(fileName);\r\n  }\r\n\r\n  isBrowser(){\r\n    return isPlatformBrowser(this.platformId);\r\n  }\r\n\r\n  isDesktop(): boolean {\r\n    return this.deviceDetectorService.isDesktop();\r\n  }\r\n\r\n  isJson(str:any) {\r\n    return Simplify.isJson(str);\r\n  }\r\n\r\n  isMobile(): boolean {\r\n    return this.deviceDetectorService.isMobile();\r\n  }\r\n\r\n  isTablet(): boolean {\r\n    return this.deviceDetectorService.isTablet();\r\n  }\r\n\r\n  on(event:any,callback:any){\r\n    return this.registerEventFunction(this._functions,event,callback);\r\n  }\r\n\r\n  printImage(src: string): void {\r\n    Simplify.printImage(src);\r\n  }\r\n\r\n  registerComponentInstance(instance:any,elementRef:ElementRef){\r\n    let id = this.generateRandomString();\r\n    if(elementRef){\r\n      let nativeElement = elementRef.nativeElement;\r\n      nativeElement.setAttribute(\"sim-component-instance-identifier\",id);\r\n    }\r\n    this.componentsRegisterService.registerInstance(instance,id);\r\n    return id;\r\n  }\r\n\r\n  registerEventFunction(functions:any,event:string,callback:any){\r\n    return Simplify.registerEventFunction(functions,event,callback);\r\n  }\r\n\r\n  registerService(service: any,serviceName:string = \"\"){\r\n    if(serviceName == \"\"){\r\n      serviceName = service.prototype.constructor.name.substring(1);\r\n      serviceName = serviceName.substring(0,1).toLowerCase()+serviceName.substring(1);\r\n    }\r\n    if(serviceName != \"\"){\r\n      this.services[serviceName] = service;\r\n    }\r\n  }\r\n\r\n  removeButtonProcessing(element:any){\r\n    Simplify.removeButtonProcessing(element);\r\n  }\r\n\r\n  setDeviceId(deviceId:string): void {\r\n    this.simpleStorage.setLocalData(\"simplifyDeviceId\",deviceId);\r\n  }\r\n\r\n\r\n  setElementData(mainElement:any,dataObject:any,params:any={}){\r\n    Simplify.setElementData(mainElement,dataObject,params);\r\n  }\r\n\r\n  setElementDataValue(element:any,data:any){\r\n    Simplify.setElementDataValue(element,data);\r\n  }\r\n\r\n  setElementDefaults(mainElement:any){\r\n    Simplify.setElementDefaults(mainElement);\r\n  }\r\n\r\n  validPrimaryKey(value:any){\r\n    return Simplify.validPrimaryKey(value);\r\n  }\r\n\r\n  validValue(value:any){\r\n    return Simplify.validValue(value);\r\n  }\r\n\r\n  unwrapElement(element: HTMLElement) {\r\n    Simplify.unwrapElement(element);\r\n  }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Output } from '@angular/core';\r\nimport { SimpleEvents } from '../utilities/simple-events';\r\nimport { SimplifyService } from '../services/simplify.service';\r\n\r\n@Directive()\r\nexport class SimpleBaseClass {\r\n  @Output() onDestroy: EventEmitter<any> = new EventEmitter();\r\n  @Output() onElementTagCommented: EventEmitter<any> = new EventEmitter();\r\n  @Output() onInit: EventEmitter<any> = new EventEmitter();\r\n  @Output() onViewInit: EventEmitter<any> = new EventEmitter();\r\n\r\n  commentElementTag:boolean = false;\r\n  childrenElements:HTMLElement[] = [];\r\n  events:SimpleEvents = new SimpleEvents();\r\n\r\n  constructor(public elementRef:ElementRef,public simplify:SimplifyService){\r\n  }\r\n\r\n  ngAfterViewInit(){\r\n    if(this.commentElementTag){\r\n      this.commentTag();\r\n    }\r\n    let event:any = {\r\n      instance:this\r\n    };\r\n    this.onViewInit.emit(event);\r\n    this.events.execute(\"viewInit\",event);\r\n  }\r\n\r\n  ngOnDestroy(){\r\n    if(this.commentElementTag){\r\n      for(let element of this.childrenElements){\r\n        element.remove();\r\n      }\r\n    }\r\n    let event:any = {\r\n      instance:this\r\n    };\r\n    this.onDestroy.emit(event);\r\n    this.events.execute(\"destroy\",event);\r\n\r\n  }\r\n\r\n  ngOnInit(){\r\n    let event:any = {\r\n      instance:this\r\n    };\r\n    this.onInit.emit(event);\r\n    this.events.execute(\"init\",event);\r\n  }\r\n\r\n  commentTag(){\r\n    if(this.elementRef){\r\n      for(let element of this.elementRef.nativeElement.children){\r\n        this.childrenElements.push(element);\r\n      }\r\n      this.simplify.commentElementTag(this.elementRef);\r\n      this.onElementTagCommented.emit();\r\n      this.events.execute(\"elementTagCommented\");\r\n    }\r\n    else{\r\n      setTimeout(() => {\r\n        this.commentTag();\r\n      }, 100);\r\n    }\r\n  }\r\n\r\n  on(event:string,callback:Function){\r\n    return this.events.register(event,callback);\r\n  }\r\n\r\n}\r\n","import { AfterContentChecked, AfterViewInit, Component, ElementRef, EventEmitter, forwardRef, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { SimpleBaseClass } from './simple-base-class';\r\nimport { FormatDate, FormatString, InputType } from '../configs/enum';\r\nimport { DataDictionaryService } from '../services/data-dictionary.service';\r\nimport { SimpleLogger } from '../utilities/simple-logger';\r\nimport { SimplifyService } from '../services/simplify.service';\r\nimport moment from 'moment';\r\nimport { SimpleDatabase } from '../database/simple-database';\r\nimport { ISimpleEventExecuteCallbackParams } from '../utilities/simple-events';\r\nimport { SimpleExtensionMethods } from '../utilities/simple-extension-methods';\r\nimport { Simplify } from '../utilities/simplify';\r\n\r\n@Component({\r\n  selector: 'simple-base-for-input',\r\n  template: '<span></span>',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => SimpleBaseForInputComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => SimpleBaseForInputComponent),\r\n      multi: true\r\n    }\r\n  ],\r\n  standalone: false\r\n})\r\nexport class SimpleBaseForInputComponent extends SimpleBaseClass implements AfterViewInit, OnInit, OnChanges, AfterContentChecked, ControlValueAccessor, Validator {\r\n  FormatString = FormatString;\r\n  InputType = InputType;\r\n  @ViewChild('input') inputRef: any;\r\n\r\n  public get record(): any { return this._record; }\r\n  @Input() public set record(value: any) { this._record = value; this.setValueFromRecord(); }\r\n  get value(): any { return this._value; }\r\n  @Input() set value(value: any) { let object = this; object.setValue(value); }\r\n\r\n  @Input() bindSimpleInput: any;\r\n  @Input() checkKeyDownChange: boolean = false;\r\n  @Input() checkKeyDownChangeDuration: number = 1000;\r\n  @Input() class = '';\r\n  @Input() dataField = '';\r\n  @Input() defaultValue: any;\r\n  @Input() disabled = false;\r\n  @Input() form: any = null;\r\n  @Input() format: string = \"\";\r\n  @Input() formatDateType: string = FormatDate.input;\r\n  @Input() formSubmitted: boolean = false;\r\n  @Input() label: any;\r\n  @Input() maxLength: number | undefined;\r\n  @Input() minLength: number | undefined;\r\n  @Input() name = \"\";\r\n  @Input() numberMinimumIntegerDigits: number | undefined;\r\n  @Input() numberMinimumFractionDigits: number | undefined;\r\n  @Input() numberMaximumFractionDigits: number | undefined;\r\n  @Input() placeholder: any = '';\r\n  @Input() readonly = false;\r\n  @Input() reflectingRecords: any[] = [];\r\n  @Input() required: boolean = false;\r\n  @Input() rows: any;\r\n  @Input() simpleDatabaseTable: string = \"\";\r\n  @Input() style: string = \"\";\r\n  @Input() type: any = 'text';\r\n  @Input() typingDuration: number = 750;\r\n  @Input() validations: any;\r\n\r\n  @Output() blur: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() change: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() click: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() doneTyping: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() keyDown: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() keyUp: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() focus: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  functions: any = {\r\n    blur: {},\r\n    click: {},\r\n    change: {},\r\n    focus: {},\r\n    navigateDown: {},\r\n    navigateLeft: {},\r\n    navigateTop: {},\r\n    navigateUp: {},\r\n  };\r\n\r\n  dataDictionaryField: any;\r\n  dataDictionaryFieldProperties: any;\r\n  dataDictionaryTable: any;\r\n  dataDictionaryService: DataDictionaryService | undefined;\r\n\r\n  protected _focusValue: any;\r\n  protected _initialized = false;\r\n  protected _record: any = {};\r\n  protected _value: any;\r\n  protected isInFocus: boolean = false;\r\n\r\n  hasErrors: boolean = false;\r\n  errors: any = {};\r\n  instance: any;\r\n  onChangeCallback: any = () => { };\r\n  onTouchedCallback: any = () => { };\r\n  isBrowserEnvironment: boolean = false;\r\n  checked: boolean = false;\r\n  input: any;\r\n  inputName: string = \"\";\r\n  formControl: any;\r\n  typingTimeoutReference: any = null;\r\n  repeaterItemDetails: any;\r\n  checkKeyDownChangeTimerRef: any = null;\r\n  logger: SimpleLogger = new SimpleLogger();\r\n  viewInitialized: boolean = false;\r\n  touched: boolean = false;\r\n\r\n  constructor(simplify: SimplifyService, elementRef: ElementRef) {\r\n    super(elementRef, simplify);\r\n    this.events.executeCallback = (params:ISimpleEventExecuteCallbackParams)=>{\r\n      let functionResults = params.functionResults;\r\n      let skipEvents: any[] = [\"blur\", \"change\", \"click\", \"focus\", \"keydown\", \"keyup\"];\r\n      if(this.bindSimpleInput){\r\n        if(!skipEvents.includes(params.key)){\r\n          functionResults = Simplify.copyObjectValues(this.bindSimpleInput.events.execute(params.key,params.args),functionResults);\r\n        }\r\n      }\r\n      return functionResults;\r\n    };\r\n    let object = this;\r\n    this.logger.logMessages = false\r\n    let className = simplify.getClassNameFromInstance(this);\r\n    if (object.simplify.validValue(object.simplify.configurations[\"SimpleInputDateComponent\"])) {\r\n      let componentConfigurations = object.simplify.configurations[\"SimpleInputDateComponent\"];\r\n      if (object.simplify.validValue(componentConfigurations[\"defaultValue\"])) {\r\n      }\r\n    }\r\n    this.instance = this;\r\n  }\r\n\r\n  ngAfterContentChecked() {\r\n    this.checkAndSetIfRecordValueUpdated();\r\n  }\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.initializeElement();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['record'] != undefined) {\r\n      this.setValueFromRecord();\r\n    }\r\n    if (changes['name'] != undefined) {\r\n      this.setElementName();\r\n    }\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    this._initialized = true;\r\n    this.setValueFromRecord();\r\n    this.setElementName();\r\n  }\r\n\r\n  checkAndNavigateInDirection(event: any) {\r\n    let object = this;\r\n    const currentInput = document.activeElement;\r\n    switch (event.key) {\r\n      case 'ArrowUp':\r\n        if (\r\n          object.input.selectionStart === object.input.value.length &&\r\n          object.input.selectionEnd === object.input.value.length\r\n        ) {\r\n          object.events.execute('navigateUp', event);\r\n        }\r\n        break;\r\n      case 'ArrowDown':\r\n        if (\r\n          object.input.selectionStart === object.input.value.length &&\r\n          object.input.selectionEnd === object.input.value.length\r\n        ) {\r\n          object.events.execute('navigateDown', event);\r\n        }\r\n        break;\r\n      case 'ArrowLeft':\r\n        if (\r\n          object.input.selectionStart == 0 &&\r\n          object.input.selectionEnd == 0\r\n        ) {\r\n          object.events.execute('navigateLeft', event);\r\n        }\r\n        break;\r\n      case 'ArrowRight':\r\n        if (\r\n          object.input.selectionStart === object.input.value.length &&\r\n          object.input.selectionEnd === object.input.value.length\r\n        ) {\r\n          object.events.execute('navigateRight', event);\r\n        }\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  }\r\n\r\n  checkAndSetIfRecordValueUpdated() {\r\n    let object = this;\r\n    if (\r\n      object.simplify.validValue(object.record) &&\r\n      object.simplify.validValue(object.dataField) &&\r\n      object.dataField != ''\r\n    ) {\r\n      if (object.record[this.dataField] != object.value) {\r\n        object.setValueFromRecord();\r\n      }\r\n    }\r\n  }\r\n\r\n  checkAndSetInput() {\r\n    let object = this;\r\n    let valid = object.simplify.validValue(object.input);\r\n    if (!valid) {\r\n      if (object.simplify.validValue(object.inputRef)) {\r\n        object.input = object.inputRef.nativeElement;\r\n        valid = true;\r\n      }\r\n    }\r\n    return valid;\r\n  }\r\n\r\n  formattedValueNumber(value: any): void {\r\n    if (value != null && value != undefined) {\r\n      if (this.numberMinimumIntegerDigits != undefined || this.numberMinimumFractionDigits != undefined || this.numberMaximumFractionDigits != undefined) {\r\n        let integerDigits = 1;\r\n        let minFraction = 0;\r\n        let maxFraction = 0;\r\n        if (this.numberMinimumIntegerDigits != undefined) {\r\n          integerDigits = this.numberMinimumIntegerDigits;\r\n        }\r\n        if (this.numberMinimumFractionDigits != undefined) {\r\n          minFraction = this.numberMinimumFractionDigits;\r\n        }\r\n        if (this.numberMaximumFractionDigits != undefined) {\r\n          maxFraction = this.numberMaximumFractionDigits;\r\n        }\r\n        if (typeof value == \"string\") {\r\n          value = parseFloat(value);\r\n        }\r\n        let options = {\r\n          minimumIntegerDigits: integerDigits,\r\n          minimumFractionDigits: minFraction,\r\n          maximumFractionDigits: maxFraction,\r\n        };\r\n        value = value.toLocaleString(undefined, options).replace(/,/g, '');\r\n      }\r\n    }\r\n    return value;\r\n  }\r\n\r\n  initializeElement() {\r\n    this.simplify.registerComponentInstance(this, this.elementRef);\r\n    this.elementRef.nativeElement.setAttribute(\"is-simple-input\", \"true\");\r\n    let object = this;\r\n    if (object.inputRef) {\r\n      object.input = object.inputRef.nativeElement;\r\n      if (object.input == undefined) {\r\n        object.input = object.inputRef.element;\r\n      }\r\n    }\r\n    object.removeComponentTagAttributes();\r\n    this.setSimpleDatabaseTableField();\r\n    this.setElementName();\r\n    this.setDefaultValue();\r\n    this.viewInitialized = true;\r\n    setTimeout(() => {\r\n      if (this.type == InputType.date || this.type == InputType.dateTimeLocal) {\r\n        this.value = this.value;\r\n      }\r\n    }, 1000);\r\n  }\r\n\r\n  isLastCharacter() {\r\n    let object = this;\r\n    return (\r\n      object.input.selectionStart === object.input.value.length &&\r\n      object.input.selectionEnd === object.input.value.length\r\n    );\r\n  }\r\n\r\n  onBlur(event: any) {\r\n    let object = this;\r\n    this.isInFocus = false;\r\n    let eventDetails: any = {\r\n      inputObject: object,\r\n      instance: object,\r\n      oldValue: object._focusValue,\r\n      newValue: object.value,\r\n      valueChanged: object._focusValue != object.value,\r\n      event: event\r\n    };\r\n    object.events.execute('blur', eventDetails);\r\n    object.blur.emit({ event: event });\r\n    if(this.bindSimpleInput){\r\n      this.bindSimpleInput.onBlur(event);\r\n    }\r\n    this.setValue(this.value);\r\n  }\r\n\r\n  onChange(event: any) {\r\n    let object = this;\r\n    clearTimeout(object.checkKeyDownChangeTimerRef);\r\n    if (object.type == InputType.checkBox || object.type == InputType.radio) {\r\n      object.checked = event.target.checked;\r\n    }\r\n    let eventDetails: any = {\r\n      value: object.value,\r\n      event: event,\r\n      inputObject: object,\r\n      instance: object,\r\n    };\r\n    object.events.execute('change', eventDetails);\r\n    object.change.emit(eventDetails);\r\n    if(this.bindSimpleInput){\r\n      this.bindSimpleInput.onChange(event);\r\n    }\r\n  }\r\n\r\n  onClick(event: any) {\r\n    let object = this;\r\n    let eventDetails: any = {\r\n      event: event,\r\n      inputObject: object,\r\n      instance: object,\r\n    };\r\n    object.events.execute('click', eventDetails);\r\n    object.click.emit({ event: event });\r\n    if(this.bindSimpleInput){\r\n      this.bindSimpleInput.onClick(event);\r\n    }\r\n  }\r\n\r\n  onFocus(event: any) {\r\n    let object = this;\r\n    this.isInFocus = true;\r\n    object._focusValue = object.value;\r\n    let eventDetails: any = {\r\n      event: event,\r\n      inputObject: object,\r\n      instance: object,\r\n    };\r\n    object.events.execute('focus', eventDetails);\r\n    object.focus.emit(eventDetails);\r\n    if(this.bindSimpleInput){\r\n      this.bindSimpleInput.onFocus(event);\r\n    }\r\n  }\r\n\r\n  onKeyDown(event: any) {\r\n    let object = this;\r\n    object.checkAndNavigateInDirection(event);\r\n    let eventDetails: any = {\r\n      event: event,\r\n      inputObject: object,\r\n      instance: object,\r\n    };\r\n    object.events.execute('keydown', eventDetails);\r\n    object.keyDown.emit(eventDetails);\r\n    if(this.bindSimpleInput){\r\n      this.bindSimpleInput.onKeyDown(event);\r\n    }\r\n  }\r\n\r\n  onKeyUp(event: any) {\r\n    let object = this;\r\n    object.checkAndNavigateInDirection(event);\r\n    let eventDetails: any = {\r\n      event: event,\r\n      inputObject: object,\r\n      instance: object,\r\n    };\r\n    object.events.execute('keyup', eventDetails);\r\n    object.keyUp.emit(eventDetails);\r\n    if (object.typingTimeoutReference) {\r\n      clearTimeout(object.typingTimeoutReference);\r\n    }\r\n    object.typingTimeoutReference = setTimeout(function () {\r\n      object.doneTyping.emit(eventDetails);\r\n      object.events.execute('doneTyping', eventDetails);\r\n    }, object.typingDuration);\r\n    if (object.checkKeyDownChangeTimerRef) {\r\n      clearTimeout(object.checkKeyDownChangeTimerRef);\r\n    }\r\n    if (object.checkKeyDownChange) {\r\n      object.checkKeyDownChangeTimerRef = setTimeout(() => {\r\n        object.onChange(event);\r\n      }, object.checkKeyDownChangeDuration);\r\n    }\r\n    if(this.bindSimpleInput){\r\n      this.bindSimpleInput.onKeyUp(event);\r\n    }\r\n  }\r\n\r\n  removeComponentTagAttributes() {\r\n    this.elementRef.nativeElement.removeAttribute(\"class\");\r\n    this.elementRef.nativeElement.removeAttribute(\"style\");\r\n  }\r\n\r\n  select(select: any) {\r\n    let object = this;\r\n    if (object.type == 'checkbox' || object.type == 'radio') {\r\n      object.input.setAttribute('checked', select);\r\n      object.checked = select;\r\n    }\r\n  }\r\n\r\n  setChecked(checked: boolean) {\r\n    let object = this;\r\n    object.checked = checked;\r\n  }\r\n\r\n  setDefaultValue() {\r\n    let object = this;\r\n    if (!object.simplify.validValue(this.value)) {\r\n      if (object.type == InputType.date || object.type == InputType.dateTimeLocal) {\r\n        this.value = moment().format(\"YYYY-MM-DD HH:mm:ss\");\r\n      }\r\n      else if (object.defaultValue) {\r\n        this.value = this.defaultValue;\r\n      }\r\n    }\r\n  }\r\n\r\n  setElementName() {\r\n    this.inputName = this.name;\r\n    if (!this.simplify.validValue(this.inputName) || this.inputName == \"\") {\r\n      this.inputName = this.dataField;\r\n    }\r\n  }\r\n\r\n  setFormControlValue(value: any) {\r\n    this.onChangeCallback(value);\r\n    this.onTouchedCallback();\r\n  }\r\n\r\n  setSimpleDatabaseTableField() {\r\n    if (this.simpleDatabaseTable != \"\" && this.dataField != \"\") {\r\n      if (this.simplify.dataDictionaryService) {\r\n        this.dataDictionaryService = this.simplify.dataDictionaryService;\r\n        if (DataDictionaryService.dataDictionary) {\r\n          let dataDictionary = DataDictionaryService.dataDictionary;\r\n          if (dataDictionary[\"tables\"]) {\r\n            if (dataDictionary[\"tables\"][this.simpleDatabaseTable]) {\r\n              this.dataDictionaryTable = dataDictionary[\"tables\"][this.simpleDatabaseTable];\r\n              if (this.dataDictionaryTable[SimpleDatabase.tableFields]) {\r\n                if (this.dataDictionaryTable[SimpleDatabase.tableFields][this.dataField]) {\r\n                  this.dataDictionaryField = this.dataDictionaryTable[SimpleDatabase.tableFields][this.dataField];\r\n                  if (this.dataDictionaryField[SimpleDatabase.fieldProperties]) {\r\n                    this.dataDictionaryFieldProperties = this.dataDictionaryField[SimpleDatabase.fieldProperties];\r\n                    if (this.dataDictionaryFieldProperties[SimpleDatabase.propertyRequired]) {\r\n                      if (this.required != true) {\r\n                        this.required = this.dataDictionaryFieldProperties[SimpleDatabase.propertyRequired];\r\n                      }\r\n                    }\r\n                    if (this.dataDictionaryFieldProperties[SimpleDatabase.propertyFormat]) {\r\n                      if (this.format == \"\") {\r\n                        this.format = this.dataDictionaryFieldProperties[SimpleDatabase.propertyFormat];\r\n                      }\r\n                    }\r\n                    if (this.dataDictionaryFieldProperties[SimpleDatabase.propertyDefaultValue]) {\r\n                      if (this.defaultValue == undefined || this.defaultValue == null) {\r\n                        this.defaultValue = this.dataDictionaryFieldProperties[SimpleDatabase.propertyDefaultValue];\r\n                      }\r\n                    }\r\n                    if (this.dataDictionaryFieldProperties[SimpleDatabase.propertyFieldTitle]) {\r\n                      if (this.label == undefined || this.label == null) {\r\n                        this.label = this.dataDictionaryFieldProperties[SimpleDatabase.propertyFieldTitle];\r\n                      }\r\n                    }\r\n                    if (this.dataDictionaryFieldProperties[SimpleDatabase.propertySize]) {\r\n                      if (this.maxLength == undefined || this.maxLength == null) {\r\n                        this.maxLength = this.dataDictionaryFieldProperties[SimpleDatabase.propertySize];\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  setValue(value: any) {\r\n    let object = this;\r\n    if (!this.isInFocus) {\r\n      if (object.type == InputType.date) {\r\n        value = this.simplify.formatDateTime(value, this.formatDateType);\r\n      }\r\n      else if (object.type == InputType.dateTimeLocal) {\r\n        value = this.simplify.formatDateTime(value, this.formatDateType, { \"type\": \"datetime\" });\r\n      }\r\n      else if (object.type == InputType.number) {\r\n        value = this.formattedValueNumber(value);\r\n      }\r\n      if (typeof value == \"string\") {\r\n        if (object.format == FormatString.lowercase) {\r\n          value = value.toLowerCase();\r\n        }\r\n        else if (object.format == FormatString.uppercase) {\r\n          value = value.toUpperCase();\r\n        }\r\n      }\r\n    }\r\n    if (typeof value == \"string\") {\r\n      if (this.maxLength != undefined) {\r\n        if (value.length > this.maxLength) {\r\n          value = value.substring(0, this.maxLength);\r\n        }\r\n      }\r\n    }\r\n    object._value = value;\r\n    if (\r\n      object.simplify.validValue(object.record) &&\r\n      object.simplify.validValue(object.dataField) &&\r\n      object.dataField != ''\r\n    ) {\r\n      object.record[object.dataField] = value;\r\n    }\r\n    for (let reflectingRecordObject of this.reflectingRecords) {\r\n      if (typeof reflectingRecordObject == \"object\") {\r\n        let reflectingDataField: string | undefined = reflectingRecordObject[\"dataField\"];\r\n        let reflectingRecord: any = reflectingRecordObject[\"record\"];\r\n        let reflectingRecordValue: any = value;\r\n        if (reflectingRecordObject[\"value\"]) {\r\n          reflectingRecordValue = reflectingRecordObject[\"value\"]\r\n          if (typeof reflectingRecordValue == \"function\") {\r\n            reflectingRecordValue = reflectingRecordValue({ value: value, instance: object });\r\n          }\r\n        }\r\n        if (reflectingDataField == undefined) {\r\n          reflectingDataField = this.dataField;\r\n        }\r\n        if (reflectingRecord && reflectingDataField) {\r\n          reflectingRecord[reflectingDataField] = reflectingRecordValue;\r\n        }\r\n      }\r\n    }\r\n    this.setFormControlValue(value);\r\n  }\r\n\r\n  setValueFromRecord() {\r\n    let object = this;\r\n    if (\r\n      object.simplify.validValue(object.record) &&\r\n      object.simplify.validValue(object.dataField) &&\r\n      object.dataField != ''\r\n    ) {\r\n      object.value = object.record[object.dataField];\r\n    }\r\n  }\r\n\r\n  validateRequired() {\r\n    return this.value == \"\" || this.value == null || this.value == undefined;\r\n  }\r\n\r\n  /* FUNCTIONS FOR NGFORM & FORM GROUPS START */\r\n\r\n  writeValue(value: any): void {\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n    this.onChangeCallback(this.value);\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState(disabled: boolean) {\r\n    this.disabled = disabled;\r\n  }\r\n\r\n  updateValue(event: any): void {\r\n  }\r\n\r\n  validate(control: FormControl) {\r\n    let object = this;\r\n    if (control) {\r\n      this.touched = control.touched;\r\n    }\r\n    let errors: any = {};\r\n    if (this.required) {\r\n      let required = object.validateRequired();\r\n      if (required) {\r\n        errors['required'] = true;\r\n      }\r\n    }\r\n    object.hasErrors = Object.keys(errors).length > 0;\r\n    object.errors = errors;\r\n    if (this.dataField == \"customer_name\") {\r\n\r\n    }\r\n    // return object.hasErrors ? errors : null;\r\n    return errors;\r\n  }\r\n\r\n  /* FUNCTIONS FOR NGFORM & FORM GROUPS START */\r\n}\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\nimport { SimplifyService } from '../../../services/simplify.service';\r\nimport { SimpleBaseClass } from '../../../_base/simple-base-class';\r\n\r\n@Component({\n    selector: 'simple-sort-button',\n    templateUrl: './simple-sort-button.component.html',\n    standalone: false\n})\r\nexport class SimpleSortButtonComponent extends SimpleBaseClass {\r\n  @Output() changed: EventEmitter<any> = new EventEmitter<any>();\r\n  private functions:any={\"changed\":{}};\r\n  protected sortHtml:any = '<i class=\"fa fa-sort\"></i>';\r\n  private sortOptions:any={\r\n    \"ASC\":'<i class=\"fa fa-arrow-down-short-wide\"></i>',\r\n    \"DESC\":'<i class=\"fa fa-arrow-down-wide-short\"></i>',\r\n    \"NONE\":'<i class=\"fa fa-sort\"></i>'\r\n  }\r\n  private value = \"NONE\";\r\n  get(){\r\n    if(this.value==\"NONE\"){\r\n      return \"\";\r\n    }\r\n    else{\r\n      return this.value;\r\n    }\r\n  }\r\n\r\n  set(value:string){\r\n    if(![\"ASC\",\"DESC\"].includes(value)){\r\n      this.value=\"NONE\";\r\n    }\r\n    else{\r\n      this.value=value;\r\n    }\r\n    this.sortHtml=this.sortOptions[this.value];\r\n    let eventData = {\"sort\":this.value};\r\n    this.changed.emit(eventData);\r\n    this.events.execute(\"changed\",eventData);\r\n  }\r\n\r\n  toggleSort(){\r\n    if(this.value==\"ASC\"){\r\n      this.set(\"DESC\");\r\n    }\r\n    else if(this.value==\"DESC\"){\r\n      this.set(\"NONE\");\r\n    }\r\n    else if(this.value==\"NONE\"){\r\n      this.set(\"ASC\");\r\n    }\r\n  }\r\n\r\n\r\n}\r\n","<span class=\"sim-list-sort\" (click)=\"toggleSort()\" style=\"padding:0px 5px;cursor: pointer;\" [innerHTML]=\"sortHtml\"></span>\r\n","import { Injectable } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { SimplifyService } from './simplify.service';\r\nimport { AppBrowserType } from '../configs/enum';\r\ndeclare var cefBrowser: any;\r\ndeclare var webviewBrowser: any;\r\ndeclare var window: any;\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AppBrowserService {\r\n  functions: any = {\r\n    dataReceived: {},\r\n    dataSent: {},\r\n    dataTaskFunctions: {}\r\n  };\r\n  _dataTasks: any = {};\r\n  _callbackFunctions: any = {};\r\n  appBrowserType: any = null;\r\n  detected: any = this.isAppBrowser();\r\n  appBrowser: any;\r\n  cefBrowser: any;\r\n\r\n  constructor(\r\n    private simplify: SimplifyService\r\n  ) {\r\n    this.exposeServiceGlobally();\r\n   }\r\n\r\n  dataToAppBrowser(data: any = {}) {\r\n    console.log(data);\r\n    if (data[\"callbackFunctionId\"] != undefined) {\r\n      const functionId = data[\"callbackFunctionId\"];\r\n      if (this._callbackFunctions[functionId] != undefined) {\r\n        let callbackData = data[\"dataTaskResult\"];\r\n        if (callbackData == undefined) {\r\n          callbackData = data;\r\n        }\r\n        this._callbackFunctions[functionId](callbackData);\r\n        delete this._callbackFunctions[functionId];\r\n      }\r\n    }\r\n    else {\r\n      let dataTask = data[\"dataTask\"];\r\n      if (dataTask != undefined) {\r\n        if (this._dataTasks[dataTask] != undefined) {\r\n          this.simplify.executeFunctions(this._dataTasks[dataTask], data);\r\n        }\r\n      }\r\n      this.simplify.executeFunctions(this.functions[\"dataReceived\"], data);\r\n    }\r\n  }\r\n\r\n  isAppBrowser() {\r\n    return this.isCefBrowser() || this.isWebviewBrowser();\r\n  }\r\n\r\n  isCefBrowser() {\r\n    let result = false;\r\n    if (typeof this.cefBrowser != \"undefined\") {\r\n      result = true;\r\n      this.appBrowserType = AppBrowserType.cefBrowser;\r\n    }\r\n    return result;\r\n  }\r\n\r\n  isWebviewBrowser() {\r\n    let result = false;\r\n    if (typeof webviewBrowser != \"undefined\") {\r\n      result = true;\r\n      this.appBrowserType = AppBrowserType.webviewBrowser;\r\n    }\r\n    return result;\r\n  }\r\n\r\n  launchUrl(url: string) {\r\n    if (typeof this.appBrowser != \"undefined\") {\r\n      this.sendData({ dataTask: \"launchUrl\", launchDetails: { launchUrl: url } }, function () { });\r\n    }\r\n    else {\r\n      window.open(url, '_blank');\r\n    }\r\n  }\r\n  on(event: any, callFunction: any) {\r\n    const randomId = this.simplify.generateId();\r\n    if (this.functions[event] == undefined) {\r\n      this.functions[event] = {};\r\n    }\r\n    this.functions[event][randomId] = callFunction;\r\n  }\r\n\r\n  onDataTask(name: string, callFunction: string) {\r\n    const randomId = this.simplify.generateId();\r\n    if (this._dataTasks[name] == undefined) {\r\n      this._dataTasks[name] = {};\r\n    }\r\n    this._dataTasks[name][randomId] = callFunction;\r\n  }\r\n\r\n  sendData(data: any, callbackFunction: any) {\r\n    const object = this;\r\n    let dataResult: any = {};\r\n    if (typeof data != \"object\") {\r\n      dataResult[\"message\"] = data;\r\n    }\r\n    else {\r\n      dataResult = data;\r\n    }\r\n    if (typeof callbackFunction == \"function\") {\r\n      const functionId = this.simplify.generateId();\r\n      dataResult[\"callbackFunctionId\"] = functionId;\r\n      object._callbackFunctions[functionId] = callbackFunction;\r\n    }\r\n    if (this.appBrowserType == AppBrowserType.cefBrowser) {\r\n      this.cefBrowser({\r\n        request: JSON.stringify(dataResult),\r\n        onSuccess: function (response: any) {\r\n          console.log(response);\r\n        },\r\n        onFailure: function () {\r\n          console.log(\"Error \")\r\n        }\r\n      });\r\n    }\r\n    else if (this.appBrowserType == AppBrowserType.webviewBrowser) {\r\n      webviewBrowser.postMessage(JSON.stringify(dataResult));\r\n    }\r\n    this.simplify.executeFunctions(this.functions[\"dataSent\"], dataResult);\r\n  }\r\n\r\n  exposeServiceGlobally() {\r\n    let object = this;\r\n    if (isPlatformBrowser(object.simplify.platformId)) {\r\n      (window as any).appBrowser = this;\r\n    }\r\n  }\r\n}\r\n","import { AfterViewInit,  Component, ElementRef, Inject, OnInit, PLATFORM_ID, ViewChild } from '@angular/core';\r\nimport { SimplifyService } from '../../services/simplify.service';\r\nimport { AppBrowserService } from '../../services/app-browser.service';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\nimport { CSSUnits, PageSizes } from '../../configs/constants';\r\nimport { InputType } from '../../configs/enum';\r\n@Component({\r\n    selector: 'html-print-preview,[html-print-preview]',\r\n    template: '<div></div>',\r\n    standalone: false\r\n})\r\nexport class HtmlPrintPreviewComponent extends SimpleBaseClass implements AfterViewInit, OnInit{\r\n  @ViewChild('buttonDownload') buttonDownload :ElementRef;\r\n  @ViewChild('buttonPrint') buttonPrint :ElementRef;\r\n  @ViewChild('inputExportFormats') inputExportFormats: any;\r\n  @ViewChild('inputPageMarginBottom') inputPageMarginBottom: any;\r\n  @ViewChild('inputPageMarginBottomUnit') inputPageMarginBottomUnit: any;\r\n  @ViewChild('inputPageMarginLeft') inputPageMarginLeft: any;\r\n  @ViewChild('inputPageMarginLeftUnit') inputPageMarginLeftUnit: any;\r\n  @ViewChild('inputPageMarginRight') inputPageMarginRight: any;\r\n  @ViewChild('inputPageMarginRightUnit') inputPageMarginRightUnit: any;\r\n  @ViewChild('inputPageMarginTop') inputPageMarginTop: any;\r\n  @ViewChild('inputPageMarginTopUnit') inputPageMarginTopUnit: any;\r\n  @ViewChild('inputPageOrientation') inputPageOrientation: any;\r\n  @ViewChild('inputPageSize') inputPageSize: any;\r\n  @ViewChild('inputPrinters') inputPrinters: any;\r\n  @ViewChild('previewFrame') previewFrame: ElementRef;\r\n  previewFrameContentWindow:any = null;\r\n  previewFrameDocument:any = null;\r\n  fileName :string = \"\";\r\n  functions:any = {\r\n    \"frameLoaded\":{}\r\n  };\r\n  optionsExportFormats:any[] = [{\"label\":\"PDF\",\"value\":\"PDF\"}];\r\n  optionsMarginUnits:any[] = Object.values(CSSUnits);\r\n  optionsPageOrientations:any[] = [\r\n    {\"label\":\"Portrait\",\"value\":\"PORTRAIT\"},\r\n    {\"label\":\"Landscape\",\"value\":\"LANDSCAPE\"}\r\n  ];\r\n  optionsPageSizes:any[] = Object.values(PageSizes);\r\n  optionsPrinters:any[] = [];\r\n  pageSettings:any={\r\n    \"margin_bottom\":\"40\",\r\n    \"margin_bottom_unit\":\"px\",\r\n    \"margin_top\":\"40\",\r\n    \"margin_top_unit\":\"px\",\r\n    \"margin_left\":\"40\",\r\n    \"margin_left_unit\":\"px\",\r\n    \"margin_right\":\"40\",\r\n    \"margin_right_unit\":\"px\",\r\n    \"page_orientation\":\"PORTRAIT\",\r\n    \"page_size\":\"A4\",\r\n  };\r\n  printSettings:any = {\r\n    \"export_format\":\"PDF\"\r\n  };\r\n\r\n  constructor(\r\n    simplify:SimplifyService,\r\n    elementRef:ElementRef,\r\n    public appBrowser:AppBrowserService\r\n  ){\r\n    super(elementRef,simplify);\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    this.getPrintersList();\r\n  }\r\n\r\n  override ngAfterViewInit() {\r\n    super.ngAfterViewInit();\r\n    this.initialize();\r\n  }\r\n\r\n  download(format:string = \"\"){\r\n    if(format==\"\"){\r\n      format = this.printSettings[\"export_format\"];\r\n    }\r\n    this.generatePdf({\"html\":this.getPreviewFrameHtmlForPrint()})\r\n  }\r\n\r\n  initialize(){\r\n    let object = this;\r\n    object.initPreviewFrame();\r\n    if(object.simplify.validValue(object.buttonPrint)){\r\n      object.buttonPrint.nativeElement.addEventListener(\"click\",()=>{object.print();});\r\n    }\r\n    if(object.simplify.validValue(object.buttonDownload)){\r\n      object.buttonDownload.nativeElement.addEventListener(\"click\",()=>{object.download();});\r\n    }\r\n    if(object.simplify.validValue(object.inputExportFormats)){\r\n      object.inputExportFormats.options = object.optionsExportFormats;\r\n      object.inputExportFormats.dataField = \"export_format\";\r\n      object.inputExportFormats.record = object.printSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageMarginBottom)){\r\n      object.inputPageMarginBottom.type = InputType.number;\r\n      object.inputPageMarginBottom.dataField = \"margin_bottom\";\r\n      object.inputPageMarginBottom.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageMarginBottomUnit)){\r\n      object.inputPageMarginBottomUnit.options = object.optionsMarginUnits;\r\n      object.inputPageMarginBottomUnit.dataField = \"margin_bottom_unit\";\r\n      object.inputPageMarginBottomUnit.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageMarginLeft)){\r\n      object.inputPageMarginLeft.type = InputType.number;\r\n      object.inputPageMarginLeft.dataField = \"margin_left\";\r\n      object.inputPageMarginLeft.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageMarginLeftUnit)){\r\n      object.inputPageMarginLeftUnit.options = object.optionsMarginUnits;\r\n      object.inputPageMarginLeftUnit.dataField = \"margin_left_unit\";\r\n      object.inputPageMarginLeftUnit.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageMarginRight)){\r\n      object.inputPageMarginRight.type = InputType.number;\r\n      object.inputPageMarginRight.dataField = \"margin_right\";\r\n      object.inputPageMarginRight.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageMarginRightUnit)){\r\n      object.inputPageMarginRightUnit.options = object.optionsMarginUnits;\r\n      object.inputPageMarginRightUnit.dataField = \"margin_right_unit\";\r\n      object.inputPageMarginRightUnit.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageMarginTop)){\r\n      object.inputPageMarginTop.type = InputType.number;\r\n      object.inputPageMarginTop.dataField = \"margin_top\";\r\n      object.inputPageMarginTop.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageMarginTopUnit)){\r\n      object.inputPageMarginTopUnit.options = object.optionsMarginUnits;\r\n      object.inputPageMarginTopUnit.dataField = \"margin_top_unit\";\r\n      object.inputPageMarginTopUnit.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageSize)){\r\n      object.inputPageSize.options = object.optionsPageSizes;\r\n      object.inputPageSize.dataField = \"page_size\";\r\n      object.inputPageSize.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPageOrientation)){\r\n      object.inputPageOrientation.options = object.optionsPageOrientations;\r\n      object.inputPageOrientation.dataField = \"page_orientation\";\r\n      object.inputPageOrientation.record = object.pageSettings;\r\n    }\r\n    if(object.simplify.validValue(object.inputPrinters)){\r\n      object.inputPrinters.options = object.optionsPrinters;\r\n      object.inputPrinters.dataField = \"printer_name\";\r\n      object.inputPrinters.record = object.printSettings;\r\n      if(!this.appBrowser.isAppBrowser()){\r\n        object.inputPrinters.placeholder = \"(Cannot Detect printers)\";\r\n      }\r\n    }\r\n  }\r\n\r\n  initPreviewFrame(){\r\n    let object = this;\r\n    if(object.previewFrame!=undefined && object.previewFrame !=null){\r\n      let frame = object.previewFrame.nativeElement;\r\n      frame.addEventListener(\"load\",(event:any)=>{\r\n        object.events.execute(\"frameLoaded\");\r\n      });\r\n      object.previewFrameContentWindow = frame.contentWindow;\r\n      object.previewFrameDocument = object.previewFrameContentWindow.document;\r\n    }\r\n  }\r\n\r\n  generatePdf(params:any={}){\r\n    let object=this;\r\n    let output=params[\"output\"];\r\n    if(object.appBrowser.isAppBrowser()){\r\n      if(object.simplify.globals[\"puppeteerAvailable\"]==true || true){\r\n        if(output==undefined){\r\n          output=\"download\";\r\n        }\r\n        let taskParams:any ={\r\n          \"dataTask\":\"htmlToPdf\",\r\n          \"output\":output,\r\n          \"pageSettings\":object.pageSettings\r\n        };\r\n        taskParams[\"pageSettings\"]=object.pageSettings;\r\n        if(output==\"whatsapp\"){\r\n          if(params[\"number\"]!=undefined){\r\n              taskParams[\"number\"]=params[\"number\"];\r\n          }\r\n          taskParams[\"fileName\"]=object.fileName+\".pdf\";\r\n          // taskParams[\"message\"]=object.reportInfo[\"title\"]+\" - \"+simpleStorage[\"selectedAccountee\"][\"name\"];\r\n        }\r\n        if(params[\"printer_name\"]!=undefined){\r\n          taskParams[\"printer_name\"]=params[\"printer_name\"];\r\n      }\r\n        taskParams[\"html\"]=object.getPreviewFrameHtmlForPrint();\r\n        object.appBrowser.sendData(taskParams,function(response:any){\r\n          if(output==\"download\"){\r\n            if(response[\"pdfData\"]!=undefined){\r\n              object.simplify.downloadFile(response[\"pdfData\"],object.fileName+\".pdf\");\r\n            }\r\n          }\r\n        });\r\n      }\r\n      else{\r\n      }\r\n    }\r\n    else{\r\n      object.previewFrameContentWindow.print();\r\n    }\r\n  }\r\n\r\n  getPrintSettings(){\r\n    let object=this;\r\n    return object.pageSettings;\r\n  }\r\n\r\n  getPrintersList(){\r\n    let object = this;\r\n    let taskParams:any ={\r\n      \"dataTask\":\"getPrintersList\",\r\n    };\r\n    object.appBrowser.sendData(taskParams,function(response:any){\r\n      if(response[\"status\"]==\"success\"){\r\n        let printers : any[] = [];\r\n        Object.values(response[\"printers\"]).forEach((printer:any)=>{\r\n          printers.push({\"label\":printer[\"name\"],\"value\":printer[\"name\"]});\r\n        });\r\n        object.optionsPrinters = printers;\r\n      }\r\n    });\r\n  }\r\n\r\n  getPreviewFrameHtml(){\r\n    let object=this;\r\n    return object.previewFrameDocument;\r\n  }\r\n\r\n  getPreviewFrameHtmlForPrint(){\r\n    let object=this;\r\n    let html = object.getPreviewFrameHtml();\r\n    html = object.removeScriptsFromHtml(html);\r\n    return html;\r\n  }\r\n\r\n  removeScriptsFromHtml(htmlContent: string): string {\r\n    return htmlContent.replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '');\r\n  }\r\n\r\n  setPreviewFrameHtml(html:string){\r\n    let object=this;\r\n    let frame = object.previewFrame.nativeElement;\r\n    if (frame) {\r\n      const contentDocument = frame.contentWindow.document;\r\n      contentDocument.open();\r\n      contentDocument.write(html);\r\n      contentDocument.close();\r\n    }\r\n  }\r\n\r\n  print(){\r\n    let object = this;\r\n    let params:any = {\"html\":this.getPreviewFrameHtmlForPrint(),\"output\":\"print\"};\r\n    if(object.simplify.validValue(object.printSettings[\"printer_name\"])){\r\n      params[\"printer_name\"] = this.printSettings[\"printer_name\"];\r\n    }\r\n    object.generatePdf(params);\r\n  }\r\n\r\n}\r\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\r\nimport { SimplifyService } from '../../../services/simplify.service';\r\n@Component({\n    selector: 'app-filter-input',\n    templateUrl: './filter-input.component.html',\n    standalone: false\n})\r\nexport class FilterInputComponent{\r\n  @ViewChild(\"input\") inputRef:ElementRef;\r\n  @Input() class:string=\"\";\r\n  @Input() style:string=\"width:100%;\";\r\n  @Input() dataField=\"\";\r\n  input:Element;\r\n  value:any=\"\";\r\n  functions:any={\"keyup\":{}};\r\n  constructor(private simplify:SimplifyService) {}\r\n  ngAfterViewInit(): void {\r\n    let object=this;\r\n    if (object.inputRef) {\r\n      object.input=object.inputRef.nativeElement;\r\n    }\r\n    if (object.input) {\r\n      object.input.addEventListener(\"keyup\",(event:any)=>{\r\n        object.simplify.executeEventFunctions(\"keyup\",object.functions,{\"event\":event});\r\n      });\r\n    }\r\n  }\r\n  on(event: string, callback: any) {\r\n    return this.simplify.registerEventFunction(this.functions,event,callback);\r\n  }\r\n}\r\n","<input #input [class]=\"class+' records-list-filter'\" type=\"text\" placeholder=\"Search\" [style]=\"style\" [attr.sim-filter-input-field]=\"dataField\" >","export const SimpleSvgs:any ={\r\n  archive : '<svg width=\"118\" height=\"164\" viewBox=\"0 0 118 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M117.926 25.0574V157.98C117.926 161.144 115.352 163.717 112.187 163.717H6.73872C3.57399 163.717 1 161.144 1 157.98V5.7371C1 2.57328 3.57399 0 6.73872 0H92.8614L117.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M117.926 25.0572H98.5579C95.3932 25.0572 92.8192 22.4839 92.8192 19.3201V-0.000183105L117.926 25.0572Z\" fill=\"black\"/><path d=\"M115.183 163.675H3.74276C2.22369 163.675 1 162.451 1 160.933V113.602H117.884V160.933C117.926 162.451 116.702 163.675 115.183 163.675Z\" fill=\"black\"/><path d=\"M26.2188 150V145.609H30.6094V150H26.2188ZM35.1562 150V127.094H52.1406V130.969H39.7812V136.047H51.2812V139.906H39.7812V146.141H52.5781V150H35.1562ZM54.1719 150L62 138.047L54.9062 127.094H60.3125L64.9062 134.453L69.4062 127.094H74.7656L67.6406 138.219L75.4688 150H69.8906L64.8125 142.078L59.7188 150H54.1719ZM83 150V130.969H76.2031V127.094H94.4062V130.969H87.625V150H83Z\" fill=\"#D2D2D2\"/><path d=\"M56.3577 97.859H65.348C68.4509 97.859 70.9675 95.71 70.9675 93.058L69.0932 80.08C69.0932 77.428 66.58 75.277 63.476 75.277H58.2321C55.1292 75.277 52.6126 77.425 52.6126 80.08L50.7406 93.057C50.7394 95.71 53.2549 97.859 56.3577 97.859ZM56.3577 82.801C56.3577 80.678 58.3701 78.959 60.8529 78.959C63.3356 78.959 65.348 80.678 65.348 82.801V83.759C65.348 85.882 63.3356 87.603 60.8529 87.603C58.3701 87.603 56.3577 85.882 56.3577 83.759V82.801Z\" fill=\"black\"/><path d=\"M53.1695 69.599C53.1695 67.936 54.7455 66.588 56.69 66.588L65.0157 66.59C66.9615 66.59 68.5363 67.936 68.5363 69.599C68.5363 71.261 66.9615 72.609 65.0157 72.609H56.69C54.7455 72.606 53.1695 71.26 53.1695 69.599Z\" fill=\"black\"/><path d=\"M68.5363 61.672C68.5363 62.754 68.5363 64.662 68.5363 65.441H59.7191C59.7191 65.095 59.7191 62.25 59.7191 61.672H68.5363Z\" fill=\"black\"/><path d=\"M68.5363 54.45C68.5363 55.532 68.5363 57.44 68.5363 58.219H59.7191C59.7191 57.873 59.7191 55.028 59.7191 54.45H68.5363Z\" fill=\"black\"/><path d=\"M61.9866 57.959C61.9866 59.039 61.9866 60.949 61.9866 61.727H53.1695C53.1695 61.38 53.1695 58.536 53.1695 57.959H61.9866Z\" fill=\"black\"/><path d=\"M61.9866 50.737C61.9866 51.817 61.9866 53.727 61.9866 54.505H53.1695C53.1695 54.158 53.1695 51.314 53.1695 50.737H61.9866Z\" fill=\"black\"/><path d=\"M68.5363 46.969C68.5363 48.05 68.5363 49.959 68.5363 50.737H59.7191C59.7191 50.391 59.7191 47.545 59.7191 46.969H68.5363Z\" fill=\"black\"/><path d=\"M68.5363 39.748C68.5363 40.829 68.5363 42.738 68.5363 43.516H59.7191C59.7191 43.17 59.7191 40.325 59.7191 39.748H68.5363Z\" fill=\"black\"/><path d=\"M61.9866 43.255C61.9866 44.336 61.9866 46.245 61.9866 47.023H53.1695C53.1695 46.677 53.1695 43.832 53.1695 43.255H61.9866Z\" fill=\"black\"/><path d=\"M61.9866 36.034C61.9866 37.115 61.9866 39.024 61.9866 39.802H53.1695C53.1695 39.456 53.1695 36.611 53.1695 36.034H61.9866Z\" fill=\"black\"/><path d=\"M68.5363 32.266C68.5363 33.347 68.5363 35.256 68.5363 36.034H59.7191C59.7191 35.688 59.7191 32.843 59.7191 32.266H68.5363Z\" fill=\"black\"/><path d=\"M68.5363 25.044C68.5363 26.125 68.5363 28.034 68.5363 28.812H59.7191C59.7191 28.466 59.7191 25.621 59.7191 25.044H68.5363Z\" fill=\"black\"/><path d=\"M61.9866 28.552C61.9866 29.633 61.9866 31.542 61.9866 32.32H53.1695C53.1695 31.974 53.1695 29.129 53.1695 28.552H61.9866Z\" fill=\"black\"/><path d=\"M61.9866 21.331C61.9866 22.411 61.9866 24.321 61.9866 25.099H53.1695C53.1695 24.753 53.1695 21.908 53.1695 21.331H61.9866Z\" fill=\"black\"/><path d=\"M68.5363 17.563C68.5363 18.643 68.5363 20.553 68.5363 21.331H59.7191C59.7191 20.985 59.7191 18.14 59.7191 17.563H68.5363Z\" fill=\"black\"/><path d=\"M68.5363 10.341C68.5363 11.422 68.5363 13.331 68.5363 14.109H59.7191C59.7191 13.763 59.7191 10.918 59.7191 10.341H68.5363Z\" fill=\"black\"/><path d=\"M61.9866 13.849C61.9866 14.93 61.9866 16.839 61.9866 17.617H53.1695C53.1695 17.271 53.1695 14.426 53.1695 13.849H61.9866Z\" fill=\"black\"/><path d=\"M61.9866 6.627C61.9866 7.708 61.9866 9.617 61.9866 10.395H53.1695C53.1695 10.049 53.1695 7.204 53.1695 6.627H61.9866Z\" fill=\"black\"/><path d=\"M68.5363 2.85899C68.5363 3.93999 68.5363 5.84899 68.5363 6.62699H53.1695C53.1695 6.28099 53.1695 3.43599 53.1695 2.85899H68.5363Z\" fill=\"black\"/></svg>',\r\n  audio : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M80.4002 76.2652C82.3454 75.9683 84.184 76.0178 85.7955 76.3456V43.3504L45.7216 53.3757V91.6898C45.7429 91.9 45.7571 92.1165 45.7571 92.3268V92.333C45.7571 97.491 39.5455 102.612 31.8785 103.768C24.2187 104.919 18 101.672 18 96.5076C18 91.3496 24.2187 86.2287 31.8785 85.0783C34.7607 84.6454 37.4442 84.8371 39.6662 85.5174V38.3531H39.9998L91.858 28V81.1387C91.9503 81.5283 92 81.9242 92 82.32C92 82.32 92 82.32 92 82.3262C92 86.6369 86.8035 90.9167 80.4073 91.8753C74.004 92.8401 68.8147 90.125 68.8147 85.8143C68.8076 81.5036 73.9969 77.2238 80.4002 76.2652Z\" fill=\"black\"/></svg>',\r\n  calendar : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_7_372)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.1414 31.9661H39.9719L39.9536 31.728V25.5208C39.9536 24.1353 41.394 23 43.1641 23C44.928 23 46.3745 24.1414 46.3745 25.5208V31.728L46.3562 31.9661H69.9097L69.8914 31.728V25.5208C69.8914 24.1353 71.3318 23 73.0957 23C74.8596 23 76.3062 24.1414 76.3062 25.5208V31.728L76.2878 31.9661H91.0034C91.6321 31.9661 92.1448 32.4788 92.1448 33.1074V44.9849C92.1448 45.6135 91.6321 46.1262 91.0034 46.1262H26.1414C25.5127 46.1201 25 45.6074 25 44.9788V33.1013C25 32.4727 25.5127 31.9661 26.1414 31.9661ZM25.2869 48.7507H91.864C92.0227 48.7507 92.1448 48.8789 92.1448 49.0315V97.7131C92.1448 97.8657 92.0166 97.9939 91.864 97.9939H25.2869C25.1343 97.9939 25 97.8657 25 97.7131V49.0376C25 48.8789 25.1282 48.7507 25.2869 48.7507ZM84.3689 55.2021H76.0071C75.5005 55.2021 75.0916 55.5867 75.0916 56.0566V63.8325C75.0916 64.3025 75.5005 64.687 76.0071 64.687H84.375C84.8816 64.687 85.2966 64.3025 85.2966 63.8325V56.0566C85.2905 55.5867 84.8755 55.2021 84.3689 55.2021ZM32.4707 68.7336H40.8325C41.3391 68.7336 41.7542 69.1182 41.7542 69.5881V77.364C41.7542 77.834 41.3391 78.2185 40.8325 78.2185H32.7576C32.251 78.2185 31.842 77.834 31.842 77.364V69.3074C31.842 68.8374 32.2571 68.4529 32.7576 68.4529L32.4707 68.7336ZM32.4707 82.2712H40.8325C41.3391 82.2712 41.7542 82.6558 41.7542 83.1257V90.9016C41.7542 91.3716 41.3391 91.7561 40.8325 91.7561H32.7515C32.2449 91.7561 31.8359 91.3716 31.8359 90.9016V83.1257C31.8359 82.6558 32.251 82.2712 32.7515 82.2712H32.4707ZM32.4707 55.2021H40.8325C41.3391 55.2021 41.7542 55.5867 41.7542 56.0566V63.8325C41.7542 64.3025 41.3391 64.687 40.8325 64.687H32.7515C32.2449 64.687 31.8359 64.3025 31.8359 63.8325V56.0566C31.8359 55.5867 32.251 55.2021 32.7515 55.2021H32.4707ZM46.9849 55.2021H55.3528C55.8594 55.2021 56.2683 55.5867 56.2683 56.0566V63.8325C56.2683 64.3025 55.8533 64.687 55.3528 64.687H46.9849C46.4783 64.687 46.0632 64.3025 46.0632 63.8325V56.0566C46.0632 55.5867 46.4783 55.2021 46.9849 55.2021ZM46.9849 68.7336H55.3528C55.8594 68.7336 56.2683 69.1182 56.2683 69.5881V77.364C56.2683 77.834 55.8533 78.2185 55.3528 78.2185H46.9849C46.4783 78.2185 46.0632 77.834 46.0632 77.364V69.3074C46.0632 68.8374 46.4783 68.4529 46.9849 68.4529V68.7336ZM46.9849 82.2712H55.3528C55.8594 82.2712 56.2683 82.6558 56.2683 83.1257V90.9016C56.2683 91.3716 55.8533 91.7561 55.3528 91.7561H46.9849C46.4783 91.7561 46.0632 91.3716 46.0632 90.9016V83.1257C46.0632 82.6558 46.4783 82.2712 46.9849 82.2712ZM61.4929 55.2021H69.8608C70.3674 55.2021 70.7825 55.5867 70.7825 56.0566V63.8325C70.7825 64.3025 70.3674 64.687 69.8608 64.687H61.4929C60.9863 64.687 60.5713 64.3025 60.5713 63.8325V56.0566C60.5774 55.5867 60.9863 55.2021 61.4929 55.2021ZM61.4929 68.7336H69.8608C70.3674 68.7336 70.7825 69.1182 70.7825 69.5881V77.364C70.7825 77.834 70.3674 78.2185 69.8608 78.2185H61.4929C60.9863 78.2185 60.5713 77.834 60.5713 77.364V69.3074C60.5713 68.8374 60.9863 68.4529 61.4929 68.4529V68.7336ZM84.3689 68.7336H76.0071C75.5005 68.7336 75.0916 69.1182 75.0916 69.5881V77.364C75.0916 77.834 75.5005 78.2185 76.0071 78.2185H84.375C84.8816 78.2185 85.2966 77.834 85.2966 77.364V69.3013C85.2966 68.8313 84.8816 68.4468 84.375 68.4468L84.3689 68.7336ZM84.3689 82.2712H76.0071C75.5005 82.2712 75.0916 82.6558 75.0916 83.1257V90.9016C75.0916 91.3716 75.5005 91.7561 76.0071 91.7561H84.375C84.8816 91.7561 85.2966 91.3716 85.2966 90.9016V82.8389C85.2966 82.3689 84.8816 81.9844 84.375 81.9844L84.3689 82.2712ZM61.4929 82.2712H69.8608C70.3674 82.2712 70.7825 82.6558 70.7825 83.1257V90.9016C70.7825 91.3716 70.3674 91.7561 69.8608 91.7561H61.4929C60.9863 91.7561 60.5713 91.3716 60.5713 90.9016V83.1257C60.5774 82.6558 60.9863 82.2712 61.4929 82.2712ZM29.2786 52.1199H88.4338C88.7512 52.1199 89.0076 52.3884 89.0076 52.6936V94.0571C89.0076 94.3623 88.739 94.6309 88.4338 94.6309H28.7109C28.4058 94.6309 28.1372 94.3745 28.1372 94.0571V53.2612C28.1372 52.6326 28.6499 52.1199 29.2786 52.1199ZM73.0957 40.9443C74.8596 40.9443 76.3062 39.803 76.3062 38.4236V32.2224L76.2878 31.9722H69.9097L69.8914 32.2224V38.4236C69.8914 39.8091 71.3318 40.9443 73.0957 40.9443ZM43.1641 40.9443C44.928 40.9443 46.3745 39.803 46.3745 38.4236V32.2224L46.3562 31.9722H39.9719L39.9536 32.2224V38.4236C39.9536 39.8091 41.394 40.9443 43.1641 40.9443Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_7_372\"><rect width=\"67.1448\" height=\"75\" fill=\"white\" transform=\"translate(25 23)\"/></clipPath></defs></svg>',\r\n  certificate : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_7_394)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M84.2971 91.0126L77.2475 89.7492L73.7502 96.0114C71.2112 99.1547 69.5998 93.985 68.8918 92.1845L62.0864 79.3488C63.655 78.8056 65.5471 77.237 67.488 75.4731C71.3638 75.5524 74.977 74.881 77.6321 71.4997L85.4507 86.6059L86.1282 88.0585C86.6653 89.9445 86.3845 91.1896 84.2971 91.0126ZM58.1863 22.0063C59.5107 21.9513 60.5544 22.4091 61.6103 23.0805C62.947 23.9289 64.4546 25.6073 66.3161 26.6694C68.9346 28.1647 73.7807 26.1017 76.2588 29.7883C77.7053 31.9367 77.7724 33.6213 77.8823 35.2875C77.9983 37.082 78.3157 38.736 80.1528 41.1652C83.1985 45.1935 83.8332 47.873 82.2646 50.6623C81.1965 52.5666 78.9443 53.6225 78.4255 54.831C77.3147 57.3945 78.5415 59.3293 77.0278 62.32C75.9719 64.3952 74.3484 65.7624 72.1816 66.4582C70.3567 67.0441 68.5256 66.1957 67.0608 66.8122C64.4912 67.8925 62.5991 70.401 60.5544 71.0358C59.7671 71.28 58.9797 71.402 58.1924 71.3959C57.405 71.402 56.6177 71.28 55.8303 71.0358C53.7856 70.401 51.8935 67.8925 49.324 66.8122C47.8591 66.1957 46.0281 67.0502 44.2031 66.4582C42.0364 65.7624 40.4128 64.3952 39.3569 62.32C37.8371 59.3293 39.0639 57.3945 37.9592 54.831C37.4404 53.6225 35.1882 52.5666 34.1201 50.6623C32.5393 47.873 33.1741 45.1935 36.2197 41.1713C38.0569 38.7421 38.3743 37.0881 38.4902 35.2936C38.6001 33.6274 38.6672 31.9428 40.1138 29.7944C42.5979 26.1078 47.4441 28.1708 50.0564 26.6755C51.918 25.6134 53.4255 23.935 54.7622 23.0866C55.812 22.4091 56.8618 21.9452 58.1863 22.0063ZM53.8833 43.8447L57.0693 46.8781L62.5503 41.3056C63.0935 40.7563 63.4353 40.3168 64.1006 41.0004L66.2734 43.2221C66.9875 43.9301 66.9509 44.339 66.2795 44.9982L58.3083 52.8351C56.8923 54.2267 57.1365 54.3122 55.696 52.884L50.2212 47.4396C49.9221 47.1161 49.9526 46.7865 50.2822 46.4631L52.803 43.8508C53.1875 43.4479 53.4927 43.4723 53.8833 43.8447ZM58.1863 31.9123C66.3528 31.9123 72.9751 38.5346 72.9751 46.7011C72.9751 54.8676 66.3528 61.4899 58.1863 61.4899C50.0198 61.4899 43.3974 54.8676 43.3974 46.7011C43.3974 38.5285 50.0198 31.9123 58.1863 31.9123ZM32.0693 91.0126L39.125 89.7492L42.6223 96.0114C45.1614 99.1547 46.7727 93.985 47.4807 92.1845L54.2861 79.3488C52.7175 78.8056 50.8254 77.237 48.8845 75.4731C45.0088 75.5524 41.3955 74.881 38.7405 71.4997L30.9158 86.6059L30.2383 88.0585C29.7012 89.9445 29.9819 91.1896 32.0693 91.0126Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_7_394\"><rect width=\"56.366\" height=\"75\" fill=\"white\" transform=\"translate(30 22)\"/></clipPath></defs></svg>',\r\n  code : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_1_169)\"><path d=\"M47.3752 36.6729H35.7574L17 61.3473L35.7574 86.0217H47.3752L28.6178 61.3473L47.3752 36.6729ZM69.6248 36.6729H81.2426L100 61.3473L81.2426 86.0217H69.6248L88.3822 61.3473L69.6248 36.6729ZM64.3967 28.027L68.4224 28.9659C69.0574 29.1145 69.4491 29.7494 69.3073 30.3844L54.1095 95.6942C53.9609 96.3224 53.326 96.7209 52.6911 96.579L48.6721 95.6401C48.0372 95.4915 47.6454 94.8566 47.7873 94.2217L62.985 28.9119C63.1336 28.2837 63.7686 27.8852 64.3967 28.027Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_1_169\"><rect width=\"83\" height=\"68.606\" fill=\"white\" transform=\"translate(17 28)\"/></clipPath></defs></svg>',\r\n  contact : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_3_332)\"><path d=\"M89.9258 72.2526H95.056C95.3177 72.2502 95.5779 72.2943 95.8242 72.3828C96.1254 72.4845 96.3993 72.6537 96.625 72.8776C96.8509 73.1003 97.0225 73.3721 97.1263 73.6719C97.2105 73.9193 97.2545 74.1787 97.2565 74.4401V84.7917C97.258 84.9742 97.2339 85.1561 97.1849 85.332L97.1458 85.4818C97.0463 85.7733 96.8815 86.0383 96.6641 86.2565C96.5095 86.4132 96.3316 86.545 96.1367 86.6471C95.8666 86.7849 95.5675 86.8564 95.2643 86.8555H89.9258V87.7083C89.9138 90.9732 88.6115 94.101 86.3028 96.4096C83.9942 98.7183 80.8665 100.021 77.6016 100.033H33.3307C30.0647 100.022 26.9353 98.7207 24.6253 96.4119C22.3152 94.1031 21.012 90.9743 21 87.7083V32.3698C21 29.097 22.297 25.9576 24.6069 23.6391C26.9168 21.3206 30.0514 20.0121 33.3242 20H77.595C80.8599 20.012 83.9877 21.3143 86.2963 23.6229C88.605 25.9316 89.9073 29.0593 89.9193 32.3242V33.5156H95.0495C95.3737 33.5132 95.6943 33.5844 95.987 33.724C96.3046 33.8699 96.5801 34.0939 96.7878 34.375C96.9448 34.5811 97.0659 34.8122 97.1458 35.0586C97.2227 35.2918 97.2623 35.5357 97.263 35.7813V46.1328C97.2621 46.3556 97.2201 46.5763 97.1393 46.7839C97.1099 46.8747 97.0706 46.962 97.0221 47.0443C96.8939 47.281 96.719 47.4892 96.5078 47.6563C96.3934 47.7449 96.2714 47.8233 96.1432 47.8906C95.8755 48.0294 95.5789 48.1031 95.2773 48.1055H89.9388V52.6628H95.069C95.3931 52.6621 95.7132 52.7333 96.0065 52.8711C96.3231 53.0187 96.5982 53.2424 96.8073 53.5221C96.9438 53.6981 97.0535 53.8934 97.1328 54.1016C97.2273 54.3489 97.2759 54.6115 97.276 54.8763V65.293C97.2742 65.5938 97.2029 65.8901 97.0677 66.1589C96.9685 66.3559 96.8388 66.536 96.6836 66.6927C96.5279 66.8537 96.345 66.986 96.1432 67.0833C95.8765 67.2176 95.5825 67.2888 95.2838 67.2917H89.9453V72.2331L89.9258 72.2526ZM55.4661 37.8776C60.588 37.8651 65.5556 39.6291 69.5225 42.8689C73.4894 46.1088 76.21 50.6241 77.2206 55.6453C78.2312 60.6664 77.4693 65.8826 75.0648 70.4049C72.6602 74.9272 68.7618 78.4757 64.034 80.4456C59.3062 82.4156 54.0415 82.685 49.1372 81.2081C44.233 79.7311 39.9927 76.5991 37.139 72.3459C34.2853 68.0927 32.9949 62.9816 33.4876 57.8835C33.9804 52.7854 36.2258 48.016 39.8411 44.388C41.8884 42.3271 44.3226 40.6911 47.0041 39.5738C49.6855 38.4565 52.5613 37.8801 55.4661 37.8776ZM68.9167 46.543C65.5009 43.1981 60.9513 41.2614 56.1727 41.1181C51.3941 40.9748 46.7366 42.6353 43.1265 45.7695C39.5164 48.9037 37.2183 53.2819 36.6892 58.0333C36.1601 62.7847 37.4387 67.5612 40.2708 71.4128C42.5495 70.3841 47.5234 69.9609 49.6589 68.4766C49.8543 68.1575 50.0262 67.8246 50.1732 67.4805C50.4271 66.888 50.668 66.2435 50.8242 65.8073C50.2095 65.0485 49.6483 64.248 49.1445 63.4115L47.4453 60.7031C46.9047 59.9811 46.5695 59.1262 46.4753 58.2292C46.4619 57.9249 46.5198 57.6217 46.6445 57.3438C46.836 56.9352 47.1794 56.6175 47.6016 56.4583C47.4783 54.8381 47.45 53.2121 47.5169 51.5885C47.558 51.217 47.6276 50.8491 47.7253 50.4883C48.1994 48.9533 49.2243 47.6478 50.6029 46.8229C51.3476 46.3479 52.1596 45.988 53.0117 45.7552C53.5521 45.599 52.5495 43.8737 53.1094 43.8021C55.8112 43.5286 60.1862 45.9961 62.0742 48.0339C63.0983 49.1887 63.6877 50.6644 63.7409 52.207L63.6367 56.6276C63.8568 56.6832 64.0569 56.7993 64.2145 56.9626C64.3721 57.126 64.4809 57.3302 64.5286 57.5521C64.6223 58.3569 64.4582 59.1707 64.0599 59.8763V59.9349L62.1068 63.1315C61.4455 64.308 60.6455 65.4008 59.724 66.3867L59.9844 66.7578C60.3683 67.3406 60.8041 67.8875 61.2865 68.3919C61.3049 68.4061 61.3204 68.4238 61.332 68.444C63.4479 69.9414 68.4414 70.3971 70.7331 71.3932C73.4662 67.7238 74.7867 63.193 74.4532 58.6298C74.1197 54.0666 72.1543 49.776 68.9167 46.543ZM77.6016 24.6354H33.3307C31.2941 24.6457 29.3437 25.4588 27.9029 26.8984C26.4622 28.3379 25.6474 30.2876 25.6354 32.3242V87.6628C25.6474 89.6983 26.4613 91.647 27.9006 93.0864C29.34 94.5257 31.2887 95.3396 33.3242 95.3516H77.595C79.6239 95.3415 81.5675 94.5346 83.0069 93.1049C84.4464 91.6751 85.2665 89.737 85.2904 87.7083V32.3698C85.2904 30.3264 84.4818 28.366 83.0411 26.9168C81.6005 25.4676 79.6449 24.6475 77.6016 24.6354Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_3_332\"><rect width=\"76.2565\" height=\"80\" fill=\"white\" transform=\"translate(21 20)\"/></clipPath></defs></svg>',\r\n  css : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><rect x=\"18\" y=\"25\" width=\"80\" height=\"80\" fill=\"url(#pattern0_1_152)\"/><defs><pattern id=\"pattern0_1_152\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\"><use xlink:href=\"#image0_1_152\" transform=\"scale(0.00666667)\"/></pattern><image id=\"image0_1_152\" width=\"150\" height=\"150\" xlink:href=\"data:image/png;base64,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\"/></defs></svg>',\r\n  database : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_1_206)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M57.4969 22C75.3569 22 89.833 28.8678 89.833 37.3273C89.833 45.7931 75.3507 52.6546 57.4969 52.6546C39.6431 52.6546 25.1608 45.7868 25.1608 37.3273C25.1608 28.8678 39.6431 22 57.4969 22ZM25.1608 73.2769V85.045C30.9142 105.743 87.7544 101.745 89.8392 83.986V72.2305C86.9996 91.7249 29.7078 93.1285 25.1608 73.2769ZM25 42.6411V54.1335C30.7533 74.3485 87.909 71.6164 90 54.2776V42.7915C87.1543 61.8347 29.547 62.029 25 42.6411ZM25 57.4922V69.2603C30.7533 89.9578 87.909 87.163 90 69.4044V57.6488C87.1543 77.1432 29.547 77.3438 25 57.4922Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_1_206\"><rect width=\"65\" height=\"77\" fill=\"white\" transform=\"translate(25 22)\"/></clipPath></defs></svg>',\r\n  doc : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_1_118)\"><path d=\"M79.6601 90.4001V99.0422H17V90.4001H79.6601ZM99.8103 31V39.6258H17V31H99.8103ZM100 50.7887V59.4307H17V50.7887H100ZM100 70.5936V79.2356H17V70.5936H100Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_1_118\"><rect width=\"83\" height=\"68.0422\" fill=\"white\" transform=\"translate(17 31)\"/></clipPath></defs></svg>',\r\n  ebook : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_7_382)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M32.8203 25H80.1406C81.1777 25 82.0273 25.8496 82.0273 26.8926V28.8672C84.6992 29.9922 87.0371 31.6445 89.0293 33.8242C91.0684 36.0566 92.5918 38.6406 93.5762 41.5469C94.5254 44.3359 95.0059 47.4004 95.0059 50.7344V56.4062C95.0059 58.8086 93.6406 60.8945 91.6426 61.9316L93.5996 66.3965C94.7481 69.0215 93.916 72.0215 91.7773 73.7266C90.7051 74.582 89.4453 75.3848 88.0156 76.1172C86.7676 76.7676 85.3262 77.3711 83.7207 77.9102C83.1641 78.1035 82.5957 78.2793 82.0273 78.4375V79.7031C81.9453 81.1797 80.041 81.209 77.9785 81.127H32.1172C29.2754 81.127 26.9434 83.459 26.9434 86.3008C26.9434 89.1484 29.2754 91.4746 32.1172 91.4746H77.9727V85.9668H82.0215V92.9688C82.0215 94.2461 80.9785 95.2891 79.707 95.2891H32.3164C27.1895 95.2891 23 91.0937 23 85.9727V34.8203C23 29.418 27.418 25 32.8203 25ZM73.2617 73.334C67.7012 73.3223 63.2598 71.5469 59.9258 67.9785C56.6035 64.4102 54.9336 59.8867 54.9336 54.3965V52.9727C54.9336 47.2422 56.5156 42.5195 59.6563 38.8223C62.8086 35.1074 67.0273 33.2617 72.3359 33.2852C77.5391 33.2852 81.582 34.8555 84.4531 37.9961C87.3242 41.1367 88.7715 45.3789 88.7715 50.7227V56.3945H65.7441L65.6738 56.5996C65.8672 59.1426 66.7227 61.2344 68.2285 62.8809C69.7344 64.5215 71.7793 65.3418 74.375 65.3418C76.6719 65.3418 78.5938 65.1074 80.1172 64.6445C81.6406 64.1816 83.293 63.4492 85.1094 62.459L87.9219 68.8691C86.3281 70.1348 84.2715 71.1895 81.7402 72.0391C79.1973 72.9004 76.3789 73.3223 73.2617 73.334ZM72.3418 41.3184C70.4141 41.3184 68.8965 42.0508 67.7773 43.5215C66.6582 44.998 65.9785 46.9434 65.709 49.3398L65.8203 49.5098H78.5879V48.584C78.5879 46.3809 78.0664 44.6172 77.0293 43.2871C75.9863 41.9746 74.4336 41.3184 72.3418 41.3184ZM34.6367 32.6641H36.2715C37.1094 32.6641 37.7949 33.2148 37.7949 33.8945V72.4844C37.7949 73.1641 37.1094 73.7148 36.2715 73.7148H34.6367C33.8047 73.7148 33.1191 73.1641 33.1191 72.4844V33.8945C33.1191 33.2148 33.8047 32.6641 34.6367 32.6641Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_7_382\"><rect width=\"72\" height=\"70.2891\" fill=\"white\" transform=\"translate(23 25)\"/></clipPath></defs></svg>',\r\n  email : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_3_321)\"><path d=\"M21.7619 31H95.238C96.494 31.0124 97.6945 31.5192 98.5795 32.4105C99.4645 33.3018 99.9627 34.5059 99.9662 35.762V86.259C99.9732 87.2226 99.6857 88.1653 99.1422 88.9609C99.0444 89.2157 98.8923 89.4462 98.6963 89.6363C98.5646 89.7622 98.4143 89.867 98.2506 89.947C97.3983 90.6661 96.3193 91.0609 95.2042 91.0615H21.7619C20.5118 91.0492 19.3163 90.5471 18.4322 89.6631C17.5482 88.779 17.0461 87.5835 17.0338 86.3333V35.762C17.0372 34.5059 17.5354 33.3018 18.4204 32.4105C19.3054 31.5192 20.506 31.0124 21.7619 31ZM21.5593 84.2529L46.4026 58.437L21.5593 37.4438V84.2529ZM50.1446 61.6589L23.5992 87.3668H93.1711L67.8078 61.6589L60.3777 67.8799C60.0503 68.1518 59.6382 68.3006 59.2126 68.3006C58.787 68.3006 58.3748 68.1518 58.0474 67.8799L50.1446 61.6589ZM71.489 58.3897L95.4407 84.4623V37.2142L71.489 58.3897ZM23.8964 34.6542L59.1417 63.2192L92.8334 34.6542H23.8964Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_3_321\"><rect width=\"83\" height=\"60.021\" fill=\"white\" transform=\"translate(17 31)\"/></clipPath></defs></svg>',\r\n  file : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><path d=\"M37.0961 88C35.3863 88 34 86.6137 34 84.9039C34 83.1941 35.3863 81.8078 37.0961 81.8078H60.1091C61.8188 81.8078 63.2052 83.1941 63.2052 84.9039C63.2052 86.6137 61.8188 88 60.1091 88H37.0961ZM37.0961 44.1922C35.3863 44.1922 34 42.8059 34 41.0961C34 39.3863 35.3863 38 37.0961 38H77.9233C79.6331 38 81.0194 39.3863 81.0194 41.0961C81.0194 42.8059 79.6331 44.1922 77.9233 44.1922H37.0961ZM37.0961 66.0961C35.3863 66.0961 34 64.7098 34 63C34 61.2902 35.3863 59.9039 37.0961 59.9039H77.9233C79.6331 59.9039 81.0194 61.2902 81.0194 63C81.0194 64.7098 79.6331 66.0961 77.9233 66.0961H37.0961Z\" fill=\"black\"/></svg>',\r\n  font : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><path d=\"M63.0312 84H52.9688L48.9688 73.5938H30.6562L26.875 84H17.0625L34.9062 38.1875H44.6875L63.0312 84ZM46 65.875L39.6875 48.875L33.5 65.875H46ZM74.4688 60.9375L66.5 59.5C67.3958 56.2917 68.9375 53.9167 71.125 52.375C73.3125 50.8333 76.5625 50.0625 80.875 50.0625C84.7917 50.0625 87.7083 50.5312 89.625 51.4688C91.5417 52.3854 92.8854 53.5625 93.6562 55C94.4479 56.4167 94.8438 59.0312 94.8438 62.8438L94.75 73.0938C94.75 76.0104 94.8854 78.1667 95.1562 79.5625C95.4479 80.9375 95.9792 82.4167 96.75 84H88.0625C87.8333 83.4167 87.5521 82.5521 87.2188 81.4062C87.0729 80.8854 86.9688 80.5417 86.9062 80.375C85.4062 81.8333 83.8021 82.9271 82.0938 83.6562C80.3854 84.3854 78.5625 84.75 76.625 84.75C73.2083 84.75 70.5104 83.8229 68.5312 81.9688C66.5729 80.1146 65.5938 77.7708 65.5938 74.9375C65.5938 73.0625 66.0417 71.3958 66.9375 69.9375C67.8333 68.4583 69.0833 67.3333 70.6875 66.5625C72.3125 65.7708 74.6458 65.0833 77.6875 64.5C81.7917 63.7292 84.6354 63.0104 86.2188 62.3438V61.4688C86.2188 59.7812 85.8021 58.5833 84.9688 57.875C84.1354 57.1458 82.5625 56.7812 80.25 56.7812C78.6875 56.7812 77.4688 57.0938 76.5938 57.7188C75.7188 58.3229 75.0104 59.3958 74.4688 60.9375ZM86.2188 68.0625C85.0938 68.4375 83.3125 68.8854 80.875 69.4062C78.4375 69.9271 76.8438 70.4375 76.0938 70.9375C74.9479 71.75 74.375 72.7812 74.375 74.0312C74.375 75.2604 74.8333 76.3229 75.75 77.2188C76.6667 78.1146 77.8333 78.5625 79.25 78.5625C80.8333 78.5625 82.3438 78.0417 83.7812 77C84.8438 76.2083 85.5417 75.2396 85.875 74.0938C86.1042 73.3438 86.2188 71.9167 86.2188 69.8125V68.0625Z\" fill=\"black\"/></svg>',\r\n  globe : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_3_309)\"><path d=\"M90.9394 79.4558C91.0623 79.4558 91.1819 79.4686 91.2994 79.4916C92.0735 78.142 92.7793 76.7256 93.417 75.2457C93.4291 75.2159 93.442 75.1876 93.4568 75.1592C94.4146 72.8998 95.1374 70.5532 95.6244 68.1216C96.002 66.235 96.235 64.3005 96.3235 62.3187H84.9129C84.7055 68.1101 82.9764 73.8218 79.7531 79.4558H90.9394ZM88.9501 83.0938H77.4578C73.9698 88.147 69.2706 93.1379 63.3826 98.0668C64.3059 97.952 65.2192 97.8047 66.1216 97.6244C68.5843 97.132 70.9606 96.3971 73.247 95.4197L73.2457 95.417C75.5699 94.4173 77.7348 93.2474 79.7362 91.9052C81.7416 90.5597 83.6005 89.0311 85.3087 87.3155L85.3155 87.3087C86.6374 85.9922 87.8485 84.5866 88.9501 83.0938ZM53.6168 98.0661C47.7294 93.1379 43.0303 88.147 39.5415 83.0938H28.0512C29.1529 84.5866 30.3633 85.9922 31.6845 87.3087L31.6913 87.3161C33.4002 89.0318 35.2591 90.5597 37.2638 91.9052C39.2646 93.2474 41.4294 94.4173 43.7543 95.417C43.7834 95.4298 43.8124 95.4426 43.8408 95.4568C46.1002 96.4153 48.4468 97.1374 50.8791 97.6244C51.7815 97.8047 52.6934 97.952 53.6168 98.0661ZM25.681 79.4558H37.2463C34.0237 73.8218 32.2938 68.1101 32.0878 62.3187H20.6779C20.7657 64.3005 20.9987 66.2343 21.3763 68.1209C21.8687 70.5836 22.6043 72.9599 23.581 75.2463L23.5837 75.2457C24.2153 76.7128 24.9137 78.117 25.681 79.4558ZM20.6779 58.6813H32.1587C32.5809 53.0074 34.4634 47.2951 37.8373 41.5442H25.681C24.9137 42.883 24.2153 44.2872 23.5837 45.755C23.5709 45.7841 23.5574 45.8131 23.5439 45.8408C22.5854 48.1009 21.8633 50.4474 21.3763 52.8791C20.9987 54.7657 20.7657 56.7002 20.6779 58.6813ZM28.0512 37.9068H40.1676C43.6179 32.9348 48.18 27.9337 53.8728 22.9035C52.8623 23.0217 51.8646 23.1791 50.8798 23.3763C48.4164 23.8687 46.0408 24.6043 43.7543 25.581L43.755 25.583C41.4301 26.5834 39.2652 27.7526 37.2645 29.0954C35.2597 30.441 33.4009 31.9695 31.692 33.6845L31.6845 33.6913C30.3633 35.0084 29.1529 36.4134 28.0512 37.9068ZM63.1266 22.9028C68.8194 27.933 73.3814 32.9341 76.8324 37.9062H88.9495C87.8478 36.4134 86.6367 35.0078 85.3148 33.6913L85.308 33.6845C83.5998 31.9689 81.7409 30.441 79.7355 29.0954C77.7341 27.7526 75.5692 26.5834 73.245 25.583C73.2159 25.5709 73.1869 25.5574 73.1592 25.5432C70.8991 24.5854 68.5526 23.8626 66.1209 23.3763C65.1361 23.1791 64.1371 23.0217 63.1266 22.9028ZM91.319 41.5442H79.162C82.5366 47.2951 84.4191 53.0074 84.8413 58.6813H96.3228C96.2343 56.6995 96.0006 54.7657 95.6237 52.8791C95.1306 50.4164 94.3957 48.0401 93.419 45.7537L93.4163 45.755C92.7847 44.2872 92.087 42.883 91.319 41.5442ZM50.1692 19.8092C52.8656 19.2695 55.6431 19 58.5003 19C61.3575 19 64.1344 19.2695 66.8308 19.8092C69.4881 20.3415 72.071 21.1399 74.5804 22.2051C74.6148 22.2172 74.6479 22.2301 74.6803 22.2442C77.1816 23.3209 79.5416 24.5982 81.7531 26.0836C83.9605 27.5642 86.0024 29.2427 87.8768 31.1239C89.758 32.9983 91.4365 35.0409 92.9164 37.2469C94.4004 39.459 95.6791 41.8184 96.7558 44.321L96.7531 44.3217L96.7558 44.3278C97.8412 46.8662 98.6531 49.4802 99.1908 52.1692C99.7305 54.8656 99.9993 57.6431 99.9993 60.5003C99.9993 63.3575 99.7305 66.1357 99.1908 68.8322C98.6592 71.4881 97.8595 74.0724 96.7949 76.581C96.7828 76.6148 96.77 76.6479 96.7551 76.6803C95.6784 79.1829 94.4004 81.5416 92.9158 83.7538C91.4358 85.9605 89.7573 88.0024 87.8762 89.8768C86.0017 91.758 83.9592 93.4372 81.7524 94.9171C79.5416 96.4018 77.1809 97.6804 74.6797 98.7564L74.6783 98.7537L74.6716 98.7564C72.1332 99.8412 69.5185 100.653 66.8301 101.191C64.1337 101.73 61.3562 102 58.4997 102C55.6431 102 52.865 101.73 50.1685 101.191C47.5119 100.659 44.9283 99.8601 42.4183 98.7956C42.3852 98.7828 42.3521 98.7706 42.319 98.7558C39.8164 97.6797 37.4577 96.4018 35.2456 94.9164C33.0395 93.4365 30.9969 91.7573 29.1225 89.8761C27.2413 88.0017 25.5628 85.9591 24.0829 83.7531C22.5982 81.5416 21.3203 79.1822 20.2436 76.6797L20.2463 76.6783L20.2436 76.6722C19.1588 74.1339 18.3469 71.5198 17.8092 68.8308C17.2702 66.135 17 63.3575 17 60.4997C17 57.6431 17.2702 54.865 17.8099 52.1685C18.3415 49.5119 19.1405 46.9283 20.2051 44.419C20.2172 44.3859 20.2301 44.3521 20.2442 44.3197C21.3209 41.8171 22.5982 39.4577 24.0836 37.2456C25.5642 35.0395 27.2427 32.9969 29.1232 31.1225C30.9976 29.2413 33.0402 27.5628 35.2462 26.0822C37.4584 24.5975 39.8178 23.3196 42.3197 22.2429L42.3203 22.2456L42.3264 22.2429C44.8655 21.1594 47.4802 20.3475 50.1692 19.8092ZM60.3194 25.2602V37.9068H72.3601C69.1963 33.7352 65.1874 29.5203 60.3194 25.2602ZM60.3194 41.5442V58.6813H81.206C80.7338 53.0534 78.6466 47.3417 74.912 41.5442H60.3194ZM60.3194 62.3187V79.4558H75.524C79.1228 73.7846 81.0553 68.0716 81.2864 62.3187H60.3194ZM60.3194 83.0938V95.8952C65.4833 91.6513 69.7096 87.3837 72.9816 83.0938H60.3194ZM56.6813 95.8965V83.0938H44.0185C47.2897 87.3837 51.5161 91.6519 56.6813 95.8965ZM56.6813 79.4558V62.3187H35.7143C35.9447 68.0723 37.8765 73.7846 41.4767 79.4558H56.6813ZM56.6813 58.6813V41.5442H42.0887C38.354 47.3417 36.2669 53.0541 35.794 58.6813H56.6813ZM56.6813 37.9068V25.2588C51.8133 29.519 47.8037 33.7352 44.6399 37.9068H56.6813Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_3_309\"><rect width=\"83\" height=\"83\" fill=\"white\" transform=\"translate(17 19)\"/></clipPath></defs></svg>',\r\n  html : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_1_140)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M24 29L30.0971 93.7988L57.4598 101L84.8905 93.793L91 29H24ZM67.8793 66.2773L66.9084 76.584L57.5402 78.9805L48.2029 76.5957L47.6092 70.25H39.1871L40.362 82.7305L57.5835 87.2422L74.7493 82.7305L77.0497 58.332H46.4838L45.717 50.1934H77.8102L78.5585 42.248H36.5467L38.8099 66.2832L67.8793 66.2773ZM79.6653 89.668L57.6144 95.457V95.4863L57.5587 95.4688L57.5031 95.4863V95.457L35.4521 89.668L30.2331 34.3027H84.8844L79.6653 89.668Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_1_140\"><rect width=\"67\" height=\"72\" fill=\"white\" transform=\"translate(24 29)\"/></clipPath></defs></svg>',\r\n  image : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M75.9653 42.9462C77.4817 42.9462 78.9641 43.4567 80.2249 44.4133C81.4857 45.3698 82.4685 46.7293 83.0488 48.3199C83.6291 49.9105 83.7809 51.6608 83.4851 53.3494C83.1892 55.038 82.459 56.5891 81.3867 57.8065C80.3145 59.0239 78.9484 59.8529 77.4611 60.1888C75.9738 60.5247 74.4322 60.3523 73.0313 59.6935C71.6303 59.0346 70.4329 57.9189 69.5904 56.4874C68.7479 55.0558 68.2983 53.3728 68.2983 51.6511C68.2983 50.508 68.4966 49.376 68.8819 48.3199C69.2672 47.2638 69.832 46.3042 70.5439 45.4958C71.2559 44.6875 72.1011 44.0463 73.0313 43.6088C73.9615 43.1714 74.9585 42.9462 75.9653 42.9462ZM94.427 100H22.5797C21.1005 99.9928 19.6843 99.3198 18.6415 98.1286C18.1223 97.5425 17.7101 96.8459 17.4284 96.0786C17.1467 95.3113 17.0012 94.4885 17 93.6573V36.3351C17.0003 34.655 17.5883 33.0439 18.6347 31.856C19.6809 30.6679 21.1 30.0003 22.5797 30H94.427C95.9054 30.0044 97.3218 30.6746 98.3653 31.8637C99.4117 33.0515 99.9998 34.6627 100 36.3427V93.6573C99.9997 94.488 99.8552 95.3105 99.5747 96.0777C99.2942 96.845 98.8832 97.5419 98.3653 98.1286C97.3225 99.3198 95.9062 99.9928 94.427 100ZM89.462 92.7676L76.1747 68.7006C75.8997 68.2046 75.5185 67.796 75.0666 67.5127C74.6148 67.2295 74.1071 67.081 73.5909 67.081C73.0748 67.081 72.567 67.2295 72.1152 67.5127C71.6633 67.796 71.2821 68.2046 71.0071 68.7006L64.7316 80.1512L71.561 92.7676H68.7576L50.1338 59.0216C48.418 56.4216 45.6687 56.621 44.1353 59.0216L25.8965 92.7676H23.3633V37.2247H93.6164V92.7676H89.462Z\" fill=\"black\"/></svg>',\r\n  javascript : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_3_280)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M68.2214 74.8187C54.915 74.8187 52.1253 68.7126 52.1253 63.5859C52.1253 63.0995 52.5171 62.7078 53.0034 62.7078H56.9346C57.3669 62.7078 57.7316 63.0252 57.7992 63.4508C58.3936 67.4562 60.1565 69.4758 68.2079 69.4758C74.618 69.4758 77.3401 68.0304 77.3401 64.6261C77.3401 62.6672 76.5633 61.215 66.6071 60.2424C58.2787 59.4183 53.1318 57.5878 53.1318 50.9211C53.1318 44.7879 58.3057 41.1337 66.9786 41.1337C76.7187 41.1337 81.5414 44.511 82.1493 51.7789C82.1696 52.0288 82.0818 52.272 81.9129 52.4544C81.7441 52.63 81.5076 52.738 81.2645 52.738H77.3198C76.9078 52.738 76.5498 52.4476 76.4687 52.0558C75.5164 47.8477 73.2198 46.4968 66.9651 46.4968C59.9674 46.4968 59.1568 48.9352 59.1568 50.759C59.1568 52.9745 60.116 53.6229 69.5588 54.8725C78.9071 56.1153 83.3449 57.8648 83.3449 64.4369C83.3449 71.0632 77.8197 74.8592 68.1809 74.8592L68.2214 74.8187ZM58.8258 99C57.7113 99 56.6103 98.7096 55.6377 98.1489L45.4856 92.1374C43.9658 91.2863 44.7088 90.9891 45.2087 90.8135C47.2283 90.1043 47.6403 89.9489 49.8018 88.7196C50.0314 88.5912 50.3286 88.6385 50.5583 88.7736L58.3598 93.4005C58.6435 93.5558 59.042 93.5558 59.3054 93.4005L89.7212 75.8454C90.0049 75.6833 90.1872 75.3591 90.1872 75.0213V39.9314C90.1872 39.5802 90.0049 39.2695 89.7144 39.0938L59.3054 21.5523C59.0217 21.3834 58.6502 21.3834 58.3665 21.5523L27.971 39.0938C27.6738 39.2627 27.4915 39.5869 27.4915 39.9246V75.0213C27.4915 75.3591 27.6738 75.6765 27.9643 75.8386L36.2926 80.6479C40.8114 82.9106 43.5808 80.2426 43.5808 77.5678V42.9237C43.5808 42.4306 43.9658 42.0456 44.4657 42.0456H48.3158C48.7953 42.0456 49.1938 42.4238 49.1938 42.9237V77.5813C49.1938 83.6131 45.9044 87.0715 40.19 87.0715C38.4338 87.0715 37.0424 87.0715 33.1788 85.1667L25.1882 80.5668C23.2158 79.4253 22 77.2976 22 75.0213V39.9246C22 37.6416 23.2158 35.5072 25.1882 34.3792L55.6309 16.8173C57.556 15.7298 60.116 15.7298 62.0275 16.8173L92.4365 34.3859C94.4021 35.5207 95.6247 37.6416 95.6247 39.9314V75.0281C95.6247 77.3044 94.4021 79.4253 92.4365 80.5736L62.0275 98.1354C61.0548 98.696 59.9471 98.9865 58.8258 98.9865V99Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_3_280\"><rect width=\"73.6247\" height=\"83\" fill=\"white\" transform=\"translate(22 16)\"/></clipPath></defs></svg>',\r\n  json : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><path d=\"M24.2812 69.1875V61.6875C25.8021 61.6042 26.9479 61.375 27.7188 61C28.4896 60.625 29.1562 60 29.7188 59.125C30.2812 58.2292 30.6667 57.1146 30.875 55.7812C31.0417 54.7812 31.125 53.0417 31.125 50.5625C31.125 46.5208 31.3125 43.7083 31.6875 42.125C32.0625 40.5208 32.7396 39.2396 33.7188 38.2812C34.6979 37.3021 36.125 36.5312 38 35.9688C39.2708 35.5938 41.2708 35.4062 44 35.4062H45.6562V42.875C43.3438 42.875 41.8542 43.0104 41.1875 43.2812C40.5417 43.5312 40.0625 43.9271 39.75 44.4688C39.4375 44.9896 39.2812 45.8958 39.2812 47.1875C39.2812 48.5 39.1875 50.9896 39 54.6562C38.8958 56.7188 38.625 58.3958 38.1875 59.6875C37.75 60.9583 37.1875 62.0104 36.5 62.8438C35.8333 63.6771 34.8021 64.5417 33.4062 65.4375C34.6354 66.1458 35.6354 66.9792 36.4062 67.9375C37.1979 68.875 37.8021 70.0208 38.2188 71.375C38.6354 72.7292 38.9062 74.5417 39.0312 76.8125C39.1771 80.2708 39.25 82.4792 39.25 83.4375C39.25 84.8125 39.4167 85.7708 39.75 86.3125C40.0833 86.8542 40.5833 87.2604 41.25 87.5312C41.9375 87.8229 43.4062 87.9688 45.6562 87.9688V95.4688H44C41.1875 95.4688 39.0312 95.2396 37.5312 94.7812C36.0312 94.3438 34.7604 93.6042 33.7188 92.5625C32.6979 91.5208 32.0104 90.2292 31.6562 88.6875C31.3021 87.1667 31.125 84.7604 31.125 81.4688C31.125 77.6354 30.9583 75.1458 30.625 74C30.1667 72.3333 29.4688 71.1458 28.5312 70.4375C27.6146 69.7083 26.1979 69.2917 24.2812 69.1875ZM53.375 57.5938V48.8125H62.1562V57.5938H53.375ZM53.375 73.2188H62.1562V79.5C62.1562 82.0417 61.9375 84.0417 61.5 85.5C61.0625 86.9792 60.2292 88.3021 59 89.4688C57.7917 90.6354 56.25 91.5521 54.375 92.2188L52.6562 88.5938C54.4271 88.0104 55.6875 87.1979 56.4375 86.1562C57.1875 85.1146 57.5833 83.7292 57.625 82H53.375V73.2188ZM91.4375 69.1875C89.9167 69.2708 88.7708 69.5 88 69.875C87.2292 70.25 86.5625 70.8854 86 71.7812C85.4583 72.6562 85.0729 73.7604 84.8438 75.0938C84.6771 76.0938 84.5938 77.8229 84.5938 80.2812C84.5938 84.3229 84.4062 87.1458 84.0312 88.75C83.6771 90.3542 83.0104 91.6354 82.0312 92.5938C81.0521 93.5729 79.6146 94.3438 77.7188 94.9062C76.4479 95.2812 74.4479 95.4688 71.7188 95.4688H70.0625V87.9688C72.2917 87.9688 73.75 87.8229 74.4375 87.5312C75.125 87.2604 75.625 86.8542 75.9375 86.3125C76.2708 85.7917 76.4375 84.8958 76.4375 83.625C76.4583 82.3542 76.5521 79.9271 76.7188 76.3438C76.8229 74.1771 77.1042 72.4479 77.5625 71.1562C78.0208 69.8438 78.625 68.7396 79.375 67.8438C80.1458 66.9271 81.125 66.125 82.3125 65.4375C80.7708 64.4375 79.6458 63.4583 78.9375 62.5C77.9583 61.125 77.2917 59.375 76.9375 57.25C76.7083 55.7917 76.5417 52.5833 76.4375 47.625C76.4167 46.0625 76.2708 45.0208 76 44.5C75.75 43.9792 75.2812 43.5833 74.5938 43.3125C73.9271 43.0208 72.4167 42.875 70.0625 42.875V35.4062H71.7188C74.5312 35.4062 76.6875 35.625 78.1875 36.0625C79.6875 36.5 80.9479 37.25 81.9688 38.3125C82.9896 39.3542 83.6771 40.6458 84.0312 42.1875C84.4062 43.7083 84.5938 46.1146 84.5938 49.4062C84.5938 53.2188 84.75 55.7083 85.0625 56.875C85.5208 58.5417 86.2188 59.7396 87.1562 60.4688C88.0938 61.1771 89.5208 61.5833 91.4375 61.6875V69.1875Z\" fill=\"black\"/></svg>',\r\n  key : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_7_406)\"><path d=\"M62.2664 30.9077C62.349 30.986 62.4256 31.0643 62.5022 31.1486C66.2224 35.0301 68.2955 40.2528 68.2723 45.6849C68.2491 51.117 66.1316 56.321 62.3784 60.1693L62.3431 60.2114L79.9521 78.2236L86.8024 85.2213L90.9998 89.5091L84.1495 96.5008L79.9521 92.2191L73.3141 99L66.4638 92.0023L73.1019 85.2213L69.4822 81.5238L61.8184 89.3525L54.9858 82.3367L62.6496 74.508L55.4692 67.2091L55.428 67.2453C51.6443 71.1104 46.5124 73.2818 41.1615 73.2818C35.8105 73.2818 30.6787 71.1104 26.895 67.2453C23.1113 63.3801 20.9857 58.1378 20.9857 52.6717C20.9857 47.2056 23.1113 41.9633 26.895 38.0981L33.8219 31.0221C37.5914 27.1774 42.6944 25.0085 48.0211 24.9871C53.3478 24.9657 58.4674 27.0935 62.2664 30.9077ZM57.1435 45.5957C57.1477 44.3811 56.9171 43.1776 56.4648 42.0542C56.0126 40.9309 55.3477 39.9098 54.5083 39.0496C52.8024 37.3212 50.497 36.3514 48.0943 36.3514C45.6916 36.3514 43.3862 37.3212 41.6803 39.0496L34.7475 46.1196C33.1046 47.8694 32.1984 50.2072 32.2232 52.6316C32.248 55.056 33.2018 57.374 34.8801 59.0883C36.5583 60.8027 38.8274 61.7771 41.2007 61.8024C43.574 61.8277 45.8625 60.902 47.5755 59.2238L54.5024 52.1478C55.3428 51.2867 56.0087 50.2648 56.4619 49.1405C56.9151 48.0162 57.1467 46.8116 57.1435 45.5957Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_7_406\"><rect width=\"70\" height=\"74\" fill=\"white\" transform=\"translate(21 25)\"/></clipPath></defs></svg>',\r\n  pdf : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M99.6033 70.352C97.901 68.6355 94.1397 67.742 88.3999 67.6598C84.5236 67.6245 79.8536 67.9772 74.9421 68.6708C72.7451 67.3776 70.4791 65.955 68.6963 64.2621C63.9113 59.6888 59.9084 53.352 57.4239 46.3686C57.5849 45.7102 57.7229 45.1459 57.8495 44.5581C57.8495 44.5581 60.5525 28.8983 59.8394 23.6079C59.7474 22.8907 59.6784 22.6674 59.4943 22.1148L59.2643 21.4917C58.5281 19.7635 57.0903 17.9295 54.8358 18.0353L53.4785 18C50.9595 18 48.9121 19.3167 48.383 21.2801C46.7496 27.4405 48.4405 36.6577 51.4886 48.6024L50.7065 50.5422C48.521 55.9972 45.7719 61.4993 43.3564 66.343L43.0343 66.9661C40.4808 72.0685 38.1688 76.3831 36.0754 80.0512L33.9129 81.2268C33.7519 81.3091 30.0481 83.3195 29.1739 83.8603C21.8008 88.3631 16.9123 93.4654 16.0956 97.5214C15.8426 98.8147 16.0381 100.472 17.3379 101.237L19.4428 102.295C20.3515 102.765 21.3062 103 22.2839 103C27.529 103 33.6368 96.3105 42.0451 81.3209C51.7532 78.0996 62.7955 75.4073 72.4691 73.926C79.8536 78.1701 88.9176 81.121 94.6458 81.121C95.6695 81.121 96.5437 81.027 97.2568 80.8271C98.3496 80.5214 99.2813 79.8866 99.8449 79.0166C100.949 77.3001 101.179 74.9488 100.88 72.5387C100.788 71.8216 100.236 70.9398 99.6263 70.3285L99.6033 70.352ZM21.1337 98.9205C22.0884 96.24 25.8842 90.9495 31.4974 86.2469C31.8425 85.953 32.7166 85.13 33.5103 84.3541C27.6556 93.9122 23.7217 97.7213 21.1337 98.9205ZM54.3527 20.751C56.0436 20.751 57.0098 25.101 57.0903 29.1805C57.1708 33.26 56.2391 36.1286 55.0774 38.2448C54.1227 35.1058 53.6511 30.1681 53.6511 26.935C53.6511 26.9232 53.5821 20.751 54.3527 20.751ZM44.4376 76.4537C45.6224 74.3022 46.8301 72.0332 48.0839 69.6231C51.132 63.7213 53.053 59.1245 54.4908 55.3389C57.3434 60.6411 60.8976 65.1556 65.073 68.7649C65.5906 69.2116 66.1427 69.6701 66.7294 70.1169C58.2406 71.8333 50.902 73.9142 44.4376 76.4537ZM97.9815 75.9716C97.4639 76.3008 95.9801 76.4889 95.0369 76.4889C91.9657 76.4889 88.1584 75.0546 82.8213 72.7033C84.8687 72.5505 86.7436 72.4682 88.4345 72.4682C91.5171 72.4682 92.4373 72.4564 95.4394 73.2441C98.4531 74.0318 98.4991 75.6307 97.9815 75.9716Z\" fill=\"black\"/></svg>',\r\n  presentation : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000183105L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_1_181)\"><path d=\"M63.2669 87.6029L71.8802 96.2162C73.9635 96.2747 75.6367 97.987 75.6367 100.09C75.6367 102.232 73.905 103.964 71.763 103.964C69.6211 103.964 67.8893 102.225 67.8893 100.09C67.8893 99.8555 67.9089 99.6211 67.9479 99.3932L60.4544 91.9063V97.4141H55.0898V92.056L47.4792 99.6732C47.4922 99.8099 47.4987 99.9531 47.4987 100.096C47.4987 102.238 45.7669 103.97 43.6185 103.97C41.4766 103.97 39.7448 102.232 39.7448 100.096C39.7448 97.9544 41.4831 96.2227 43.6185 96.2227C43.6836 96.2227 43.7487 96.2227 43.8073 96.2292L52.4206 87.6159L18 87.6029V38.2279C18 38.1953 18 38.1693 18 38.1367V32.8958C18 32.3294 18.4688 31.8737 19.0482 31.8737H55.0898V28H60.4544V31.8737H96.9518C97.5313 31.8737 98 32.3359 98 32.8958V38.1367C98 38.1563 98 38.1693 98 38.1888V87.5964H63.2669V87.6029ZM35.5651 54.6211L50.7083 69.4258C54.4583 65.6758 58.1693 61.9648 61.9583 58.2214L71.9909 68.3776L67.3359 73.0326L80.4349 73.1497V59.9401L75.9622 64.4128C71.3073 59.6927 66.6589 54.9857 61.9844 50.3047L50.6302 61.5156L39.5299 50.6497L35.5651 54.6211ZM92.082 42.1471H23.8073V81.6263H92.082V42.1471Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_1_181\"><rect width=\"80\" height=\"75.9635\" fill=\"white\" transform=\"translate(18 28)\"/></clipPath></defs></svg>',\r\n  settings : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_1_129)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M85.1387 29.6901L90.8796 35.5035C92.3906 37.0335 92.3906 39.5364 90.8796 41.0664L86.2565 45.7473C87.5319 48.1586 88.5052 50.7578 89.1244 53.4941H95.1133C97.2507 53.4941 98.9993 55.2647 98.9993 57.4282V65.6489C98.9993 67.8131 97.2507 69.5836 95.1133 69.5836H88.5775C87.776 72.2619 86.6296 74.7886 85.1895 77.1103L89.429 81.4016C90.9401 82.9329 90.9401 85.4359 89.429 86.9652L83.6882 92.7786C82.1771 94.3079 79.7044 94.3079 78.194 92.7786L73.5703 88.097C71.1895 89.389 68.6217 90.3752 65.9186 91.0014V97.0653C65.9186 99.2288 64.1706 100.999 62.0332 100.999H53.9147C51.7773 100.999 50.0286 99.2288 50.0286 97.0653V90.4477C47.3835 89.6356 44.888 88.4747 42.5957 87.0166L38.3568 91.3092C36.8444 92.8392 34.3724 92.8392 32.8613 91.3092L27.1204 85.4965C25.6094 83.9665 25.6094 81.4636 27.1204 79.9336L31.7441 75.252C30.4681 72.8414 29.4941 70.2422 28.8763 67.5059H22.8854C20.7487 67.5059 19 65.736 19 63.5718V55.3511C19 53.1869 20.7487 51.417 22.8854 51.417H29.4212C30.2233 48.7387 31.3698 46.2121 32.8092 43.8904L28.5703 39.5991C27.0592 38.0684 27.0592 35.5648 28.5703 34.0355L34.3118 28.2221C35.8229 26.6921 38.2949 26.6921 39.806 28.2221L44.429 32.903C46.8105 31.611 49.3776 30.6248 52.0807 29.9986V23.9347C52.0807 21.7706 53.8294 20 55.9661 20H64.0853C66.222 20 67.9707 21.7706 67.9707 23.9347V30.5503C70.6165 31.3618 73.1126 32.5226 75.4069 33.9808L79.6432 29.6901C81.1556 28.1601 83.6276 28.1601 85.1387 29.6901ZM59 44.3373C67.8151 44.3373 74.9629 51.5752 74.9629 60.5C74.9629 69.4241 67.8151 76.6627 59 76.6627C50.1855 76.6627 43.0371 69.4248 43.0371 60.5C43.0371 51.5752 50.1855 44.3373 59 44.3373Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_1_129\"><rect width=\"80\" height=\"81\" fill=\"white\" transform=\"translate(19 20)\"/></clipPath></defs></svg>',\r\n  table : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_1_106)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.661 31H96.339C98.3519 31 100 32.6481 100 34.661V96.5868C100 98.5996 98.3519 100.248 96.339 100.248H20.661C18.6481 100.248 17 98.5996 17 96.5868V34.661C17 32.6481 18.6481 31 20.661 31ZM22.7279 46.9272H42.7349C43.2887 46.9272 43.7345 47.3798 43.7345 47.9269V54.5194C43.7345 55.0665 43.282 55.519 42.7349 55.519H22.7279C22.1807 55.519 21.7282 55.0665 21.7282 54.5194V47.9269C21.7214 47.3798 22.174 46.9272 22.7279 46.9272ZM74.2651 86.6238H94.2789C94.8328 86.6238 95.2786 87.0763 95.2786 87.6235V94.2159C95.2786 94.763 94.826 95.2156 94.2789 95.2156H74.2651C73.718 95.2156 73.2655 94.763 73.2655 94.2159V87.6235C73.2587 87.0763 73.7113 86.6238 74.2651 86.6238ZM48.6113 86.6238H68.3887C68.9425 86.6238 69.3883 87.0763 69.3883 87.6235V94.2159C69.3883 94.763 68.9358 95.2156 68.3887 95.2156H48.6113C48.0642 95.2156 47.6117 94.763 47.6117 94.2159V87.6235C47.6049 87.0763 48.0575 86.6238 48.6113 86.6238ZM22.7279 86.6238H42.7349C43.2887 86.6238 43.7345 87.0763 43.7345 87.6235V94.2159C43.7345 94.763 43.282 95.2156 42.7349 95.2156H22.7279C22.1807 95.2156 21.7282 94.763 21.7282 94.2159V87.6235C21.7214 87.0763 22.174 86.6238 22.7279 86.6238ZM74.2651 73.3916H94.2789C94.8328 73.3916 95.2786 73.8442 95.2786 74.3913V80.9837C95.2786 81.5308 94.826 81.9834 94.2789 81.9834H74.2651C73.718 81.9834 73.2655 81.5308 73.2655 80.9837V74.3913C73.2587 73.8442 73.7113 73.3916 74.2651 73.3916ZM48.6113 73.3916H68.3887C68.9425 73.3916 69.3883 73.8442 69.3883 74.3913V80.9837C69.3883 81.5308 68.9358 81.9834 68.3887 81.9834H48.6113C48.0642 81.9834 47.6117 81.5308 47.6117 80.9837V74.3913C47.6049 73.8442 48.0575 73.3916 48.6113 73.3916ZM22.7279 73.3916H42.7349C43.2887 73.3916 43.7345 73.8442 43.7345 74.3913V80.9837C43.7345 81.5308 43.282 81.9834 42.7349 81.9834H22.7279C22.1807 81.9834 21.7282 81.5308 21.7282 80.9837V74.3913C21.7214 73.8442 22.174 73.3916 22.7279 73.3916ZM74.2651 60.1594H94.2789C94.8328 60.1594 95.2786 60.612 95.2786 61.1591V67.7515C95.2786 68.2987 94.826 68.7512 94.2789 68.7512H74.2651C73.718 68.7512 73.2655 68.2987 73.2655 67.7515V61.1591C73.2587 60.612 73.7113 60.1594 74.2651 60.1594ZM48.6113 60.1594H68.3887C68.9425 60.1594 69.3883 60.612 69.3883 61.1591V67.7515C69.3883 68.2987 68.9358 68.7512 68.3887 68.7512H48.6113C48.0642 68.7512 47.6117 68.2987 47.6117 67.7515V61.1591C47.6049 60.612 48.0575 60.1594 48.6113 60.1594ZM22.7279 60.1594H42.7349C43.2887 60.1594 43.7345 60.612 43.7345 61.1591V67.7515C43.7345 68.2987 43.282 68.7512 42.7349 68.7512H22.7279C22.1807 68.7512 21.7282 68.2987 21.7282 67.7515V61.1591C21.7214 60.612 22.174 60.1594 22.7279 60.1594ZM74.2651 46.9272H94.2789C94.8328 46.9272 95.2786 47.3798 95.2786 47.9269V54.5194C95.2786 55.0665 94.826 55.519 94.2789 55.519H74.2651C73.718 55.519 73.2655 55.0665 73.2655 54.5194V47.9269C73.2587 47.3798 73.7113 46.9272 74.2651 46.9272ZM48.6113 46.9272H68.3887C68.9425 46.9272 69.3883 47.3798 69.3883 47.9269V54.5194C69.3883 55.0665 68.9358 55.519 68.3887 55.519H48.6113C48.0642 55.519 47.6117 55.0665 47.6117 54.5194V47.9269C47.6049 47.3798 48.0575 46.9272 48.6113 46.9272Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_1_106\"><rect width=\"83\" height=\"69.2477\" fill=\"white\" transform=\"translate(17 31)\"/></clipPath></defs></svg>',\r\n  vector : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74276C1.22369 163.675 0 162.451 0 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><g clip-path=\"url(#clip0_1_96)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M74.9153 79.4731L69.3857 93.8555L49.001 93.5791L43.3617 79.4672C48.2094 70.6473 53.1322 59.887 55.663 50.4732L58.3498 50.7672L58.2458 76.1333C57.6695 76.354 57.1894 76.7765 56.8917 77.3249C56.594 77.8734 56.4981 78.5119 56.6213 79.1258C56.7445 79.7397 57.0787 80.2888 57.5639 80.6746C58.0491 81.0603 58.6536 81.2574 59.2687 81.2305C59.8839 81.2036 60.4695 80.9544 60.9203 80.5277C61.3712 80.1009 61.6578 79.5247 61.7288 78.9022C61.7997 78.2798 61.6504 77.6521 61.3075 77.1317C60.9646 76.6112 60.4506 76.2322 59.8578 76.0627L59.9445 50.9318L63.0184 50.7907C65.2718 60.2809 70.1484 71.006 74.9153 79.4849V79.4731ZM53.866 28H64.5207C64.7078 28 64.8931 28.0376 65.066 28.1107C65.2388 28.1837 65.3957 28.2908 65.5278 28.4257C65.6599 28.5607 65.7644 28.7208 65.8355 28.897C65.9066 29.0732 65.9428 29.2619 65.9421 29.4523V32.9803H82.7445C83.0322 32.1482 83.5002 31.3925 84.1139 30.7695C84.6505 30.2228 85.2877 29.7891 85.9892 29.4932C86.6906 29.1973 87.4425 29.0449 88.2018 29.0449C88.9611 29.0449 89.713 29.1973 90.4144 29.4932C91.1159 29.7891 91.7531 30.2228 92.2897 30.7695C92.8269 31.3155 93.2531 31.964 93.5439 32.6779C93.8347 33.3917 93.9843 34.1568 93.9843 34.9295C93.9843 35.7022 93.8347 36.4674 93.5439 37.1812C93.2531 37.895 92.8269 38.5435 92.2897 39.0896C91.7529 39.6381 91.1149 40.0732 90.4124 40.3702C89.7099 40.6671 88.9567 40.82 88.196 40.82C87.4353 40.82 86.6821 40.6671 85.9796 40.3702C85.2771 40.0732 84.6391 39.6381 84.1023 39.0896L83.9983 38.972C83.4339 38.3723 83.0025 37.6565 82.7329 36.8728H74.0659C76.8656 38.5297 79.3988 40.6139 81.5773 43.0527C85.9183 47.9222 88.7907 53.96 89.8514 60.4456H92.1626C92.6223 60.4456 93.0632 60.6314 93.3883 60.9622C93.7134 61.293 93.896 61.7417 93.896 62.2096V70.1534C93.896 70.6212 93.7134 71.0699 93.3883 71.4007C93.0632 71.7315 92.6223 71.9174 92.1626 71.9174H84.4952C84.0355 71.9174 83.5946 71.7315 83.2695 71.4007C82.9444 71.0699 82.7618 70.6212 82.7618 70.1534V62.2096C82.7618 61.7417 82.9444 61.293 83.2695 60.9622C83.5946 60.6314 84.0355 60.4456 84.4952 60.4456H86.2806C85.2514 54.873 82.7255 49.6994 78.983 45.4987C75.4913 41.5628 70.9665 38.7249 65.9421 37.3197V40.4243C65.9421 40.8085 65.7925 41.177 65.5261 41.4492C65.2597 41.7214 64.8982 41.8751 64.5207 41.8767H53.866C53.493 41.8675 53.1383 41.7106 52.8772 41.4394C52.616 41.1682 52.4692 40.804 52.4678 40.4243V37.3256C47.3127 38.7744 42.6907 41.7356 39.1784 45.8398C35.5965 49.99 33.1689 55.0384 32.1466 60.4632H33.88C34.3397 60.4632 34.7806 60.6491 35.1057 60.9799C35.4307 61.3107 35.6134 61.7594 35.6134 62.2272V70.1534C35.6134 70.6212 35.4307 71.0699 35.1057 71.4007C34.7806 71.7315 34.3397 71.9174 33.88 71.9174H26.1721C25.7124 71.9174 25.2715 71.7315 24.9464 71.4007C24.6213 71.0699 24.4387 70.6212 24.4387 70.1534V62.2096C24.4387 61.7417 24.6213 61.293 24.9464 60.9622C25.2715 60.6314 25.7124 60.4456 26.1721 60.4456H28.5411C29.6059 54.14 32.3635 48.2568 36.509 43.4466C38.7662 40.8422 41.424 38.628 44.3786 36.8905H34.2555C33.967 37.7205 33.4991 38.4741 32.8861 39.0955C31.8049 40.194 30.34 40.8119 28.8122 40.8141C27.2843 40.8163 25.8177 40.2026 24.7334 39.1072C24.1962 38.5611 23.77 37.9126 23.4792 37.1988C23.1885 36.485 23.0388 35.7199 23.0388 34.9472C23.0388 34.1744 23.1885 33.4093 23.4792 32.6955C23.77 31.9817 24.1962 31.3332 24.7334 30.7871C25.27 30.2404 25.9073 29.8067 26.6087 29.5108C27.3101 29.2149 28.062 29.0626 28.8213 29.0626C29.5806 29.0626 30.3325 29.2149 31.034 29.5108C31.7354 29.8067 32.3726 30.2404 32.9093 30.7871C33.5281 31.4093 33.9985 32.1677 34.2844 33.0038H52.4678V29.4759C52.4616 29.0917 52.6053 28.7206 52.8673 28.444C53.1294 28.1674 53.4885 28.0077 53.866 28ZM68.8888 100H49.1165V95.9899H68.9004V100H68.8888Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_1_96\"><rect width=\"71\" height=\"72\" fill=\"white\" transform=\"translate(23 28)\"/></clipPath></defs></svg>',\r\n  video : '<svg width=\"117\" height=\"164\" viewBox=\"0 0 117 164\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M116.926 25.0574V157.98C116.926 161.144 114.352 163.717 111.187 163.717H5.73872C2.57399 163.717 0 161.144 0 157.98V5.7371C0 2.57328 2.57399 0 5.73872 0H91.8614L116.926 25.0574Z\" fill=\"#D2D2D2\"/><path d=\"M116.926 25.0572H97.5579C94.3932 25.0572 91.8192 22.4839 91.8192 19.3201V-0.000175476L116.926 25.0572Z\" fill=\"black\"/><path d=\"M114.183 163.675H2.74278C1.22371 163.675 1.52588e-05 162.451 1.52588e-05 160.933V113.602H116.884V160.933C116.926 162.451 115.702 163.675 114.183 163.675Z\" fill=\"black\"/><text style=\"fill: rgb(218, 218, 218); font-family: Arial, sans-serif; font-size: 31px; font-weight: 700; text-anchor: middle; white-space: pre;\" x=\"57.921\" y=\"149.063\">.EXT</text><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M24.1632 30H93.8433C94.4795 30 95 30.4681 95 31.0401V99.9599C95 100.532 94.4795 101 93.8368 101H24.1567C23.5205 101 23 100.532 23 99.9599L23 31.0401C23 30.4681 23.5205 30 24.1632 30ZM41.6555 34.565H76.4923V62.3652H41.6555V34.565ZM41.6555 67.9125H76.4923V95.7185H41.6555V67.9125ZM28.0896 90.2347H37.5362V95.8629H28.0896V90.2347ZM80.7851 90.2347H90.2317V95.8629H80.7851V90.2347ZM80.7851 34.5245H90.2317V40.1528H80.7851V34.5245ZM80.7851 45.6654H90.2317V51.2936H80.7851V45.6654ZM80.7851 56.8063H90.2317V62.4345H80.7851V56.8063ZM80.7851 67.9472H90.2317V73.5754H80.7851V67.9472ZM80.7851 79.0938H90.2317V84.7221H80.7851V79.0938ZM28.0896 34.5245H37.5362V40.1528H28.0896V34.5245ZM28.0896 45.6654H37.5362V51.2936H28.0896V45.6654ZM28.0896 56.8063H37.5362V62.4345H28.0896V56.8063ZM28.0896 67.9472H37.5362V73.5754H28.0896V67.9472ZM28.0896 79.0938H37.5362V84.7221H28.0896V79.0938Z\" fill=\"black\"/></svg>'\r\n};\r\n\r\nexport function encodeSvgToBase64(svg: string): string {\r\n  const cleanedSvg = svg\r\n    .replace(/\\n/g, '')\r\n    .replace(/\\t/g, '')\r\n    .replace(/\\s{2,}/g, ' ')\r\n    .trim();\r\n  const base64 = btoa(unescape(encodeURIComponent(cleanedSvg)));\r\n  return `data:image/svg+xml;base64,${base64}`;\r\n}\r\n\r\nexport function getFileSvg(iconName:string,extension:string){\r\n  let result:string = SimpleSvgs['file'];\r\n  if(SimpleSvgs[iconName]){\r\n    result = SimpleSvgs[iconName];\r\n  }\r\n  result = result.replace(\".EXT\",\".\"+extension.toUpperCase());\r\n  return result;\r\n}\r\n\r\n","import { Component, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SimpleBaseForInputComponent } from '../../../../_base/simple-base-for-input.component';\n@Component({\n    selector: 'simple-input',\n    templateUrl: './simple-input.component.html',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => SimpleInputComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => SimpleInputComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class SimpleInputComponent extends SimpleBaseForInputComponent{\n\n}\n","<input #input\r\n  style=\"width: 100%\"\r\n  [class]=\"class + ' simple-input'\"\r\n  [type]=\"type\"\r\n  [attr.name]=\"inputName\"\r\n  [(ngModel)]=\"value\"\r\n  [attr.sim-data]=\"dataField\"\r\n  [placeholder]=\"placeholder\"\r\n  [disabled]=\"disabled\"\r\n  [readonly]=\"readonly\"\r\n  [checked]=\"checked\"\r\n  [minlength]=\"minLength?minLength:''\"\r\n  [maxlength]=\"maxLength?maxLength:''\"\r\n  (blur)=\"onBlur($event)\"\r\n  (change)=\"onChange($event)\"\r\n  (click)=\"onClick($event)\"\r\n  (focus)=\"onFocus($event)\"\r\n  (keydown)=\"onKeyDown($event)\"\r\n  (keyup)=\"onKeyUp($event)\"\r\n/>\r\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'simple-input-file-upload-preview-empty',\r\n  standalone:false,\r\n  templateUrl: './simple-input-file-upload-preview-empty.component.html',\r\n  styleUrl: './simple-input-file-upload-preview-empty.component.css'\r\n})\r\nexport class SimpleInputFileUploadPreviewEmptyComponent {\r\n  @ViewChild(TemplateRef) template:TemplateRef<any>;\r\n}\r\n","<ng-template>\r\n  <ng-content/>\r\n</ng-template>\r\n\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { FileExtensions } from '../../configs/constants';\r\nimport { encodeSvgToBase64, getFileSvg } from '../../configs/svgs';\r\nimport { SimpleLogger } from '../../utilities/simple-logger';\r\nimport { Simplify } from '../../utilities/simplify';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\n\r\n@Component({\r\n    selector: 'simple-file-preview',\r\n    templateUrl: './simple-file-preview.component.html',\r\n    styleUrl: './simple-file-preview.component.css',\r\n    standalone: false\r\n})\r\nexport class SimpleFilePreviewComponent extends SimpleBaseClass implements OnInit,OnChanges{\r\n  @Input() file:File;\r\n  @Input() fileObject:any;\r\n  @Input() fileUrlPrefix:string = \"\";\r\n  previewSrc:any;\r\n  previewMode:string = '';\r\n  logger:SimpleLogger = new SimpleLogger(false);\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    this.setFileContent();\r\n  }\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if(changes[\"file\"] || changes['fileObject']){\r\n      this.setFileContent();\r\n    }\r\n  }\r\n\r\n  openFile(){\r\n    if(this.fileObject){\r\n      if(this.fileObject[\"file_url\"]){\r\n        let url = this.fileUrlPrefix+\"\"+this.fileObject[\"file_url\"]\r\n        Simplify.openUrlInNewTab(url);\r\n      }\r\n    }\r\n  }\r\n\r\n  setFileContent(){\r\n    try{\r\n      let foundPreview:boolean = false;\r\n      this.logger.debug(\"Checking for Preview\");\r\n      if(this.file){\r\n        this.logger.debug(\"Found file\",this.file.name,this.file);\r\n        let extension = this.file.name.split('.').pop()!;\r\n        this.logger.debug(\"Found file extension is \"+extension);\r\n        let fileDetails:any = FileExtensions[extension];\r\n        this.logger.debug(\"File Details from Extension \",fileDetails);\r\n        if(fileDetails){\r\n          if(fileDetails[\"type\"] == \"image\"){\r\n            this.logger.debug(\"Found image type from extension\");\r\n            this.previewMode = 'image';\r\n            const reader = new FileReader();\r\n            reader.onload = () => {\r\n              this.previewSrc = reader.result;\r\n            };\r\n            reader.onerror = (error) => {\r\n              console.error(error);\r\n            };\r\n            reader.readAsDataURL(this.file);\r\n          }\r\n          else{\r\n            this.logger.debug(\"Not image so setting preview svg\");\r\n            this.setFileSvgPreview(extension);\r\n          }\r\n        }\r\n        else{\r\n          this.setFileSvgPreview(extension);\r\n          this.logger.debug(\"Invalid file details\");\r\n        }\r\n        foundPreview = true;\r\n      }\r\n      else if(this.fileObject){\r\n        this.logger.debug(\"Found file object\",this.fileObject);\r\n        if(this.fileObject[\"file_name\"]){\r\n          this.logger.debug(\"Found file name in object\",this.fileObject[\"file_name\"]);\r\n          let extension = this.fileObject.file_name.split('.').pop()!;\r\n          this.logger.debug(\"Found extension\",extension);\r\n          let fileDetails:any = FileExtensions[extension];\r\n          if (fileDetails) {\r\n            if(fileDetails[\"type\"] == \"image\"){\r\n              this.logger.debug(\"Found image type from extension\");\r\n              if(this.fileObject[\"file_url\"]){\r\n                this.previewMode = 'image';\r\n                this.previewSrc = this.fileUrlPrefix+\"\"+this.fileObject[\"file_url\"];\r\n              }\r\n            }\r\n            else{\r\n              this.logger.debug(\"Not image so setting preview svg\");\r\n              this.setFileSvgPreview(extension);\r\n            }\r\n          }\r\n          else{\r\n            this.logger.debug(\"Not image so setting preview svg\");\r\n            this.setFileSvgPreview(extension);\r\n          }\r\n          foundPreview = true;\r\n        }\r\n        else{\r\n          this.logger.debug(\"Invalid file object\");\r\n        }\r\n      }\r\n      if(!foundPreview){\r\n        this.setFileSvgPreview(\"\");\r\n      }\r\n    }\r\n    catch(ex){\r\n      console.error(ex,this.file);\r\n    }\r\n  }\r\n\r\n  setFileSvgPreview(extension:string){\r\n    this.logger.debug(\"Setting preview for extension : \"+extension);\r\n    let fileDetails:any = FileExtensions[extension];\r\n    this.logger.debug(\"Details for extension\",fileDetails);\r\n    let svgName = \"file\";\r\n    if(fileDetails){\r\n      this.logger.debug(\"Valid file details\");\r\n      if(fileDetails[\"svg\"]){\r\n        this.logger.debug(\"found svg object name in file details\");\r\n        svgName = fileDetails[\"svg\"];\r\n      }\r\n      else{\r\n        this.logger.debug(\"File details does not contain svg value\");\r\n      }\r\n    }\r\n    else{\r\n      this.logger.debug(\"Invalid file details\");\r\n    }\r\n    this.logger.debug(\"Getting svg code for \",svgName,extension);\r\n    let svgCode = getFileSvg(svgName,extension);\r\n    this.logger.debug(\"Svg Code\",svgCode);\r\n    this.previewMode = 'svg';\r\n    this.previewSrc = encodeSvgToBase64(svgCode);\r\n    this.logger.debug(\"Preview Src\",this.previewSrc);\r\n  }\r\n}\r\n","<div style=\"height: 100%;width:100%;\" (click)=\"openFile()\">\r\n  <ng-container>\r\n    <img [src]=\"previewSrc\" style=\"height:100%;width:100%;object-fit: contain;\"/>\r\n  </ng-container>\r\n</div>\r\n","import { ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, forwardRef, Input, Output, QueryList, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { encodeSvgToBase64, getFileSvg } from '../../../../configs/svgs';\r\nimport { SimpleInputComponent } from '../simple-input/simple-input.component';\r\nimport { ApiResponseField, ApiResponseStatus, HttpMethod } from '../../../../configs/enum';\r\nimport { SimplifyService } from '../../../../services/simplify.service';\r\nimport { FileExtensions } from '../../../../configs/constants';\r\nimport { SimpleHttp } from '../../../../utilities/simple-http';\r\nimport { ISimpleHttpRequestParams } from '../../../../interfaces/simple-http-request-params.interface';\r\nimport { SimpleInputFileUploadPreviewEmptyComponent } from './simple-input-file-upload-preview-empty/simple-input-file-upload-preview-empty.component';\r\n\r\n@Component({\r\n  selector: 'simple-input-file-upload',\r\n  templateUrl: './simple-input-file-upload.component.html',\r\n  styleUrl: './simple-input-file-upload.component.css',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => SimpleInputFileUploadComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => SimpleInputFileUploadComponent),\r\n      multi: true\r\n    }\r\n  ],\r\n  standalone: false\r\n})\r\nexport class SimpleInputFileUploadComponent extends SimpleInputComponent {\r\n  @ContentChild(SimpleInputFileUploadPreviewEmptyComponent) previewEmptyComponent:SimpleInputFileUploadPreviewEmptyComponent;\r\n  @Input() accept = '*/*';\r\n  @Input() autoUpload: boolean = true;\r\n  @Input() fileUrlPrefix: string = \"\";\r\n  @Input() httpRequestParams?: ISimpleHttpRequestParams;\r\n  @Input() httpRequestMethod: HttpMethod = HttpMethod.post;\r\n  @Input() maxFileSize: number = 3;\r\n  @Input() mediaArray: any[] = [];\r\n  @Input() multiple: boolean = true;\r\n  @Input() previewMode: boolean = false;\r\n  @Input() requestData: any = {};\r\n  @Input() requestFieldName: any = {};\r\n  @Input() uploadFileFunction: Function = async (file: any) => {\r\n    this.requestData[\"upload_file\"] = file;\r\n    if (this.httpRequestParams) {\r\n      let requestParams: ISimpleHttpRequestParams = { ...this.httpRequestParams! };\r\n      requestParams.data = this.requestData;\r\n      let response: any = await SimpleHttp.postPromise(requestParams);\r\n      if (response[ApiResponseField.status] == ApiResponseStatus.success) {\r\n        if (response[ApiResponseField.record]) {\r\n          this.addFileRecord(response[ApiResponseField.record]);\r\n        }\r\n      }\r\n      else {\r\n        this.simplify.simpleAlertService.error(response[ApiResponseField.message]);\r\n      }\r\n    }\r\n  };\r\n  @Output() fileSizeError = new EventEmitter<any>();\r\n  @Output() fileTypeError = new EventEmitter<any>();\r\n  previewFiles: any[] = [];\r\n  get hasMedia(): boolean {\r\n    let result: boolean = false;\r\n    if ((this.mediaArray && this.mediaArray.length > 0) || (this.previewFiles && this.previewFiles.length > 0)) {\r\n      result = true;\r\n    }\r\n    return result;\r\n  }\r\n\r\n  constructor(simpleService: SimplifyService, elementRef: ElementRef, public cdr: ChangeDetectorRef) {\r\n    super(simpleService, elementRef);\r\n    console.log(this);\r\n  }\r\n\r\n  override ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['record'] != undefined) {\r\n      this.setFilesFromRecord();\r\n    }\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    this.setFilesFromRecord();\r\n  }\r\n\r\n  addFileRecord(mediaRecord: any) {\r\n    this.mediaArray.push(mediaRecord);\r\n    if (this.simplify.validValue(this.record) && this.simplify.validValue(this.dataField)) {\r\n      this.record[this.dataField] = this.mediaArray;\r\n    }\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  getFileObjectDisplayUrl(file: File): string {\r\n    let result: any = '';\r\n    if (file) {\r\n      const extension = file.name.split('.').pop()!;\r\n      let fileDetails: any = FileExtensions[extension];\r\n      if (fileDetails[\"type\"] == \"image\") {\r\n        if (file) {\r\n          const reader = new FileReader();\r\n          reader.onload = () => {\r\n            result = reader.result;\r\n          };\r\n          reader.readAsDataURL(file);\r\n        }\r\n      }\r\n      if (result == \"\") {\r\n        let svg = getFileSvg(fileDetails[\"svg\"], extension);\r\n        result = encodeSvgToBase64(svg);\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getFileRecordDisplayUrl(file: any): string {\r\n    let result: string = '';\r\n    if (file) {\r\n      const extension = file.file_name.split('.').pop();\r\n      let fileDetails: any = FileExtensions[extension];\r\n      if (fileDetails[\"type\"] == \"image\") {\r\n        if (file) {\r\n          if (file[\"file_url\"]) {\r\n            result = this.fileUrlPrefix + \"\" + file[\"file_url\"];\r\n          }\r\n        }\r\n      }\r\n      if (result == \"\") {\r\n        let svg = getFileSvg(fileDetails[\"svg\"], extension);\r\n        result = encodeSvgToBase64(svg);\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  async onFileChange(event: any) {\r\n    if (event.target.files) {\r\n      const files = event.target.files;\r\n      for (let file of files) {\r\n        if (this.validateFileSize(file)) {\r\n          if (this.autoUpload) {\r\n            await this.uploadFileFunction(file);\r\n          }\r\n          else {\r\n            this.previewFiles.push(file);\r\n          }\r\n          setTimeout(() => {\r\n            event.target.value = '';\r\n          }, 500);\r\n        }\r\n      }\r\n    }\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  removeFilePreviewAtIndex(index: number) {\r\n    this.previewFiles.splice(index, 1);\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  removeFileRecordAtIndex(index: number) {\r\n    this.mediaArray.splice(index, 1);\r\n    this.setValue(this.mediaArray);\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  validateFileSize(file: any) {\r\n    let maxSizeAllowed = this.maxFileSize * 1000000;\r\n    let uploadedFileSize = file.size;\r\n    let valid = uploadedFileSize < maxSizeAllowed;\r\n    if (!valid) {\r\n      this.fileSizeError.emit({ \"file_size\": uploadedFileSize });\r\n    }\r\n    return valid;\r\n  }\r\n\r\n  setFilesFromRecord() {\r\n    let foundAttachments = false;\r\n    if (\r\n      this.simplify.validValue(this.record) &&\r\n      this.simplify.validValue(this.dataField)\r\n    ) {\r\n      if (this.simplify.validValue(this.record[this.dataField])) {\r\n        this.mediaArray = [];\r\n        if (\r\n          typeof this.record[this.dataField] == 'object' &&\r\n          this.record[this.dataField] != 'undefined'\r\n        ) {\r\n          foundAttachments = true;\r\n          Object.values(this.record[this.dataField]).forEach((mediaRecord) => {\r\n            this.addFileRecord(mediaRecord);\r\n          });\r\n        }\r\n      }\r\n    }\r\n    if (!foundAttachments) {\r\n      this.setValue([]);\r\n    }\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n\r\n\r\n}\r\n","<ng-content></ng-content>\r\n<span style=\"display:none;\"><input type=\"file\" (change)=\"onFileChange($event)\" [accept]=\"accept\" [disabled]=\"disabled\" #inputAttachment [multiple]=\"multiple\"/></span>\r\n<div class=\"row\">\r\n  <div class=\"col-sm-6 col-md-12\">\r\n    <div class=\"card\">\r\n      <div class=\"card-body p-2\">\r\n        <div class=\"d-flex align-items-center gap-3 flex-wrap\">\r\n          <ng-container *ngIf=\"mediaArray && mediaArray.length > 0\">\r\n            <ng-container *ngFor=\"let file of mediaArray; let index = index\">\r\n              <div class=\"simple-input-upload-preview-box\" title=\"{{ file.file_name }}\">\r\n                <a class=\"simple-input-upload-delete-button\" (click)=\"removeFileRecordAtIndex(index)\"  *ngIf=\"!previewMode && !disabled\">\r\n                  <i class=\"fa fa-trash text-white\" style=\"font-size: 8.5px;position: absolute;margin-top: 4px;margin-left: 4px;\"></i>\r\n                </a>\r\n                <simple-file-preview [fileObject]=\"file\" [fileUrlPrefix]=\"fileUrlPrefix\"/>\r\n              </div>\r\n            </ng-container>\r\n          </ng-container>\r\n          <ng-container *ngIf=\"previewFiles && previewFiles.length > 0\">\r\n            <ng-container *ngFor=\"let file of previewFiles; let index = index\">\r\n              <div class=\"simple-input-upload-preview-box\" title=\"{{ file.name }}\">\r\n                <a class=\"simple-input-upload-delete-button\" (click)=\"removeFilePreviewAtIndex(index)\">\r\n                  <i class=\"fa fa-trash text-white\" style=\"font-size: 8.5px;position: absolute;margin-top: 4px;margin-left: 4px;\"></i>\r\n                </a>\r\n                <simple-file-preview [file]=\"file\"/>\r\n              </div>\r\n            </ng-container>\r\n          </ng-container>\r\n          <ng-container *ngIf=\"previewMode && !hasMedia\">\r\n            <ng-container *ngIf=\"previewEmptyComponent; else tempateDefaultPreviewEmpty\">\r\n              <ng-container *ngTemplateOutlet=\"previewEmptyComponent.template; context: { }\">\r\n              </ng-container>\r\n            </ng-container>\r\n            <ng-template #tempateDefaultPreviewEmpty>\r\n              <table style=\"text-align:center;width:100%;height:75px;vertical-align: middle;\">\r\n                <tr>\r\n                  <td>\r\n                    No Media Available!\r\n                  </td>\r\n                </tr>\r\n              </table>\r\n            </ng-template>\r\n          </ng-container>\r\n          <div class=\"simple-input-upload-add-button\" style=\"cursor: pointer;\" (click)=\"inputAttachment.click()\" *ngIf=\"!previewMode\">\r\n            <div style=\"color: #707070;margin-top:-20px;\">\r\n              +\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, ElementRef, EventEmitter, Injector, Input, OnInit, Output, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { DynamicComponentService } from '../../services/dynamic-component.service';\r\nimport { SimplifyService } from '../../services/simplify.service';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\n\r\n@Component({\r\n    selector: 'simple-dynamic-component,[simple-dynamic-component]',\r\n    template: `<ng-container #dynamicContainer ></ng-container>`,\r\n    standalone: false\r\n})\r\nexport class SimpleDynamicComponent extends SimpleBaseClass implements OnInit{\r\n  @ViewChild('dynamicContainer', { read: ViewContainerRef, static: true }) container: ViewContainerRef;\r\n  @Input() component:any;\r\n  @Input() componentProperties:any = {};\r\n  @Output() componentCreated: EventEmitter<any> = new EventEmitter<any>();\r\n  override commentElementTag: boolean = true;\r\n  componentInstance:any;\r\n  componentRef:any;\r\n\r\n  constructor(\r\n    public dynamicComponentService:DynamicComponentService,\r\n    simplify:SimplifyService,\r\n    elementRef:ElementRef\r\n  ) {\r\n    super(elementRef,simplify);\r\n  }\r\n\r\n  override ngOnInit() {\r\n    this.component = this.dynamicComponentService.getComponentRef(this.component);\r\n    this.container.clear();\r\n    this.componentRef = this.container.createComponent(this.component);\r\n    if(this.componentRef){\r\n      this.componentInstance = this.componentRef.instance;\r\n      if (this.componentProperties) {\r\n        Object.keys(this.componentProperties).forEach((key) => {\r\n          if(this.componentInstance[key]!=undefined){\r\n            this.componentInstance[key] = this.componentProperties[key];\r\n          }\r\n        });\r\n      }\r\n    }\r\n    this.componentCreated.emit({\"instance\":this.componentInstance});\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, Output, Type } from '@angular/core';\r\nimport { SimpleDatabase } from '../../../../../database/simple-database';\r\nimport { SimpleInputComponent } from '../../../simple-inputs/simple-input/simple-input.component';\r\nimport { SimpleBaseClass } from '../../../../../_base/simple-base-class';\r\nimport { SimpleDatabaseInputComponent } from '../../simple-database-input.component';\r\n\r\n@Component({\r\n  selector: 'simple-database-input-element',\r\n  templateUrl: './simple-database-input-element.component.html',\r\n  styleUrl: './simple-database-input-element.component.css',\r\n  standalone: false\r\n})\r\nexport class SimpleDatabaseInputElementComponent extends SimpleBaseClass{\r\n  @Input() inputComponent:Type<any>;\r\n  @Input() simpleDatabaseInput:SimpleDatabaseInputComponent;\r\n  override commentElementTag: boolean = true;\r\n  simpleDatabaseInstance: SimpleDatabase;\r\n  fieldDetails: any;\r\n  fieldProperties: any;\r\n\r\n  @Output() onInputInit: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onInputViewInit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  inputComponentInstance: SimpleInputComponent;\r\n\r\n  handleComponentCreated(event: any) {\r\n    this.inputComponentInstance = event.instance;\r\n    this.inputComponentInstance.on(\"viewInit\", (event:any) => {\r\n      this.onInputViewInit.emit(event);\r\n      this.events.execute(\"inputViewInit\",event);\r\n    });\r\n    this.inputComponentInstance.on(\"init\", () => {\r\n      this.onInputInit.emit(event);\r\n      this.events.execute(\"inputInit\",event);\r\n    });\r\n  }\r\n}\r\n","<ng-container *ngIf=\"inputComponent\">\r\n  <simple-dynamic-component [component]=\"inputComponent\" (componentCreated)=\"handleComponentCreated($event)\"/>\r\n</ng-container>\r\n","import { SimpleDatabase } from \"../database/simple-database\";\r\nimport { Simplify } from \"./simplify\";\r\n\r\nexport class SimpleDataDictionary {\r\n  static dataDictionary:any={};\r\n  constructor(){\r\n  }\r\n\r\n  static getSimpleDatabaseTable(table:string){\r\n    let simpleDatabase=new SimpleDatabase();\r\n    if(Simplify.validValue(SimpleDataDictionary.dataDictionary)){\r\n      if(Simplify.validValue(SimpleDataDictionary.dataDictionary[\"tables\"])){\r\n        if(Simplify.validValue(SimpleDataDictionary.dataDictionary[\"tables\"][table])){\r\n          simpleDatabase.setTableDetails(SimpleDataDictionary.dataDictionary[\"tables\"][table]);\r\n        }\r\n        else{\r\n          // console.warn(\"Table Not Found in Data Dictionary\",SimpleDataDictionary.dataDictionary);\r\n        }\r\n        if(Simplify.validValue(SimpleDataDictionary.dataDictionary[\"relationships\"])){\r\n          if(Simplify.validValue(SimpleDataDictionary.dataDictionary[\"relationships\"][table])){\r\n            simpleDatabase.setTableForeignKeys(SimpleDataDictionary.dataDictionary[\"relationships\"][table]);\r\n          }\r\n        }\r\n      }\r\n    }\r\n    else{\r\n      // console.warn(\"Invalid Data Dictionary\",SimpleDataDictionary.dataDictionary);\r\n    }\r\n    return simpleDatabase;\r\n  }\r\n\r\n  static getTablesFieldPropertiesObject(tableName:string,fieldName:string){\r\n    let result:any = {};\r\n    let fields = SimpleDataDictionary.getTablesFieldsObject(tableName);\r\n    let fieldDetails:any = fields[fieldName];\r\n    if(Simplify.validValue(fieldDetails)){\r\n      if(Simplify.validValue(fieldDetails[SimpleDatabase.fieldProperties])){\r\n        result = fieldDetails[SimpleDatabase.fieldProperties];\r\n      }\r\n    }\r\n    else{\r\n      // console.warn(\"Invalid Data Dictionary\",SimpleDataDictionary.dataDictionary);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getTableFieldPropertiesListSelectOptions(tableName:string,fieldName:string){\r\n    let result:any[] = [];\r\n    let properties:any = this.getTablesFieldPropertiesObject(tableName,fieldName);\r\n    for(let propertyName in properties){\r\n      result.push({\"label\":propertyName,\"value\":propertyName,\"property_value\":properties[propertyName]});\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getTablesFieldsObject(tableName:string,includeViews:boolean = true){\r\n    let result:any = {};\r\n    if(Simplify.validValue(SimpleDataDictionary.dataDictionary)){\r\n      if(Simplify.validValue(SimpleDataDictionary.dataDictionary[\"tables\"])){\r\n        let tables:any = SimpleDataDictionary.dataDictionary[\"tables\"];\r\n        let tableDetails = tables[tableName];\r\n        if(Simplify.validValue(tableDetails)){\r\n          if(Simplify.validValue(tableDetails[SimpleDatabase.tableFields])){\r\n            result = tableDetails[SimpleDatabase.tableFields];\r\n          }\r\n          if(includeViews){\r\n            if(SimpleDataDictionary.dataDictionary[\"views\"]){\r\n              if(tableDetails[SimpleDatabase.tableViewName]){\r\n                let viewDetails:any = SimpleDataDictionary.dataDictionary[\"views\"][tableDetails[SimpleDatabase.tableViewName]];\r\n                if(viewDetails){\r\n                  if(viewDetails[SimpleDatabase.viewFields]){\r\n                    for(let fieldName in viewDetails[SimpleDatabase.viewFields]){\r\n                      if(result[fieldName]==undefined){\r\n                        result[fieldName] = viewDetails[SimpleDatabase.viewFields][fieldName];\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n\r\n      }\r\n    }\r\n    else{\r\n      // console.warn(\"Invalid Data Dictionary\",SimpleDataDictionary.dataDictionary);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getTableFieldsListSelectOptions(tableName:string,includeViews:boolean = true){\r\n    let result:any[] = [];\r\n    let fields:any = this.getTablesFieldsObject(tableName,includeViews);\r\n    for(let fieldName in fields){\r\n      result.push({\"label\":fieldName,\"value\":fieldName,\"field\":fields[fieldName]});\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getTablesObject(){\r\n    let result:any = {};\r\n    if(Simplify.validValue(SimpleDataDictionary.dataDictionary)){\r\n      if(Simplify.validValue(SimpleDataDictionary.dataDictionary[\"tables\"])){\r\n        result = SimpleDataDictionary.dataDictionary[\"tables\"];\r\n      }\r\n    }\r\n    else{\r\n      // console.warn(\"Invalid Data Dictionary\",SimpleDataDictionary.dataDictionary);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getTablesListSelectOptions(){\r\n    let result:any[] = [];\r\n    let tables:any = this.getTablesObject();\r\n    for(let tableName in tables){\r\n      result.push({\"label\":tableName,\"value\":tableName,\"table\":tables[tableName]});\r\n    }\r\n    return result;\r\n  }\r\n\r\n  static getTableFieldSelectOptions(tableName:string,fieldName:string){\r\n    let options:any = [];\r\n    if(Simplify.validValue(SimpleDataDictionary.dataDictionary[\"tables\"])){\r\n      let tables = SimpleDataDictionary.dataDictionary[\"tables\"];\r\n      if(Simplify.validValue(tables[tableName])){\r\n        let tableDetails = tables[tableName];\r\n        if(Simplify.validValue(tableDetails[SimpleDatabase.tableFields])){\r\n          let tableFields = tables[tableName][SimpleDatabase.tableFields];\r\n          if(Simplify.validValue(tableFields[fieldName])){\r\n            let fieldDetails = tableFields[fieldName];\r\n            if(Simplify.validValue(fieldDetails[SimpleDatabase.fieldProperties])){\r\n              let fieldProperties = fieldDetails[SimpleDatabase.fieldProperties];\r\n              if(Simplify.validValue(fieldProperties[SimpleDatabase.propertySelectOptions])){\r\n                options = Object.values(fieldProperties[SimpleDatabase.propertySelectOptions]);\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return options;\r\n  }\r\n\r\n  static registerDataDictionary(dataDictionary:any){\r\n    SimpleDataDictionary.dataDictionary = dataDictionary;\r\n  }\r\n\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, TemplateRef, ViewChild, forwardRef } from '@angular/core';\r\nimport { HttpMethod } from '../../../../configs/enum';\r\nimport { Subject, of } from 'rxjs';\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { debounceTime, switchMap } from 'rxjs/operators';\r\nimport { SimpleBaseForInputComponent } from '../../../../_base/simple-base-for-input.component';\r\nimport { SimpleHttp } from '../../../../utilities/simple-http';\r\nimport { ISimpleHttpRequestParams } from '../../../../interfaces/simple-http-request-params.interface';\r\n@Component({\r\n  selector: 'simple-input-select',\r\n  templateUrl: './simple-input-select.component.html',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => SimpleInputSelectComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => SimpleInputSelectComponent),\r\n      multi: true\r\n    }\r\n  ],\r\n  standalone: false\r\n})\r\nexport class SimpleInputSelectComponent extends SimpleBaseForInputComponent implements OnInit, AfterViewInit, OnChanges {\r\n  @ViewChild('input') override inputRef: NgSelectComponent;\r\n  @Input() allowNew: boolean = false;\r\n  @Input() autoFetchIfNotFound: boolean = true;\r\n  @Input() autoFetchOptions: boolean = true;\r\n  @Input() autoRefreshOptions: boolean = false;\r\n  @Input() autoRefreshOptionsDuration: number = 500;\r\n  @Input() bindLabel: any = 'label';\r\n  @Input() bindValue: any = 'value';\r\n  @Input() bufferSize: number = 15;\r\n  @Input() createNewFunction: any = null;\r\n  @Input() defaultRequestData: any = {};\r\n  @Input() editableSearchTerm = true;\r\n  @Input() fetchItemsRequestDataFunction: any = null;\r\n  @Input() fetchRecordsFunction: any = null;\r\n  @Input() getOptionsFunction: any;\r\n  @Input() httpOptions: any;\r\n  @Input() method: HttpMethod = HttpMethod.get;\r\n  @Input() options: any[] = [];\r\n  @Input() recordCountKey: any = 'record_count';\r\n  @Input() renderFunction: any = null;\r\n  @Input() renderTemplate: any = null;\r\n  @Input() templateSelectedOption: TemplateRef<any>|undefined;\r\n  @Input() responseField = 'records';\r\n  @Input() responseTotalItemKey = 'total_records';\r\n  @Input() resetValueOnSearch: boolean = true;\r\n  @Input() searchable: boolean = true;\r\n  @Input() searchKey = 'query';\r\n  @Input() httpRequestParams?: ISimpleHttpRequestParams;\r\n  @Input() httpRequestMethod? = HttpMethod.get;\r\n  @Input() startIndexKey: any = 'start_index';\r\n  @Input() selectFirstByDefault: boolean = false;\r\n  @Output() selectChange = new EventEmitter<any>();\r\n  _query: string = '';\r\n  numberOfItemsFromEndBeforeFetchingMore = 1;\r\n  page = -1;\r\n  typeInput$ = new Subject<string>();\r\n  totalItems: any = [];\r\n  selectedOption: any = {};\r\n  ajaxCallIndex: number = -1;\r\n  fetchNextItemsIndex: number = -1;\r\n  optionsOriginal: any[] = [];\r\n\r\n  override ngOnInit(): void {\r\n    let object = this;\r\n    this.on(\"change\", () => {\r\n      this.selectedOption = this.getSelectedOption();\r\n    });\r\n    this.setOptions();\r\n  }\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    let object = this;\r\n    setTimeout(() => {\r\n      if (!this.simplify.validPrimaryKey(this.value)) {\r\n        if (this.autoFetchOptions) {\r\n          this.fetchNextItems();\r\n        }\r\n      }\r\n    }, 750);\r\n    if (object.simplify.validValue(object.httpRequestParams) || object.simplify.validValue(object.fetchRecordsFunction)) {\r\n      if (object.selectFirstByDefault) {\r\n        object.fetchItemsList({}, () => {\r\n          if (!object.simplify.validValue(object.record[object.dataField])) {\r\n            object.setValue(object.options[0][object.dataField]);\r\n          }\r\n          super.ngOnInit();\r\n        });\r\n      }\r\n      else {\r\n        super.ngOnInit();\r\n      }\r\n      object.typeInput$.subscribe({\r\n        next: (search) => {\r\n          this.options = [];\r\n          this.page = -1;\r\n          if (this.resetValueOnSearch) {\r\n            object.value = null;\r\n          }\r\n          this._query = search;\r\n          console.log(search);\r\n          this.fetchAjaxItems();\r\n        },\r\n      });\r\n    } else {\r\n      object.typeInput$.pipe(\r\n        debounceTime(100),\r\n        switchMap(term => this.filterOptions(term))\r\n      )\r\n        .subscribe((options: any) => {\r\n          if (this.resetValueOnSearch) {\r\n            object.value = null;\r\n          }\r\n          console.log(\"Setting options\");\r\n          this.logger.log(\"Setting options in typeInput pipe\", options);\r\n          this.options = options;\r\n        });\r\n      super.ngOnInit();\r\n    }\r\n  }\r\n\r\n  fetchAjaxItems() {\r\n    this.options = [];\r\n    this.fetchNextItems();\r\n  }\r\n\r\n  fetchNextItems() {\r\n    this.fetchNextItemsIndex++;\r\n    let currentFetchIndex = this.fetchNextItemsIndex;\r\n    setTimeout(() => {\r\n      if (currentFetchIndex == this.fetchNextItemsIndex) {\r\n        this.page = this.page + 1;\r\n        this.fetchItemsList();\r\n      }\r\n    }, 250);\r\n  }\r\n\r\n  fetchItemsList(requestData: any = {}, callback: any = null) {\r\n    let object = this;\r\n    if (!object.httpRequestParams && object.fetchRecordsFunction == null) {\r\n      return;\r\n    }\r\n    if (Object.keys(requestData).length == 0) {\r\n      requestData = object.simplify.copyObjectValues(\r\n        object.defaultRequestData,\r\n        requestData\r\n      );\r\n      requestData[object.startIndexKey] = object.page;\r\n      requestData[object.recordCountKey] = object.bufferSize;\r\n      requestData[object.searchKey] = object._query;\r\n    }\r\n    if (object.fetchItemsRequestDataFunction != null) {\r\n      requestData = object.fetchItemsRequestDataFunction(requestData);\r\n    }\r\n    this.ajaxCallIndex++;\r\n    let currentCallIndex = this.ajaxCallIndex;\r\n    let fetchRecordsCallback = (response: any) => {\r\n      if (response) {\r\n        if (currentCallIndex == this.ajaxCallIndex) {\r\n          this.logger.log(\"Setting options in fetchItemsList callback\", response);\r\n          if (Array.isArray(response)) {\r\n            this.options = response;\r\n          }\r\n          else if (response[this.responseField]) {\r\n            this.options = this.options.concat(response[this.responseField]);\r\n          }\r\n          this.totalItems = response[this.responseTotalItemKey];\r\n          if (callback == null) {\r\n            this.setValue(this.record[this.dataField]);\r\n            this.selectedOption = this.getSelectedOption();\r\n          } else {\r\n            callback(response);\r\n          }\r\n        }\r\n      }\r\n    };\r\n    if (object.fetchRecordsFunction != null) {\r\n      object.fetchRecordsFunction(requestData, fetchRecordsCallback);\r\n    }\r\n    else {\r\n      let requestParams: ISimpleHttpRequestParams = { ...this.httpRequestParams! };\r\n      if (this.httpRequestMethod == HttpMethod.get) {\r\n        requestParams.queryParams = requestData;\r\n      }\r\n      else {\r\n        requestData.data = requestData;\r\n      }\r\n      SimpleHttp.requestObservable(requestParams, object.method)\r\n        .subscribe({\r\n          next: (response) => {\r\n            fetchRecordsCallback(response);\r\n          },\r\n          error: (err) => { },\r\n        });\r\n    }\r\n  }\r\n\r\n  filterOptions(term: string) {\r\n    this._query = term;\r\n    if (this.optionsOriginal.length == 0) {\r\n      this.optionsOriginal = this.options;\r\n    }\r\n    this.logger.log(\"Filtering options from original options\", this.optionsOriginal);\r\n    this.options = this.optionsOriginal.filter(item => item[this.bindLabel].toLowerCase().includes(term.toLowerCase()));\r\n    if (term == \"\") {\r\n      this.optionsOriginal = [];\r\n    }\r\n    this.logger.log(\"New options after filter are\", this.options);\r\n    return of(this.options);\r\n  }\r\n\r\n\r\n  onScrollToEnd() {\r\n    if (this.options.length == this.totalItems) {\r\n      return;\r\n    }\r\n    this.fetchNextItems();\r\n  }\r\n\r\n  override setValue(value: any): void {\r\n    let object = this;\r\n    let val: any;\r\n    if (typeof value === 'object') {\r\n      val = value ? value[object.dataField] : '';\r\n    } else {\r\n      val = value;\r\n    }\r\n    if (val != undefined && val != null && this._initialized) {\r\n      let index = object.options?.findIndex((x) => x[object.bindValue] == val);\r\n      if (index == -1 && val != \"\") {\r\n        if ((object.simplify.validValue(object.httpRequestParams) || object.fetchRecordsFunction != null && val != \"\") &&\r\n          object.autoFetchIfNotFound\r\n        ) {\r\n          object.fetchItemsList({ [object.bindValue]: val },\r\n            (response: any) => {\r\n              let index = object.options?.findIndex(\r\n                (x) => x[object.bindValue] == val\r\n              );\r\n              if (index == -1) {\r\n                this.logger.log(\"Setting option in set value using fetchItemsList as option is not available\", val);\r\n                object.options.push({\r\n                  [object.bindLabel]: val,\r\n                  [object.bindValue]: val,\r\n                });\r\n              }\r\n              this.selectedOption = this.getSelectedOption();\r\n            }\r\n          );\r\n        } else {\r\n          this.logger.log(\"Setting option in set value as option is not available\", val);\r\n          object.options.push({ [this.bindLabel]: val, [this.bindValue]: val });\r\n        }\r\n      }\r\n    }\r\n    super.setValue(value);\r\n  }\r\n\r\n  setOptions() {\r\n    if (this.getOptionsFunction) {\r\n      let callback: any = (options: any[]) => {\r\n        if (options != this.optionsOriginal) {\r\n          this.optionsOriginal = options;\r\n          this.filterOptions(this._query);\r\n        }\r\n        if (this.autoRefreshOptions) {\r\n          setTimeout(() => { this.setOptions() }, this.autoRefreshOptionsDuration);\r\n        }\r\n      };\r\n      this.getOptionsFunction(callback);\r\n    }\r\n  }\r\n\r\n  onSelectionChange(event: any): void {\r\n    let object = this;\r\n    if (!event) {\r\n      if (object.httpRequestParams || object.fetchRecordsFunction) {\r\n        this.page = 0;\r\n        this.options = [];\r\n        this.fetchItemsList();\r\n      }\r\n    }\r\n  }\r\n\r\n  getSelectedOptions() {\r\n    let object = this;\r\n    let options: any = {};\r\n    object.options.forEach((item: any) => {\r\n      if (item[object.bindValue] == object.value) {\r\n        options[object.value] = item;\r\n      }\r\n    });\r\n    return options;\r\n  }\r\n\r\n  getSelectedOption() {\r\n    let selectedOption: any = {};\r\n    let selectedOptions = this.options.filter((item: any) => { return item[this.bindValue] == this.value });\r\n    if (selectedOptions.length > 0) {\r\n      selectedOption = selectedOptions[0];\r\n    }\r\n    return selectedOption;\r\n  }\r\n}\r\n","<ng-select #input appendTo=\"body\" [class]=\"class + ' simple-input'\" [items]=\"options\" [bindLabel]=\"bindLabel\"\r\n  [bindValue]=\"bindValue\" [attr.name]=\"inputName\" [placeholder]=\"value?'':placeholder\" [(ngModel)]=\"value\"\r\n  [typeahead]=\"typeInput$\" [clearable]=\"false\" [searchable]=\"searchable\"\r\n  [addTag]=\"createNewFunction != null ? createNewFunction : allowNew\" addTagText=\"Add New \"\r\n  [editableSearchTerm]=\"editableSearchTerm\" (ngModelChange)=\"onSelectionChange($event)\" [disabled]=\"disabled\"\r\n  [readonly]=\"readonly\" (scrollToEnd)=\"onScrollToEnd()\" (blur)=\"onBlur($event)\" (change)=\"onChange($event)\"\r\n  (click)=\"onClick($event)\" (focus)=\"onFocus($event)\" (keydown)=\"onKeyDown($event)\" (keyup)=\"onKeyUp($event)\">\r\n  <ng-container *ngIf=\"renderFunction!=null\">\r\n    <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n      <div [innerHTML]=\"renderFunction({'item':item,'index':index,'search_term':search})\"></div>\r\n    </ng-template>\r\n  </ng-container>\r\n  <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" *ngIf=\"renderTemplate!=null\">\r\n    <ng-template [ngTemplateOutlet]=\"renderTemplate\"\r\n      [ngTemplateOutletContext]=\"{item: item,index:index,search:search}\"></ng-template>\r\n  </ng-template>\r\n  <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" *ngIf=\"templateSelectedOption!=null\">\r\n    <ng-template [ngTemplateOutlet]=\"templateSelectedOption\" [ngTemplateOutletContext]=\"{item: item,index:index,search:search}\"></ng-template>\r\n  </ng-template>\r\n  <ng-template ng-typetosearch-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" *ngIf=\"templateSelectedOption!=null\">\r\n    <ng-template [ngTemplateOutlet]=\"templateSelectedOption\" [ngTemplateOutletContext]=\"{item: item,index:index,search:search}\"></ng-template>\r\n  </ng-template>\r\n</ng-select>\r\n","import { Component, EventEmitter, Input, Output, Type, ViewChild } from '@angular/core';\r\nimport { SimpleDatabaseInputElementComponent } from './simple-database-input-element/simple-database-input-element.component';\r\nimport { SimpleBaseClass } from '../../../../_base/simple-base-class';\r\nimport { SimpleDatabase } from '../../../../database/simple-database';\r\nimport { SimpleDataDictionary } from '../../../../utilities/simple-data-dictionary';\r\nimport { SimpleInputComponent } from '../../simple-inputs/simple-input/simple-input.component';\r\nimport { SimpleInputSelectComponent } from '../../simple-inputs/simple-input-select/simple-input-select.component';\r\nimport { Simplify } from '../../../../utilities/simplify';\r\nimport { ISimpleDatabaseInputResolutionFunctionParams } from '../../../../interfaces/simple-database-input-resolution-function-params.interface';\r\nimport { SimpleDatabaseInput } from '../../../../utilities/simple-database-input';\r\n\r\n@Component({\r\n  selector: 'simple-database-input-template',\r\n  templateUrl: './simple-database-input-template.component.html',\r\n  styleUrl: './simple-database-input-template.component.css',\r\n  standalone:false\r\n})\r\nexport class SimpleDatabaseInputTemplateComponent extends SimpleBaseClass{\r\n  @ViewChild(SimpleDatabaseInputElementComponent) inputElementComponent?:SimpleDatabaseInputElementComponent;\r\n  @Input() simpleDatabaseInput:any;\r\n  @Input() additionalDetails:any = {};\r\n  @Output() onInputInit: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onInputViewInit: EventEmitter<any> = new EventEmitter<any>();\r\n  override commentElementTag: boolean = true;\r\n  errors:any[] = [];\r\n  fieldDetails:any;\r\n  fieldProperties:any;\r\n  label:string = \"\";\r\n  required:boolean = false;\r\n  simpleDatabaseInstance:SimpleDatabase ;\r\n  inputProperties:any = {};\r\n\r\n  get hasError():boolean{\r\n    let result:boolean = false;\r\n    if(this.simpleDatabaseInput){\r\n      if(this.simpleDatabaseInput.formSubmitted||this.simpleDatabaseInput.touched){\r\n        let errors:any = this.simpleDatabaseInput.errors;\r\n        if(Object.keys(errors).length>0){\r\n          result = true;\r\n        }\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.setFieldDetails();\r\n  }\r\n\r\n  setFieldDetails(){\r\n    if(this.simpleDatabaseInput){\r\n      if(this.simpleDatabaseInput.simpleDatabaseTable && this.simpleDatabaseInput.dataField){\r\n        this.simpleDatabaseInstance = SimpleDataDictionary.getSimpleDatabaseTable(this.simpleDatabaseInput.simpleDatabaseTable);\r\n        this.fieldDetails = this.simpleDatabaseInstance.getField(this.simpleDatabaseInput.dataField);\r\n        this.fieldProperties = this.simpleDatabaseInstance.getFieldProperties(this.simpleDatabaseInput.dataField);\r\n        this.label = this.fieldDetails[SimpleDatabase.fieldName];\r\n        if(this.fieldProperties[SimpleDatabase.propertyFieldTitle]){\r\n          this.label = this.fieldProperties[SimpleDatabase.propertyFieldTitle];\r\n        }\r\n        if(this.fieldProperties[SimpleDatabase.propertyRequired] == true){\r\n          this.required = true;\r\n        }\r\n        if(!this.required){\r\n          this.required = this.simpleDatabaseInput.required;\r\n        }\r\n        if(this.inputElementComponent){\r\n          this.inputElementComponent.fieldDetails = this.fieldDetails;\r\n          this.inputElementComponent.fieldProperties = this.fieldProperties;\r\n          this.inputElementComponent.simpleDatabaseInstance = this.simpleDatabaseInstance;\r\n          this.inputElementComponent.simpleDatabaseInput = this.simpleDatabaseInput;\r\n          this.setInputComponent();\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  setInputComponent(){\r\n    let inputComponent:Type<any>|any = this.simpleDatabaseInput.inputComponent;\r\n    let fieldType:string = this.fieldDetails[SimpleDatabase.fieldType];\r\n    let fieldName:string = this.fieldDetails[SimpleDatabase.fieldName];\r\n    if(!(inputComponent)){\r\n      if(SimpleDatabaseInput.inputResolutionFunction){\r\n        let requestParams:ISimpleDatabaseInputResolutionFunctionParams = {\r\n          fieldDetails:this.fieldDetails,\r\n          fieldName:fieldName,\r\n          fieldProperties:this.fieldProperties,\r\n          fieldType:fieldType,\r\n          simpleDatabaseInstance:this.simpleDatabaseInstance,\r\n          templateInstance:this\r\n        }\r\n        inputComponent = SimpleDatabaseInput.inputResolutionFunction(requestParams);\r\n      }\r\n    }\r\n    if(!(inputComponent)){\r\n      inputComponent = SimpleInputComponent;\r\n      if(SimpleDatabaseInput.typeInputComponents[fieldType]){\r\n        inputComponent = SimpleDatabaseInput.typeInputComponents[fieldType].inputComponent;\r\n        if(SimpleDatabaseInput.typeInputComponents[fieldType].inputComponentProperties){\r\n          this.inputProperties = Simplify.copyObjectValues(SimpleDatabaseInput.typeInputComponents[fieldType].inputComponentProperties,this.inputProperties);\r\n        }\r\n      }\r\n      let foundForeignKey:boolean = false;\r\n      if(this.simpleDatabaseInstance.checkFieldIsForeignKey(fieldName)){\r\n        let foreignKeyDetails:any = this.simpleDatabaseInstance.getFieldForeignKeyDetails(fieldName);\r\n        if(SimpleDatabaseInput.foreignKeyInputs[foreignKeyDetails[SimpleDatabase.relationshipSourceTable]]){\r\n          foundForeignKey = true;\r\n          inputComponent = SimpleDatabaseInput.foreignKeyInputs[foreignKeyDetails[SimpleDatabase.relationshipSourceTable]].inputComponent;\r\n          if(SimpleDatabaseInput.foreignKeyInputs[foreignKeyDetails[SimpleDatabase.relationshipSourceTable]].inputComponentProperties){\r\n            this.inputProperties = Simplify.copyObjectValues(SimpleDatabaseInput.foreignKeyInputs[foreignKeyDetails[SimpleDatabase.relationshipSourceTable]].inputComponentProperties,this.inputProperties);\r\n          }\r\n        }\r\n      }\r\n      if(this.fieldProperties[SimpleDatabase.propertySelectOptions]){\r\n        let selectOptions = this.fieldProperties[SimpleDatabase.propertySelectOptions];\r\n        this.inputProperties[\"options\"] = selectOptions;\r\n        inputComponent = SimpleInputSelectComponent;\r\n      }\r\n      else if(this.fieldProperties[SimpleDatabase.propertyIsSelectDistinct]){\r\n        inputComponent = SimpleInputSelectComponent;\r\n        let tableNameValue:string = this.simpleDatabaseInstance.table;\r\n        if(this.simpleDatabaseInstance.tableDetails[SimpleDatabase.recordPluralName]){\r\n          tableNameValue = this.simpleDatabaseInstance.tableDetails[SimpleDatabase.recordPluralName];\r\n        }\r\n        let url:string = \"unique-\"+fieldName.replaceAll(\"_\",\"-\")+\"-from-\"+tableNameValue.replaceAll(\"_\",\"-\");\r\n        this.inputProperties[\"httpRequestParams\"] = {\"url\":url};\r\n        this.inputProperties[\"bindValue\"] = fieldName;\r\n        this.inputProperties[\"bindLabel\"] = fieldName;\r\n        this.inputProperties[\"allowNew\"] = true;\r\n      }\r\n    }\r\n    this.inputProperties = Simplify.copyObjectValues(this.simpleDatabaseInput.inputComponentProperties,this.inputProperties);\r\n    this.inputElementComponent!.on(\"inputInit\",()=>{\r\n      this.setInputComponentProperties(this.inputElementComponent!.inputComponentInstance);\r\n      let event:any = {\"instance\":this.inputElementComponent!.inputComponentInstance};\r\n      this.onInputInit.emit(event);\r\n      this.events.execute(\"inputInit\",event);\r\n    });\r\n    this.inputElementComponent!.on(\"inputViewInit\",()=>{\r\n      this.setInputComponentProperties(this.inputElementComponent!.inputComponentInstance);\r\n      let event:any = {\"instance\":this.inputElementComponent!.inputComponentInstance};\r\n      this.onInputViewInit.emit(event);\r\n      this.events.execute(\"inputViewInit\",event);\r\n    });\r\n    this.inputElementComponent!.inputComponent = inputComponent;\r\n  }\r\n\r\n  setInputComponentProperties(inputInstance:any){\r\n    inputInstance.record = this.simpleDatabaseInput.record;\r\n    inputInstance.dataField = this.simpleDatabaseInput.dataField;\r\n    inputInstance.simpleDatabaseTable = this.simpleDatabaseInstance.table;\r\n    inputInstance.required = this.required;\r\n    inputInstance.name = this.simpleDatabaseInput.dataField;\r\n    this.simpleDatabaseInput.required = this.required;\r\n    for(let propertyName of Object.keys(this.inputProperties)){\r\n      inputInstance[propertyName] = this.inputProperties[propertyName];\r\n    }\r\n  }\r\n\r\n}\r\n","<p>simple-database-input-template works!</p>\r\n","import { Type } from \"@angular/core\";\r\nimport { SimpleInputFileUploadComponent } from \"../components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload.component\";\r\nimport { SimpleInputComponent } from \"../components/inputs/simple-inputs/simple-input/simple-input.component\";\r\nimport { InputType } from \"../configs/enum\";\r\nimport { SimpleDatabase } from \"../database/simple-database\";\r\nimport { ISimpleDatabaseInputForeignKeyInput } from \"../interfaces/simple-database-input-foreign-key-input.interface\";\r\nimport { ISimpleDatabaseInputTypeInputMapping } from \"../interfaces/simple-database-input-type-input-mapping.interface\";\r\nimport { SimpleDatabaseInputTemplateComponent } from \"../components/inputs/simple-database-input/simple-database-input-template/simple-database-input-template.component\";\r\n\r\nexport class SimpleDatabaseInput {\r\n   static foreignKeyInputs:{ [key: string]: ISimpleDatabaseInputForeignKeyInput } = {};\r\n    static typeInputComponents:{ [key: string]: ISimpleDatabaseInputTypeInputMapping } = {\r\n      [SimpleDatabase.typeAutoNumber]:{ inputComponent:SimpleInputComponent },\r\n      [SimpleDatabase.typeBlob]:{ inputComponent:SimpleInputFileUploadComponent },\r\n      [SimpleDatabase.typeDate]:{ inputComponent:SimpleInputComponent, inputComponentProperties:{type:InputType.date} },\r\n      [SimpleDatabase.typeDateTime]:{ inputComponent:SimpleInputComponent, inputComponentProperties:{type:InputType.dateTimeLocal} },\r\n      [SimpleDatabase.typeDouble]:{ inputComponent:SimpleInputComponent, inputComponentProperties:{type:InputType.number} },\r\n      [SimpleDatabase.typeInt]:{ inputComponent:SimpleInputComponent, inputComponentProperties:{type:InputType.number} },\r\n      [SimpleDatabase.typeJson]:{ inputComponent:SimpleInputComponent, },\r\n      [SimpleDatabase.typeMediaJson]:{ inputComponent:SimpleInputFileUploadComponent },\r\n      [SimpleDatabase.typePassword]:{ inputComponent:SimpleInputComponent, inputComponentProperties:{type:InputType.password} },\r\n      [SimpleDatabase.typeString]:{ inputComponent:SimpleInputComponent },\r\n      [SimpleDatabase.typeText]:{ inputComponent:SimpleInputComponent },\r\n      [SimpleDatabase.typeVarchar]:{ inputComponent:SimpleInputComponent },\r\n    };\r\n    static inputTemplateComponent:Type<any> = SimpleDatabaseInputTemplateComponent;\r\n    static inputResolutionFunction:Function|undefined;\r\n}\r\n","import { Component, EventEmitter, forwardRef, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SimpleDatabaseInputTemplateComponent } from './simple-database-input-template/simple-database-input-template.component';\r\nimport { SimpleDatabaseInput } from '../../../utilities/simple-database-input';\r\nimport { SimpleBaseForInputComponent } from '../../../_base/simple-base-for-input.component';\r\n\r\n@Component({\r\n  selector: 'simple-database-input',\r\n  templateUrl: './simple-database-input.component.html',\r\n  styleUrl: './simple-database-input.component.css',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => SimpleDatabaseInputComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => SimpleDatabaseInputComponent),\r\n      multi: true\r\n    }\r\n  ],\r\n  standalone: false\r\n})\r\n\r\nexport class SimpleDatabaseInputComponent extends SimpleBaseForInputComponent {\r\n  @Input() inputComponentProperties:any = {};\r\n  @Input() inputComponent:any;\r\n  @Input() additionalDetails:any = {};\r\n  @Output() onInputInit: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onInputViewInit: EventEmitter<any> = new EventEmitter<any>();\r\n  SimpleDatabaseInput = SimpleDatabaseInput;\r\n  override commentElementTag: boolean = true;\r\n  inputTemplateComponentInstance:SimpleDatabaseInputTemplateComponent;\r\n  inputComponentInstance:any;\r\n\r\n\r\n  override ngOnChanges(changes: SimpleChanges): void {\r\n    if(this.inputComponentInstance){\r\n      for(let key of Object.keys(changes)){\r\n        this.inputComponentInstance[key] = changes[key].currentValue;\r\n      }\r\n    }\r\n  }\r\n\r\n  handleComponentCreated(event:any){\r\n    this.inputTemplateComponentInstance = event.instance;\r\n    this.inputTemplateComponentInstance.simpleDatabaseInput = this;\r\n    this.inputTemplateComponentInstance.additionalDetails = this.additionalDetails;\r\n    this.inputTemplateComponentInstance.on(\"inputViewInit\",(event:any)=>{\r\n      this.onInputViewInit.emit(event);\r\n      this.inputComponentInstance = event.instance;\r\n      this.inputComponentInstance.record = this.record;\r\n      this.inputComponentInstance.bindSimpleInput = this;\r\n      this.events.execute(\"inputViewInit\",event);\r\n    });\r\n    this.inputTemplateComponentInstance.on(\"inputInit\",(event:any)=>{\r\n      this.onInputInit.emit(event);\r\n      this.events.execute(\"inputInit\",event);\r\n    });\r\n    this.inputTemplateComponentInstance.on(\"viewInit\",()=>{\r\n    });\r\n    this.inputTemplateComponentInstance.on(\"init\",()=>{\r\n    });\r\n  }\r\n\r\n}\r\n","<simple-dynamic-component\r\n[component]=\"SimpleDatabaseInput.inputTemplateComponent\"\r\n(componentCreated)=\"handleComponentCreated($event)\" />\r\n","import { Component, Input, ViewChild, forwardRef } from '@angular/core';\r\nimport { SimpleInputComponent } from '../simple-input/simple-input.component';\r\nimport moment from 'moment';\r\nimport { InputType } from '../../../../configs/enum';\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgxDaterangepickerBootstrapComponent } from 'ngx-daterangepicker-bootstrap';\r\n\r\n@Component({\n    selector: 'simple-input-date',\n    templateUrl: './simple-input-date.component.html',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => SimpleInputDateComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => SimpleInputDateComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\r\nexport class SimpleInputDateComponent extends SimpleInputComponent {\r\n  @ViewChild(\"input\") datePicker: NgxDaterangepickerBootstrapComponent;\r\n  @Input() minDate: any;\r\n  @Input() maxDate: any;\r\n  @Input() override type: string = InputType.date;\r\n  @Input() startField:string =\"start\";\r\n  @Input() endField:string =\"end\";\r\n  @Input() setInRecord = true;\r\n  @Input() displayFormat:string = 'DD/MM/YYYY';\r\n  @Input() override format = 'YYYY-MM-DD';\r\n  rangeSelected: any={startDate:moment().date,endDate:moment().date};\r\n\r\n  ranges: any = {\r\n    Today: [moment(), moment()],\r\n    Yesterday: [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n    'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n    'Last 30 Days': [moment().subtract(29, 'days'), moment()],\r\n    'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n    'Last Month': [\r\n      moment().subtract(1, 'month').startOf('month'),\r\n      moment().subtract(1, 'month').endOf('month'),\r\n    ],\r\n  };\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n  }\r\n\r\n  override setValue(value: any): void {\r\n    let object = this;\r\n    if(this._value != value && value!=undefined){\r\n      let dates:any = [];\r\n      if(object.simplify.validValue(value)){\r\n        dates= value.split(\",\");\r\n      }\r\n      let dateFrom:any = new Date();\r\n      let dateTo:any = new Date();\r\n      if(dates.length>0){\r\n        dateFrom = moment(dates[0]).toDate();\r\n        dateTo = moment(dates[0]).toDate();\r\n        if(dates.length>1){\r\n          dateTo = moment(dates[1]).toDate();\r\n        }\r\n      }\r\n      object.rangeSelected = {startDate:dateFrom,endDate:dateTo};\r\n      if(object.type == InputType.date){\r\n        object.record[object.dataField] = value;\r\n      }\r\n      else if(object.type == InputType.dateRange){\r\n        if(object.setInRecord){\r\n          object.record[object.startField] = \"\";\r\n          object.record[object.endField] = \"\";\r\n          if(dates.length>0){\r\n            object.record[object.startField] = dates[0];\r\n            object.record[object.endField] = dates[0];\r\n            if(dates.length>1){\r\n              object.record[object.endField] = dates[1];\r\n            }\r\n          }\r\n        }\r\n        else{\r\n          object.record[object.dataField] = {[object.startField]:\"\",[object.endField]:\"\"};\r\n          if(dates.length>0){\r\n            object.record[object.dataField][object.startField] = dates[0];\r\n            object.record[object.dataField][object.endField] = dates[0];\r\n            if(dates.length>1){\r\n              object.record[object.dataField][object.endField] = dates[1];\r\n            }\r\n          }\r\n        }\r\n      }\r\n      super.setValue(value);\r\n    }\r\n  }\r\n\r\n  override setValueFromRecord() {\r\n    let object = this;\r\n    if (object.simplify.validValue(object.record)) {\r\n      let value = \"\";\r\n      if(object.type == InputType.date && object.simplify.validValue(object.dataField)){\r\n        value = object.record[object.dataField];\r\n      }\r\n      else if(object.type == InputType.dateRange){\r\n        if(object.setInRecord){\r\n          value = object.record[object.startField];\r\n          value += \",\" + object.record[object.endField];\r\n        }\r\n        else{\r\n          value = object.record[object.dataField][object.startField];\r\n          value += \",\" + object.record[object.dataField][object.endField];\r\n        }\r\n      }\r\n      object.value = value;\r\n    }\r\n  }\r\n\r\n  datesUpdated(event: any) {\r\n    let dates:any = [];\r\n    dates.push(moment(event.startDate?.$d).format(\"YYYY-MM-DD\"));\r\n    if(this.type == InputType.dateRange){\r\n      dates.push(moment(event.endDate?.$d).format(\"YYYY-MM-DD\"));\r\n    }\r\n    this.setValue(dates.join(\",\"));\r\n  }\r\n}\r\n","<input\r\n  #input\r\n  type=\"text\"\r\n  ngxDaterangepickerBootstrap\r\n  [placeholder]=\"placeholder\"\r\n  [attr.name]=\"inputName\"\r\n  [(ngModel)]=\"rangeSelected\"\r\n  [class]=\"class\"\r\n  readonly\r\n  [autoApply]=\"true\"\r\n  [disabled]=\"disabled\"\r\n  [singleDatePicker]=\"!(type==InputType.dateRange)\"\r\n  [locale]=\"{\r\n    'displayFormat':displayFormat,\r\n    'format':format\r\n  }\"\r\n  (datesUpdated)=\"datesUpdated($event)\"\r\n  (blur)=\"onBlur($event)\"\r\n  (change)=\"onChange($event)\"\r\n  (click)=\"onClick($event)\"\r\n  (focus)=\"onFocus($event)\"\r\n  (keydown)=\"onKeyDown($event)\"\r\n  (keyup)=\"onKeyUp($event)\"\r\n  />\r\n","import { Component, forwardRef, Input, ViewChild } from '@angular/core';\r\nimport { SimpleInputComponent } from '../simple-input/simple-input.component';\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SimpleInputDateComponent } from '../simple-input-date/simple-input-date.component';\r\nimport { SimpleInputSelectComponent } from '../simple-input-select/simple-input-select.component';\r\nimport { InputType } from '../../../../configs/enum';\r\nimport { SimpleDatabase } from '../../../../database/simple-database';\r\n\r\n@Component({\r\n    selector: 'auto-simple-input',\r\n    templateUrl: './auto-simple-input.component.html',\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => AutoSimpleInputComponent),\r\n            multi: true\r\n        },\r\n        {\r\n            provide: NG_VALIDATORS,\r\n            useExisting: forwardRef(() => AutoSimpleInputComponent),\r\n            multi: true\r\n        }\r\n    ],\r\n    standalone: false\r\n})\r\nexport class AutoSimpleInputComponent extends SimpleInputComponent{\r\n  @Input() override type = \"\";\r\n  @ViewChild(\"simpleInputSelect\") simpleInputSelect:SimpleInputSelectComponent;\r\n  inputComponent:any = SimpleInputComponent;\r\n  inputComponentProperties:any = {\"type\":InputType.text};\r\n  simpleDatabase:SimpleDatabase;\r\n  simpleDatabaseFieldDetails:any = {};\r\n\r\n  override ngOnInit(): void {\r\n    this.inputComponentProperties[\"dataField\"] = this.dataField;\r\n    this.inputComponentProperties[\"record\"] = this.record;\r\n    this.inputComponentProperties[\"class\"] = this.class;\r\n    this.inputComponentProperties[\"style\"] = this.style;\r\n    this.setAutoSimpleInputDetails();\r\n    super.ngOnInit();\r\n  }\r\n\r\n  setAutoSimpleInputDetails(){\r\n    if(this.simpleDatabaseTable!=\"\" && this.dataField!=\"\"){\r\n      this.simpleDatabase = this.simplify.dataDictionaryService.getSimpleDatabaseTable(this.simpleDatabaseTable);\r\n      let fieldDetails:any = this.simpleDatabase.getField(this.dataField);\r\n      this.simpleDatabaseFieldDetails = fieldDetails;\r\n      let fieldType:any = fieldDetails[SimpleDatabase.fieldType];\r\n      let fieldProperties:any = fieldDetails[SimpleDatabase.fieldProperties];\r\n      this.inputComponentProperties[\"bindSimpleInput\"] = this;\r\n      if([SimpleDatabase.typeDouble,SimpleDatabase.typeInt].includes(fieldType)){\r\n        this.inputComponentProperties[\"type\"] = InputType.number;\r\n      }\r\n      else if([SimpleDatabase.typeDate,SimpleDatabase.typeDateTime].includes(fieldType)){\r\n        this.inputComponent = SimpleInputDateComponent;\r\n        this.inputComponentProperties[\"type\"] = InputType.date;\r\n        if(fieldType == SimpleDatabase.typeDateTime){\r\n          this.inputComponentProperties[\"type\"] = InputType.dateTimeLocal;\r\n        }\r\n      }\r\n      else if([SimpleDatabase.typePassword].includes(fieldType)){\r\n        this.inputComponentProperties[\"type\"] = InputType.password;\r\n      }\r\n      if(fieldProperties[SimpleDatabase.propertySelectOptions]){\r\n        this.inputComponent = SimpleInputSelectComponent;\r\n        this.inputComponentProperties[\"options\"] = fieldProperties[SimpleDatabase.propertySelectOptions];\r\n      }\r\n      if(fieldProperties[SimpleDatabase.propertyIsSelectDistinct]){\r\n\r\n      }\r\n    }\r\n  }\r\n\r\n  inputComponentCreated(params:any){\r\n    let componentInstance:any = params[\"instance\"];\r\n  }\r\n  // override\r\n}\r\n","<simple-dynamic-component [component]=\"inputComponent\" [componentProperties]=\"inputComponentProperties\" (componentCreated)=\"inputComponentCreated($event)\"/>\r\n<!-- <ng-container *ngIf=\"autoInputType==InputType.text\">\r\n  <simple-input\r\n  [type]=\"type\"\r\n  [class]=\"class\"\r\n  [style]=\"style\"\r\n  [bindSimpleInput]=\"this\"\r\n  [record]=\"record\"\r\n  [dataField]=\"dataField\"\r\n  [simpleDatabaseTable]=\"simpleDatabaseTable\"\r\n  [(ngModel)] = \"record[dataField]\"\r\n  [type]=\"type\"\r\n  [label]=\"label\"\r\n  />\r\n</ng-container>\r\n<ng-container *ngIf=\"autoInputType==InputType.select\">\r\n  <simple-input-select\r\n  #simpleInputSelect\r\n  [class]=\"class\"\r\n  [style]=\"style\"\r\n  [bindSimpleInput]=\"this\"\r\n  [record]=\"record\"\r\n  [dataField]=\"dataField\"\r\n  [simpleDatabaseTable]=\"simpleDatabaseTable\"\r\n  [(ngModel)] = \"record[dataField]\"\r\n  [type]=\"type\"\r\n  [name]=\"dataField\"\r\n  [label]=\"label\"\r\n  />\r\n</ng-container>\r\n<ng-container *ngIf=\"autoInputType==InputType.textarea\">\r\n  <simple-input-textarea\r\n  [class]=\"class\"\r\n  [style]=\"style\"\r\n  [bindSimpleInput]=\"this\"\r\n  [record]=\"record\"\r\n  [dataField]=\"dataField\"\r\n  [simpleDatabaseTable]=\"simpleDatabaseTable\"\r\n  [(ngModel)] = \"record[dataField]\"\r\n  [type]=\"type\"\r\n  [name]=\"dataField\"\r\n  [label]=\"label\"\r\n  />\r\n</ng-container>\r\n<ng-container *ngIf=\"autoInputType==InputType.date\">\r\n  <simple-input-date\r\n  [class]=\"class\"\r\n  [style]=\"style\"\r\n  [bindSimpleInput]=\"this\"\r\n  [record]=\"record\"\r\n  [dataField]=\"dataField\"\r\n  [simpleDatabaseTable]=\"simpleDatabaseTable\"\r\n  [(ngModel)] = \"record[dataField]\"\r\n  [type]=\"type\"\r\n  [name]=\"dataField\"\r\n  [label]=\"label\"\r\n  />\r\n</ng-container> -->\r\n\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SimpleInputComponent } from '../simple-input/simple-input.component';\r\nimport { InputType } from '../../../../configs/enum';\r\nimport { SimpleExtensionMethods } from '../../../../utilities/simple-extension-methods';\r\n@Component({\r\n  selector: 'simple-input-check',\r\n  templateUrl: './simple-input-check.component.html',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => SimpleInputCheckComponent),\r\n      multi: true\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => SimpleInputCheckComponent),\r\n      multi: true\r\n    }\r\n  ],\r\n  standalone: false\r\n})\r\nexport class SimpleInputCheckComponent extends SimpleInputComponent {\r\n  @Input() override type: string = InputType.checkBox;\r\n  @Input() valueWhenChecked: any;\r\n  @Input() valueWhenUnchecked: any;\r\n  @Input() isArrayValue: any;\r\n\r\n  selectChanged(event: any) {\r\n    let object = this;\r\n    object.checked = event.target.checked;\r\n    this.setValueToRecord();\r\n    this.onChange(event);\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    if (this.isArrayValue == undefined || this.isArrayValue == null) {\r\n      if (this.type == InputType.checkBox) {\r\n        this.isArrayValue = true;\r\n      }\r\n      else {\r\n        this.isArrayValue = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  setValueToRecord() {\r\n    let object = this;\r\n    if (object.simplify.validValue(object.dataField)) {\r\n      if (object.dataField != \"\") {\r\n        if (!object.simplify.validValue(object.record[object.dataField])) {\r\n          if (object.isArrayValue) {\r\n            object.record[object.dataField] = [];\r\n          }\r\n        }\r\n        if (object.isArrayValue) {\r\n          if (!Array.isArray(object.record[object.dataField])) {\r\n            object.record[object.dataField] = [];\r\n          }\r\n          if (object.checked) {\r\n            object.record[object.dataField] = SimpleExtensionMethods.arrayRemove(object.record[object.dataField], object.valueWhenUnchecked);\r\n            if (!object.record[object.dataField].includes(object.valueWhenChecked)) {\r\n              object.record[object.dataField].push(object.valueWhenChecked);\r\n            }\r\n          }\r\n          else {\r\n            object.record[object.dataField] = SimpleExtensionMethods.arrayRemove(object.record[object.dataField], object.valueWhenChecked);\r\n            if (object.simplify.validValue(object.valueWhenUnchecked)) {\r\n              if (!object.record[object.dataField].includes(object.valueWhenUnchecked)) {\r\n                object.record[object.dataField].push(object.valueWhenUnchecked);\r\n              }\r\n            }\r\n          }\r\n        }\r\n        else {\r\n          if (object.checked) {\r\n            object.record[object.dataField] = object.valueWhenChecked;\r\n          }\r\n          else {\r\n            object.record[object.dataField] = object.valueWhenUnchecked;\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  override setValue(value: any): void {\r\n    this.setValueFromRecord();\r\n  }\r\n\r\n  override setValueFromRecord(): void {\r\n    let object = this;\r\n    if (\r\n      object.simplify.validValue(object.valueWhenChecked) &&\r\n      object.simplify.validValue(object.record) &&\r\n      object.simplify.validValue(object.dataField) &&\r\n      object.dataField != ''\r\n    ) {\r\n      if (object.isArrayValue) {\r\n        if (Array.isArray(object.record[object.dataField]) && object.record[object.dataField].includes(object.valueWhenChecked)) {\r\n          object.checked = true;\r\n        }\r\n        else {\r\n          object.checked = false;\r\n        }\r\n      }\r\n      else {\r\n        if (object.record[object.dataField] == object.valueWhenChecked) {\r\n          object.checked = true;\r\n        }\r\n        else {\r\n          object.checked = false;\r\n        }\r\n      }\r\n\r\n    }\r\n  }\r\n}\r\n","<input #input\r\n  [class]=\"class+' simple-input'\"\r\n  [type]=\"type\"\r\n  [(ngModel)]=\"value\"\r\n  [attr.sim-data]=\"dataField\"\r\n  [attr.name]=\"inputName\"\r\n  [checked]=\"checked\"\r\n  (change) = \"selectChanged($event)\"\r\n  [disabled]=\"disabled\"\r\n  [readonly]=\"readonly\"\r\n  (blur)=\"onBlur($event)\"\r\n  (click)=\"onClick($event)\"\r\n  (focus)=\"onFocus($event)\"\r\n  (keydown)=\"onKeyDown($event)\"\r\n  (keyup)=\"onKeyUp($event)\"\r\n>\r\n","  import { Component, Input, forwardRef } from '@angular/core';\r\nimport { SimpleInputComponent } from '../simple-input/simple-input.component';\r\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\r\nimport { SimpleRepeatingItemsComponent } from '../../../simple-repeating-items/simple-repeating-items.component';\r\n@Component({\r\n    selector: 'simple-input-key-value-pair',\r\n    template: '<ng-content></ng-content>',\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => SimpleInputKeyValuePairComponent),\r\n            multi: true\r\n        },\r\n        {\r\n            provide: NG_VALIDATORS,\r\n            useExisting: forwardRef(() => SimpleInputKeyValuePairComponent),\r\n            multi: true\r\n        }\r\n    ],\r\n    standalone: false\r\n})\r\nexport class SimpleInputKeyValuePairComponent extends SimpleInputComponent {\r\n  @Input() simpleRepeatingItems:SimpleRepeatingItemsComponent;\r\n  @Input()\r\n\r\n  get items():any[]{\r\n    let result:any = [];\r\n    if(this.simpleRepeatingItems){\r\n      result = this.simpleRepeatingItems.items;\r\n    }\r\n    return result;\r\n  }\r\n  set items(value:any[]){\r\n    if(this.simpleRepeatingItems){\r\n      this.simpleRepeatingItems.items = value;\r\n    }\r\n    else{\r\n      setTimeout(() => {\r\n        this.items = value;\r\n      }, 100);\r\n    }\r\n  }\r\n\r\n  override set value(newValue: any) {\r\n    let object=this;\r\n    if([null,undefined].includes(newValue)){\r\n      newValue=[];\r\n    }\r\n    else{\r\n      if(typeof newValue==\"string\"){\r\n        try{\r\n          newValue=JSON.parse(newValue);\r\n        }\r\n        catch(ex){\r\n          newValue = [];\r\n        }\r\n      }\r\n      if(typeof newValue==\"object\"){\r\n        newValue=Object.values(newValue);\r\n      }\r\n      if(!Array.isArray(newValue)){\r\n        newValue=[];\r\n      }\r\n    }\r\n    object.setValue(newValue);\r\n    this.values = newValue;\r\n    if(this.simpleRepeatingItems){\r\n      this.validValues = this.simpleRepeatingItems.getValidItems()\r\n    }\r\n  }\r\n\r\n  override get value(): any {\r\n    this._value = this.values;\r\n    return this.values;\r\n  }\r\n\r\n  values:any[]=[];\r\n  validValues:any[]=[];\r\n  private repeatingItemsInitialized : boolean= false;\r\n\r\n  override ngAfterViewInit(): void {\r\n    this.initSimpleRepeatingItems();\r\n  }\r\n\r\n  override ngAfterContentChecked(): void {\r\n    super.ngAfterContentChecked();\r\n    let object = this;\r\n    if(this.elementRef){\r\n      let containerElement = this.elementRef.nativeElement;\r\n      let elementsAppend = containerElement.querySelectorAll('[sim-repeating-item-append]');\r\n      elementsAppend.forEach((element:Element) => {\r\n        let attached = element.getAttribute(\"auto-add-event-attached\");\r\n        if(attached == undefined){\r\n          element.setAttribute(\"auto-add-event-attached\",\"true\");\r\n          element.addEventListener(\"click\",function(event:any){\r\n            object.simpleRepeatingItems.appendItem();\r\n          });\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  appendValue(value:any = {}){\r\n    this.values.push(value);\r\n  }\r\n\r\n  initSimpleRepeatingItems(){\r\n    let object = this;\r\n    if(this.simpleRepeatingItems == undefined){\r\n      if(this.elementRef && this.simpleRepeatingItems == undefined){\r\n        let repeatingItemsElement = this.elementRef.nativeElement.querySelectorAll(\"[simple-repeating-items]\");\r\n        if(repeatingItemsElement.length>0){\r\n          this.simpleRepeatingItems = this.simplify.getComponentInstanceFromElement(repeatingItemsElement[0]);\r\n        }\r\n      }\r\n    }\r\n    if(this.simpleRepeatingItems && !this.repeatingItemsInitialized){\r\n      this.repeatingItemsInitialized = true;\r\n      this.simpleRepeatingItems.items = this.values;\r\n      this.simpleRepeatingItems.on(\"itemAdded\",(event:any)=>{\r\n        this.setRepeatingElementActions(event);\r\n      });\r\n      this.simpleRepeatingItems.on(\"inputChanged\",(event:any)=>{\r\n        this.value = object.simpleRepeatingItems.getValidItems();\r\n      });\r\n      this.simpleRepeatingItems.on(\"itemsChanged\",(event:any)=>{\r\n        this.value = object.simpleRepeatingItems.items;\r\n      });\r\n      this.simpleRepeatingItems.on(\"inputKeyDown\",(event:any)=>{\r\n        this.values = object.simpleRepeatingItems.getValidItems();\r\n      });\r\n    }\r\n  }\r\n\r\n  removeItem(item:any){\r\n    this.simpleRepeatingItems.removeItem(item);\r\n  }\r\n\r\n  removeItemAtIndex(index:any){\r\n    this.simpleRepeatingItems.removeItemAtIndex(index);\r\n  }\r\n\r\n  protected setRepeatingElementActions(params:any){\r\n    let object = this;\r\n  }\r\n\r\n  override validateRequired(){\r\n    let result = Object.keys(this.validValues).length<=0;\r\n    return result;\r\n  }\r\n}\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { SimpleInputComponent } from '../simple-input/simple-input.component';\r\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Component({\n    selector: 'simple-input-textarea',\n    templateUrl: './simple-input-textarea.component.html',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => SimpleInputTextareaComponent),\n            multi: true\n        },\n        {\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => SimpleInputTextareaComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\r\nexport class SimpleInputTextareaComponent extends SimpleInputComponent {\r\n}\r\n","<textarea\r\n#input\r\n[class]=\"class + ' simple-input'\"\r\n[attr.name]=\"inputName\"\r\nstyle=\"width: 100%\"\r\n[(ngModel)]=\"value\"\r\n[attr.sim-data]=\"dataField\"\r\n[placeholder]=\"placeholder\"\r\n[disabled]=\"disabled\"\r\n[readonly]=\"readonly\"\r\n[required]=\"required\"\r\nrows=\"{{rows}}\"\r\n(blur)=\"onBlur($event)\"\r\n  (change)=\"onChange($event)\"\r\n  (click)=\"onClick($event)\"\r\n  (focus)=\"onFocus($event)\"\r\n  (keydown)=\"onKeyDown($event)\"\r\n  (keyup)=\"onKeyUp($event)\"\r\n>\r\n</textarea>\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpMethod } from '../configs/enum';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Simplify } from '../utilities/simplify';\r\nimport { SimpleExtensionMethods } from '../utilities/simple-extension-methods';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AjaxService {\r\n  static async getFileContentAsBase64FromUrl(url:string) {\r\n    try {\r\n      const response = await fetch(url);\r\n      if (!response.ok) {\r\n        throw new Error(`Failed to fetch file from URL: ${response.statusText}`);\r\n      }\r\n      const blob = await response.blob();\r\n      return await SimpleExtensionMethods.convertBlobToBase64(blob);\r\n    } catch (error) {\r\n      console.error('Error fetching file from URL:', error);\r\n      throw error;\r\n    }\r\n  }\r\n\r\n  constructor(private http: HttpClient) {}\r\n\r\n  convertObjectToFormData(\r\n    formData: FormData,\r\n    data: any,\r\n    parentKey?: string\r\n  ): void {\r\n    for (const key in data) {\r\n      if (data.hasOwnProperty(key)) {\r\n        const formKey = parentKey ? `${parentKey}[${key}]` : key;\r\n        const isFileType = data[key] instanceof File;\r\n        if (\r\n          typeof data[key] === 'object' &&\r\n          !isFileType &&\r\n          data[key] !== null\r\n        ) {\r\n          if(Object.keys(data[key]).length>0){\r\n            this.convertObjectToFormData(formData, data[key], formKey);\r\n          }\r\n          else{\r\n            formData.append(formKey,'');\r\n          }\r\n        } else {\r\n          formData.append(\r\n            formKey,\r\n            Simplify.validValue(data[key]) ? data[key] : ''\r\n          );\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  delete(\r\n    url: string,\r\n    requestData: any,\r\n    httpOptions: any\r\n  ): Observable<any> {\r\n    const options = {\r\n      headers: httpOptions.headers,\r\n    };\r\n    url = this.getApiURL(url, requestData);\r\n    return this.http.delete<any>(url, options);\r\n  }\r\n\r\n  deletePromise(\r\n    url: string,\r\n    requestData: any,\r\n    httpOptions: any\r\n  ): Promise<any> {\r\n    return new Promise((resolve, reject) => {\r\n      this.delete(url,requestData,httpOptions).pipe().subscribe({\r\n        next: async (data) => {\r\n          resolve(data);\r\n        },\r\n        error: (error) => {\r\n          reject(error);\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n  get(url: string, requestData?: any, httpOptions?: any): Observable<any> {\r\n    url = this.getApiURL(url, requestData);\r\n    return this.http.get<any>(url, httpOptions).pipe();\r\n  }\r\n\r\n  getApiURL(url: string, requestData: any) {\r\n    if (requestData) {\r\n      const queryParams: string[] = [];\r\n      Object.keys(requestData).forEach((key) => {\r\n        queryParams.push(key + '=' + requestData[key]);\r\n      });\r\n      if (queryParams.length > 0) {\r\n        url += '?' + queryParams.join('&');\r\n      }\r\n    }\r\n    return url;\r\n  }\r\n\r\n  getPromise(url: string, requestData?: any, httpOptions?: any): Promise<any> {\r\n    return new Promise((resolve, reject) => {\r\n      this.get(url,requestData,httpOptions).pipe().subscribe({\r\n        next: async (data) => {\r\n          resolve(data);\r\n        },\r\n        error: (error) => {\r\n          reject(error);\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n  post(url: string, requestData?: any, httpOptions?: any): Observable<any> {\r\n    const formData = new FormData();\r\n    this.convertObjectToFormData(formData, requestData);\r\n    return this.http.post<any>(url, formData, httpOptions);\r\n  }\r\n\r\n  postPromise(url: string, requestData?: any, httpOptions?: any): Promise<any> {\r\n    url = this.getApiURL(url, requestData);\r\n    return new Promise((resolve, reject) => {\r\n      this.post(url,requestData,httpOptions).pipe().subscribe({\r\n        next: async (data) => {\r\n          resolve(data);\r\n        },\r\n        error: (error) => {\r\n          reject(error);\r\n        },\r\n      });\r\n    });\r\n  }\r\n\r\n  put(url: string, requestData?: any, httpOptions?: any): Observable<any> {\r\n    const formData = new FormData();\r\n    this.convertObjectToFormData(formData, requestData);\r\n    return this.http.put<any>(url, formData, httpOptions);\r\n  }\r\n\r\n  putPromise(url: string, requestData?: any, httpOptions?: any): Promise<any> {\r\n    const formData = new FormData();\r\n    this.convertObjectToFormData(formData, requestData);\r\n    return new Promise((resolve, reject) => {this.http.put<any>(url, formData, httpOptions)});\r\n  }\r\n\r\n  request(\r\n    url: string,\r\n    method: string,\r\n    requestData?: any,\r\n    httpOptions?: any,\r\n    id?: any\r\n  ): Observable<any> {\r\n    method = method ? method.toUpperCase() : method;\r\n    if (method == HttpMethod.post) {\r\n      return this.post(url, requestData, httpOptions);\r\n    }\r\n    else if (method == HttpMethod.put) {\r\n      return this.put(url, requestData, httpOptions);\r\n    }\r\n    else if (method == HttpMethod.delete){\r\n      return this.delete(url, requestData, httpOptions);\r\n    }\r\n    else{\r\n      return this.get(url, requestData, httpOptions);\r\n    }\r\n  }\r\n\r\n  requestPromise(\r\n    url: string,\r\n    method: string,\r\n    requestData?: any,\r\n    httpOptions?: any,\r\n  ): Promise<any> {\r\n    method = method ? method.toUpperCase() : method;\r\n    if (method == HttpMethod.post) {\r\n      return this.postPromise(url, requestData, httpOptions);\r\n    }\r\n    else if (method == HttpMethod.put) {\r\n      return this.putPromise(url, requestData, httpOptions);\r\n    }\r\n    else if (method == HttpMethod.delete){\r\n      return this.deletePromise(url, requestData, httpOptions);\r\n    }\r\n    else{\r\n      return this.getPromise(url, requestData, httpOptions);\r\n    }\r\n  }\r\n\r\n}\r\n","import { DragDrop } from '@angular/cdk/drag-drop';\r\nimport {\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  OnInit,\r\n  Output,\r\n  Renderer2,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { AjaxService } from '../../services/ajax.service';\r\nimport { SimplifyService } from '../../services/simplify.service';\r\nimport { ViewportService } from '../../services/viewport.service';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\n\r\n@Component({\n    selector: 'repeater',\n    templateUrl: './repeater.component.html',\n    standalone: false\n})\r\nexport class RepeaterComponent extends SimpleBaseClass implements OnInit {\r\n  @ViewChild('componentContainer', { static: false })\r\n  private componentContainer: ElementRef;\r\n  @Output() onItemAddded: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onRecordsFetched: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onItemRemoved: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onBeforeAddElement: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onItemsCountChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onTotalRecordsUpdated: EventEmitter<any> = new EventEmitter<any>();\r\n  protected functions: any = {\r\n    itemAdded: {},\r\n    recordsFetched: {},\r\n    itemRemoved: {},\r\n    beforeAddElement: {},\r\n    itemsCountChanged: {},\r\n    totalRecordsUpdated: {},\r\n  };\r\n  clonedElement: any;\r\n  continueAddRow: boolean = true;\r\n  protected count = { current: 0, total: 0 };\r\n  protected id = this.simplify.generateId();\r\n  public items: any = [];\r\n  public itemObjects: any = [];\r\n  private defaultData = {};\r\n  private index = {\r\n    filter: -1,\r\n    current: -1,\r\n    lastTab: -1,\r\n    new: -1,\r\n    previous: -1,\r\n  };\r\n  private fetch: any = {\r\n    abort: false,\r\n    ajaxUrl: '',\r\n    count: 50,\r\n    id: -1,\r\n    all: false,\r\n    function: null,\r\n    fetching: false,\r\n    fetchingHtml: 'Fetching Records...',\r\n    index: 0,\r\n    method: 'GET',\r\n    processIdle: true,\r\n    requestDataFunction: null,\r\n    available: true,\r\n    totalRecords: 0,\r\n  };\r\n  private insertMode = 'append';\r\n  private remove = { effect: 'shrink-fade' };\r\n  protected repeaterContainer: any;\r\n  protected repeatingElement: any;\r\n  private scrollAutoFetchElement: any;\r\n  private repeatingElementTag = 'tr';\r\n  private scrollAutoFetch = true;\r\n  private sort = {};\r\n  constructor(\r\n    public ajaxService: AjaxService,\r\n    public dragDrop: DragDrop,\r\n    public renderer: Renderer2,\r\n    public viewportService: ViewportService,\r\n    simplify: SimplifyService,\r\n    elementRef:ElementRef\r\n  ) {\r\n  super(elementRef,simplify);\r\n  }\r\n\r\n  addRow(params: any) {\r\n    let object = this;\r\n    let newElementIndex = -1;\r\n    let replaceElement = undefined;\r\n    if(params['replaceElement']!=undefined){\r\n      replaceElement = params['replaceElement'];\r\n    }\r\n    if(params[\"replaceIndex\"]!=undefined){\r\n      newElementIndex = params[\"replaceIndex\"];\r\n      if(object.itemObjects!=undefined){\r\n        if(object.itemObjects[newElementIndex]!=undefined){\r\n          replaceElement = object.itemObjects[newElementIndex][\"element\"];\r\n        }\r\n      }\r\n    }\r\n    else{\r\n      object.index['previous']++;\r\n      newElementIndex = object.index['previous'];\r\n    }\r\n    let newElement = object.repeatingElement.cloneNode(true);\r\n    newElement.setAttribute('sim-repeating-element', true);\r\n    let uniqueId = this.simplify.generateId();\r\n    newElement.setAttribute('sim-repeating-uid', uniqueId);\r\n    newElement.setAttribute('sim-repeat-index', newElementIndex);\r\n    let rowMode = object.insertMode;\r\n    object.setChangeListener(newElement);\r\n    let mode = object.insertMode;\r\n    if (params['mode'] != undefined && params['mode'] != null) {\r\n      mode = params['mode'];\r\n    }\r\n    object.items[newElementIndex] = JSON.parse(\r\n      JSON.stringify(object.defaultData)\r\n    );\r\n    if (params['data'] != undefined) {\r\n      object.items[newElementIndex] = JSON.parse(\r\n        JSON.stringify(params['data'])\r\n      );\r\n    } else {\r\n      object.index['new'] = newElementIndex;\r\n    }\r\n    let newElementData = object.items[newElementIndex];\r\n    newElementData = object.manipulateNewData(newElement, newElementData);\r\n    object.items[newElementIndex] = newElementData;\r\n    let parentElement = object.repeaterContainer;\r\n    let beforeAddElementDetails = {\r\n      index: newElementIndex,\r\n      element: newElement,\r\n      data: newElementData,\r\n    };\r\n    object.events.execute(\"beforeAddElement\",beforeAddElementDetails)\r\n    object.onBeforeAddElement.emit(beforeAddElementDetails);\r\n    if (replaceElement != undefined) {\r\n      object.simplify.elementReplace(replaceElement, newElement);\r\n    }\r\n    else {\r\n      if (mode == 'prepend') {\r\n        object.simplify.elementPrepend(parentElement, newElement);\r\n      } else {\r\n        object.renderer.appendChild(parentElement, newElement);\r\n      }\r\n    }\r\n    let repeatItemResult: any = {\r\n      id: uniqueId,\r\n      index: newElementIndex,\r\n      element: newElement,\r\n      data: newElementData,\r\n      srno: object.simplify.elementIndexInParent(newElement) + 1,\r\n    };\r\n    object.initPlugins(newElement);\r\n    object.simplify.setElementData(newElement, newElementData);\r\n    object.simplify.formatElementData(newElement);\r\n    let componentContainers: Element[] =\r\n      newElement.querySelectorAll('[sim-ng-component]');\r\n    let components: any = {};\r\n    let dataFieldComponents: any = {};\r\n    if (\r\n      componentContainers != null &&\r\n      componentContainers != undefined &&\r\n      componentContainers.length > 0\r\n    ) {\r\n      componentContainers.forEach((container: Element) => {\r\n        let componentValues: any = {};\r\n        let componentValuesJson = container.getAttribute(\r\n          'sim-ng-component-values'\r\n        );\r\n        if (object.simplify.validValue(componentValuesJson)) {\r\n          if (typeof componentValuesJson == 'string') {\r\n            componentValues = JSON.parse(componentValuesJson);\r\n          }\r\n        }\r\n        let componentItemInput: any = container.getAttribute(\r\n          'sim-ng-component-repeater-item-input'\r\n        );\r\n        if (object.simplify.validValue(componentItemInput)) {\r\n          componentValues[componentItemInput] = newElementData;\r\n        }\r\n        componentValues['repeaterItemDetails'] = repeatItemResult;\r\n        let componentName = container.getAttribute('sim-ng-component');\r\n        let component = object.simplify.addComponentToElement(\r\n          container,\r\n          componentName,\r\n          componentValues\r\n        );\r\n        if (component) {\r\n          component.repeaterItemDetails = repeatItemResult;\r\n          components[Object.keys(components).length] = component;\r\n          if (object.simplify.validValue(component.dataField)) {\r\n            dataFieldComponents[component.dataField] = component;\r\n          }\r\n        }\r\n      });\r\n    }\r\n    repeatItemResult['ng-components'] = components;\r\n    repeatItemResult['ng-data-field-components'] = dataFieldComponents;\r\n    object.itemObjects[newElementIndex] = repeatItemResult;\r\n    object.events.execute(\"itemAdded\",repeatItemResult);\r\n    object.onItemAddded.emit(repeatItemResult);\r\n  }\r\n\r\n  appendItem(item: any) {\r\n    let object = this;\r\n    object.addRow({ data: item });\r\n    object.updateCount(1);\r\n    object.itemsCountChanged();\r\n  }\r\n\r\n  appendItems(items: Array<any>) {\r\n    let object = this;\r\n    items.forEach((item) => {\r\n      object.addRow({ data: item });\r\n    });\r\n    object.itemsCountChanged();\r\n    object.initScrollAutoFetchElement();\r\n  }\r\n\r\n  applyFilter() {\r\n    let object = this;\r\n    object.index['filter']++;\r\n    let filterCallIndex = object.index['filter'];\r\n    setTimeout(() => {\r\n      object.applyFilterExecute(filterCallIndex);\r\n    }, 600);\r\n  }\r\n\r\n  applyFilterExecute(filterCallIndex: any) {\r\n    let object = this;\r\n    if (filterCallIndex == object.index['filter']) {\r\n      object.clearItems();\r\n      object.fetchRecords();\r\n    }\r\n  }\r\n\r\n  clearItems(notifyCountChange:boolean = false) {\r\n    let object = this;\r\n    if (Object.keys(object.items).length > 0) {\r\n      object.items = [];\r\n      object.itemObjects = [];\r\n      object.repeaterContainer.innerHTML = '';\r\n    }\r\n    object.count['total'] = 0;\r\n    if(notifyCountChange){\r\n      object.itemsCountChanged();\r\n    }\r\n  }\r\n\r\n  private debug(message: any) {\r\n    this.simplify.debug(message);\r\n  }\r\n\r\n  disableAllControls() {\r\n    let object = this;\r\n    let elements = object.repeaterContainer.querySelectorAll(\r\n      'input, button, select, textarea'\r\n    );\r\n    elements.forEach((element: HTMLElement) => {\r\n      element.setAttribute('disabled', 'true');\r\n    });\r\n  }\r\n\r\n  enableAllControls() {\r\n    let object = this;\r\n    let elements = object.repeaterContainer.querySelectorAll(\r\n      'input, button, select, textarea'\r\n    );\r\n    elements.forEach((element: HTMLElement) => {\r\n      element.removeAttribute('disabled');\r\n    });\r\n  }\r\n\r\n  fetchNextRecords(params:any = {}) {\r\n    let object = this;\r\n    if((object.fetch['processIdle'] && object.fetch['available'])||params[\"fetchAll\"]) {\r\n      let url = '';\r\n      if (object.fetch['ajaxUrl'] != '') {\r\n        url = object.fetch['ajaxUrl'];\r\n      }\r\n      if (!object.fetch['abort']) {\r\n        object.fetch['processIdle'] = false;\r\n        if(params[\"fetchAll\"]==undefined){\r\n        object.fetch['index']++;\r\n        }\r\n        let requestData = object.fetchRecordsRequestData();\r\n        if(params[\"fetchAll\"]!=undefined){\r\n          delete requestData[\"start_index\"];\r\n          delete requestData[\"record_count\"];\r\n          delete requestData[\"get_total_count\"];\r\n        }\r\n        if (url != '' || object.fetch['function'] != null) {\r\n          let fetchingClass = 'sim-repeater-fetching-temp-display';\r\n          let currentFetchId = object.fetch['id'];\r\n          let fetchCallback = function (response: any) {\r\n            if(params[\"callback\"]!=undefined){\r\n              params[\"callback\"](response);\r\n            }\r\n            else{\r\n              if (currentFetchId == object.fetch['id']) {\r\n                if (response['total_records'] != undefined) {\r\n                  object.count['total'] = response['total_records'];\r\n                }\r\n                if (response.records.length > 0) {\r\n                  object.appendItems(response.records);\r\n                } else {\r\n                  object.fetch['available'] = false;\r\n                }\r\n                object.events.execute(\"recordsFetched\");\r\n                object.onRecordsFetched.emit({});\r\n                object.itemsCountChanged();\r\n              } else {\r\n              }\r\n            }\r\n            object.fetch['processIdle'] = true;\r\n          };\r\n          if (url != '') {\r\n            object.ajaxService\r\n              .request(url, requestData, object.fetch['method'])\r\n              .pipe()\r\n              .subscribe({\r\n                next: (response) => {\r\n                  fetchCallback(response);\r\n                },\r\n              });\r\n          } else if (object.fetch['function'] != null) {\r\n            object.fetch['function'](requestData, fetchCallback);\r\n          }\r\n        }\r\n      } else {\r\n        object.fetch['abort'] = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  fetchRecords() {\r\n    let object = this;\r\n    object.reset();\r\n    object.fetchNextRecords();\r\n  }\r\n\r\n  fetchRecordsRequestData() {\r\n    let object = this;\r\n    let requestData: any = {};\r\n    let fetchAll = object.fetch['all'];\r\n    if (fetchAll == false) {\r\n      requestData['start_index'] = object.fetch['index'];\r\n      requestData['record_count'] = object.fetch['count'];\r\n    }\r\n    if (object.fetch['index'] == 0) {\r\n      requestData['get_total_count'] = 1;\r\n    }\r\n    return requestData;\r\n  }\r\n\r\n  getItemIndexByProperty(key: any, value: any) {\r\n    let object = this;\r\n    let result = null;\r\n    let keys = Object.keys(object.items);\r\n    for (let i = 0; i < keys.length; i++) {\r\n      let index = keys[i];\r\n      if (object.items[index][key] + '' == value + '') {\r\n        result = index;\r\n        break;\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  initRepeater(element: any) {\r\n    this.repeaterContainer = element.querySelector('[sim-repeat]').parentNode;\r\n    if (this.repeaterContainer != null) {\r\n      this.repeatingElement = this.repeaterContainer\r\n        .querySelector('[sim-repeat]')\r\n        .cloneNode(true);\r\n      this.repeatingElementTag = this.simplify.getElementType(\r\n        this.repeatingElement\r\n      );\r\n      this.repeaterContainer.innerHTML = '';\r\n    }\r\n  }\r\n\r\n  initPlugins(newElement: any) {}\r\n\r\n  initialize(params: {\r\n    container?: any;\r\n    fetchAjaxUrl?: string;\r\n    fetchAll?: boolean;\r\n    fetchCount?: number;\r\n    fetchIndex?: number;\r\n    fetchingHtml?: string;\r\n    fetchRecordsFunction?: any;\r\n    fetchRequestData?: any;\r\n    insertMode?: string;\r\n    itemUpdateClass?: string;\r\n    manipulateNewData?: any;\r\n    removeEffect?: string;\r\n    scrollAutoFetch?: boolean;\r\n  }) {\r\n    let {\r\n      container = null,\r\n      fetchAjaxUrl = '',\r\n      fetchAll = false,\r\n      fetchCount = 50,\r\n      fetchIndex = 0,\r\n      fetchRecordsFunction = null,\r\n      fetchRequestData = null,\r\n      fetchingHtml = 'Fetching Records...',\r\n      insertMode = 'append',\r\n      scrollAutoFetch = false,\r\n    } = params;\r\n    let object = this;\r\n    if (container == null) {\r\n      object.initRepeater(this.componentContainer.nativeElement);\r\n    } else {\r\n      object.initRepeater(container);\r\n    }\r\n    object.fetch['ajaxUrl'] = fetchAjaxUrl;\r\n    object.fetch['all'] = fetchAll;\r\n    object.fetch['index'] = fetchIndex;\r\n    object.fetch['count'] = fetchCount;\r\n    object.fetch['fetchingHtml'] = fetchingHtml;\r\n    object.insertMode = insertMode;\r\n    object.fetch['function'] = fetchRecordsFunction;\r\n    object.fetch['requestDataFunction'] = fetchRequestData;\r\n    object.scrollAutoFetch = scrollAutoFetch;\r\n    object.index['lastTab'] = -1;\r\n    object.index['new'] = -1;\r\n    object.index['previous'] = -1;\r\n    object.repeaterContainer.innerHTML = '';\r\n    object.continueAddRow = true;\r\n    object.fetch['fetching'] = false;\r\n    object.fetch['abord'] = false;\r\n    object.fetch['available'] = true;\r\n    object.fetch['processAvailable'] = true;\r\n    object.fetch['totalRecords'] = 0;\r\n  }\r\n\r\n  initScrollAutoFetchElement() {\r\n    let object = this;\r\n    if (object.scrollAutoFetch == true) {\r\n      object.scrollAutoFetchElement = null;\r\n      if (object.scrollAutoFetchElement != null) {\r\n        object.viewportService.removeViewportChangeListener(\r\n          object.scrollAutoFetchElement\r\n        );\r\n      }\r\n      let nodes = object.repeaterContainer.querySelectorAll(\r\n        '[sim-repeating-element]'\r\n      );\r\n      if (nodes.length > 0) {\r\n        if (object.insertMode == 'append') {\r\n          object.scrollAutoFetchElement = nodes[nodes.length - 1];\r\n        } else {\r\n          object.scrollAutoFetchElement = nodes[0];\r\n        }\r\n      }\r\n      if (object.scrollAutoFetchElement != null) {\r\n        object.viewportService.addViewportChangeListener(\r\n          object.scrollAutoFetchElement,\r\n          (isVisible) => {\r\n            if (isVisible) {\r\n              if (object.fetch['processIdle'] && object.fetch['available']) {\r\n                object.fetchNextRecords();\r\n              }\r\n            }\r\n          }\r\n        );\r\n      }\r\n    }\r\n  }\r\n\r\n  itemsCountChanged() {\r\n    let object = this;\r\n    object.count['current'] = Object.keys(object.items).length;\r\n    if (object.count['total'] < object.count['current']) {\r\n      object.count['total'] = object.count['current'];\r\n    }\r\n    let countDetails = {\r\n      items: object.count['current'],\r\n      total: object.count['total'],\r\n      object: object,\r\n    };\r\n    object.events.execute(\"itemsCountChanged\",countDetails);\r\n    object.onItemsCountChanged.emit(countDetails);\r\n  }\r\n\r\n  manipulateNewData(element: any, elementData: any) {\r\n    return elementData;\r\n  }\r\n\r\n  prependItem(item = {}) {\r\n    let object = this;\r\n    object.addRow({ data: item, mode: 'prepend' });\r\n    object.itemsCountChanged();\r\n  }\r\n\r\n  removeItemByIndex(index: any) {\r\n    let object = this;\r\n    if(index>-1){\r\n      let temp = object.items[index];\r\n      let element = this.itemObjects[index]['element'];\r\n      let removeEffect = object.remove['effect'];\r\n      if (removeEffect == 'fade') {\r\n      }\r\n      element.remove();\r\n      object.items.splice(index, 1);\r\n      let removedDetails = {\r\n        index: index,\r\n        data: temp,\r\n      };\r\n      this.events.execute(\"itemRemoved\",removedDetails);\r\n      object.onItemRemoved.emit(removedDetails);\r\n      object.updateCount(-1);\r\n      object.itemsCountChanged();\r\n    }\r\n  }\r\n\r\n  removeItemByProperty(key: any, value: any) {\r\n    let object = this;\r\n    let index = object.getItemIndexByProperty(key, value);\r\n    object.removeItemByIndex(index);\r\n  }\r\n\r\n  reset(notifyCountChange:boolean = false) {\r\n    let object = this;\r\n    object.count = { current: 0, total: 0 }\r\n    object.fetch['fetching'] = false;\r\n    object.fetch['available'] = true;\r\n    object.fetch['index'] = -1;\r\n    object.fetch['id']++;\r\n    object.fetch['totalRecords'] = 0;\r\n    object.clearItems(notifyCountChange);\r\n    object.continueAddRow = true;\r\n    object.repeaterContainer.innerHTML = '';\r\n  }\r\n\r\n  setActiveRow(index: number) {\r\n    let object = this;\r\n    if (object.index['current'] == object.index['new']) {\r\n      // let updated=object.checkValueUpdate(object.currentRowIndex);\r\n      // if(updated){\r\n      // object.autoAddRow();\r\n      // }\r\n    }\r\n    if (object.index['current'] != index) {\r\n      // object.checkItemUpdate(object.index[\"current\"]);\r\n    }\r\n    // object.currentRowIndex=index;\r\n  }\r\n\r\n  setChangeListener(element: any) {\r\n    element.getAttribute('sim-repeat-index');\r\n  }\r\n\r\n  setItemByIndex(index: number, item: any) {\r\n    var object=this;\r\n    object.addRow({\"data\":item,\"replaceIndex\":index});\r\n  }\r\n\r\n  setItemByProperty(key: any, item: any) {\r\n    if (this.simplify.validValue(key) && this.simplify.validValue(item)) {\r\n      let itemIndex = this.items.findIndex((data: any) => data[key] === item[key]);\r\n      if (itemIndex > -1) {\r\n        this.setItemByIndex(itemIndex,item);\r\n      }\r\n    }\r\n  }\r\n\r\n  setItems(items: Array<any>) {\r\n    let object = this;\r\n    object.reset(false);\r\n    object.appendItems(items);\r\n  }\r\n\r\n  updateCount(updateBy:number = 0){\r\n    let object = this;\r\n    object.count['current'] = Object.keys(object.items).length;\r\n    object.count['total'] = object.count['total']+updateBy;\r\n    if (object.count['total'] < object.count['current']) {\r\n      object.count['total'] = object.count['current'];\r\n    }\r\n  }\r\n}\r\n","<div #componentContainer class=\"repeater\">\r\n<ng-content ></ng-content>\r\n</div>","import * as XLSX from \"xlsx\";\r\nexport class SimpleDataOperations {\r\n\r\n  constructor() { }\r\n\r\n  exportRecordsToExcel(data:any,columns:any,params:any = {}){\r\n    let heads:any[] = [];\r\n    columns = Object.values(columns);\r\n    for(let i=0;i<columns.length;i++){\r\n      let exportColumn:boolean = columns[i][\"export\"];\r\n      if(exportColumn==undefined){\r\n        exportColumn = columns[i][\"visible\"];\r\n        if(exportColumn==undefined){\r\n          exportColumn = true;\r\n        }\r\n      }\r\n      columns[i][\"export\"] = exportColumn;\r\n    }\r\n    columns.forEach((column:any) => {\r\n      if(column[\"export\"]){\r\n        heads.push(column[\"title\"]);\r\n      }\r\n    });\r\n    if(params[\"columnCallback\"]){\r\n      params[\"columnCallback\"]({\"columns\":columns});\r\n    }\r\n    if(params[\"headCallback\"]){\r\n      params[\"headRowCallback\"]({\"head_row\":heads,\"columns\":columns});\r\n    }\r\n    let excelArray:any[] = [heads];\r\n    data.forEach((record:any) => {\r\n      let row:any[] = [];\r\n      columns.forEach((column:any) => {\r\n        if(column[\"export\"]){\r\n          let value:any = record[column[\"dataField\"]];\r\n          if(Array.isArray(value)||typeof value == \"object\"){\r\n            value = JSON.stringify(value);\r\n          }\r\n          row.push(value);\r\n        }\r\n      });\r\n      if(params[\"rowCallback\"]){\r\n        params[\"rowCallback\"]({\"row\":row,\"columns\":columns,\"record\":record});\r\n      }\r\n      excelArray.push(row);\r\n    });\r\n    let worksheet = XLSX.utils.aoa_to_sheet(excelArray);\r\n    let workbook = XLSX.utils.book_new();\r\n    let worksheetName = \"Records\";\r\n    if(params[\"name\"]!=undefined){\r\n      worksheetName = params[\"name\"];\r\n    }\r\n    XLSX.utils.book_append_sheet(workbook, worksheet, worksheetName);\r\n    XLSX.writeFile(workbook, worksheetName+\".xlsx\");\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnInit,\r\n  Output,\r\n  Renderer2,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { RepeaterComponent } from '../repeater/repeater.component';\r\nimport { SimpleSortButtonComponent } from '../buttons/simple-sort-button/simple-sort-button.component';\r\nimport { AjaxService } from '../../services/ajax.service';\r\nimport { SimplifyService } from '../../services/simplify.service';\r\nimport { DragDrop } from '@angular/cdk/drag-drop';\r\nimport { ViewportService } from '../../services/viewport.service';\r\nimport { DynamicComponentService } from '../../services/dynamic-component.service';\r\nimport { SimpleInputComponent } from '../inputs/simple-inputs/simple-input/simple-input.component';\r\nimport { FilterInputComponent } from '../inputs/filter-input/filter-input.component';\r\nimport { SimpleDataOperations } from '../../utilities/simple-data-operations';\r\n\r\n@Component({\n    selector: 'records-list',\n    templateUrl: './records-list.component.html',\n    standalone: false\n})\r\nexport class RecordsListComponent extends RepeaterComponent implements OnInit {\r\n  @ViewChild('componentContainer', { static: false }) private listContainerRef: ElementRef;\r\n  @ViewChild('repeater', { static: false }) private repeater: RepeaterComponent;\r\n  @Output() onRecordSelectionChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  @Input() fields:any = {};\r\n  @Input() select:any = {};\r\n  simpleDataOperations:SimpleDataOperations = new SimpleDataOperations();\r\n  private autoFilter = true;\r\n  private autoSort = true;\r\n  private initialized = false;\r\n  private initOptions: any = null;\r\n  protected allowDataFilter: boolean = false;\r\n  protected allowFieldsCustomization: boolean = false;\r\n  protected elements: any = { headContainer: null };\r\n  protected displayFields: any = {};\r\n  protected fieldsMap: any = {};\r\n  protected listContainer: Element;\r\n  protected sortComponents: any = {};\r\n  protected sortOrder: string[] = [];\r\n  protected selectionDetails = {\r\n    allSelected: false,\r\n    allow: false,\r\n    allowSelectAll: false,\r\n    selectOnElement: false,\r\n    multiple: false,\r\n    selectedRecords: {},\r\n    selectedItems: {\r\n      items: '',\r\n      field: '',\r\n    },\r\n  };\r\n  constructor(\r\n    public override ajaxService: AjaxService,\r\n    public override dragDrop: DragDrop,\r\n    public override renderer: Renderer2,\r\n    public override viewportService: ViewportService,\r\n    simplify: SimplifyService,\r\n    public dynamicComponentService: DynamicComponentService,\r\n    elementRef:ElementRef\r\n  ) {\r\n    dynamicComponentService.registerComponent(\r\n      'SimpleInputComponent',\r\n      SimpleInputComponent\r\n    );\r\n    dynamicComponentService.registerComponent(\r\n      'FilterInputComponent',\r\n      FilterInputComponent\r\n    );\r\n    super(ajaxService, dragDrop, renderer, viewportService, simplify,elementRef);\r\n    let object = this;\r\n    object.functions['recordSelectionChanged'] = {};\r\n    object.on('itemAdded', (params: any) => {\r\n      object.rowAdded(params);\r\n    });\r\n  }\r\n\r\n  addFilterInput(dataField: any, details: any) {\r\n    let object = this;\r\n    if (object.simplify.validValue(object.elements['listFilterElementClone'])) {\r\n      let filter = true;\r\n      if (object.simplify.validValue(details)) {\r\n        if (object.simplify.validValue(details['filter'])) {\r\n          if (\r\n            object.simplify.validValue(details['filter']) &&\r\n            details['filter'] == false\r\n          ) {\r\n            filter = false;\r\n          }\r\n        }\r\n      }\r\n      if (filter) {\r\n        let filterElement =\r\n          object.elements['listFilterElementClone'].cloneNode(true);\r\n        let filterTitleElement = filterElement.querySelector(\r\n          '[sim-list-filter-label]'\r\n        );\r\n        if (filterTitleElement) {\r\n          let headTitle = details['title'];\r\n          filterTitleElement.innerHTML = headTitle;\r\n        }\r\n        let inputContainer = filterElement.querySelector(\r\n          '[sim-list-filter-input]'\r\n        );\r\n        let filterInputComponent;\r\n        if (inputContainer) {\r\n          filterInputComponent = object.simplify.addComponentToElement(\r\n            inputContainer,\r\n            FilterInputComponent\r\n          );\r\n        } else {\r\n          filterInputComponent = object.simplify.addComponentToElement(\r\n            filterElement,\r\n            FilterInputComponent\r\n          );\r\n        }\r\n        filterInputComponent.dataField = dataField;\r\n        object.elements['listFilterContainer'].appendChild(filterElement);\r\n        filterInputComponent.on('keyup', function (event: any) {\r\n          object.filterChanged();\r\n        });\r\n      } else {\r\n        if (object.simplify.validValue(object.initOptions)) {\r\n          if (\r\n            object.simplify.validValue(object.initOptions['addEmptyFilter'])\r\n          ) {\r\n            if (object.initOptions['addEmptyFilter']) {\r\n              let filterElement =\r\n                object.elements['listFilterElementClone'].cloneNode(true);\r\n              object.elements['listFilterContainer'].appendChild(filterElement);\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  override fetchRecordsRequestData() {\r\n    let object = this;\r\n    let requestData = super.fetchRecordsRequestData();\r\n    requestData = object.simplify.copyObjectValues(\r\n      requestData,\r\n      object.getFilterRequestData()\r\n    );\r\n    let orderBy = object.getOrderByString();\r\n    if (orderBy) {\r\n      if (requestData['order_by'] == undefined) {\r\n        requestData['order_by'] = orderBy;\r\n      }\r\n    }\r\n    return requestData;\r\n  }\r\n\r\n  applyFieldsCustomization() {\r\n    let object = this;\r\n    if (object.simplify.validValue(object.elements['listCustomizeContainer'])) {\r\n      object.clearItems();\r\n      object.displayFields = {};\r\n      let children: HTMLElement[] = Array.from(\r\n        object.elements['listCustomizeContainer'].children\r\n      );\r\n      let visibleFields:any[] = [];\r\n      children.forEach((child: HTMLElement, index: number) => {\r\n        let fieldName: any = child.getAttribute('sim-list-customize');\r\n        let field = object.fieldsMap[fieldName];\r\n        if(field[\"visible\"]==undefined){\r\n          field['visible'] = true;\r\n        }\r\n        field['index'] = index;\r\n        let displayCheckbox: any = child.querySelector(\r\n          '[sim-list-customize-check]'\r\n        );\r\n        if (displayCheckbox) {\r\n          field['visible'] = displayCheckbox.checked;\r\n        }\r\n        if(field['visible']){\r\n          visibleFields.push(fieldName);\r\n        }\r\n        object.displayFields[index] = field;\r\n      });\r\n      object.events.execute(\"fieldsCustomized\",{\"fields\":object.getFieldsCustomization()});\r\n      object.loadFields();\r\n      object.fetchRecords();\r\n    }\r\n  }\r\n\r\n  exportExcel(){\r\n    let object = this;\r\n    object.fetchNextRecords({\"fetchAll\":true,callback:(response:any)=>{\r\n      if(response[\"records\"]!=undefined){\r\n        this.simpleDataOperations.exportRecordsToExcel(response[\"records\"],object.displayFields);\r\n      }\r\n    }});\r\n  }\r\n\r\n  fieldsCustomized() {}\r\n\r\n  filterChanged() {\r\n    if (this.autoFilter) {\r\n      this.applyFilter();\r\n    }\r\n  }\r\n\r\n  getFieldsCustomization() {\r\n    let object = this;\r\n    let result: any = {};\r\n    let indexes = Object.keys(object.displayFields);\r\n    indexes.forEach((index) => {\r\n      result[index] = {\r\n        field: object.displayFields[index]['dataField'],\r\n        visible: object.displayFields[index]['visible'],\r\n        index: index,\r\n      };\r\n    });\r\n    return result;\r\n  }\r\n\r\n  getFilterRequestData() {\r\n    let object = this;\r\n    let filterDetails: any = {};\r\n    if (object.simplify.validValue(object.elements['listFilterContainer'])) {\r\n      let children: HTMLElement[] = Array.from(\r\n        object.elements['listFilterContainer'].querySelectorAll(\r\n          '[sim-filter-input-field]'\r\n        )\r\n      );\r\n      children.forEach((child: any, index: number) => {\r\n        let fieldName: any = child.getAttribute('sim-filter-input-field');\r\n        let fieldValue = child.value;\r\n        if (fieldValue) {\r\n          if (fieldValue.trim() != '') {\r\n            filterDetails['filter_' + fieldName] = fieldValue;\r\n          }\r\n        }\r\n      });\r\n    }\r\n    return filterDetails;\r\n  }\r\n\r\n  getOrderByString() {\r\n    let object = this;\r\n    let orderByValues: string[] = [];\r\n    object.sortOrder.forEach((dataField: string) => {\r\n      let sortButtonComponent = object.sortComponents[dataField];\r\n      orderByValues.push(dataField + ' ' + sortButtonComponent.get());\r\n    });\r\n    let orderByString = orderByValues.join(',');\r\n    return orderByString;\r\n  }\r\n\r\n  getSelectionDetails() {\r\n    let object = this;\r\n    let records: any[] = [];\r\n    object.itemObjects.forEach((itemObject: any) => {\r\n      let selectComponent: SimpleInputComponent =\r\n        itemObject['ng-components'][0];\r\n      if (selectComponent.checked) {\r\n        records.push(object.items[itemObject['index']]);\r\n      }\r\n    });\r\n    return { selectedRecords: records };\r\n  }\r\n\r\n  initFields() {\r\n    let object = this;\r\n    let fieldsList = Object.keys(object.fieldsMap);\r\n    let index = -1;\r\n    fieldsList.forEach((fieldName) => {\r\n      index++;\r\n      let visible = object.fieldsMap[fieldName][\"visible\"];\r\n      if(visible==undefined){\r\n        visible=true;\r\n      }\r\n      object.fieldsMap[fieldName]['dataField'] = fieldName;\r\n      object.fieldsMap[fieldName]['index'] = index;\r\n      object.fieldsMap[fieldName]['visible'] = visible;\r\n      object.displayFields[index] = object.fieldsMap[fieldName];\r\n    });\r\n    object.loadFields();\r\n  }\r\n\r\n  initializeCustomization() {\r\n    let object = this;\r\n    if (object.simplify.validValue(object.elements['listCustomizeContainer'])) {\r\n      let dragItems: any = [];\r\n      let children: HTMLElement[] = Array.from(\r\n        object.elements['listCustomizeContainer'].children\r\n      );\r\n      children.forEach((child: HTMLElement) => {\r\n        let dataField: any = child.getAttribute('sim-list-customize');\r\n        let customizeCheck = document.createElement('input');\r\n        customizeCheck.remove();\r\n        customizeCheck.setAttribute('type', 'checkbox');\r\n        customizeCheck.setAttribute('sim-list-customize-check', '');\r\n        // customizeCheck.setAttribute(\"style\",\"margin:5px 5px;\");\r\n        customizeCheck.setAttribute('class', 'form-check-input');\r\n        if (object.fieldsMap[dataField]['visible']) {\r\n          customizeCheck.setAttribute('checked', '');\r\n        }\r\n        customizeCheck.addEventListener('change', function (event: any) {\r\n          object.fieldsCustomized();\r\n        });\r\n        object.renderer.insertBefore(child, customizeCheck, child.firstChild);\r\n        dragItems.push(this.dragDrop.createDrag(child));\r\n      });\r\n      let dropListInstance = object.dragDrop.createDropList(\r\n        object.elements['listCustomizeContainer']\r\n      );\r\n      dropListInstance.withItems(dragItems);\r\n      dropListInstance.dropped.subscribe((details) => {\r\n        if (details['previousIndex'] != details['currentIndex']) {\r\n          object.simplify.elementMoveToIndex(\r\n            object.elements['listCustomizeContainer'].children[\r\n              details['previousIndex']\r\n            ],\r\n            details['currentIndex']\r\n          );\r\n          object.fieldsCustomized();\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  override initialize(options: any) {\r\n    let object = this;\r\n    object.initOptions = options;\r\n    if (!object.initialized) {\r\n      object.initialized = true;\r\n      object.listContainer = object.listContainerRef.nativeElement;\r\n      object.elements['headContainer'] =\r\n        object.listContainer.querySelector('[sim-list-head]')?.parentNode;\r\n      object.elements['headClone'] = object.listContainer\r\n        .querySelector('[sim-list-head]')\r\n        ?.cloneNode(true);\r\n      object.elements['bodyContainer'] =\r\n        object.listContainer.querySelector('[sim-list-body]')?.parentNode;\r\n      object.elements['bodyContainerClone'] = object.listContainer\r\n        .querySelector('[sim-list-body]')\r\n        ?.parentNode?.cloneNode(true);\r\n      object.elements['bodyClone'] = object.listContainer\r\n        .querySelector('[sim-list-body]')\r\n        ?.cloneNode(true);\r\n      object.elements['listCustomizeContainer'] =\r\n        object.listContainer.querySelector('[sim-list-customize]')?.parentNode;\r\n      if (\r\n        object.elements['listCustomizeContainer'] != undefined &&\r\n        object.elements['listCustomizeContainer'] != null\r\n      ) {\r\n        object.elements['listCustomizeItemClone'] = object.elements[\r\n          'listCustomizeContainer'\r\n        ]\r\n          .querySelector('[sim-list-customize]')\r\n          ?.cloneNode(true);\r\n        object.elements['listCustomizeContainer']\r\n          .querySelector('[sim-list-customize]')\r\n          .remove();\r\n        object.allowFieldsCustomization = true;\r\n      }\r\n      object.elements['listFilterContainer'] =\r\n        this.listContainer.querySelector('[sim-list-filter]')?.parentNode;\r\n      if (\r\n        object.elements['listFilterContainer'] != undefined &&\r\n        this.elements['listFilterContainer'] != null\r\n      ) {\r\n        object.elements['listFilterElementClone'] = this.elements[\r\n          'listFilterContainer'\r\n        ]\r\n          .querySelector('[sim-list-filter]')\r\n          ?.cloneNode(true);\r\n        object.elements['listFilterContainer'].innerHTML = '';\r\n        object.allowDataFilter = true;\r\n      }\r\n      object.elements['totalDisplay'] = object.listContainer.querySelector(\r\n        '[sim-list-total-records'\r\n      );\r\n      object.fieldsMap = options['fields'];\r\n      if (object.simplify.validValue(options['select'])) {\r\n        if (typeof options['select'] == 'object') {\r\n          object.selectionDetails['allow'] = true;\r\n          object.selectionDetails['allowSelectAll'] = true;\r\n          object.selectionDetails['multiple'] = true;\r\n          object.selectionDetails['selectOnElement'] = false;\r\n          if (object.simplify.validValue(options['select']['multiple'])) {\r\n            object.selectionDetails['multiple'] = options['select']['multiple'];\r\n            object.selectionDetails['allowSelectAll'] = options['select']['multiple'];\r\n          }\r\n          if (object.simplify.validValue(options['select']['selectAll'])) {\r\n            object.selectionDetails['allowSelectAll'] = options['select']['selectAll'];\r\n          }\r\n          if (\r\n            object.simplify.validValue(options['select']['selectOnElement'])\r\n          ) {\r\n            object.selectionDetails['selectOnElement'] =\r\n              options['select']['selectOnElement'];\r\n          }\r\n          if (object.simplify.validValue(options['select']['selectedItems'])) {\r\n            object.selectionDetails['selectedItems'] = options['select']['selectedItems'];\r\n          }\r\n        } else if (options['select'] == true) {\r\n          object.selectionDetails['allow'] = true;\r\n          object.selectionDetails['selectOnElement'] = false;\r\n          object.selectionDetails['allowSelectAll'] = true;\r\n          object.selectionDetails['multiple'] = true;\r\n        }\r\n      }\r\n      object.initFields();\r\n      super.initialize(object.initOptions);\r\n    }\r\n  }\r\n\r\n  override itemsCountChanged() {\r\n    let object = this;\r\n    super.itemsCountChanged();\r\n    if (this.simplify.validValue(object.elements['totalDisplay'])) {\r\n      object.simplify.setElementDataValue(\r\n        object.elements['totalDisplay'],\r\n        object.count['total']\r\n      );\r\n    }\r\n  }\r\n\r\n  loadFields() {\r\n    let object = this;\r\n    object.elements['headContainer'].innerHTML = '';\r\n    if (object.allowDataFilter == true) {\r\n      object.elements['listFilterContainer'].innerHTML = '';\r\n    }\r\n    if (object.allowFieldsCustomization == true) {\r\n      object.elements['listCustomizeContainer'].innerHTML = '';\r\n    }\r\n    object.setListHead();\r\n    object.setListBody();\r\n  }\r\n\r\n  recordSelectionChanged() {\r\n    let object = this;\r\n    let selectionDetails = object.getSelectionDetails();\r\n    object.events.execute(\"recordSelectionChanged\",selectionDetails);\r\n    object.onRecordSelectionChanged.emit(selectionDetails);\r\n  }\r\n\r\n  override reset(): void {\r\n    let object = this;\r\n    object.selectionDetails[\"allSelected\"] = false;\r\n    object.selectionDetails[\"selectedRecords\"] = {};\r\n    object.selectionDetails[\"selectedItems\"] =  {\r\n      items: '',\r\n      field: '',\r\n    };\r\n    super.reset();\r\n  }\r\n\r\n  protected rowAdded(params: any) {\r\n    let object = this;\r\n    if (object.selectionDetails.allow) {\r\n      let selectionInput: SimpleInputComponent = params['ng-components'][0];\r\n      if (object.selectionDetails.allSelected) {\r\n        selectionInput.checked = object.selectionDetails.allSelected;\r\n      } else if (object.selectionDetails.selectedItems) {\r\n        const ids =\r\n          object.selectionDetails.selectedItems && object.selectionDetails.selectedItems.items\r\n            ? object.selectionDetails.selectedItems.items.split(',')\r\n            : null;\r\n        if (\r\n          ids &&\r\n          ids.includes(params.data[object.selectionDetails.selectedItems.field])\r\n        ) {\r\n          selectionInput.checked = true;\r\n        }\r\n      }\r\n      if (object.selectionDetails.selectOnElement) {\r\n        params['element'].addEventListener('click', function (event: any) {\r\n          if (!selectionInput.checked) {\r\n            selectionInput.checked = !selectionInput.checked;\r\n            object.recordSelectionChanged();\r\n          }\r\n        });\r\n      }\r\n      selectionInput.on('change', function (event: any) {\r\n        if (\r\n          !object.selectionDetails.multiple &&\r\n          object.itemObjects &&\r\n          object.itemObjects.length > 0\r\n        ) {\r\n          const selectedItem = object.itemObjects.find(\r\n            (itemObject: any) =>\r\n              itemObject.id === selectionInput.repeaterItemDetails.id\r\n          );\r\n          object.itemObjects.forEach((itemObject: any) => {\r\n            if (itemObject.id) {\r\n              let selectComponent: SimpleInputComponent =\r\n                itemObject['ng-components'][0];\r\n              selectComponent.checked = itemObject === selectedItem;\r\n            }\r\n          });\r\n        }\r\n        object.recordSelectionChanged();\r\n      });\r\n    }\r\n  }\r\n\r\n  setFieldsCustomization(displayFields: any) {\r\n    let object = this;\r\n    let indexes = Object.keys(displayFields);\r\n    object.displayFields = {};\r\n    let newIndex = -1;\r\n    indexes.forEach((index: any) => {\r\n      let details = displayFields[index];\r\n      if (details['field']) {\r\n        let fieldName = details['field'];\r\n        if (object.fieldsMap[fieldName]) {\r\n          newIndex++;\r\n          let fieldDetails = object.fieldsMap[fieldName];\r\n          let visible = details['visible'];\r\n          if (visible == undefined) {\r\n            visible = true;\r\n          }\r\n          fieldDetails['visible'] = visible;\r\n          fieldDetails['index'] = newIndex;\r\n          object.displayFields[newIndex] = fieldDetails;\r\n        }\r\n      }\r\n    });\r\n    object.loadFields();\r\n  }\r\n\r\n  protected setListBodyContent(bodyElement: Element, details: any) {\r\n    let dataField = details['dataField'];\r\n    let contentElement = bodyElement.querySelector('[sim-list-body-content]');\r\n    if (contentElement) {\r\n      contentElement.setAttribute('sim-data', dataField);\r\n    } else {\r\n      bodyElement.setAttribute('sim-data', dataField);\r\n    }\r\n  }\r\n\r\n  setAllItemsSelection(selected: boolean) {\r\n    let object = this;\r\n    object.itemObjects.forEach((itemObject: any) => {\r\n      let selectComponent: SimpleInputComponent =\r\n        itemObject['ng-components'][0];\r\n      selectComponent.select(selected);\r\n    });\r\n  }\r\n\r\n  setListBody() {\r\n    let object = this;\r\n    if (object.elements['bodyContainer']) {\r\n      object.elements['bodyContainer'].innerHTML = '';\r\n    }\r\n    let fieldKeys = Object.keys(object.displayFields);\r\n    if (object.selectionDetails['allow']) {\r\n      let bodyElement = object.elements['bodyClone'].cloneNode(true);\r\n      bodyElement.setAttribute('sim-ng-component', 'SimpleInputComponent');\r\n      let type = 'radio';\r\n      if (object.selectionDetails['multiple']) {\r\n        type = 'checkbox';\r\n      }\r\n      let selectValues = {\r\n        type: type,\r\n        class: 'record-select',\r\n        name: object.id + 'SelectRecord[]',\r\n      };\r\n      bodyElement.setAttribute(\r\n        'sim-ng-component-values',\r\n        JSON.stringify(selectValues)\r\n      );\r\n      object.elements['bodyContainer'].appendChild(bodyElement);\r\n    }\r\n    fieldKeys.forEach((field) => {\r\n      let details = object.displayFields[field];\r\n      let visible = details['visible'];\r\n      let dataField = details['dataField'];\r\n      if (visible) {\r\n        let bodyElement = object.elements['bodyClone'].cloneNode(true);\r\n        object.setListBodyContent(bodyElement, details);\r\n        if (details['class']) {\r\n          bodyElement.classList.add(details['class']);\r\n        }\r\n        if (details['bodyClass']) {\r\n          bodyElement.classList.add(details['bodyClass']);\r\n        }\r\n        if (details['style']) {\r\n          bodyElement.setAttribute(\"style\",details[\"style\"]);\r\n        }\r\n        if (details['formatDate']) {\r\n          bodyElement.setAttribute(\"sim-format-date\",details[\"formatDate\"]);\r\n        }\r\n        if (details['formatDateTime']) {\r\n          bodyElement.setAttribute(\"sim-format-date\",details[\"formatDateTime\"]);\r\n        }\r\n        if (details['formatNumber']) {\r\n          bodyElement.setAttribute(\"sim-format-number\",details[\"formatNumber\"]);\r\n        }\r\n        if (details['style']) {\r\n          bodyElement.setAttribute(\"style\",details[\"style\"]);\r\n        }\r\n        if (details['ngComponent']) {\r\n          bodyElement.setAttribute('sim-ng-component', details['ngComponent']);\r\n          let ngComponentValues:any = {};\r\n          if (object.simplify.validValue(details['ngComponentValues'])) {\r\n            ngComponentValues = details[\"ngComponentValues\"];\r\n          }\r\n          if(!object.simplify.validValue(ngComponentValues[\"dataField\"])){\r\n            ngComponentValues[\"dataField\"] = dataField;\r\n          }\r\n          bodyElement.setAttribute('sim-ng-component-values',JSON.stringify(ngComponentValues));\r\n        } else {\r\n          bodyElement.removeAttribute('sim-ng-component');\r\n        }\r\n        bodyElement.setAttribute(\"records-list-body-for\",dataField);\r\n        object.elements['bodyContainer'].appendChild(bodyElement);\r\n        bodyElement = null;\r\n      }\r\n    });\r\n    if (object.simplify.validValue(object.repeatingElement)) {\r\n      object.repeatingElement.innerHTML = object.elements['bodyContainer'].innerHTML;\r\n    }\r\n  }\r\n\r\n  setListHead() {\r\n    let object = this;\r\n    object.elements['headContainer'].innerHTML = '';\r\n    if (object.allowFieldsCustomization) {\r\n      object.elements['listCustomizeContainer'].innerHTML = '';\r\n    }\r\n    if (object.selectionDetails['allow']) {\r\n      let headElement = object.elements['headClone'].cloneNode(true);\r\n      if (object.selectionDetails['multiple']) {\r\n        headElement.innerHTML = '';\r\n        if (object.selectionDetails['allowSelectAll']) {\r\n          let selectAllComponent = object.simplify.addComponentToElement(\r\n            headElement,\r\n            SimpleInputComponent\r\n          );\r\n          selectAllComponent.type = 'checkbox';\r\n          selectAllComponent.on('change', function (event: any) {\r\n            object.selectionDetails.allSelected = selectAllComponent.checked;\r\n            object.setAllItemsSelection(selectAllComponent.checked);\r\n            object.recordSelectionChanged();\r\n          });\r\n        }\r\n      }\r\n      if (object.simplify.validValue(object.elements['listFilterContainer'])) {\r\n        if (\r\n          object.simplify.validValue(object.elements['listFilterElementClone'])\r\n        ) {\r\n          let filterElement =\r\n            object.elements['listFilterElementClone'].cloneNode(true);\r\n          object.elements['listFilterContainer'].appendChild(filterElement);\r\n        }\r\n      }\r\n\r\n      object.elements['headContainer'].appendChild(headElement);\r\n    }\r\n    let fieldKeys = Object.keys(object.displayFields);\r\n    fieldKeys.forEach((field) => {\r\n      let details = object.displayFields[field];\r\n      let visible = details['visible'];\r\n      let headTitle = details['title'];\r\n      let dataField = details['dataField'];\r\n      if (object.allowFieldsCustomization) {\r\n        let customizeElement =\r\n          object.elements['listCustomizeItemClone'].cloneNode(true);\r\n        let customizeTitleElement = customizeElement.querySelector(\r\n          '[sim-list-customize-title]'\r\n        );\r\n        if (\r\n          customizeTitleElement != null &&\r\n          customizeTitleElement != undefined\r\n        ) {\r\n          customizeTitleElement.innerHTML = headTitle;\r\n        } else {\r\n          customizeElement.innerHTML = headTitle;\r\n        }\r\n        customizeElement.setAttribute('sim-list-customize', dataField);\r\n        object.elements['listCustomizeContainer'].appendChild(customizeElement);\r\n      }\r\n      if (visible) {\r\n        let headElement = object.elements['headClone'].cloneNode(true);\r\n        let titleElement = headElement.querySelector('[sim-list-head-title]');\r\n        if (titleElement != null && titleElement != undefined) {\r\n          titleElement.innerHTML = headTitle;\r\n        } else {\r\n          headElement.innerHTML = headTitle;\r\n        }\r\n        let sort = details['sort'];\r\n        if (sort == undefined) {\r\n          sort = true;\r\n        }\r\n        if (sort) {\r\n          let sortContainer = headElement.querySelector(\r\n            '[sim-list-sort-button]'\r\n          );\r\n          if (sortContainer) {\r\n            let sortComponent: SimpleSortButtonComponent =\r\n              this.simplify.addComponentToElement(\r\n                sortContainer,\r\n                SimpleSortButtonComponent\r\n              );\r\n            sortComponent.on('changed', function (params: any) {\r\n              if (object.sortOrder.includes(dataField)) {\r\n                let index = object.sortOrder.indexOf(dataField);\r\n                delete object.sortOrder[index];\r\n              }\r\n              if (['ASC', 'DESC'].includes(params['sort'])) {\r\n                object.sortOrder.push(dataField);\r\n              }\r\n              object.sortChanged();\r\n            });\r\n            object.sortComponents[dataField] = sortComponent;\r\n          }\r\n        }\r\n        if (details['class']) {\r\n          headElement.classList.add(details['class']);\r\n        }\r\n        if (details['headClass']) {\r\n          headElement.classList.add(details['headClass']);\r\n        }\r\n        if (details['style']) {\r\n          headElement.setAttribute(\"style\",details[\"style\"]);\r\n        }\r\n        if (details['headStyle']) {\r\n          headElement.setAttribute(\"style\",details[\"headStyle\"]);\r\n        }\r\n        headElement.setAttribute(\"records-list-head-for\",dataField);\r\n        if (object.allowDataFilter) {\r\n          object.addFilterInput(dataField, details);\r\n        }\r\n        object.elements['headContainer'].appendChild(headElement);\r\n      }\r\n    });\r\n    if (object.allowFieldsCustomization) {\r\n      object.initializeCustomization();\r\n    }\r\n  }\r\n\r\n  sortChanged() {\r\n    if (this.autoSort) {\r\n      this.applyFilter();\r\n    }\r\n  }\r\n}\r\n","<div #componentContainer class=\"records-list\">\r\n    <ng-content ></ng-content>\r\n</div>","import { AfterViewInit, Component, ElementRef, Input } from '@angular/core';\r\nimport { SimpleFunctions } from '../../utilities/simple-functions';\r\nimport { SimpleCollapseDirection } from '../../configs/enum';\r\nimport { trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { right } from '@popperjs/core';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\n\r\n@Component({\r\n    selector: 'simple-collapsible-container',\r\n    templateUrl: './simple-collapsible-container.component.html',\r\n    styleUrl: './simple-collapsible-container.component.css',\r\n    animations: [\r\n        trigger('collapse', [\r\n            state('ttb', style({ height: '*', top: '0px' })),\r\n            state('collapsed-ttb', style({ height: '0px', overflow: 'hidden', top: '-150%' })),\r\n            transition('ttb <=> collapsed-ttb', [\r\n                animate('{{duration}}ms ease-in-out')\r\n            ], { params: { duration: 150 } }),\r\n            state('btt', style({ height: '*', bottom: '0px' })),\r\n            state('collapsed-btt', style({ height: '0px', overflow: 'hidden', bottom: '-150%' })),\r\n            transition('btt <=> collapsed-btt', [\r\n                animate('{{duration}}ms ease-in-out')\r\n            ], { params: { duration: 150 } }),\r\n            state('ltr', style({ width: '*', left: '0px', top: '0px' })),\r\n            state('collapsed-ltr', style({ width: '0px', overflow: 'hidden', left: '-150%', top: '0px' })),\r\n            transition('ltr <=> collapsed-ltr', [\r\n                animate('{{duration}}ms ease-in-out')\r\n            ], { params: { duration: 150 } }),\r\n            state('rtl', style({ width: '*', right: '0px', top: '0px' })),\r\n            state('collapsed-rtl', style({ width: '0px', overflow: 'hidden', right: '-150%', top: '0px' })),\r\n            transition('rtl <=> collapsed-rtl', [\r\n                animate('{{duration}}ms ease-in-out')\r\n            ], { params: { duration: 150 } }),\r\n        ])\r\n    ],\r\n    standalone: false\r\n})\r\nexport class SimpleCollapsibleContainerComponent extends SimpleBaseClass implements AfterViewInit{\r\n  @Input() direction: SimpleCollapseDirection = SimpleCollapseDirection.rtl;\r\n  @Input() animationDuration: number = 350;\r\n  element:Element;\r\n  isCollapsed = true;\r\n\r\n  get animationState() {\r\n    return {\r\n      value: this.isCollapsed ? `collapsed-${this.direction}` : this.direction,\r\n      params: { duration: this.animationDuration } // Passing the duration to the animation\r\n    };\r\n  }\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.element = this.elementRef.nativeElement;\r\n  }\r\n\r\n  close(): void {\r\n    if (!this.isCollapsed) {\r\n      this.events.execute(\"before-close\");\r\n      this.isCollapsed = !this.isCollapsed;\r\n      this.events.execute(\"close\");\r\n    }\r\n  }\r\n\r\n  open(): void {\r\n    if(this.isCollapsed){\r\n      this.events.execute(\"before-open\");\r\n      this.isCollapsed = !this.isCollapsed;\r\n      this.events.execute(\"open\");\r\n    }\r\n  }\r\n\r\n\r\n  toggle(): void {\r\n    this.events.execute(\"before-toggle\");\r\n    if (this.isCollapsed) {\r\n      this.open();\r\n    } else {\r\n      this.close();\r\n    }\r\n    this.events.execute(\"toggle\");\r\n  }\r\n\r\n\r\n\r\n\r\n}\r\n","<div [@collapse]=\"animationState\" class=\"simple-collapsible-container\" style=\"position: fixed;\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { Directive, ElementRef, Input, TemplateRef } from '@angular/core';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\n\r\n@Directive({\n    selector: '[conditionalTemplate]',\n    standalone: false\n})\r\nexport class ConditionalTemplateDirective extends SimpleBaseClass {\r\n  @Input() when:any;\r\n  templateRef:TemplateRef<any>;\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, ContentChild, ContentChildren, Input, OnInit, QueryList, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ConditionalTemplateDirective } from '../../../directives/templates.directive';\r\nimport { SimpleConversationFormInputStatus } from '../../../configs/enum';\r\n\r\n@Component({\n    selector: 'simple-conversation-form-input',\n    templateUrl: './simple-conversation-form-input.component.html',\n    styleUrl: './simple-conversation-form-input.component.css',\n    standalone: false\n})\r\nexport class SimpleConversationFormInputComponent implements AfterViewInit {\r\n  @ViewChild(\"templateOutlet\") templateOutlet:TemplateRef<any>;\r\n  @ContentChildren(ConditionalTemplateDirective) templatesList?:QueryList<ConditionalTemplateDirective>;\r\n  @Input() status:SimpleConversationFormInputStatus = SimpleConversationFormInputStatus.pending;\r\n  @Input() id:string = \"\";\r\n  @Input() nextInput:any;\r\n  SimpleConversationFormInputStatus = SimpleConversationFormInputStatus;\r\n  templates:any = {};\r\n\r\n  constructor(private cdr:ChangeDetectorRef){}\r\n\r\n  ngAfterViewInit(): void {\r\n    if(this.templatesList){\r\n      for(let template of this.templatesList!.toArray()){\r\n        if(template.when){\r\n          this.templates[template.when] = template.templateRef;\r\n        }\r\n      }\r\n    }\r\n    this.cdr.detectChanges();\r\n  }\r\n}\r\n","<ng-template #templateOutlet>\r\n  <ng-container *ngIf=\"templates[status]\">\r\n    <ng-container *ngTemplateOutlet=\"templates[status]!\"></ng-container>\r\n  </ng-container>\r\n</ng-template>\r\n\r\n","import { AfterViewInit, Component, ContentChildren, ElementRef, OnInit, QueryList, ViewChild } from '@angular/core';\r\nimport { SimpleConversationFormInputComponent } from './simple-conversation-form-input/simple-conversation-form-input.component';\r\nimport { SimpleConversationFormInputStatus } from '../../configs/enum';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\n\r\n@Component({\n    selector: 'simple-conversation-form',\n    templateUrl: './simple-conversation-form.component.html',\n    styleUrl: './simple-conversation-form.component.css',\n    standalone: false\n})\r\nexport class SimpleConversationFormComponent extends SimpleBaseClass implements AfterViewInit{\r\n  @ContentChildren(SimpleConversationFormInputComponent) conversationInputs!: QueryList<SimpleConversationFormInputComponent>;\r\n  @ViewChild(\"displayContainer\") displayContainer:ElementRef;\r\n  formInputs:any = {};\r\n  formInputIds:string[] = [];\r\n  activeInput:SimpleConversationFormInputComponent|undefined;\r\n  displayInputs:SimpleConversationFormInputComponent[] = [];\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    let inputs = this.conversationInputs.toArray();\r\n    for(let index in inputs){\r\n      let input = inputs[index];\r\n      if(input.id == \"\"){\r\n        input.id = index.toString();\r\n      }\r\n      this.formInputs[input.id] = input;\r\n    }\r\n    this.formInputIds = Object.keys(this.formInputs);\r\n    if(this.formInputIds.length>0){\r\n      this.gotoInput(this.formInputIds[0]);\r\n    }\r\n  }\r\n\r\n  gotoInput(inputId:string){\r\n    this.activeInput = undefined;\r\n    if(this.formInputs[inputId]){\r\n      this.activeInput = this.formInputs[inputId];\r\n      this.activeInput!.status = SimpleConversationFormInputStatus.active;\r\n      this.formInputs[inputId].status = SimpleConversationFormInputStatus.active;\r\n    }\r\n    this.setDisplayInputs();\r\n  }\r\n\r\n  gotoNext(){\r\n    if(this.activeInput){\r\n      let currentIdIndex = this.formInputIds.indexOf(this.activeInput.id);\r\n      let nextIdIndex = currentIdIndex+1;\r\n      let nextInputId = \"\";\r\n      if(this.formInputIds.length >= nextIdIndex){\r\n        nextInputId = this.formInputIds[nextIdIndex];\r\n      }\r\n      this.activeInput.status = SimpleConversationFormInputStatus.completed;\r\n      if(this.activeInput.nextInput){\r\n        if(typeof this.activeInput.nextInput == \"string\"){\r\n          nextInputId = this.activeInput.nextInput;\r\n        }\r\n        else if(typeof this.activeInput.nextInput == \"function\"){\r\n          nextInputId = this.activeInput.nextInput({\"simpleConversationForm\":this,\"activeInput\":this.activeInput});\r\n\r\n        }\r\n      }\r\n      this.gotoInput(nextInputId);\r\n    }\r\n  }\r\n\r\n  setDisplayInputs(){\r\n    this.displayInputs = [];\r\n    let foundActiveInput:boolean = false;\r\n    for(let inputId in this.formInputIds){\r\n      if(!foundActiveInput){\r\n        let input = this.formInputs[inputId];\r\n        if(input.status==SimpleConversationFormInputStatus.active){\r\n          foundActiveInput = true;\r\n        }\r\n        else{\r\n          this.displayInputs.push(input);\r\n        }\r\n      }\r\n    }\r\n    let container = this.displayContainer.nativeElement;\r\n    setTimeout(() => {\r\n      container.scrollTop = container.scrollHeight;\r\n    }, 200);\r\n\r\n  }\r\n}\r\n","<table class=\"simple-conversation-form-container\">\r\n  <tr>\r\n    <td class=\"simple-conversation-form-display-area\">\r\n      <div #displayContainer style=\"height: calc(100%);overflow: auto;\">\r\n        <table style=\"height:100%;width:100%\">\r\n          <tr>\r\n            <td style=\"padding: 0px;border: none;vertical-align: bottom;\">\r\n              <ng-container *ngFor=\"let displayInput of displayInputs\">\r\n                <div>\r\n                  <ng-container [ngTemplateOutlet]=\"displayInput.templateOutlet\"></ng-container>\r\n                </div>\r\n              </ng-container>\r\n            </td>\r\n          </tr>\r\n        </table>\r\n    </div>\r\n    </td>\r\n  </tr>\r\n  <tr>\r\n    <td class=\"simple-conversation-form-input-area\">\r\n      <ng-container *ngIf=\"activeInput\">\r\n        <ng-container [ngTemplateOutlet]=\"activeInput.templateOutlet\"></ng-container>\r\n      </ng-container>\r\n    </td>\r\n  </tr>\r\n</table>\r\n\r\n","import { Component, ContentChild, EventEmitter, Input, OnChanges, Output, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { SimpleExtensionMethods } from '../../utilities/simple-extension-methods';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\n\r\n@Component({\r\n    selector: 'simple-fields-customizer,[simple-fields-customizer]',\r\n    templateUrl: './simple-fields-customizer.component.html',\r\n    standalone: false\r\n})\r\nexport class SimpleFieldsCustomizerComponent extends SimpleBaseClass implements OnChanges{\r\n  @ContentChild(\"customizerTemplate\") customizerTemplate:TemplateRef<any>;\r\n  @Input() autoApply:boolean = false;\r\n  @Input() fields:any[] = [];\r\n  @Output() applyCustomization: EventEmitter<any> = new EventEmitter<any>();\r\n  functions:any = {};\r\n  listFields:any[] = [];\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if(changes[\"fields\"]!=undefined){\r\n      this.setCustomizationFields();\r\n    }\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    this.setCustomizationFields();\r\n  }\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.setCustomizationFields();\r\n    this.setElementActions();\r\n  }\r\n\r\n  apply(){\r\n    let event = this.listFields;\r\n    let newFields:any[] = [];\r\n    this.listFields.forEach((field:any)=>{\r\n      let dataField = field[\"dataField\"];\r\n      let currentField = this.fields.filter(item => item.dataField == dataField);\r\n      if(currentField){\r\n        newFields.push(currentField);\r\n      }\r\n    });\r\n    this.fields = newFields;\r\n    this.applyCustomization.emit(this.fields);\r\n    this.events.execute(\"applyCustomization\",this.fields);\r\n  }\r\n\r\n  drop(event: CdkDragDrop<string[]>) {\r\n    moveItemInArray(this.listFields, event.previousIndex, event.currentIndex);\r\n    if(this.autoApply){\r\n      this.apply();\r\n    }\r\n  }\r\n\r\n  getCustomizedFieldsList(){\r\n    return this.listFields;\r\n  }\r\n\r\n  fieldVisibilityChange(column:any){\r\n    if(this.autoApply){\r\n      this.apply();\r\n    }\r\n  }\r\n\r\n  setElementActions(){\r\n    let object = this;\r\n    let element:Element = this.elementRef.nativeElement;\r\n    let buttons = element.querySelectorAll('[sim-fields-customization-apply]');\r\n    buttons.forEach((button:Element) => {\r\n      button.addEventListener(\"click\",function(e:any){\r\n        object.apply();\r\n      });\r\n    });\r\n  }\r\n\r\n  setCustomizationFields(fields:any = null){\r\n    if(fields ==null){\r\n      fields = this.fields;\r\n    }\r\n    this.listFields = SimpleExtensionMethods.objectClone(fields);\r\n  }\r\n\r\n}\r\n","<ul class=\"srl-fields-customizer\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n  <ng-container *ngFor=\"let column of listFields;let index\">\r\n    <li cdkDrag class=\"srl-fields-customizer-field-item\">\r\n      <ng-container *ngIf=\"customizerTemplate!=undefined; else defaultCustomizationTemplate\">\r\n        <ng-container *ngTemplateOutlet=\"customizerTemplate; context: { $implicit: column, index: index}\">\r\n        </ng-container>\r\n      </ng-container>\r\n      <ng-template #defaultCustomizationTemplate>\r\n        <simple-input-check [valueWhenChecked]=\"true\" [valueWhenUnchecked]=\"false\" [record]=\"column\" [isArrayValue]=\"false\"\r\n          dataField=\"visible\" (change)=\"fieldVisibilityChange(column)\"/>\r\n        {{ column.title }}\r\n      </ng-template>\r\n    </li>\r\n  </ng-container>\r\n</ul>\r\n<ng-content></ng-content>\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\nimport { SimpleInputComponent } from '../inputs/simple-inputs/simple-input/simple-input.component';\r\n\r\n@Component({\r\n  selector: '[simple-filters]',\r\n  templateUrl: './simple-filters.component.html',\r\n  standalone: false\r\n})\r\nexport class SimpleFiltersComponent extends SimpleBaseClass implements OnInit, AfterViewInit {\r\n  @Input() autoApply: boolean = false;\r\n  @Input() fields: any[] = [];\r\n  @Input() mode: string = \"simple\";\r\n  @Input() inputTemplates: any = {};\r\n  @Input() template: TemplateRef<any>;\r\n  @Input() queryInput: SimpleInputComponent | undefined;\r\n  @Output() applyFilters: EventEmitter<any> = new EventEmitter<any>();\r\n  @ViewChild(\"filterQueryInput\") filterQueryInput: SimpleInputComponent | undefined;\r\n  @ViewChild(\"filterQueryInputTemplate\") filterQueryInputTemplate: TemplateRef<any>;\r\n  functions: any = {};\r\n  simpleFilters: any = {};\r\n\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.setElementActions();\r\n  }\r\n\r\n  apply() {\r\n    let event = this.getFiltersObject();\r\n    this.applyFilters.emit(event);\r\n    this.events.execute(\"applyFilters\", event);\r\n  }\r\n\r\n\r\n  filterInputChanged(event: any) {\r\n    if (this.autoApply) {\r\n      this.apply();\r\n    }\r\n  }\r\n\r\n  getFiltersObject() {\r\n    let result: any[] = [];\r\n    Object.keys(this.simpleFilters).forEach((key) => {\r\n      let value = this.simpleFilters[key];\r\n      if (value != undefined && value != null && value != \"\") {\r\n        result.push({ \"field\": key, \"operator\": \"like\", \"value\": value });\r\n      }\r\n    });\r\n    let query: string = \"\";\r\n    if (this.filterQueryInput) {\r\n      query = this.filterQueryInput.value;\r\n    }\r\n    else if (this.queryInput) {\r\n      query = this.queryInput.value;\r\n    }\r\n    let queryFilters: any[] = [];\r\n    if (query && query.trim() != \"\") {\r\n      this.fields.forEach((field: any) => {\r\n        if (field[\"dataField\"] != undefined) {\r\n          if (field[\"visible\"] != false) {\r\n            queryFilters.push({ \"field\": field[\"dataField\"], \"operator\": \"like\", \"value\": query });\r\n          }\r\n        }\r\n      });\r\n    }\r\n    if (queryFilters.length > 0) {\r\n      result.push({ \"filters\": queryFilters, \"operator\": \"OR\" })\r\n    }\r\n    let filtersObject = { \"filters\": result, \"operator\": \"AND\" };\r\n    return filtersObject;\r\n  }\r\n\r\n  setElementActions() {\r\n    let object = this;\r\n    let element: Element = this.elementRef.nativeElement;\r\n    let buttons = element.querySelectorAll('[sim-filters-apply]');\r\n    buttons.forEach((button: Element) => {\r\n      button.addEventListener(\"click\", function (e: any) {\r\n        object.apply();\r\n      });\r\n    });\r\n  }\r\n\r\n}\r\n","<ng-template #filterQueryInputTemplate let-class=\"class\" let-style=\"style\" let-placeholder=\"placeholder\">\r\n  <simple-input\r\n    #filterQueryInput\r\n    [class]=\"'simple-filters-query-input '+class\"\r\n    [style]=\"style\"\r\n    [placeholder]=\"placeholder?placeholder:'Search'\"\r\n    (doneTyping)=\"filterInputChanged($event)\"></simple-input>\r\n</ng-template>\r\n<ng-container *ngFor=\"let field of fields;let index = index\">\r\n  <ng-container *ngIf=\"template!=undefined;\">\r\n    <ng-container *ngTemplateOutlet=\"template;context:{field:field,filterInput:input,index:index}\">\r\n    </ng-container>\r\n  </ng-container>\r\n</ng-container>\r\n<ng-template #input let-field=\"field\" let-index=\"index\" let-class=\"class\" let-style=\"style\">\r\n  <ng-container>\r\n    <ng-container *ngIf=\"inputTemplates[field['dataField']]==undefined;\">\r\n      <simple-input\r\n      [record]=\"simpleFilters\"\r\n      [dataField]=\"field['dataField']\"\r\n      [class]=\"'simple-filters-input '+class\"\r\n      [style]=\"style\"\r\n      (doneTyping)=\"filterInputChanged($event)\"></simple-input>\r\n    </ng-container>\r\n    <ng-container *ngIf=\"inputTemplates[field['dataField']]!=undefined;\">\r\n      <ng-container *ngTemplateOutlet=\"inputTemplates[field['dataField']];context:{'field':field,index:index,'record':simpleFilters,'class':('simple-filters-input '+class),style:style}\">\r\n      </ng-container>\r\n    </ng-container>\r\n  </ng-container>\r\n</ng-template>\r\n<ng-content></ng-content>\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { SimpleAlertService } from '../../services/simple-alert.service';\r\nimport { SimplifyService } from '../../services/simplify.service';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\n\r\n@Component({\r\n    selector: 'simple-form, [simple-form]',\r\n    template: '<ng-content></ng-content>',\r\n    standalone: false\r\n})\r\nexport class SimpleFormComponent extends SimpleBaseClass implements OnInit {\r\n  @Input(\"ngForm\") ngForm!: NgForm;\r\n  @Input(\"invalidClass\") classInvalid: string = \"border-danger\";\r\n  @Output() formSubmit = new EventEmitter<any>();\r\n  @Output() onErrors = new EventEmitter<any>();\r\n  errors: any = {};\r\n\r\n  constructor(simplify: SimplifyService, elementRef: ElementRef, private simpleAlertService: SimpleAlertService) {\r\n    super(elementRef,simplify);\r\n    this.simplify.registerComponentInstance(this,elementRef);\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    if (this.ngForm) {\r\n      this.ngForm.ngSubmit.subscribe((event) => {\r\n        this.formSubmit.emit(event);\r\n        this.validate();\r\n      });\r\n    }\r\n  }\r\n\r\n  validate() {\r\n    let object = this;\r\n    let controlsObject: any = this.ngForm.form.controls;\r\n    this.errors = {};\r\n    let formElement: Element = this.elementRef.nativeElement;\r\n    let labels: string[] = [];\r\n    Object.keys(controlsObject).forEach((key: any) => {\r\n      let controlErrors = controlsObject[key].errors;\r\n      let formControl = formElement.querySelector(\"[ng-reflect-name=\" + key + \"]\");\r\n      if (formControl && this.classInvalid != \"\") {\r\n        formControl.classList.remove(this.classInvalid);\r\n      }\r\n      if (controlErrors) {\r\n        if (formControl && this.classInvalid != \"\") {\r\n          if (this.classInvalid != \"\") {\r\n            formControl.classList.add(this.classInvalid);\r\n            let instanceId = formControl!.getAttribute(\"sim-component-instance-identifier\");\r\n            let isSimpleInput = formControl!.getAttribute(\"is-simple-input\");\r\n            if (instanceId && isSimpleInput) {\r\n              let simpleInputInstance = object.simplify.getComponentInstanceFromElement(formControl);\r\n              if (simpleInputInstance.label != \"\") {\r\n                labels.push(simpleInputInstance.label)\r\n              }\r\n            }\r\n          }\r\n        }\r\n        this.errors[key] = controlErrors;\r\n      }\r\n    });\r\n    if (Object.keys(this.errors).length > 0) {\r\n      this.onErrors.emit(this.errors);\r\n    }\r\n  }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, Input, Renderer2, ViewChild } from '@angular/core';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\nimport { SimplifyService } from '../../services/simplify.service';\r\n\r\n@Component({\r\n  selector: 'simple-iframe-content',\r\n  standalone:false,\r\n  templateUrl: './simple-iframe-content.component.html',\r\n  styleUrl: './simple-iframe-content.component.css'\r\n})\r\nexport class SimpleIframeContentComponent extends SimpleBaseClass{\r\n  @ViewChild('iframeElement') iframeElement!: ElementRef;\r\n  @ViewChild('contentContainer') contentContainer!: ElementRef;\r\n  @Input() stylesheetUrls: string[] = [];\r\n  @Input() scriptUrls: string[] = [];\r\n  private mutationObserver!: MutationObserver;\r\n\r\n  constructor(simplify:SimplifyService,elementRef:ElementRef,private changeDetectorRef: ChangeDetectorRef, private renderer: Renderer2) {\r\n    super(elementRef,simplify);\r\n  }\r\n\r\n  override ngAfterViewInit() {\r\n    super.ngAfterViewInit();\r\n    this.updateIframeContent();\r\n    this.mutationObserver = new MutationObserver(() => this.updateIframeContent());\r\n    this.mutationObserver.observe(this.contentContainer.nativeElement, {\r\n      childList: true,\r\n      subtree: true,\r\n      attributes: true,\r\n      characterData: true\r\n    });\r\n    this.changeDetectorRef.detectChanges();\r\n  }\r\n\r\n  printIframe() {\r\n    const iframe = this.iframeElement.nativeElement;\r\n    if (iframe.contentWindow) {\r\n      iframe.contentWindow.focus();\r\n      iframe.contentWindow.print();\r\n    }\r\n  }\r\n\r\n  updateIframeContent() {\r\n    const iframeDoc = this.iframeElement.nativeElement.contentDocument || this.iframeElement.nativeElement.contentWindow.document;\r\n    const content = this.contentContainer.nativeElement.innerHTML;\r\n    let iframeHtml = '<html><head>';\r\n    for(let link of this.stylesheetUrls){\r\n      iframeHtml+=`<link rel=\"stylesheet\" href=\"${link}\"/>`;\r\n    }\r\n    for(let link of this.scriptUrls){\r\n      iframeHtml+=`<script src=\"${link}\"/>`;\r\n    }\r\n    iframeHtml+='</head><body>'+content+'</body></html>';\r\n    iframeDoc.open();\r\n    iframeDoc.write(iframeHtml);\r\n    iframeDoc.close();\r\n  }\r\n\r\n  override ngOnDestroy() {\r\n    super.ngOnDestroy();\r\n    if (this.mutationObserver) {\r\n      this.mutationObserver.disconnect();\r\n    }\r\n  }\r\n}\r\n","<iframe #iframeElement style=\"width: 100%; height: 100%; border: none;\"></iframe>\r\n<div #contentContainer style=\"display: none;\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { AfterContentInit, AfterViewInit, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { SimplifyService } from '../../services/simplify.service';\r\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\nimport { SimpleInputComponent } from '../inputs/simple-inputs/simple-input/simple-input.component';\r\nimport { SimpleExtensionMethods } from '../../utilities/simple-extension-methods';\r\n@Component({\r\n    selector: 'simple-repeating-items,[simple-repeating-items]',\r\n    template: `\r\n  <ng-container *ngFor=\"let item of items; let index = index;\" #templateRef>\r\n    <ng-container *ngTemplateOutlet=\"template;context: { $implicit: item,index,params:{'item':item,'index':index,'simpleRepeatingItemsInstance':this,'isLastItem':(index==items.length-1)}};\"></ng-container>\r\n  </ng-container>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class SimpleRepeatingItemsComponent extends SimpleBaseClass implements AfterViewInit,AfterContentInit {\r\n  @ContentChild(TemplateRef) template: TemplateRef<any>;\r\n  @Input() items:any[] = [];\r\n  @Input() select:any = false;\r\n  @Input() selectMultiple:any = false;\r\n  @Input() selectOnItem:any = false;\r\n  @Input() autoRemove:any = true;\r\n  @Output() confirmItemRemove: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() itemAdded: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() itemDataUpdated: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() itemFocusChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() itemRemoved: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() itemSelectionChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() itemsChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() inputChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() inputFocus: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() inputKeyUp: EventEmitter<any> = new EventEmitter<any>();\r\n  _disabled:boolean = false;\r\n  @Input()\r\n  get disabled():boolean{\r\n    return this._disabled;\r\n  };\r\n  set disabled(value:boolean){\r\n    this._disabled = value;\r\n    this.setSimpleInputsDisabled(value);\r\n  };\r\n  _readonly:boolean = false;\r\n  @Input()\r\n  get readonly():boolean{\r\n    return this._readonly;\r\n  };\r\n  set readonly(value:boolean){\r\n    this._readonly = value;\r\n    this.setSimpleInputsReadonly(value);\r\n  };\r\n  focusIndex:number = -1;\r\n  activeItemDataChanged:boolean = false;\r\n  functions:any = {};\r\n  itemsObject:any = {};\r\n  id:any = \"\";\r\n  viewInitializied = false;\r\n\r\n  constructor(simplify:SimplifyService,elementRef:ElementRef,private changeDetectorRef:ChangeDetectorRef){\r\n    super(elementRef,simplify);\r\n    this.id=simplify.generateId();\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n  }\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.simplify.registerComponentInstance(this,this.elementRef);\r\n    this.viewInitializied = true;\r\n  }\r\n\r\n  appendItem(item:any = {}) {\r\n    this.items.push(item);\r\n  }\r\n\r\n  appendItems(items:any[] = []) {\r\n    items.forEach((item:any)=>{\r\n      this.appendItem(item);\r\n    });\r\n  }\r\n\r\n  clearItems(notifyCountChange:boolean = false) {\r\n    let object = this;\r\n    object.items = [];\r\n    object.itemsObject = [];\r\n    if (Object.keys(object.items).length > 0) {\r\n      object.items = [];\r\n    }\r\n  }\r\n\r\n  getSelectedItems() {\r\n    let object = this;\r\n    let items: any[] = [];\r\n    Object.keys(object.itemsObject).forEach((index: any) => {\r\n      let itemObject:any = object.itemsObject[index];\r\n      let selectInputs = itemObject[\"selectInputs\"];\r\n      let selected = false;\r\n      selectInputs.forEach((selectComponent:SimpleInputComponent) => {\r\n        if (selectComponent.checked) {\r\n          selected = true;\r\n        }\r\n      });\r\n      if(selected){\r\n        items.push(this.items[index]);\r\n      }\r\n    });\r\n    return items;\r\n  }\r\n\r\n  getSelectionDetails() {\r\n    let object = this;\r\n    let records: any[] = [];\r\n    let indexes: any[] = [];\r\n    Object.keys(object.itemsObject).forEach((index: any) => {\r\n      let itemObject:any = object.itemsObject[index];\r\n      let selectInputs = itemObject[\"selectInputs\"];\r\n      let selected = false;\r\n      selectInputs.forEach((selectComponent:SimpleInputComponent) => {\r\n        if (selectComponent.checked) {\r\n          selected = true;\r\n        }\r\n      });\r\n      if(selected){\r\n        indexes.push(index);\r\n        records.push(this.items[index]);\r\n      }\r\n    });\r\n    return { selectedIndexes:indexes,selectedItems: records };\r\n  }\r\n\r\n  getValidItems(){\r\n    let object=this;\r\n    let items : any= [];\r\n    object.items.forEach((value)=>{\r\n      let fields = Object.keys(value);\r\n      let valid = false;\r\n      fields.forEach(field => {\r\n        if(object.simplify.validValue(value[field])){\r\n          valid = true;\r\n        }\r\n      });\r\n      if(valid){\r\n        items.push(SimpleExtensionMethods.objectClone(value));\r\n      }\r\n    });\r\n    return items;\r\n  }\r\n\r\n  updateItemIndex(currentIndex:number,newIndex:number) {\r\n    moveItemInArray(this.items, currentIndex, newIndex);\r\n    this.changeDetectorRef.detectChanges();\r\n  }\r\n\r\n  notifyElementAdded(event:any){\r\n    this.itemsObject[event[\"index\"]] = event;\r\n    this.itemsObject[event[\"index\"]][\"selectInputs\"] = [];\r\n    this.setRepeatingElementActions(event);\r\n    this.itemAdded.emit(event);\r\n    this.itemsChanged.emit();\r\n    this.events.execute(\"itemAdded\",event);\r\n    this.events.execute(\"itemsChanged\");\r\n  }\r\n\r\n  notifyElementUpdated(event:any){\r\n    // this.itemsObject[event[\"index\"]] = event;\r\n    // this.itemsObject[event[\"index\"]][\"selectInputs\"] = [];\r\n    // this.setRepeatingElementActions(event);\r\n    // this.itemAdded.emit(event);\r\n    // this.itemsChanged.emit();\r\n    // this.events.execute(\"itemAdded\",event);\r\n    // this.events.execute(\"itemsChanged\");\r\n  }\r\n\r\n  prependItem(item = {}) {\r\n    this.items.unshift(item);\r\n  }\r\n\r\n  removeItem(item:any){\r\n    let object=this;\r\n    let index=object.items.indexOf(item);\r\n    if(index>=0){\r\n      object.removeItemAtIndex(index);\r\n    }\r\n  }\r\n\r\n  removeItemAtIndex(index:number){\r\n    let temp = SimpleExtensionMethods.objectClone(this.items[index]);\r\n    let removedDetails = {\r\n      index: index,\r\n      data: temp,\r\n    };\r\n    SimpleExtensionMethods.arrayRemoveByIndex(this.items,index);\r\n    this.changeDetectorRef.detectChanges();\r\n    this.itemRemoved.emit(removedDetails);\r\n    this.itemsChanged.emit();\r\n    this.events.execute(\"itemRemoved\",removedDetails);\r\n    this.events.execute(\"itemsChanged\",);\r\n  }\r\n\r\n  removeRepeatingItem(event:any){\r\n    let index:number = event[\"simpleRepeatingItem\"][\"index\"];\r\n    this.removeItemAtIndex(index);\r\n  }\r\n\r\n  setAllItemsSelect(selected:boolean = true){\r\n    let object = this;\r\n    Object.keys(object.itemsObject).forEach((index: any) => {\r\n      let itemObject:any = object.itemsObject[index];\r\n      let selectInputs = itemObject[\"selectInputs\"];\r\n      selectInputs.forEach((selectComponent:SimpleInputComponent) => {\r\n        selectComponent.checked = selected;\r\n      });\r\n    });\r\n    let event:any = {\r\n      \"selectedItems\":this.getSelectedItems(),\r\n      \"checked\":selected,\r\n    };\r\n    this.itemSelectionChanged.emit(event);\r\n  }\r\n\r\n  setRepeatingElementActions(params:any){\r\n    let object = this;\r\n    let repeatElement = params[\"element\"];\r\n    let elementsDelete = repeatElement.querySelectorAll('[sim-repeating-item-remove]');\r\n    elementsDelete.forEach((element:Element) => {\r\n      element.addEventListener(\"click\",function(e:any){\r\n        if(object.autoRemove){\r\n          object.removeItem(params[\"item\"]);\r\n        }\r\n        else{\r\n          let eventData = {\"item\":params[\"item\"],\"index\":params[\"index\"],\"callback\":(result:any)=>{\r\n            if(result == true){\r\n              object.removeItem(params[\"item\"]);\r\n            }\r\n          }};\r\n          object.confirmItemRemove.emit(eventData);\r\n        }\r\n      });\r\n    });\r\n    let checkElements = repeatElement.querySelectorAll('[sim-repeating-item-select]');\r\n    let selectInputs:any = [];\r\n    checkElements.forEach((element:Element) => {\r\n      let inputElement:SimpleInputComponent = object.simplify.getComponentInstanceFromElement(element);\r\n      inputElement.name = \"select_\"+this.id;\r\n      inputElement.setElementName();\r\n      inputElement.on(\"change\",()=>{\r\n        let event:any = {\r\n          \"item\":params[\"item\"],\r\n          \"checked\":inputElement.checked,\r\n        };\r\n        this.itemSelectionChanged.emit(event);\r\n      });\r\n      selectInputs.push(inputElement);\r\n    });\r\n    this.itemsObject[params[\"index\"]][\"selectInputs\"] = selectInputs;\r\n    this.setSimpleInputChanges(params);\r\n    this.changeDetectorRef.detectChanges();\r\n  }\r\n\r\n  setSimpleInputChanges(params:any){\r\n    let object = this;\r\n    let repeatElement = params[\"element\"];\r\n    let index = params[\"index\"];\r\n    let simpleInputs = repeatElement.querySelectorAll('[is-simple-input]');\r\n    simpleInputs.forEach((element:Element) => {\r\n      let simpleInputInstance = object.simplify.getComponentInstanceFromElement(element);\r\n      simpleInputInstance.on(\"blur\",(event:any)=>{\r\n        object.inputKeyUp.emit(event);\r\n        object.events.execute(\"inputKeyDown\",event);\r\n      });\r\n      simpleInputInstance.on(\"change\",(event:any)=>{\r\n        object.activeItemDataChanged = true;\r\n        object.itemsObject[index][\"simpleRepeatingItem\"][\"item\"][\"__simpleRepeatingItemChanged\"] = true;\r\n        object.inputChanged.emit(event);\r\n        object.events.execute(\"inputChanged\",);\r\n      });\r\n      simpleInputInstance.on(\"focus\",(event:any)=>{\r\n        object.inputFocus.emit(event);\r\n        if(this.focusIndex != -1){\r\n          if(this.focusIndex!=index){\r\n            if(object.activeItemDataChanged){\r\n              object.itemDataUpdated.emit(object.itemsObject[this.focusIndex]);\r\n            }\r\n            let focusDetails:any = {\"previousIndex\":this.focusIndex,\"newIndex\":index};\r\n            this.itemFocusChanged.emit(focusDetails);\r\n            object.events.execute(\"itemFocusChanged\",focusDetails);\r\n            object.activeItemDataChanged = false;\r\n          }\r\n        }\r\n        this.focusIndex=index;\r\n        object.events.execute(\"inputFocus\",event);\r\n      });\r\n      simpleInputInstance.on(\"keydown\",(event:any)=>{\r\n        object.inputKeyUp.emit(event);\r\n        object.events.execute(\"inputKeyDown\",event);\r\n      });\r\n    });\r\n  }\r\n\r\n  setSimpleInputsDisabled(disabled:boolean){\r\n    let object = this;\r\n    if(this.elementRef){\r\n      if(this.elementRef.nativeElement){\r\n        let simpleInputs = this.elementRef.nativeElement.querySelectorAll('[is-simple-input]');\r\n        simpleInputs.forEach((element:Element) => {\r\n          let simpleInputInstance = object.simplify.getComponentInstanceFromElement(element);\r\n          simpleInputInstance.disabled = disabled;\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  setSimpleInputsReadonly(readonly:boolean){\r\n    let object = this;\r\n    if(this.elementRef){\r\n      if(this.elementRef.nativeElement){\r\n        let simpleInputs = this.elementRef.nativeElement.querySelectorAll('[is-simple-input]');\r\n        simpleInputs.forEach((element:Element) => {\r\n          let simpleInputInstance = object.simplify.getComponentInstanceFromElement(element);\r\n          simpleInputInstance.readonly = readonly;\r\n        });\r\n\r\n      }\r\n    }\r\n  }\r\n\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { SimpleDataOperations } from '../../utilities/simple-data-operations';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\nimport { SimpleFiltersComponent } from '../simple-filters/simple-filters.component';\r\nimport { SimpleRepeatingItemsComponent } from '../simple-repeating-items/simple-repeating-items.component';\r\nimport { AjaxService } from '../../services/ajax.service';\r\nimport { SimplifyService } from '../../services/simplify.service';\r\nimport { ViewportService } from '../../services/viewport.service';\r\n\r\n@Component({\r\n    selector: 'simple-repeater,[simple-repeater]',\r\n    template: '<ng-content></ng-content>',\r\n    standalone: false\r\n})\r\nexport class SimpleRepeaterComponent extends SimpleBaseClass implements OnInit, AfterViewInit {\r\n  @ContentChild(SimpleFiltersComponent) simpleFilters: SimpleFiltersComponent | undefined;\r\n  @ContentChild(SimpleRepeatingItemsComponent) simpleRepeatingItems: SimpleRepeatingItemsComponent;\r\n  @Input() continueAddRow: boolean = true;\r\n  @Input() disabled: boolean = false;\r\n  @Input() exportRecordsFunction:any = null;\r\n  @Input() fetchAll: boolean = false;\r\n  @Input() fetchCount: number = 50;\r\n  @Input() fetchIndex: number = 0;\r\n  @Input() fetchRecordsFunction: any = null;\r\n  @Input() fetchRecordsUrl: string = \"\";\r\n  @Input() fetchRequestData: any = {};\r\n  @Input() fetchRequestDataFunction: any = null;\r\n  @Input() insertMode: string = \"append\";\r\n  @Input() itemUpdateClass: string;\r\n  @Input() removeEffect: string = \"\";\r\n  @Input() scrollAutoFetch: boolean = true;\r\n  @Input() sort: any = {};\r\n  @Output() countChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() recordsFetched: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() totalRecordsUpdated: EventEmitter<any> = new EventEmitter<any>();\r\n  currentCount: number = 0;\r\n  fetch: any = {\r\n    abort: false,\r\n    id: -1,\r\n    fetching: false,\r\n    index: -1,\r\n    processIdle: true,\r\n    available: true,\r\n    totalRecords: 0,\r\n  };\r\n  functions: any = {\r\n    itemAdded: {},\r\n    recordsFetched: {},\r\n    itemRemoved: {},\r\n    itemsCountChanged: {},\r\n    totalRecordsUpdated: {},\r\n  };\r\n  id = this.simplify.generateId();\r\n  index = {\r\n    filter: -1,\r\n    current: -1,\r\n    lastTab: -1,\r\n    new: -1,\r\n    previous: -1,\r\n  };\r\n  get items():any[]{\r\n    let result:any = [];\r\n    if(this.simpleRepeatingItems){\r\n      result = this.simpleRepeatingItems.items;\r\n    }\r\n    return result;\r\n  }\r\n  set items(value:any[]){\r\n    if(this.simpleRepeatingItems){\r\n      this.simpleRepeatingItems.items = value;\r\n    }\r\n    else{\r\n      setTimeout(() => {\r\n        this.items = value;\r\n      }, 100);\r\n    }\r\n  }\r\n  itemsCount: number = 0;\r\n  itemObjects: any[] = [];\r\n  remove = { effect: 'shrink-fade' };\r\n  scrollAutoFetchElement: any;\r\n  scrollAutoFetchElementTimeout: any = null;\r\n  simpleRepeatingItemsInitCallback: any = () => { };\r\n  simpleDataOperations:SimpleDataOperations = new SimpleDataOperations();\r\n  sortOrder: any = {};\r\n  _isRepeatingItemsInitialized: boolean = false;\r\n  viewInitialized = false;\r\n  constructor(\r\n    elementRef: ElementRef,\r\n    simplify: SimplifyService,\r\n    protected ajaxService: AjaxService,\r\n    protected changeDetection: ChangeDetectorRef,\r\n    protected viewportService: ViewportService,\r\n  ) {\r\n    super(elementRef,simplify);\r\n  }\r\n\r\n  override ngAfterViewInit() {\r\n    super.ngAfterViewInit();\r\n    this.initSimpleRepeatingItems();\r\n    this.initFilters();\r\n    this.viewInitialized = true;\r\n  }\r\n\r\n  appendItem(item: any) {\r\n    this.simpleRepeatingItems.appendItem(item);\r\n  }\r\n\r\n  appendItems(items: Array<any>) {\r\n    this.simpleRepeatingItems.appendItems(items);\r\n  }\r\n\r\n  applyFilter() {\r\n    let object = this;\r\n    object.index['filter']++;\r\n    let filterCallIndex = object.index['filter'];\r\n    setTimeout(() => {\r\n      object.applyFilterExecute(filterCallIndex);\r\n    }, 600);\r\n  }\r\n\r\n  applyFilterExecute(filterCallIndex: any) {\r\n    let object = this;\r\n    if (filterCallIndex == object.index['filter']) {\r\n      object.clearItems();\r\n      object.fetchRecords();\r\n    }\r\n  }\r\n\r\n  clearItems(notifyCountChange: boolean = false) {\r\n    this.simpleRepeatingItems.clearItems();\r\n    this.itemsCount = 0;\r\n    if (notifyCountChange) {\r\n      this.itemsCountChanged();\r\n    }\r\n  }\r\n\r\n  debug(message: any) {\r\n    this.simplify.debug(message);\r\n  }\r\n\r\n  fetchNextRecords(requestData: any = {}, fetchCallback: any = null) {\r\n    let object = this;\r\n    if (object.fetch['processIdle'] && object.fetch['available'] && !object.fetch['abort'] && (object.fetchRecordsUrl != \"\" || object.fetchRecordsFunction != null)) {\r\n      object.fetch['processIdle'] = false;\r\n      object.fetch['index']++;\r\n      if (Object.keys(requestData).length == 0) {\r\n        requestData = object.fetchRecordsRequestData();\r\n      }\r\n      let currentFetchId = object.fetch['id'];\r\n      if(fetchCallback == null){\r\n        fetchCallback = function (response: any) {\r\n          object.debug(\"In Default Fetch Callback\");\r\n          if (currentFetchId == object.fetch['id']) {\r\n            if (Array.isArray(response)) {\r\n              object.debug(\"Is array so by default appending items\");\r\n              object.appendItems(response);\r\n            }\r\n            else {\r\n              if (response[\"status\"] == \"success\") {\r\n                if (response[\"records\"] != undefined) {\r\n                  if (response[\"records\"].length > 0) {\r\n                    object.debug(\"Appending items from response records\");\r\n                    object.appendItems(response[\"records\"]);\r\n                  } else {\r\n                    object.debug(\"No more records from response\");\r\n                    object.fetch['available'] = false;\r\n                  }\r\n                }\r\n                else {\r\n                  console.error(\"Records not found in fetch response\", response);\r\n                }\r\n                if (response['total_records'] != undefined) {\r\n                  object.itemsCount = response['total_records'];\r\n                }\r\n              }\r\n              else {\r\n                console.error(response);\r\n              }\r\n            }\r\n            object.events.execute(\r\n              'recordsFetched'\r\n            );\r\n            object.recordsFetched.emit({});\r\n            object.itemsCountChanged();\r\n          } else {\r\n            object.debug(\"Fetch Id changed while fetching\");\r\n          }\r\n          object.fetch['processIdle'] = true;\r\n        };\r\n      }\r\n      if (object.fetchRecordsUrl != \"\") {\r\n        this.debug(\"Getting Records by AJAX\");\r\n        object.ajaxService.getPromise(object.fetchRecordsUrl, requestData, object.fetch['method']).then(fetchCallback);\r\n      }\r\n      else {\r\n        this.debug(\"Getting Records by Function\");\r\n        object.fetchRecordsFunction(requestData, (response: any) => {\r\n          fetchCallback(response);\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  fetchRecords() {\r\n    let object = this;\r\n    object.reset();\r\n    object.fetch['id']++;\r\n    object.fetchNextRecords();\r\n  }\r\n\r\n  fetchRecordsRequestData() {\r\n    let object = this;\r\n    let requestData: any = {};\r\n    if (object.fetchAll == false) {\r\n      requestData['start_index'] = object.fetch['index'];\r\n      requestData['record_count'] = object.fetchCount;\r\n    }\r\n    if (object.fetch['index'] == 0) {\r\n      requestData['get_total_count'] = 1;\r\n    }\r\n    if (this.simpleFilters != undefined) {\r\n      requestData[\"filters\"] = this.simpleFilters.getFiltersObject();\r\n    }\r\n    let orderBy = this.getOrderByString();\r\n    if (orderBy != \"\") {\r\n      requestData[\"order_by\"] = orderBy;\r\n    }\r\n    return requestData;\r\n  }\r\n\r\n  getItemIndexByProperty(key: any, value: any) {\r\n    let object = this;\r\n    let result = null;\r\n    let keys = Object.keys(object.simpleRepeatingItems.items);\r\n    for (let i = 0; i < keys.length; i++) {\r\n      let index:any = keys[i];\r\n      if (object.simpleRepeatingItems.items[index][key] + '' == value + '') {\r\n        result = index;\r\n        break;\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getOrderByString() {\r\n    let object = this;\r\n    let orderByValues: string[] = [];\r\n    Object.keys(object.sortOrder).forEach((dataField: any) => {\r\n      orderByValues.push(dataField + ' ' + object.sortOrder[dataField]);\r\n    });\r\n    let orderByString = orderByValues.join(',');\r\n    return orderByString;\r\n  }\r\n\r\n  initSimpleRepeatingItems() {\r\n    if (this.simpleRepeatingItems == undefined) {\r\n      if (this.elementRef && this.simpleRepeatingItems == undefined) {\r\n        let repeatingItemsElement = this.elementRef.nativeElement.querySelectorAll(\"[simple-repeating-items]\");\r\n        if (repeatingItemsElement.length > 0) {\r\n          this.simpleRepeatingItems = this.simplify.getComponentInstanceFromElement(repeatingItemsElement[0]);\r\n        }\r\n      }\r\n    }\r\n    if (this.simpleRepeatingItems && !this._isRepeatingItemsInitialized) {\r\n      this.simpleRepeatingItemsInitCallback();\r\n      this._isRepeatingItemsInitialized = true;\r\n      this.simpleRepeatingItems.on(\"itemAdded\", (event: any) => {\r\n        this.itemObjects[event[\"index\"]] = event;\r\n        this.setRepeatingElementActions(event);\r\n        this.setScrollAutoFetchElement(event);\r\n      });\r\n      this.simpleRepeatingItems.on(\"itemRemoved\", (event: any) => {\r\n        this.updateCount(-1);\r\n        this.itemsCountChanged();\r\n      });\r\n      this.fetchRecords();\r\n    }\r\n\r\n  }\r\n\r\n  initFilters() {\r\n    if (this.simpleFilters != undefined) {\r\n      this.simpleFilters.on(\"applyFilters\", () => {\r\n        this.fetchRecords();\r\n      });\r\n    }\r\n  }\r\n\r\n  itemsCountChanged() {\r\n    let object = this;\r\n    object.currentCount = Object.keys(this.simpleRepeatingItems.items).length;\r\n    if (object.itemsCount < object.currentCount) {\r\n      object.itemsCount = object.currentCount;\r\n    }\r\n    let countDetails = {\r\n      items: object.currentCount,\r\n      total: object.itemsCount,\r\n      object: object,\r\n    };\r\n    object.events.execute(\r\n      'countChanged',\r\n      countDetails\r\n    );\r\n    object.countChanged.emit(countDetails);\r\n  }\r\n\r\n  manipulateNewData(element: any, elementData: any) {\r\n    return elementData;\r\n  }\r\n\r\n  prependItem(item = {}) {\r\n    this.simpleRepeatingItems.prependItem(item);\r\n  }\r\n\r\n  removeItemAtIndex(index: any) {\r\n    this.simpleRepeatingItems.removeItemAtIndex(index);\r\n  }\r\n\r\n  removeItemByProperty(key: any, value: any) {\r\n    let object = this;\r\n    let index = object.getItemIndexByProperty(key, value);\r\n    object.removeItemAtIndex(index);\r\n  }\r\n\r\n  removeRepeatingItem(repeatingItem: any) {\r\n    this.simpleRepeatingItems.removeRepeatingItem(repeatingItem);\r\n  }\r\n\r\n  reset(notifyCountChange: boolean = false) {\r\n    let object = this;\r\n    object.itemsCount = 0;\r\n    object.currentCount = 0;\r\n    object.fetch['fetching'] = false;\r\n    object.fetch['available'] = true;\r\n    object.fetch['index'] = -1;\r\n    object.fetch['id'] = -1;\r\n    object.fetch['totalRecords'] = 0;\r\n    object.clearItems(notifyCountChange);\r\n    object.continueAddRow = true;\r\n  }\r\n\r\n  setScrollAutoFetchElement(event: any) {\r\n    let object = this;\r\n    let autoScrollFetchIndex = this.simpleRepeatingItems.items.length - 5;\r\n    if (autoScrollFetchIndex > 0 && this.simpleRepeatingItems.items.length >= object.fetchCount) {\r\n      if (parseInt(event[\"index\"]) == autoScrollFetchIndex) {\r\n        if (object.scrollAutoFetch == true) {\r\n          object.viewportService.addViewportChangeListener(event[\"elementRef\"].nativeElement, (isVisible: boolean) => {\r\n            if (isVisible) {\r\n              object.viewportService.removeViewportChangeListener(\r\n                event[\"elementRef\"].nativeElement\r\n              );\r\n              if (object.fetch['processIdle'] && object.fetch['available']) {\r\n                object.fetchNextRecords();\r\n              }\r\n            }\r\n          }\r\n          );\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  setItemByIndex(index: number, item: any) {\r\n    this.simpleRepeatingItems.items[index] = item;\r\n  }\r\n\r\n  setItemByProperty(key: any, item: any) {\r\n    if (this.simplify.validValue(key) && this.simplify.validValue(item)) {\r\n      let itemIndex = this.simpleRepeatingItems.items.findIndex((data: any) => data[key] === item[key]);\r\n      if (itemIndex > -1) {\r\n        this.setItemByIndex(itemIndex, item);\r\n      }\r\n    }\r\n  }\r\n\r\n  setItems(items: Array<any>) {\r\n    let object = this;\r\n    object.reset(false);\r\n    object.simpleRepeatingItems.items = items;\r\n  }\r\n\r\n  updateCount(updateBy: number = 0) {\r\n    let object = this;\r\n    object.currentCount = Object.keys(object.simpleRepeatingItems.items).length;\r\n    object.itemsCount = object.itemsCount + updateBy;\r\n    if (object.itemsCount < object.currentCount) {\r\n      object.itemsCount = object.currentCount;\r\n    }\r\n  }\r\n\r\n\r\n  protected setRepeatingElementActions(params: any) {\r\n    let repeatElement: any = params[\"element\"];\r\n    let object = this;\r\n    // let elementsDelete = repeatElement.querySelectorAll('[sim-repeater-action-delete]');\r\n    // elementsDelete.forEach((element:Element) => {\r\n    //   element.addEventListener(\"click\",function(e:any){\r\n    //     object.simpleRepeatingItems.removeItem(params[\"item\"]);\r\n    //   });\r\n    // });\r\n  }\r\n\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2 } from '@angular/core';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\nimport { SimplifyService } from '../services/simplify.service';\r\n\r\n@Directive({\n    selector: '[simpleResize]',\n    standalone: false\n})\r\nexport class SimpleResizeDirective extends SimpleBaseClass {\r\n  @Input() resizeWidth: number;\r\n  @Output() resizeWidthChange = new EventEmitter<number>();\r\n\r\n  private startX: number;\r\n  private startWidth: number;\r\n  private resizableColumn: HTMLElement;\r\n\r\n  private mouseMoveListener: () => void;\r\n  private mouseUpListener: () => void;\r\n\r\n  constructor(private el: ElementRef, private renderer: Renderer2, simplify:SimplifyService) {\r\n    super(el,simplify);\r\n    this.resizableColumn = this.el.nativeElement;\r\n  }\r\n\r\n  override ngOnInit() {\r\n    super.ngOnInit();\r\n    if (this.resizeWidth) {\r\n      this.renderer.setStyle(this.resizableColumn, 'width', `${this.resizeWidth}px`);\r\n    }\r\n  }\r\n\r\n  @HostListener('mousedown', ['$event'])\r\n  onMouseDown(event: MouseEvent): void {\r\n    if (event.target instanceof HTMLElement && event.target.hasAttribute('sim-resize-handle-horizontal')) {\r\n      this.startX = event.pageX;\r\n      this.startWidth = this.resizableColumn.offsetWidth;\r\n\r\n      // Add event listeners for mousemove and mouseup\r\n      this.mouseMoveListener = this.renderer.listen('document', 'mousemove', this.onMouseMove.bind(this));\r\n      this.mouseUpListener = this.renderer.listen('document', 'mouseup', this.onMouseUp.bind(this));\r\n\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  onMouseMove(event: MouseEvent): void {\r\n    const diffX = event.pageX - this.startX;\r\n    const newWidth = this.startWidth + diffX;\r\n    this.renderer.setStyle(this.resizableColumn, 'width', `${newWidth}px`);\r\n    this.resizeWidthChange.emit(newWidth);\r\n  }\r\n\r\n  onMouseUp(): void {\r\n    // Remove event listeners\r\n    if (this.mouseMoveListener) {\r\n      this.mouseMoveListener();\r\n    }\r\n    if (this.mouseUpListener) {\r\n      this.mouseUpListener();\r\n    }\r\n  }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\r\nimport { SimpleRepeaterComponent } from '../simple-repeater/simple-repeater.component';\r\nimport { SimpleFieldsCustomizerComponent } from '../simple-fields-customizer/simple-fields-customizer.component';\r\nimport { SimpleLogger } from '../../utilities/simple-logger';\r\nimport { InputType } from '../../configs/enum';\r\n\r\n@Component({\r\n    selector: 'simple-records-list,[simple-records-list]',\r\n    templateUrl: './simple-records-list.component.html',\r\n    styleUrl: './simple-records-list.component.css',\r\n    standalone: false\r\n})\r\nexport class SimpleRecordsListComponent extends SimpleRepeaterComponent implements OnInit{\r\n  @ContentChild(SimpleFieldsCustomizerComponent) simpleFieldsCustomizer:SimpleFieldsCustomizerComponent|undefined;\r\n  @ViewChild('templateHead', { static: true }) templateHead: TemplateRef<any>;\r\n  @ViewChild('templateBody', { static: true }) templateBody: TemplateRef<any>;\r\n  @ViewChild('templateFoot', { static: true }) templateFoot: TemplateRef<any>;\r\n  @Input() templates:any = {};\r\n  @Input() isEditable:boolean = false;\r\n  @Input() fields:any = {};\r\n  @Input() selectAll:any = false;\r\n  @Input() getColumnDisplayTextFunction:any = (item:any,column:any)=>{\r\n    return this.getColumnDisplayText(item,column);\r\n  };\r\n  logger:SimpleLogger = new SimpleLogger();\r\n  InputType = InputType;\r\n  listFields:any[] = [];\r\n  customizeFields:any[] = [];\r\n\r\n  override commentElementTag: boolean = true;\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.initFieldsCustomizer();\r\n  }\r\n\r\n  override simpleRepeatingItemsInitCallback:any = ()=>{\r\n    this.setListFields();\r\n  };\r\n\r\n  initFieldsCustomizer(): void {\r\n    let object = this;\r\n    if(this.simpleFieldsCustomizer){\r\n      this.simpleFieldsCustomizer.fields  = this.listFields;\r\n      this.simpleFieldsCustomizer.setCustomizationFields();\r\n      this.simpleFieldsCustomizer.on(\"applyCustomization\",()=>{\r\n        this.setListFieldsCustomization(this.simpleFieldsCustomizer!.listFields);\r\n      });\r\n    }\r\n  }\r\n\r\n  override initFilters(): void {\r\n    super.initFilters();\r\n    if(this.simpleFilters){\r\n      this.simpleFilters.fields  = this.listFields;\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if(changes[\"fields\"]!=undefined){\r\n      if(this._isRepeatingItemsInitialized){\r\n        this.setListFields();\r\n      }\r\n    }\r\n  }\r\n\r\n  columnSortChanged(column:any,event:any){\r\n    let object = this;\r\n    let dataField =column[\"dataField\"];\r\n    if (object.sortOrder[dataField]!=undefined) {\r\n      delete object.sortOrder[dataField];\r\n    }\r\n    if (['ASC', 'DESC'].includes(event['sort'])) {\r\n      object.sortOrder[dataField]=event['sort'];\r\n    }\r\n    object.fetchRecords();\r\n  }\r\n\r\n  checkItemEditable(params:any){\r\n    let result:boolean = this.isEditable;\r\n    if(!result){\r\n      if(params[\"editable\"]){\r\n        if(params[\"editable\"]==true){\r\n          result = true;\r\n        }\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  exportExcel(params:any={}){\r\n    let object = this;\r\n    object.fetchNextRecords({\"fetch_mode\":\"ALL\"},(response:any)=>{\r\n      if(response[\"records\"]!=undefined){\r\n        params[\"type\"] = \"excel\";\r\n        params[\"records\"] = response[\"records\"];\r\n        if(params[\"fields\"]==undefined){\r\n          params[\"fields\"] = object.listFields;\r\n        }\r\n        if(params[\"name\"]==undefined){\r\n          params[\"name\"] = \"Records List\";\r\n        }\r\n        if(this.exportRecordsFunction!=null){\r\n          params = this.exportRecordsFunction(params);\r\n        }\r\n        this.simpleDataOperations.exportRecordsToExcel(params[\"records\"],params[\"fields\"],params);\r\n      }\r\n    });\r\n  }\r\n\r\n  getColumnBodyClass(column:any){\r\n    let result = \"\";\r\n    if(column['class']){\r\n      result = column[\"class\"];\r\n    }\r\n    return result + \" srl-list-th\";\r\n  }\r\n\r\n  getColumnBodyStyle(column:any){\r\n    let result = \"\";\r\n    if(column['style']){\r\n      result = column[\"style\"];\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getColumnDisplayText(item:any,column:any){\r\n    let dataField = column['dataField'];\r\n    let result = item[dataField];\r\n    if(column[\"formatNumber\"]){\r\n      result=this.simplify.formatNumber(result,column[\"formatNumber\"]);\r\n    }\r\n    else if(column[\"formatDate\"]){\r\n      result=this.simplify.formatDateTime(result,column[\"formatDate\"]);\r\n    }\r\n    else if(column[\"formatDateTime\"]){\r\n      result=this.simplify.formatDateTime(result,column[\"formatDateTime\"]);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getColumnFootClass(column:any){\r\n    let result = \"\";\r\n    if(column['class']){\r\n      result = column[\"class\"];\r\n    }\r\n    return result + \" srl-list-th\";\r\n  }\r\n\r\n  getColumnFootStyle(column:any){\r\n    let result = \"\";\r\n    if(column['style']){\r\n      result = column[\"style\"];\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getColumnHeadClass(column:any){\r\n    let result = \"\";\r\n    if(column['class']){\r\n      result = column[\"class\"];\r\n    }\r\n    return result + \" srl-list-th\";\r\n  }\r\n\r\n  getColumnHeadStyle(column:any){\r\n    let result = \"\";\r\n    if(column['style']){\r\n      result = column[\"style\"];\r\n    }\r\n    return result;\r\n  }\r\n\r\n  getDynamicComponentProperties(itemProperties:any,columnProperties:any){\r\n    if(columnProperties!=null && columnProperties!=undefined){\r\n      Object.keys(columnProperties).forEach((key)=>{\r\n        itemProperties[key]=columnProperties[key];\r\n      });\r\n    }\r\n    return itemProperties;\r\n  }\r\n\r\n  setListFields(){\r\n    let object = this;\r\n    let fieldsList = Object.keys(object.fields);\r\n    this.logger.info(\"Setting List Fields\",fieldsList);\r\n    let index = -1;\r\n    object.listFields = [];\r\n    fieldsList.forEach((fieldName) => {\r\n      index++;\r\n      object.fields[fieldName]['dataField'] = fieldName;\r\n      object.fields[fieldName]['index'] = index;\r\n      object.fields[fieldName]['sort'] = (object.fields[fieldName][\"sort\"]==false?false:true);\r\n      object.fields[fieldName]['visible'] = (object.fields[fieldName][\"visible\"]==false?false:true);\r\n      object.listFields.push(object.fields[fieldName]);\r\n    });\r\n    if(this.simpleFieldsCustomizer){\r\n      this.simpleFieldsCustomizer!.fields = object.listFields;\r\n      this.simpleFieldsCustomizer.setCustomizationFields();\r\n    }\r\n    if(this.simpleFilters){\r\n      this.simpleFilters!.fields = object.listFields;\r\n    }\r\n  }\r\n\r\n  setListFieldsCustomization(listFields:any[]){\r\n    let object = this;\r\n    this.logger.info(\"Logging Fields\",listFields);\r\n    let index:number = -1;\r\n    object.listFields = [];\r\n    let newFieldsList:string[] = [];\r\n    listFields.forEach((field:any)=>{\r\n      index++;\r\n      let dataField = field[\"dataField\"];\r\n      newFieldsList.push(dataField);\r\n      this.fields[dataField][\"visible\"] = field[\"visible\"];\r\n      object.listFields[index] = this.fields[dataField];\r\n    });\r\n    let fieldsList = Object.keys(object.fields);\r\n    fieldsList.forEach((dataField:string)=>{\r\n      if(!newFieldsList.includes(dataField)){\r\n        index++;\r\n        if(index>=object.listFields.length){\r\n          object.listFields.push(this.fields[dataField])\r\n        }\r\n        else{\r\n          object.listFields[index] = this.fields[dataField];\r\n        }\r\n      }\r\n    });\r\n    if(this.simpleFieldsCustomizer){\r\n      this.simpleFieldsCustomizer!.fields = object.listFields;\r\n      this.simpleFieldsCustomizer.setCustomizationFields();\r\n    }\r\n    if(this.simpleFilters){\r\n      this.simpleFilters!.fields = object.listFields;\r\n    }\r\n    this.logger.info(\"Logging Fields\",newFieldsList);\r\n  }\r\n\r\n}\r\n","<ng-template #templateHead let-template=\"template\" let-properties=\"properties\" let-fieldTemplates=\"templates\">\r\n  <th class=\"srl-list-th th-select-all-items\"\r\n    *ngIf=\"selectAll || (simpleRepeatingItems!=null && simpleRepeatingItems!=undefined && (simpleRepeatingItems.select || simpleRepeatingItems.selectMultiple || simpleRepeatingItems.selectOnItem))\">\r\n    <simple-input-check #selectAllItems *ngIf=\"selectAll\"\r\n      (change)=\"simpleRepeatingItems.setAllItemsSelect(selectAllItems.checked)\" />\r\n  </th>\r\n  <ng-container *ngFor=\"let column of listFields;let index\">\r\n    <ng-container *ngIf=\"templates['head']==undefined\">\r\n      <ng-container *ngIf=\"fieldTemplates; else templateCheck\">\r\n        <ng-container *ngIf=\"fieldTemplates[column['dataField']]!=undefined; else templateCheck\">\r\n          <ng-container *ngTemplateOutlet=\"fieldTemplates[column['dataField']]; context: { column: column }\">\r\n          </ng-container>\r\n        </ng-container>\r\n      </ng-container>\r\n      <ng-template #templateCheck>\r\n        <ng-container *ngIf=\"template; else defaultHeadTemplate\">\r\n          <ng-container *ngTemplateOutlet=\"template; context: { column: column }\">\r\n          </ng-container>\r\n        </ng-container>\r\n      </ng-template>\r\n      <ng-template #defaultHeadTemplate>\r\n        <th *ngIf=\"column.visible == true\"\r\n          [class]=\"getColumnHeadClass(column)\"\r\n          [attr.simple-records-list-head-field]=\"column['dataField']\"\r\n          [style]=\"getColumnHeadStyle(column)\"\r\n          [style.width.px]=\"column['width']?column['width']:''\"\r\n          [style.min-width.px]=\"column['width']?column['width']:''\"\r\n          simpleResize\r\n          [(resizeWidth)]=\"column['width']\"\r\n          >\r\n          <span [innerHTML]=\"column.title\"></span>\r\n          <simple-sort-button *ngIf=\"column.sort\" (changed)=\"columnSortChanged(column,$event)\" />\r\n          <span sim-resize-handle-horizontal class=\"sim-resize-handle-horizontal\" ></span>\r\n        </th>\r\n      </ng-template>\r\n    </ng-container>\r\n    <ng-container *ngIf=\"templates['head']\">\r\n      <ng-container *ngTemplateOutlet=\"templates['head']; context: { index: index, column: column, properties:properties }\"/>\r\n    </ng-container>\r\n  </ng-container>\r\n</ng-template>\r\n<ng-template #templateBody let-item let-params=\"params\" let-template=\"template\" let-fieldTemplates=\"templates\" let-properties=\"properties\">\r\n  <td [class]=\"'srl-list-td td-select-item'\"\r\n    *ngIf=\"selectAll || simpleRepeatingItems.select || simpleRepeatingItems.selectMultiple || simpleRepeatingItems.selectOnItem\">\r\n    <simple-input-check *ngIf=\"selectAll||simpleRepeatingItems.selectMultiple\"\r\n      sim-repeating-item-select></simple-input-check>\r\n    <simple-input-check [type]=\"InputType.radio\" *ngIf=\"!simpleRepeatingItems.selectMultiple&&!selectAll\"\r\n      sim-repeating-item-select></simple-input-check>\r\n  </td>\r\n  <ng-container *ngFor=\"let column of listFields;let index\">\r\n    <ng-container *ngIf=\"[true,'true'].includes(column.visible)\">\r\n      <ng-container *ngIf=\"templates['body']==undefined\">\r\n        <td\r\n        [class]=\"getColumnBodyClass(column)\"\r\n        [style]=\"getColumnBodyStyle(column)\"\r\n        [attr.simple-records-list-body-field]=\"column['dataField']\">\r\n        <ng-container *ngIf=\"fieldTemplates; else templateCheck\">\r\n          <ng-container *ngIf=\"fieldTemplates[column['dataField']]!=undefined; else templateCheck\">\r\n            <ng-container\r\n              *ngTemplateOutlet=\"fieldTemplates[column['dataField']]; context: { $implicit: item, index: index, params: params, column: column }\">\r\n            </ng-container>\r\n          </ng-container>\r\n        </ng-container>\r\n        <ng-template #templateCheck>\r\n          <ng-container *ngIf=\"template; else dynamicTemplateCheck\">\r\n            <ng-container\r\n              *ngTemplateOutlet=\"template; context: { $implicit: item, index: index, params: params, column: column }\">\r\n            </ng-container>\r\n          </ng-container>\r\n        </ng-template>\r\n        <ng-template #dynamicTemplateCheck>\r\n          <ng-container *ngIf=\"column['ngComponent']; else defaultBodyTemplate\">\r\n            <simple-dynamic-component [component]=\"column['ngComponent']\" [componentProperties]=\" getDynamicComponentProperties({\r\n              column: column,\r\n              index: index,\r\n              item: item,\r\n              params: params,\r\n              record: item,\r\n              dataField: column['dataField']\r\n              },column['ngComponentProperties'])\"></simple-dynamic-component>\r\n          </ng-container>\r\n        </ng-template>\r\n        <ng-template #defaultBodyTemplate>\r\n          <span *ngIf=\"!checkItemEditable(params)\" [innerHtml]=\"getColumnDisplayTextFunction(item,column)\"></span>\r\n          <simple-input *ngIf=\"checkItemEditable(params)\" [record]=\"item\" [dataField]=\"column['dataField']\"\r\n            [(ngModel)]=\"item[column['dataField']]\" [value]=\"item[column['dataField']]\" [name]=\"column['dataField']\"\r\n            [required]=\"column['validations']?column['validations']['required']:false\"\r\n            [label]=\"column['label']?column['label']:column['title']\" />\r\n        </ng-template>\r\n      </td>\r\n      </ng-container>\r\n      <ng-container *ngIf=\"templates['body']\">\r\n        <ng-container *ngTemplateOutlet=\"templates['body']; context: { $implicit: item, index: index, params: params, column: column, properties:properties }\">\r\n      </ng-container>\r\n      </ng-container>\r\n    </ng-container>\r\n  </ng-container>\r\n</ng-template>\r\n<ng-template #templateFoot let-template=\"template\" let-properties=\"properties\" let-fieldTemplates=\"templates\">\r\n  <th class=\"srl-list-th th-select-all-items\"\r\n    *ngIf=\"selectAll || (simpleRepeatingItems!=null && simpleRepeatingItems!=undefined && (simpleRepeatingItems.select || simpleRepeatingItems.selectMultiple || simpleRepeatingItems.selectOnItem))\">\r\n    <simple-input-check #selectAllItems *ngIf=\"selectAll\"\r\n      (change)=\"simpleRepeatingItems.setAllItemsSelect(selectAllItems.checked)\" />\r\n  </th>\r\n  <ng-container *ngFor=\"let column of listFields;let index\">\r\n    <ng-container *ngIf=\"templates['head']==undefined\">\r\n      <ng-container *ngIf=\"fieldTemplates; else templateFootCheck\">\r\n        <ng-container *ngIf=\"fieldTemplates[column['dataField']]!=undefined; else templateFootCheck\">\r\n          <ng-container *ngTemplateOutlet=\"fieldTemplates[column['dataField']]; context: { column: column }\">\r\n          </ng-container>\r\n        </ng-container>\r\n      </ng-container>\r\n      <ng-template #templateFootCheck>\r\n        <ng-container *ngIf=\"template; else defaultFootTemplate\">\r\n          <ng-container *ngTemplateOutlet=\"template; context: { column: column }\">\r\n          </ng-container>\r\n        </ng-container>\r\n      </ng-template>\r\n      <ng-template #defaultFootTemplate>\r\n        <th *ngIf=\"column.visible == true\"\r\n          [class]=\"getColumnFootClass(column)\"\r\n          [attr.simple-records-list-head-field]=\"column['dataField']\"\r\n          [style]=\"getColumnFootStyle(column)\"\r\n          [style.width.px]=\"column['width']?column['width']:''\"\r\n          [style.min-width.px]=\"column['width']?column['width']:''\"\r\n          simpleResize\r\n          [(resizeWidth)]=\"column['width']\"\r\n          >\r\n          <span [innerHTML]=\"column.title\"></span>\r\n        </th>\r\n      </ng-template>\r\n    </ng-container>\r\n    <ng-container *ngIf=\"templates['foot']\">\r\n      <ng-container *ngTemplateOutlet=\"templates['foot']; context: { index: index, column: column, properties:properties }\"/>\r\n    </ng-container>\r\n  </ng-container>\r\n</ng-template>\r\n<ng-content></ng-content>\r\n","export class SimplifyConfigurations{\r\n  static simpleAlert:any = {};\r\n  static simpleInputs:any = {};\r\n  static getSimpleDatabaseFieldInputComponent = (fieldName:string,tableName:string)=>{\r\n    return null;\r\n  };\r\n}\r\n","import { Directive, ElementRef, Output, EventEmitter, OnDestroy, OnInit } from '@angular/core';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\n\r\n@Directive({\r\n    selector: '[inViewPort],[in-viewport]',\r\n    standalone: false\r\n})\r\nexport class InViewportDirective extends SimpleBaseClass implements OnInit, OnDestroy {\r\n  @Output() inView: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n  private observer: IntersectionObserver;\r\n\r\n  override ngOnInit() {\r\n    super.ngOnInit();\r\n    this.observer = new IntersectionObserver(entries => {\r\n      entries.forEach(entry => {\r\n        this.inView.emit(entry.isIntersecting);\r\n      });\r\n    });\r\n\r\n    this.observer.observe(this.elementRef.nativeElement);\r\n  }\r\n\r\n  override ngOnDestroy() {\r\n    super.ngOnDestroy();\r\n    this.observer.disconnect();\r\n  }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef} from '@angular/core';\r\nimport { SimplifyService } from '../services/simplify.service';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\n\r\n@Directive({\n    selector: '[removeComponentTag]',\n    standalone: false\n})\r\nexport class RemoveComponentTagDirective extends SimpleBaseClass implements AfterViewInit{\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    if(this.elementRef){\r\n      let parentElement = this.elementRef.nativeElement;\r\n      let children = parentElement.children;\r\n      children.forEach((childElement:any)=>{\r\n        this.simplify.renderer.appendChild(parentElement.parentElement, childElement);\r\n        this.simplify.renderer.removeChild(parentElement, childElement);\r\n      });\r\n    }\r\n  }\r\n}\r\n","import { AfterViewInit, Directive } from '@angular/core';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\n\r\n@Directive({\r\n  selector: '[simpleAutoFocusElement]',\r\n  standalone: false\r\n})\r\nexport class SimpleAutoFocusElementDirective extends SimpleBaseClass implements AfterViewInit{\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.elementRef.nativeElement.focus();\r\n  }\r\n\r\n}\r\n","import { AfterViewInit, Directive } from '@angular/core';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\n\r\n@Directive({\r\n  selector: '[simpleCommentElementTag]',\r\n  standalone:false\r\n})\r\nexport class SimpleCommentElementTagDirective extends SimpleBaseClass implements AfterViewInit{\r\n  override commentElementTag:boolean = true;\r\n}\r\n","import {\r\n  Directive,\r\n  Input,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  OnDestroy,\r\n  ElementRef\r\n} from '@angular/core';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\nimport { SimplifyService } from '../services/simplify.service';\r\n\r\n@Directive({\r\n    selector: '[simpleContextMenuTemplate]',\r\n    standalone: false\r\n})\r\nexport class SimpleContextMenuTemplateDirective extends SimpleBaseClass implements OnDestroy {\r\n  @Input('simpleContextMenuTemplate') contextMenuTemplate!: TemplateRef<any>;\r\n  private menuRef: any;\r\n  private documentClickListener?: () => void;\r\n  private documentContextMenuListener?: () => void;\r\n\r\n  constructor(\r\n    private viewContainer: ViewContainerRef,\r\n    elementRef: ElementRef,\r\n    simplify:SimplifyService\r\n  ) {\r\n    super(elementRef,simplify);\r\n    this.setupContextMenu();\r\n  }\r\n\r\n  private setupContextMenu(): void {\r\n    this.elementRef.nativeElement.addEventListener('contextmenu', (event: MouseEvent) => {\r\n      event.preventDefault();\r\n      this.closeMenu();\r\n      this.menuRef = this.viewContainer.createEmbeddedView(this.contextMenuTemplate);\r\n      const menuElement = this.menuRef.rootNodes[0];\r\n      menuElement.style.position = 'fixed';\r\n      menuElement.style.top = `${event.y}px`;\r\n      menuElement.style.left = `${event.x}px`;\r\n      setTimeout(() => {\r\n        this.documentClickListener = this.elementRef.nativeElement.ownerDocument.addEventListener('click', () => {\r\n          this.closeMenu();\r\n        });\r\n        this.documentContextMenuListener = this.elementRef.nativeElement.ownerDocument.addEventListener('contextmenu', () => {\r\n          this.closeMenu();\r\n        });\r\n      }, 500);\r\n\r\n    });\r\n  }\r\n\r\n  private closeMenu(): void {\r\n    if (this.menuRef) {\r\n      this.menuRef.destroy();\r\n      this.menuRef = null;\r\n\r\n      // Clean up the document click listener\r\n      if (this.documentClickListener) {\r\n        this.documentClickListener = undefined;\r\n      }\r\n      if (this.documentContextMenuListener) {\r\n        this.documentContextMenuListener = undefined;\r\n      }\r\n    }\r\n  }\r\n\r\n  override ngOnDestroy(): void {\r\n    super.ngOnDestroy();\r\n    this.closeMenu();\r\n  }\r\n}\r\n","import { Directive, AfterViewInit, ElementRef, Input, OnInit, OnChanges, SimpleChanges, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\nimport { SimpleRepeatingItemsComponent } from '../components/simple-repeating-items/simple-repeating-items.component';\r\nimport { SimplifyService } from '../services/simplify.service';\r\nimport { SimpleExtensionMethods } from '../utilities/simple-extension-methods';\r\n\r\n@Directive({\r\n    selector: '[simpleRepeatingItem]',\r\n    standalone: false\r\n})\r\nexport class SimpleRepeatingItemDirective extends SimpleBaseClass implements AfterViewInit,OnInit,OnChanges {\r\n  private _item: any;\r\n  private _index: any;\r\n  private _params: any;\r\n\r\n  @Input()\r\n  get item(): any {\r\n    return this._item;\r\n  }\r\n  set item(value: any) {\r\n    this._item = value;\r\n    this.itemChange.emit(this._item);\r\n  }\r\n  @Output() itemChange = new EventEmitter<any>();\r\n\r\n  @Input()\r\n  get index(): any {\r\n    return this._index;\r\n  }\r\n  set index(value: any) {\r\n    this._index = value;\r\n    this.indexChange.emit(this._index);\r\n  }\r\n  @Output() indexChange = new EventEmitter<any>();\r\n\r\n  @Input()\r\n  get params(): any {\r\n    return this._params;\r\n  }\r\n  set params(value: any) {\r\n    this._params = value;\r\n    this.paramsChange.emit(this._params);\r\n  }\r\n  @Output() paramsChange = new EventEmitter<any>();\r\n  id:any = \"\";\r\n  originalItem:any = {};\r\n  element:Element;\r\n  simpleRepeatingItemsComponent:SimpleRepeatingItemsComponent;\r\n\r\n  constructor(\r\n    elementRef: ElementRef,\r\n    simplify:SimplifyService,\r\n    private changeDetectorRef:ChangeDetectorRef\r\n  ) {\r\n    super(elementRef,simplify)\r\n    this.id = simplify.generateId();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    let object = this;\r\n    if(changes[\"params\"]){\r\n      this.index = changes[\"params\"][\"currentValue\"][\"index\"];\r\n      this.item = changes[\"params\"][\"currentValue\"][\"item\"];\r\n      if(this.simpleRepeatingItemsComponent){\r\n        this.simpleRepeatingItemsComponent.notifyElementUpdated({\r\n          \"id\":object.id,\r\n          \"item\":object.item,\r\n          \"oldIndex\": changes[\"params\"][\"previousValue\"].index,\r\n          \"index\":object._index,\r\n          \"elementRef\":object.elementRef,\r\n          \"element\":object.element,\r\n          \"simpleRepeatingItem\":this,\r\n        });\r\n      }\r\n\r\n    }\r\n  }\r\n\r\n  override ngAfterViewInit() {\r\n    super.ngAfterViewInit();\r\n    let object = this;\r\n    if( object.simpleRepeatingItemsComponent ){\r\n      object.item[\"__simpleRepeatingItemChanged\"] = false;\r\n      object.simpleRepeatingItemsComponent.notifyElementAdded({\r\n        \"id\":object.id,\r\n        \"item\":object.item,\r\n        \"index\":object._index,\r\n        \"elementRef\":object.elementRef,\r\n        \"element\":object.element,\r\n        \"simpleRepeatingItem\":this,\r\n      });\r\n      this.originalItem = SimpleExtensionMethods.objectClone(object.item);\r\n    }\r\n    this.changeDetectorRef.detectChanges();\r\n  }\r\n\r\n  notifyUpdate(){\r\n\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    let object = this;\r\n    if(object.params){\r\n      object.item = object.params[\"item\"];\r\n      object.index = object.params[\"index\"];\r\n      object.simpleRepeatingItemsComponent = object.params[\"simpleRepeatingItemsInstance\"];\r\n    }\r\n    if(object.elementRef){\r\n      object.element = object.elementRef.nativeElement;\r\n      object.element.setAttribute(\"simple-repeating-item-index\",object.index);\r\n    }\r\n  }\r\n\r\n}\r\n","import { CommonModule, NgFor, NgForOf, NgIf } from \"@angular/common\";\r\nimport { Component, ComponentRef, Directive, ElementRef, Injector, Input, OnChanges, OnDestroy, SimpleChanges, ViewContainerRef } from \"@angular/core\";\r\nimport { Simplify } from \"../utilities/simplify\";\r\n\r\n@Directive({\r\n  selector: '[simpleRuntimeHtml]',\r\n  standalone: false,\r\n})\r\nexport class SimpleRuntimeHtmlDirective implements OnDestroy {\r\n  @Input('simpleRuntimeHtml') html: string = '';\r\n  @Input('context') context: any = {};\r\n  @Input('imports') imports: any[] = [];\r\n\r\n  private componentRef: ComponentRef<any> | null = null;\r\n\r\n  constructor(\r\n    private elementRef:ElementRef,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private injector: Injector,\r\n  ) {}\r\n\r\n  ngOnInit(){\r\n    this.createRuntimeComponent();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.componentRef) {\r\n      this.componentRef.destroy();\r\n      this.componentRef = null;\r\n    }\r\n  }\r\n\r\n  async createRuntimeComponent(): Promise<ComponentRef<any>> {\r\n    const decoratedComponent = this.createRuntimeStandaloneComponent(this.html);\r\n    let componentRef: any = this.viewContainerRef.createComponent(decoratedComponent, {\r\n      injector: this.injector,\r\n    });\r\n    let instance: any = componentRef.instance;\r\n    for(let key of Object.keys(this.context)){\r\n      instance[key] = this.context[key];\r\n    }\r\n    componentRef.changeDetectorRef.detectChanges();\r\n    this.componentRef = componentRef;\r\n    return componentRef;\r\n  }\r\n\r\n  private createRuntimeStandaloneComponent(html: string): any {\r\n    let componentName:string = Simplify.generateRandomString();\r\n    const componentClass = new Function(\r\n      `return class ${componentName}{\r\n      ngOnInit(){}\r\n      }`\r\n    )();\r\n    return Component({\r\n      template: html,\r\n      standalone: true,\r\n      imports: [\r\n        CommonModule,\r\n        NgIf,\r\n        NgFor,\r\n        NgForOf,\r\n        ...this.imports\r\n      ],\r\n    })(componentClass);\r\n  }\r\n}\r\n","import { Directive, ContentChildren, QueryList, AfterContentInit, TemplateRef, Renderer2, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { SimpleBaseClass } from '../_base/simple-base-class';\r\n\r\n@Directive({\n    selector: '[simpleTemplatesList]',\n    standalone: false\n})\r\nexport class SimpleTemplatesListDirective extends SimpleBaseClass implements AfterContentInit,AfterViewInit {\r\n  @ContentChildren(TemplateRef) templatesList: QueryList<TemplateRef<any>>;\r\n  templates:any = {};\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.elementRef.nativeElement.setAttribute(\"style\",\"display:none;\");\r\n  }\r\n  ngAfterContentInit() {\r\n    this.templatesList.forEach(template => {\r\n      const key = this.getTemplateKey(template);\r\n      if (key) {\r\n        this.templates[key] = template;\r\n      }\r\n    });\r\n  }\r\n\r\n  private getTemplateKey(template: TemplateRef<any>): string | null {\r\n    const embeddedView = template.createEmbeddedView(null);\r\n    const rootNodes = embeddedView.rootNodes;\r\n\r\n    if (rootNodes.length > 0) {\r\n      const element = this.findElementWithAttribute(rootNodes[0], 'data-field');\r\n      if (element) {\r\n        return element.getAttribute('data-field');\r\n      }\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  private findElementWithAttribute(node: any, attribute: string): HTMLElement | null {\r\n    if (node.nodeType === Node.ELEMENT_NODE) {\r\n      const element = node as HTMLElement;\r\n      if (element.hasAttribute(attribute)) {\r\n        return element;\r\n      }\r\n    }\r\n\r\n    for (let childNode of node.childNodes) {\r\n      const foundElement = this.findElementWithAttribute(childNode, attribute);\r\n      if (foundElement) {\r\n        return foundElement;\r\n      }\r\n    }\r\n\r\n    return null;\r\n  }\r\n}\r\n","import { AfterContentChecked, AfterContentInit, AfterViewChecked, AfterViewInit, OnChanges, OnDestroy, OnInit, SimpleChanges } from \"@angular/core\";\r\nimport { Simplify } from \"../utilities/simplify\";\r\nimport { SimplifyService } from \"../services/simplify.service\";\r\n\r\nexport const LifecycleMultiListener = <T extends new (...args: any[]) => {}>(\r\n  Base?: T\r\n)  => {\r\n  return class extends (Base || class {}) implements\r\n    AfterContentChecked,\r\n    AfterContentInit,\r\n    AfterViewChecked,\r\n    AfterViewInit,\r\n    OnDestroy,\r\n    OnInit,\r\n    OnChanges\r\n     {\r\n    _eventListeners : any = {};\r\n    simplify: SimplifyService|undefined;\r\n    constructor(...args: any[]) {\r\n      super(...args);\r\n    }\r\n\r\n\r\n    ngAfterContentChecked(){\r\n      Simplify.executeEventFunctions(\"ngAfterContentChecked\",this._eventListeners);\r\n    }\r\n\r\n    ngAfterContentInit(){\r\n      Simplify.executeEventFunctions(\"ngAfterContentChecked\",this._eventListeners);\r\n    }\r\n\r\n    ngAfterViewChecked(){\r\n      Simplify.executeEventFunctions(\"ngAfterContentChecked\",this._eventListeners);\r\n    }\r\n\r\n    ngAfterViewInit(){\r\n      Simplify.executeEventFunctions(\"ngAfterContentChecked\",this._eventListeners);\r\n    }\r\n\r\n    ngOnInit() {\r\n      Simplify.executeEventFunctions(\"ngOnInit\",this._eventListeners);\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges){\r\n      Simplify.executeEventFunctions(\"ngOnChanges\",this._eventListeners,changes);\r\n    }\r\n\r\n    ngOnDestroy(){\r\n      Simplify.executeEventFunctions(\"ngOnDestroy\",this._eventListeners);\r\n    }\r\n\r\n    onLifecycleEvent(event: string, callback:any) {\r\n      return Simplify.registerEventFunction(this._eventListeners, event, callback);\r\n    }\r\n  };\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { SimplifyService } from './simplify.service';\r\nimport { AppBrowserService } from './app-browser.service';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PrintingService {\r\n  functions = {};\r\n  printers:any = {};\r\n  selectedPrinterId = null;\r\n  constructor(public appBrowser:AppBrowserService,public simplify:SimplifyService) { }\r\n\r\n  getPosPrintersList(params:any={}){\r\n    let object=this;\r\n    if(object.appBrowser.isAppBrowser()){\r\n      object.appBrowser.sendData(\"getPosPrintersList\",function(taskResponse:any){\r\n        if(taskResponse[\"dataTaskResult\"]!=undefined){\r\n          let response=taskResponse[\"dataTaskResult\"];\r\n          if(response[\"status\"]==\"success\"){\r\n            let responsePrinters:any[] = response[\"printers\"];\r\n            responsePrinters.forEach((printer)=>{\r\n              let id=printer[\"simplePrinterId\"];\r\n              if(!object.simplify.validValue(id)){\r\n                id=object.simplify.generateId();\r\n              }\r\n              printer[\"isAppBrowserPrinter\"]=true;\r\n              object.printers[id]=printer;\r\n            });\r\n            object.simplify.executeEventFunctions(\"printersDetected\",object.functions,response);\r\n            if(typeof params[\"callback\"]==\"function\"){\r\n              params[\"callback\"](response);\r\n            }\r\n          }\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Injectable, Injector, NgModuleRef, Type, StaticProvider, ComponentFactoryResolver, ApplicationRef, ComponentRef, Compiler, Component, NgModule, EventEmitter, Input, Output, ViewContainerRef, ChangeDetectorRef, Directive, ElementRef, Inject } from '@angular/core';\r\nimport * as ts from 'typescript';\r\nimport { SimplifyService } from './simplify.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SimpleRuntimeComponentBaseClass {\r\n  elementRef: ElementRef;\r\n  // changeDetectorRef:ChangeDetectorRef;\r\n  // simplify:SimplifyService;\r\n  // changesIntervalRef:any\r\n  constructor() {\r\n  }\r\n\r\n  // ngOnInit(){\r\n  //   // this.changesIntervalRef = setInterval(() => {\r\n  //   //   this.changeDetectorRef.detectChanges();\r\n  //   // }, 100);\r\n  // }\r\n\r\n  // ngOnDestroy(){\r\n  //   // clearInterval(this.changesIntervalRef);\r\n  // }\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SimpleRuntimeService {\r\n  static componentRegistry: { [name: string]: Type<any> } = {};\r\n  private loadedModules = new Map<Type<any>, NgModuleRef<any>>();\r\n\r\n  static registerComponentType(componentType: Type<any>, name: string = \"\"): void {\r\n    if (name == \"\") {\r\n      name = componentType.prototype.constructor.name.substring(1);\r\n    }\r\n    SimpleRuntimeService.componentRegistry[name] = componentType;\r\n  }\r\n\r\n  constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector, private compiler: Compiler, private simplify: SimplifyService) { }\r\n\r\n  createComponent(nameOrType: string | Type<any>, data?: any): ComponentRef<any> | null {\r\n    let componentType = typeof nameOrType === 'string' ? SimpleRuntimeService.componentRegistry[nameOrType] : nameOrType;\r\n    if (componentType) {\r\n      let componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n      let componentRef = componentFactory.create(this.injector);\r\n      this.appRef.attachView(componentRef.hostView);\r\n      if (data) {\r\n        Object.keys(data).forEach((key) => {\r\n          componentRef.instance[key] = data[key];\r\n        });\r\n      }\r\n      return componentRef;\r\n    } else {\r\n      console.error(`Component with name or type ${nameOrType} not registered.`);\r\n      return null;\r\n    }\r\n  }\r\n\r\n  destroyComponent(componentRef: ComponentRef<any>): void {\r\n    // this.appRef.detachView(componentRef.hostView);\r\n    componentRef.destroy();\r\n  }\r\n\r\n  getComponentDetails(component: Type<any>): any {\r\n    // console.log(component);\r\n    const cmpMetadata = (component as any).ɵcmp;\r\n    // console.log(cmpMetadata);\r\n    if (!cmpMetadata) {\r\n      throw new Error(`Component metadata not found for ${component.name}`);\r\n    }\r\n    let inputData:any = cmpMetadata.inputs;\r\n    // console.log(inputData);\r\n    let className:string = \"\",filePath:string = \"\";\r\n    if (cmpMetadata.debugInfo) {\r\n      className = cmpMetadata.debugInfo?.className || component.name;\r\n      if (cmpMetadata.debugInfo.filePath) {\r\n        filePath = cmpMetadata.debugInfo.filePath;\r\n      }\r\n    }\r\n    let selectors: string[] = [];\r\n    if (cmpMetadata.selectors) {\r\n      selectors = cmpMetadata.selectors[0];\r\n    }\r\n    let inputs: any = {};\r\n    if (cmpMetadata.inputs) {\r\n      for (let inputName of Object.keys(cmpMetadata.inputs)) {\r\n        inputs[inputName] = { 'input_name': inputName };\r\n      }\r\n    }\r\n    let outputs: any = {};\r\n    if (cmpMetadata.outputs) {\r\n      for (let outputName of Object.keys(cmpMetadata.outputs)) {\r\n        outputs[outputName] = { 'output_name': outputName };\r\n      }\r\n    }\r\n    let inputNames:string[] = Object.keys(inputs);\r\n    if(inputNames.length > 0){\r\n      let componentRef = this.createComponent(component);\r\n      // console.log(componentRef);\r\n      let componentInstance = componentRef!.instance;\r\n      for(let inputName of inputNames){\r\n        let value:any = componentInstance[inputName];\r\n        let type:string = typeof value;\r\n        if(type == \"object\"){\r\n          // console.log(inputName,value);\r\n        }\r\n        // console.log(inputName,value);\r\n      }\r\n    }\r\n    return {\r\n      className:className,\r\n      filePath:filePath,\r\n      inputs: inputs,\r\n      outputs: outputs,\r\n      selectors: selectors,\r\n    };\r\n  }\r\n\r\n  async loadModule<T>(moduleType: Type<T>, providers: StaticProvider[] = []): Promise<NgModuleRef<T>> {\r\n    if (this.loadedModules.has(moduleType)) {\r\n      return this.loadedModules.get(moduleType)!;\r\n    }\r\n    const moduleInjector = Injector.create({ providers, parent: this.injector });\r\n    const moduleRef = new moduleType(moduleInjector) as NgModuleRef<T>;\r\n    this.loadedModules.set(moduleType, moduleRef);\r\n    return moduleRef;\r\n  }\r\n\r\n  // /* Runtime Modules and Components */\r\n\r\n  /* OPTION 01 START*/\r\n\r\n  async createRuntimeComponent(\r\n    viewContainer: ViewContainerRef,\r\n    componentDefinition: {\r\n      html: string;\r\n      tsCode: string;\r\n      styles?: string;\r\n      imports?: any[];\r\n      inputs?: { [key: string]: any };\r\n      outputs?: { [key: string]: (data: any) => void };\r\n    }\r\n  ): Promise<ComponentRef<any>> {\r\n    const componentClass = this.createRuntimeComponentClass(\r\n      componentDefinition.tsCode,\r\n      componentDefinition.inputs,\r\n      componentDefinition.outputs\r\n    );\r\n    let componentImports: any[] = [];\r\n    const decoratedComponent = this.createRuntimeStandaloneComponent(\r\n      componentClass,\r\n      componentDefinition.html,\r\n      componentDefinition.styles,\r\n      componentDefinition.imports ?? []\r\n    );\r\n\r\n    // Directly create component (No need for compilation)\r\n    let componentRef: any = viewContainer.createComponent(decoratedComponent, {\r\n      injector: this.injector,\r\n    });\r\n    let instance: any = componentRef.instance;\r\n    // instance.simplify = this.simplify;\r\n    // instance.changeDetectorRef = componentRef.changeDetectorRef;\r\n\r\n    // Assign inputs\r\n    if (componentDefinition.inputs) {\r\n      Object.assign(componentRef.instance, componentDefinition.inputs);\r\n    }\r\n\r\n    // Assign outputs\r\n    if (componentDefinition.outputs) {\r\n      for (const outputName in componentDefinition.outputs) {\r\n        if (componentDefinition.outputs.hasOwnProperty(outputName)) {\r\n          componentRef.instance[outputName].subscribe(componentDefinition.outputs[outputName]);\r\n        }\r\n      }\r\n    }\r\n\r\n\r\n    componentRef.changeDetectorRef.detectChanges();\r\n    return componentRef;\r\n  }\r\n\r\n  private compileTypeScript(tsCode: string): string | null {\r\n    const options: ts.CompilerOptions = {\r\n      target: ts.ScriptTarget.ES2015, // or ES5, ES2015, etc.\r\n      module: ts.ModuleKind.CommonJS, // or ESNext, etc.\r\n      emitDecoratorMetadata: true,\r\n      experimentalDecorators: true,\r\n      moduleResolution: ts.ModuleResolutionKind.NodeJs,\r\n      downlevelIteration: true,\r\n      strict: false\r\n    };\r\n\r\n    const compiled = ts.transpileModule(tsCode, { compilerOptions: options });\r\n\r\n    if (compiled.diagnostics && compiled.diagnostics.length > 0) {\r\n      console.error('TypeScript compilation errors:', compiled.diagnostics);\r\n      return null;\r\n    }\r\n\r\n    return compiled.outputText;\r\n  }\r\n\r\n  private createRuntimeStandaloneComponent(\r\n    componentClass: any,\r\n    html: string,\r\n    styles?: string,\r\n    imports: any[] = []\r\n  ): any {\r\n    return Component({\r\n      selector: `dynamic-component-${Date.now()}`,\r\n      template: html,\r\n      styles: styles ? [styles] : [],\r\n      standalone: true, // ✅ This makes it work in Angular 17+\r\n      imports: [CommonModule, ...imports],\r\n    })(componentClass);\r\n  }\r\n\r\n  private createRuntimeComponentClass(\r\n    tsCode: string,\r\n    inputs?: { [key: string]: any },\r\n    outputs?: { [key: string]: (data: any) => void },\r\n  ): any {\r\n    // console.log(tsCode);\r\n    const transpiledCode: any = this.compileTypeScript(tsCode);\r\n    // console.log(transpiledCode);\r\n    // const jsCode = typescriptSimple(tsCode);\r\n    const componentClass = new Function(\r\n      'ChangeDetectorRef',\r\n      'ElementRef',\r\n      'EventEmitter',\r\n      'Input',\r\n      'Output',\r\n      'SimplifyService',\r\n      'SimpleRuntimeComponentBaseClass',\r\n      `return (${transpiledCode})`\r\n    )(ChangeDetectorRef, ElementRef, EventEmitter, Input, Output, SimplifyService, SimpleRuntimeComponentBaseClass);\r\n    Object.defineProperty(componentClass.prototype, 'simplify', {\r\n      value: this.simplify,\r\n      enumerable: true,\r\n      configurable: true,\r\n    });\r\n    // const componentClass = new Function(transpiledCode)()\r\n    if (inputs) {\r\n      for (const inputName in inputs) {\r\n        if (inputs.hasOwnProperty(inputName)) {\r\n          Object.defineProperty(componentClass.prototype, inputName, {\r\n            get: function () {\r\n              return this['_' + inputName];\r\n            },\r\n            set: function (value) {\r\n              this['_' + inputName] = value;\r\n              // this.simplifychangeDetectorRef.markForCheck();  // Trigger UI update\r\n            },\r\n            enumerable: true,\r\n            configurable: true,\r\n          });\r\n        }\r\n      }\r\n    }\r\n\r\n    if (outputs) {\r\n      for (const outputName in outputs) {\r\n        if (outputs.hasOwnProperty(outputName)) {\r\n          Object.defineProperty(componentClass.prototype, outputName, {\r\n            value: new EventEmitter(),\r\n            writable: true,\r\n          });\r\n        }\r\n      }\r\n    }\r\n\r\n    return componentClass;\r\n  }\r\n\r\n\r\n  /* OPTION 01 END*/\r\n\r\n  /* OPTION 02 START */\r\n\r\n  /*\r\n  async createComponent(\r\n    tsCode: string,\r\n    htmlCode: string,\r\n    cssCode: string,\r\n    container: ViewContainerRef,\r\n    inputs?: Record<string, any>,\r\n    outputs?: Record<string, (event: any) => void>\r\n  ) {\r\n    try {\r\n      const componentType = this.createComponentClass(tsCode, htmlCode, cssCode);\r\n      if (componentType) {\r\n        const moduleType = this.createModule(componentType);\r\n        const moduleFactory = this.compiler.compileModuleAndAllComponentsSync(moduleType);\r\n        const factory = moduleFactory.componentFactories.find(f => f.componentType === componentType);\r\n\r\n        if (factory) {\r\n          container.clear();\r\n          const componentRef = container.createComponent(factory);\r\n\r\n          // Set Inputs\r\n          if (inputs) {\r\n            Object.keys(inputs).forEach(key => {\r\n              componentRef.instance[key] = inputs[key];\r\n            });\r\n          }\r\n\r\n          // Set Outputs\r\n          if (outputs) {\r\n            Object.keys(outputs).forEach(key => {\r\n              if (componentRef.instance[key] instanceof EventEmitter) {\r\n                componentRef.instance[key].subscribe(outputs[key]);\r\n              }\r\n            });\r\n          }\r\n        }\r\n      }\r\n    } catch (error) {\r\n      console.error('Error creating dynamic component:', error);\r\n    }\r\n  }\r\n\r\n  private createComponentClass(tsCode: string, htmlCode: string, cssCode: string): Type<any> {\r\n    try {\r\n      // Ensure the class is properly structured\r\n      const createClass = new Function(`\r\n        return (function() {\r\n          ${tsCode}\r\n        })();\r\n      `);\r\n\r\n      const ComponentClass = createClass();\r\n\r\n      if (typeof ComponentClass !== 'function') {\r\n        throw new Error('Invalid dynamic class definition');\r\n      }\r\n\r\n      @Component({\r\n        template: htmlCode,\r\n        styles: [cssCode],\r\n      })\r\n      class DynamicComponent {\r\n        constructor() {}\r\n\r\n        static inputs = ComponentClass.inputs || [];\r\n        static outputs = ComponentClass.outputs || [];\r\n      }\r\n\r\n      // Apply @Input() properties dynamically\r\n      if (ComponentClass.inputs) {\r\n        ComponentClass.inputs.forEach((key: string) => {\r\n          Object.defineProperty(DynamicComponent.prototype, key, {\r\n            configurable: true,\r\n            enumerable: true,\r\n            writable: true,\r\n            value: '',\r\n          });\r\n          Input()(DynamicComponent.prototype, key);\r\n        });\r\n      }\r\n\r\n      // Apply @Output() properties dynamically\r\n      if (ComponentClass.outputs) {\r\n        ComponentClass.outputs.forEach((key: string) => {\r\n          Object.defineProperty(DynamicComponent.prototype, key, {\r\n            configurable: true,\r\n            enumerable: true,\r\n            writable: true,\r\n            value: new EventEmitter<any>(),\r\n          });\r\n          Output()(DynamicComponent.prototype, key);\r\n        });\r\n      }\r\n\r\n      // Copy prototype methods\r\n      Object.setPrototypeOf(DynamicComponent.prototype, ComponentClass.prototype);\r\n\r\n      return DynamicComponent;\r\n    } catch (error) {\r\n      console.error('Error creating dynamic component class:', error);\r\n      return null as any;\r\n    }\r\n  }\r\n\r\n  private createModule(component: Type<any>) {\r\n    @NgModule({\r\n      declarations: [component],\r\n      imports: [CommonModule],\r\n    })\r\n    class DynamicModule {}\r\n    return DynamicModule;\r\n  }\r\n    */\r\n\r\n  /* OPTION 02 END */\r\n\r\n  /* OPTION 03 START */\r\n  // async createComponent(\r\n  //   tsCode: string,\r\n  //   htmlCode: string,\r\n  //   cssCode: string,\r\n  //   container: ViewContainerRef,\r\n  //   inputs?: Record<string, any>,\r\n  //   outputs?: Record<string, (event: any) => void>\r\n  // ) {\r\n  //   try {\r\n  //     const componentType = this.createComponentClass(tsCode, htmlCode, cssCode);\r\n  //     if (componentType) {\r\n  //       const moduleType = this.createModule(componentType);\r\n  //       const moduleFactory = this.compiler.compileModuleAndAllComponentsSync(moduleType);\r\n  //       const factory = moduleFactory.componentFactories.find(f => f.componentType === componentType);\r\n\r\n  //       if (factory) {\r\n  //         container.clear();\r\n  //         const componentRef = container.createComponent(factory);\r\n\r\n  //         // Set Inputs\r\n  //         if (inputs) {\r\n  //           Object.keys(inputs).forEach(key => {\r\n  //             componentRef.instance[key] = inputs[key];\r\n  //           });\r\n  //         }\r\n\r\n  //         // Set Outputs\r\n  //         if (outputs) {\r\n  //           Object.keys(outputs).forEach(key => {\r\n  //             if (componentRef.instance[key] instanceof EventEmitter) {\r\n  //               componentRef.instance[key].subscribe(outputs[key]);\r\n  //             }\r\n  //           });\r\n  //         }\r\n  //       }\r\n  //     }\r\n  //   } catch (error) {\r\n  //     console.error('Error creating dynamic component:', error);\r\n  //   }\r\n  // }\r\n\r\n  // private createComponentClass(tsCode: string, htmlCode: string, cssCode: string): Type<any> {\r\n  //   try {\r\n  //     // Ensure the class is properly structured\r\n  //     // const createClass = new Function(`\r\n  //     //   return (function() {\r\n  //     //     ${tsCode}\r\n  //     //   })();\r\n  //     // `);\r\n  //     const componentClass = new Function(\r\n  //       'EventEmitter',\r\n  //       'Input',\r\n  //       'Output',\r\n  //       `return (${tsCode})`\r\n  //     )(EventEmitter, Input, Output);\r\n  //     const ComponentClass = componentClass();\r\n\r\n  //     if (typeof ComponentClass !== 'function') {\r\n  //       throw new Error('Invalid dynamic class definition');\r\n  //     }\r\n\r\n  //     @Component({\r\n  //       template: htmlCode,\r\n  //       styles: [cssCode],\r\n  //     })\r\n  //     class DynamicComponent {\r\n  //       constructor() {}\r\n\r\n  //       static inputs = ComponentClass.inputs || [];\r\n  //       static outputs = ComponentClass.outputs || [];\r\n  //     }\r\n\r\n  //     // Apply @Input() properties dynamically\r\n  //     if (ComponentClass.inputs) {\r\n  //       ComponentClass.inputs.forEach((key: string) => {\r\n  //         Object.defineProperty(DynamicComponent.prototype, key, {\r\n  //           configurable: true,\r\n  //           enumerable: true,\r\n  //           writable: true,\r\n  //           value: '',\r\n  //         });\r\n  //         Input()(DynamicComponent.prototype, key);\r\n  //       });\r\n  //     }\r\n\r\n  //     // Apply @Output() properties dynamically\r\n  //     if (ComponentClass.outputs) {\r\n  //       ComponentClass.outputs.forEach((key: string) => {\r\n  //         Object.defineProperty(DynamicComponent.prototype, key, {\r\n  //           configurable: true,\r\n  //           enumerable: true,\r\n  //           writable: true,\r\n  //           value: new EventEmitter<any>(),\r\n  //         });\r\n  //         Output()(DynamicComponent.prototype, key);\r\n  //       });\r\n  //     }\r\n\r\n  //     // Copy prototype methods\r\n  //     Object.setPrototypeOf(DynamicComponent.prototype, ComponentClass.prototype);\r\n\r\n  //     return DynamicComponent;\r\n  //   } catch (error) {\r\n  //     console.error('Error creating dynamic component class:', error);\r\n  //     return null as any;\r\n  //   }\r\n  // }\r\n\r\n  // private createModule(component: Type<any>) {\r\n  //   @NgModule({\r\n  //     declarations: [component],\r\n  //     imports: [CommonModule],\r\n  //   })\r\n  //   class DynamicModule {}\r\n  //   return DynamicModule;\r\n  // }\r\n  /* OPTION 03 END */\r\n}\r\n\r\n\r\n","import { Component, ContentChild, Input, TemplateRef } from '@angular/core';\r\nimport { SimpleBaseClass } from '../../../_base/simple-base-class';\r\n\r\n@Component({\r\n    selector: 'simple-datagrid-column',\r\n    templateUrl: './simple-datagrid-column.component.html',\r\n    styleUrl: './simple-datagrid-column.component.css',\r\n    standalone: false\r\n})\r\nexport class SimpleDatagridColumnComponent extends SimpleBaseClass{\r\n  @ContentChild(TemplateRef) template?: TemplateRef<any>;\r\n  @Input() title:string = \"\";\r\n  @Input() field:string = \"\";\r\n  @Input() fieldForEdit:string = \"\";\r\n  @Input() allowSort:boolean = true;\r\n  @Input() allowFilter:boolean = true;\r\n  @Input() width?:number;\r\n}\r\n","<p>simple-datagrid-column works!</p>\r\n","import { Component,ElementRef, EventEmitter, Input, Output } from '@angular/core';\r\nimport { SimpleEvents } from '../utilities/simple-events';\r\nimport { SimpleLogger } from '../utilities/simple-logger';\r\nimport { SimplePaginationComponent } from '../simple-pagination/simple-pagination/simple-pagination.component';\r\nimport { SimpleBaseClass } from './simple-base-class';\r\n\r\n@Component({\r\n    imports: [],\r\n    selector: 'simple-base-for-repeating-data',\r\n    template: '<span></span>'\r\n})\r\nexport class SimpleBaseRepeater extends SimpleBaseClass{\r\n  @Input() ajaxDataFunction:Function|undefined;\r\n  @Input() autoAddNewRow:boolean = false;\r\n  @Input() data:any[] = [];\r\n  @Input() pagination:SimplePaginationComponent|undefined;\r\n\r\n  @Output() onCountChanged:EventEmitter<any> = new EventEmitter();\r\n  @Output() onDataChanged:EventEmitter<any> = new EventEmitter();\r\n  @Output() onRowAdded:EventEmitter<any> = new EventEmitter();\r\n  @Output() onRowRemoved:EventEmitter<any> = new EventEmitter();\r\n  @Output() onRowUpdated:EventEmitter<any> = new EventEmitter();\r\n\r\n  displayData:any[] = [];\r\n  override events:SimpleEvents = new SimpleEvents();\r\n  filteredData:any[] = [];\r\n  logger:SimpleLogger = new SimpleLogger();\r\n  rows:any = {};\r\n\r\n  override ngOnInit(){\r\n    super.ngOnInit();\r\n    this.initPagination();\r\n  }\r\n\r\n  override ngAfterViewInit(){\r\n    super.ngAfterViewInit();\r\n    this.removeComponentTag();\r\n    this.setDatagridData();\r\n  }\r\n\r\n  initPagination(){\r\n    if(this.pagination){\r\n      this.pagination.totalResults = this.data.length;\r\n      this.pagination.on(\"pageChange\",()=>{\r\n        this.setDatagridData();\r\n      });\r\n    }\r\n  }\r\n\r\n  handleCountChanged(){}\r\n\r\n  handleDataChanged(){}\r\n\r\n  handleRowAdded(){}\r\n\r\n  handleRowRemoved(){}\r\n\r\n  handleRowDataChange(event:any){\r\n    console.log(event);\r\n  }\r\n\r\n  handleRowDestroy(event:any){\r\n    if(event.index!=undefined){\r\n      delete this.rows[event.index];\r\n    }\r\n  }\r\n\r\n  handleRowInit(event:any){\r\n    console.log(event);\r\n    if(event.index!=undefined){\r\n      console.log(\"Setting at index = \",event.index);\r\n      this.rows[event.index] = event.instance;\r\n    }\r\n  }\r\n\r\n  handleRowViewInit(event:any){\r\n  }\r\n\r\n  removeComponentTag(){\r\n    if(this.elementRef){\r\n      this.simplify.commentElementTag(this.elementRef);\r\n    }\r\n    else{\r\n      setTimeout(() => {\r\n        this.removeComponentTag();\r\n      }, 500);\r\n    }\r\n  }\r\n\r\n  setDatagridData(){\r\n    this.filteredData = this.data;\r\n    this.displayData = [];\r\n    if(this.pagination){\r\n      this.pagination.totalResults = this.filteredData.length;\r\n      let displayPerPage:number = this.pagination!.displayPerPage;\r\n      let activePage:number = this.pagination!.activePage;\r\n      let startIndex:number = (activePage - 1) * displayPerPage;\r\n      let endIndex:number = parseInt(startIndex.toString()) + parseInt(displayPerPage.toString());\r\n      console.log(startIndex,endIndex);\r\n      for(let i = startIndex;i<endIndex;i++){\r\n        this.displayData.push(this.filteredData[i]);\r\n      }\r\n    }\r\n    else{\r\n      this.displayData = this.filteredData;\r\n    }\r\n\r\n    console.log(this);\r\n  }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { ISimpleDataGridColumn } from '../../interfaces/simple-datagrid-column.interface';\r\nimport { ISimpleDataGridColumnWidthChangeEvent } from '../../interfaces/simple-datagrid-column-width-change-event.interface';\r\nimport { SimpleBaseClass } from '../../../_base/simple-base-class';\r\n\r\n@Component({\r\n  selector: 'simple-datagrid-column-head',\r\n  templateUrl: './simple-datagrid-column-head.component.html',\r\n  styleUrl: './simple-datagrid-column-head.component.css',\r\n  standalone: false\r\n})\r\nexport class SimpleDatagridColumnHeadComponent extends SimpleBaseClass {\r\n  @ViewChild(\"th\") th!: ElementRef;\r\n\r\n  @Input() listenForWidthChange: boolean = false;\r\n  @Input() rowData: any = {};\r\n  @Input() column: ISimpleDataGridColumn = {};\r\n\r\n  @Output() onWidthChange: EventEmitter<ISimpleDataGridColumnWidthChangeEvent> = new EventEmitter();\r\n\r\n  get width():number {\r\n    let result:number = 0;\r\n    if(this.column){\r\n      if(this.column.state){\r\n        if(this.column.state!.bodyWidth > this.column.state!.headWidth){\r\n          result = this.column.state?.bodyWidth;\r\n        }\r\n        else{\r\n          result = this.column.state?.headWidth;\r\n        }\r\n      }\r\n\r\n    }\r\n    return result;\r\n  }\r\n  override commentElementTag: boolean = true;\r\n  previousWidth: number = 0;\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.checkWidthChanged();\r\n  }\r\n\r\n  checkWidthChanged() {\r\n    let width = this.getActualWidth();\r\n    if (this.previousWidth != width) {\r\n      this.previousWidth = width;\r\n      this.column.state!.headWidth = width;\r\n      this.onWidthChange.emit({ width: width, column: this.column });\r\n      // console.log(\"Column Width \", width);\r\n    }\r\n    setTimeout(() => {\r\n      this.checkWidthChanged();\r\n    }, 100);\r\n  }\r\n\r\n  getActualWidth(): number {\r\n    let result: number = 0;\r\n    if (this.th) {\r\n      result = this.th.nativeElement.getBoundingClientRect().width;\r\n    }\r\n    return result;\r\n  }\r\n}\r\n","<th #th class=\"simple-datagrid-th\" [style.width.px]=\"column.width\">{{column[\"title\"]}}</th>\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { ISimpleDataGridColumnWidthChangeEvent } from '../../interfaces/simple-datagrid-column-width-change-event.interface';\r\nimport { ISimpleDataGridCellEvent } from '../../interfaces/simple-datagrid-cell-event.interface';\r\nimport { SimpleBaseClass } from '../../../_base/simple-base-class';\r\nimport { ISimpleDataGridColumn } from '../../interfaces/simple-datagrid-column.interface';\r\n\r\n@Component({\r\n  selector: 'simple-datagrid-cell',\r\n  templateUrl: './simple-datagrid-cell.component.html',\r\n  styleUrl: './simple-datagrid-cell.component.css',\r\n  standalone: false\r\n})\r\nexport class SimpleDatagridCellComponent extends SimpleBaseClass {\r\n  @ViewChild(\"td\") cellTd!: ElementRef;\r\n  @Input() index:number = -1;\r\n  @Input() listenForWidthChange: boolean = false;\r\n  @Input() rowData: any = {};\r\n  @Input() column: ISimpleDataGridColumn = {};\r\n  @Input()\r\n  rowInstance!: any;\r\n\r\n  @Output() onBlur: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() onChange: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() onClick: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() override onDestroy: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() onDblClick: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() onEnterEditMode: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() onExitEditMode: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() override onInit: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() override onViewInit: EventEmitter<ISimpleDataGridCellEvent> = new EventEmitter();\r\n  @Output() onWidthChange: EventEmitter<ISimpleDataGridColumnWidthChangeEvent> = new EventEmitter();\r\n\r\n  get class():string {\r\n    let result:string[] = ['simple-datagrid-td'];\r\n    if(this.rowInstance){\r\n      if(this.rowInstance.index == this.rowInstance.dataGridInstance.selectedRowIndex && this.column.index == this.rowInstance.dataGridInstance.selectedColumnIndex){\r\n        result.push('simple-datagrid-td-selected');\r\n      }\r\n    }\r\n    return result.join(\" \");\r\n  }\r\n\r\n  get width(): number {\r\n    let result: number = 0;\r\n    if (this.column) {\r\n      if (this.column.state) {\r\n        if (this.column.state!.bodyWidth > this.column.state!.headWidth) {\r\n          result = this.column.state?.bodyWidth;\r\n        }\r\n        else {\r\n          result = this.column.state?.headWidth;\r\n        }\r\n      }\r\n\r\n    }\r\n    return result;\r\n  }\r\n  override commentElementTag: boolean = true;\r\n  isEditing: boolean = false;\r\n  previousWidth: number = 0;\r\n\r\n  override ngOnDestroy() {\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();\r\n    this.onDestroy.emit(event);\r\n    this.events.execute(\"destroy\",event);\r\n  }\r\n\r\n  override ngOnInit() {\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();\r\n    this.onInit.emit(event);\r\n    this.events.execute(\"init\",event);\r\n  }\r\n\r\n  override ngAfterViewInit() {\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();\r\n    this.onViewInit.emit(event);\r\n    this.events.execute(\"viewInit\",event);\r\n    if (this.listenForWidthChange) {\r\n      this.checkWidthChanged();\r\n    }\r\n  }\r\n\r\n  checkWidthChanged() {\r\n    let width = this.getActualWidth();\r\n    if (this.previousWidth != width) {\r\n      this.previousWidth = width;\r\n      this.column.state!.bodyWidth = width;\r\n      this.onWidthChange.emit({ width: width, column: this.column });\r\n      // console.log(\"Cell Width : \",width);\r\n    }\r\n    setTimeout(() => {\r\n      this.checkWidthChanged();\r\n    }, 100);\r\n  }\r\n\r\n  getActualWidth(): number {\r\n    let result: number = 0;\r\n    if (this.cellTd) {\r\n      result = this.cellTd.nativeElement.getBoundingClientRect().width;\r\n      // const computedStyle = window.getComputedStyle(element);\r\n      // const width = parseFloat(computedStyle.width);\r\n      // const transform = computedStyle.transform;\r\n      // if (transform && transform !== 'none') {\r\n      //   const match = transform.match(/matrix\\((.+)\\)/);\r\n      //   if (match) {\r\n      //     const values = match[1].split(', ');\r\n      //     const scaleX = parseFloat(values[0]); // Extract the scaleX value\r\n      //     result = width * scaleX;\r\n      //   }\r\n      // } else {\r\n      //   result = width;\r\n      // }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  private getEventData(){\r\n    return {\r\n      field: this.column.field!,\r\n      instance: this,\r\n      rowData: this.rowData,\r\n      column: this.column,\r\n      rowInstance:this.rowInstance,\r\n      index:this.index,\r\n      rowIndex:this.rowInstance.index\r\n    };\r\n  }\r\n\r\n  handleBlur() {\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();;\r\n    this.onBlur.emit(event);\r\n    this.events.execute(\"blur\",event);\r\n    console.log(\"Blur\");\r\n  }\r\n\r\n  handleChange(){\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();;\r\n    this.onChange.emit(event);\r\n    this.events.execute(\"change\",event);\r\n    console.log(\"Change\",this);\r\n  }\r\n\r\n  handleClick() {\r\n    this.selectCell();\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();;\r\n    this.onClick.emit(event);\r\n    this.events.execute(\"click\",event);\r\n    console.log(\"Click\",this);\r\n  }\r\n\r\n  handleDblClick(){\r\n    this.startEditing();\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();;\r\n    this.onDblClick.emit(event);\r\n    this.events.execute(\"dblClick\",event);\r\n  }\r\n\r\n  handleFocus() {\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();;\r\n    this.onFocus.emit(event);\r\n    this.events.execute(\"focus\",event);\r\n    console.log(\"Focus\");\r\n  }\r\n\r\n  selectCell(){\r\n    this.rowInstance.dataGridInstance.selectedColumnIndex = this.column.index!;\r\n    this.rowInstance.dataGridInstance.selectedRowIndex = this.rowInstance.index;\r\n  }\r\n\r\n  startEditing() {\r\n    this.isEditing = true;\r\n    this.rowInstance.dataGridInstance.editingColumnIndex = this.column.index!;\r\n    this.rowInstance.dataGridInstance.editingRowIndex = this.rowInstance.index;\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();;\r\n    this.onEnterEditMode.emit(event);\r\n    this.events.execute(\"enterEditMode\",event);\r\n  }\r\n\r\n  stopEditing() {\r\n    this.isEditing = false\r\n    let event: ISimpleDataGridCellEvent = this.getEventData();;\r\n    this.onExitEditMode.emit(event);\r\n    this.events.execute(\"exitEditMode\",event);\r\n  }\r\n\r\n  toggleEditMode() {\r\n    if (this.isEditing) {\r\n      this.stopEditing();\r\n    }\r\n    else {\r\n      this.startEditing();\r\n    }\r\n  }\r\n}\r\n\r\n","<td #td [class]=\"class\" [style]=\"'width:'+width+'px'\" (dblclick)=\"handleDblClick()\" (click)=\"handleClick()\" (focus)=\"handleFocus()\"\r\n  (blur)=\"handleBlur()\">\r\n  <ng-container *ngIf=\"column.template; else defaultOutput\">\r\n    <ng-container\r\n      *ngTemplateOutlet=\"column.template; context: { column: column, rowData:rowData, isEditing:isEditing }\">\r\n    </ng-container>\r\n  </ng-container>\r\n  <ng-template #defaultOutput>\r\n    <ng-container *ngIf=\"isEditing;else notEditingTemplate\">\r\n      <ng-container *ngIf=\"isEditing\">\r\n        <ng-container *ngTemplateOutlet=\"editingTemplate;\">\r\n    </ng-container>\r\n      </ng-container>\r\n    </ng-container>\r\n  </ng-template>\r\n  <ng-template #notEditingTemplate>\r\n    <div *ngIf=\"!isEditing\">{{rowData[column.field!]}}</div>\r\n  </ng-template>\r\n  <ng-template #editingTemplate>\r\n    <simple-input style=\"width:100%;height:100%;border:none;\" [autofocus]=\"true\" [record]=\"rowData\" [dataField]=\"column.field!\"\r\n      [value]=\"rowData[column.field!]\" (onChange)=\"handleChange()\"/>\r\n  </ng-template>\r\n</td>\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { ISimpleDataGridColumn } from '../../interfaces/simple-datagrid-column.interface';\r\nimport { ISimpleDataGridRowEvent } from '../../interfaces/simple-datagrid-row-event.interface';\r\nimport { ISimpleDataGridRowDataChangeEvent } from '../../interfaces/simple-datagrid-row-data-change-event.interface';\r\nimport { ISimpleDataGridCellEvent } from '../../interfaces/simple-datagrid-cell-event.interface';\r\nimport { SimpleBaseClass } from '../../../_base/simple-base-class';\r\n\r\n@Component({\r\n    selector: 'simple-datagrid-row',\r\n    templateUrl: './simple-datagrid-row.component.html',\r\n    styleUrl: './simple-datagrid-row.component.css',\r\n    standalone: false\r\n})\r\nexport class SimpleDatagridRowComponent extends SimpleBaseClass{\r\n  @ViewChild(\"tr\") tr!: ElementRef;\r\n\r\n  @Input()\r\n  dataGridInstance!: any;\r\n  @Input() index:number = -1;\r\n  @Input() rowData:any = {};\r\n  @Input() columns:ISimpleDataGridColumn[] = [];\r\n  @Input() listenForWidthChange:boolean = false;\r\n\r\n  @Output() onCellWidthChange:EventEmitter<any> = new EventEmitter();\r\n  @Output() onCellEnterEditMode:EventEmitter<ISimpleDataGridRowEvent> = new EventEmitter();\r\n  @Output() onCellExitEditMode:EventEmitter<ISimpleDataGridRowEvent> = new EventEmitter();\r\n  @Output() override onInit:EventEmitter<ISimpleDataGridRowEvent> = new EventEmitter();\r\n  @Output() override onDestroy:EventEmitter<ISimpleDataGridRowEvent> = new EventEmitter();\r\n  @Output() onRowDataChange:EventEmitter<ISimpleDataGridRowDataChangeEvent> = new EventEmitter();\r\n  @Output() override onViewInit:EventEmitter<ISimpleDataGridRowEvent> = new EventEmitter();\r\n  override commentElementTag: boolean = true;\r\n  cells:any = {};\r\n  notifiedChanged:boolean = false;\r\n  previousRowData:any = {};\r\n\r\n  override ngOnDestroy(){\r\n    let event:ISimpleDataGridRowEvent = {\r\n      index:this.index,\r\n      instance:this,\r\n      rowData:this.rowData\r\n    };\r\n    this.onDestroy.emit(event);\r\n    this.events.execute(\"destroy\",event);\r\n  }\r\n\r\n  override ngOnInit(){\r\n    let event:ISimpleDataGridRowEvent = {\r\n      index:this.index,\r\n      instance:this,\r\n      rowData:this.rowData\r\n    };\r\n    this.onInit.emit(event);\r\n    this.events.execute(\"init\",event);\r\n    this.checkChanged();\r\n  }\r\n\r\n  override ngAfterViewInit(){\r\n    let event:ISimpleDataGridRowEvent = {\r\n      index:this.index,\r\n      instance:this,\r\n      rowData:this.rowData\r\n    };\r\n    this.onViewInit.emit(event);\r\n    this.events.execute(\"viewInit\",event);\r\n  }\r\n\r\n  checkChanged() {\r\n    let changes= this.getDataChanges();\r\n    if (Object.keys(changes).length>0) {\r\n      this.notifiedChanged = true;\r\n      let event:ISimpleDataGridRowDataChangeEvent = {changes:changes,index:this.index,newRowData:this.rowData,oldRowData:this.previousRowData};\r\n      this.onRowDataChange.emit(event);\r\n      this.previousRowData = { ...this.rowData };\r\n    }\r\n    setTimeout(() => {\r\n      this.checkChanged();\r\n    }, 100);\r\n  }\r\n\r\n  getDataChanges() {\r\n    let result = true;\r\n    let objectA: any = this.rowData;\r\n    let compareObject: any = this.previousRowData;\r\n    let objectAKeys = Object.keys(objectA);\r\n    let objectBKeys = Object.keys(compareObject);\r\n    let changes:any = {};\r\n    objectAKeys.forEach(key => {\r\n      if (JSON.stringify(objectA[key]) != JSON.stringify(compareObject[key])) {\r\n        result = false;\r\n        changes[key] = {\"new\":objectA[key],\"old\":compareObject[key]};\r\n      }\r\n    });\r\n    objectBKeys.forEach(key => {\r\n      if (JSON.stringify(compareObject[key]) != JSON.stringify(objectA[key])) {\r\n        result = false;\r\n        changes[key] = {\"new\":objectA[key],\"old\":compareObject[key]};\r\n      }\r\n    });\r\n    return result;\r\n  }\r\n\r\n  handleWidthChange(event:any,column:ISimpleDataGridColumn){\r\n    this.onCellWidthChange.emit({column:column})\r\n  }\r\n\r\n  handleCellDestroy(event:ISimpleDataGridCellEvent){\r\n    if(event.index!=undefined){\r\n      delete this.cells[event.index];\r\n    }\r\n  }\r\n\r\n  handleCellInit(event:ISimpleDataGridCellEvent){\r\n    if(event.index!=undefined){\r\n      this.cells[event.index] = event.instance;\r\n    }\r\n  }\r\n\r\n  handleCellViewInit(event:ISimpleDataGridCellEvent){\r\n  }\r\n\r\n  stopCellEditing(){\r\n    // this.isEditing = false\r\n    // this.onExitEditMode.emit();\r\n  }\r\n\r\n}\r\n\r\n\r\n","<tr #tr class=\"simple-datagrid-tr\">\r\n  <ng-container *ngFor=\"let column of columns;let index = index;\">\r\n    <simple-datagrid-cell acCommentElementTag [column]=\"column\" [index]=\"index\" [rowData]=\"rowData\"\r\n      [listenForWidthChange]=\"listenForWidthChange\" (onWidthChange)=\"handleWidthChange($event,column)\" [rowInstance]=\"this\"\r\n      (onDestroy)=\"handleCellDestroy($event)\" (onInit)=\"handleCellInit($event)\" (onViewInit)=\"handleCellViewInit($event)\"\r\n      />\r\n  </ng-container>\r\n</tr>\r\n","import { Component, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList } from '@angular/core';\r\nimport { SimpleDatagridColumnComponent } from '../simple-datagrid-column/simple-datagrid-column.component';\r\nimport { ISimpleDataGridColumn } from '../../interfaces/simple-datagrid-column.interface';\r\nimport { SimpleDatagridRowComponent } from '../simple-datagrid-row/simple-datagrid-row.component';\r\nimport { SimpleDatagridCellComponent } from '../simple-datagrid-cell/simple-datagrid-cell.component';\r\nimport { SimplifyService } from '../../../services/simplify.service';\r\nimport { SimpleBaseRepeater } from '../../../_base/simple-base-repeater.component';\r\n\r\n@Component({\r\n    selector: 'simple-datagrid',\r\n    templateUrl: './simple-datagrid.component.html',\r\n    styleUrl: './simple-datagrid.component.css',\r\n    standalone: false\r\n})\r\nexport class SimpleDatagridComponent extends SimpleBaseRepeater{\r\n  @ContentChildren(SimpleDatagridColumnComponent) columnComponents?:QueryList<SimpleDatagridColumnComponent>;\r\n\r\n  @Input() columns:ISimpleDataGridColumn[] = [];\r\n  @Input() tabIndex:number = 0;\r\n  @Output() onColumnResized:EventEmitter<any> = new EventEmitter();\r\n  override commentElementTag: boolean = true;\r\n  editingColumnIndex = -1;\r\n  editingRowIndex = -1;\r\n  isInFocus:boolean = false;\r\n  override rows:any = {};\r\n  selectedColumnIndex = -1;\r\n  selectedRowIndex = -1;\r\n\r\n  constructor(elementRef:ElementRef,simplifyAngular:SimplifyService){\r\n    super(elementRef,simplifyAngular);\r\n\r\n  }\r\n\r\n  override ngAfterViewInit(): void {\r\n    this.setColumnsFromComponents();\r\n    super.ngAfterViewInit();\r\n  }\r\n\r\n  editCell(rowIndex:number,columnIndex:number){\r\n    console.log(\"Editing Row\",rowIndex,columnIndex)\r\n    if(this.rows[rowIndex]){\r\n      let rowInstance:SimpleDatagridRowComponent = this.rows[rowIndex];\r\n      if(rowInstance.cells[columnIndex]){\r\n        let cellInstance:SimpleDatagridCellComponent = rowInstance.cells[columnIndex];\r\n        cellInstance.startEditing();\r\n      }\r\n      else{\r\n        console.error(\"Column does not exist at index \"+columnIndex);\r\n      }\r\n    }\r\n    else{\r\n      console.error(\"Row does not exist at index \"+rowIndex);\r\n    }\r\n  }\r\n\r\n  handleBlur(event:any){\r\n    this.isInFocus = false;\r\n    console.log(event);\r\n  }\r\n\r\n  handleCellWidthChange(event:any){\r\n    // console.log(event);\r\n  }\r\n\r\n  handleFocus(event:any){\r\n    this.isInFocus = true;\r\n    console.log(event);\r\n  }\r\n\r\n  handleKeyDown(event:any){\r\n    let keyCode:string = event.code.toUpperCase();\r\n    if(keyCode==\"TAB\"){\r\n      event.preventDefault();\r\n    }\r\n    if([\"ARROWDOWN\",\"ARROWLEFT\",\"ARROWRIGHT\",\"ARROWUP\",\"TAB\"].includes(keyCode)){\r\n      let indexChanged:boolean = false;\r\n      if(keyCode==\"ARROWDOWN\"){\r\n        if(this.rows[this.selectedRowIndex+1]){\r\n          this.selectedRowIndex++;\r\n          indexChanged = true;\r\n        }\r\n      }\r\n      else if(keyCode==\"ARROWLEFT\"){\r\n        if(this.rows[this.selectedRowIndex]){\r\n          let rowInstance:SimpleDatagridRowComponent = this.rows[this.selectedRowIndex];\r\n          if(rowInstance.cells[this.selectedColumnIndex - 1]){\r\n            this.selectedColumnIndex--;\r\n            indexChanged = true;\r\n          }\r\n          else{\r\n            console.log(rowInstance);\r\n            if(this.selectedRowIndex>0){\r\n              this.selectedColumnIndex = Object.keys(rowInstance.cells).length - 1;\r\n              this.selectedRowIndex--;\r\n              indexChanged = true;\r\n            }\r\n          }\r\n        }\r\n      }\r\n      else if(keyCode==\"ARROWRIGHT\"||keyCode==\"TAB\"){\r\n        if(this.rows[this.selectedRowIndex]){\r\n          let rowInstance:SimpleDatagridRowComponent = this.rows[this.selectedRowIndex];\r\n          if(rowInstance.cells[this.selectedColumnIndex + 1]){\r\n            this.selectedColumnIndex++;\r\n            indexChanged = true;\r\n          }\r\n          else{\r\n            if(this.rows[this.selectedRowIndex+1]){\r\n              this.selectedRowIndex++;\r\n              this.selectedColumnIndex=0;\r\n              indexChanged = true;\r\n            }\r\n          }\r\n        }\r\n      }\r\n      else if(keyCode==\"ARROWUP\"){\r\n        if(this.rows[this.selectedRowIndex - 1]){\r\n          this.selectedRowIndex--;\r\n          indexChanged = true;\r\n        }\r\n      }\r\n    }\r\n    if(keyCode == \"F2\"){\r\n      if(this.selectedRowIndex>=0 && this.selectedColumnIndex>=0){\r\n        this.editCell(this.selectedRowIndex,this.selectedColumnIndex);\r\n      }\r\n    }\r\n    console.log(\"Key Down\",event,keyCode,this);\r\n  }\r\n\r\n\r\n  setColumnsFromComponents(){\r\n    if(this.columnComponents){\r\n      let index:number = -1;\r\n      for(let column of this.columnComponents){\r\n        index++;\r\n        this.columns.push({\r\n          field: column.field,\r\n          title: column.field,\r\n          index: index,\r\n          format: undefined,\r\n          style: undefined,\r\n          conditionalStyle: undefined,\r\n          state:{headWidth : 0,bodyWidth:0},\r\n          template:column.template\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n}\r\n","<table class=\"simple-datagrid-table\" border=\"1\" style=\"width:100%\" >\r\n  <thead class=\"simple-datagrid-thead\">\r\n    <ng-container *ngFor=\"let column of columns\">\r\n      <simple-datagrid-column-head acCommentElementTag [column]=\"column\" />\r\n    </ng-container>\r\n  </thead>\r\n</table>\r\n<table border=\"1\" [tabindex]=\"tabIndex\" (blur)=\"handleBlur($event)\" (focus)=\"handleFocus($event)\" (keydown)=\"handleKeyDown($event)\" >\r\n  <tbody class=\"simple-datagrid-tbody\">\r\n    <ng-container *ngFor=\"let row of displayData;let index = index\">\r\n      <simple-datagrid-row acCommentElementTag [rowData]=\"row\" [index]=\"index\" [columns]=\"columns\"\r\n        [listenForWidthChange]=\"index==0\" [dataGridInstance]=\"this\" (onCellWidthChange)=\"handleCellWidthChange($event)\"\r\n        (onDestroy)=\"handleRowDestroy($event)\" (onInit)=\"handleRowInit($event)\" (onViewInit)=\"handleRowViewInit($event)\"\r\n        (onRowDataChange)=\"handleRowDataChange($event)\" />\r\n    </ng-container>\r\n  </tbody>\r\n</table>\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DecimalPipe, JsonPipe } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgbAlertModule,NgbDatepickerModule,NgbDropdownModule,NgbPaginationModule,NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';\nimport { HttpClientModule, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { RepeaterComponent } from './components/repeater/repeater.component';\nimport { RecordsListComponent } from './components/records-list/records-list.component';\nimport { AjaxService } from './services/ajax.service';\nimport { FilterInputComponent } from './components/inputs/filter-input/filter-input.component';\nimport { SimpleSortButtonComponent } from './components/buttons/simple-sort-button/simple-sort-button.component';\nimport { SimplifyService } from './services/simplify.service';\nimport { DynamicComponentService } from './services/dynamic-component.service';\nimport { ViewportService } from './services/viewport.service';\nimport { SimpleInputComponent } from './components/inputs/simple-inputs/simple-input/simple-input.component';\nimport { SimpleInputTextareaComponent } from './components/inputs/simple-inputs/simple-input-textarea/simple-input-textarea.component';\nimport { SimpleInputDateComponent } from './components/inputs/simple-inputs/simple-input-date/simple-input-date.component';\nimport { SimpleInputCheckComponent } from './components/inputs/simple-inputs/simple-input-check/simple-input-check.component';\nimport { SimpleInputSelectComponent } from './components/inputs/simple-inputs/simple-input-select/simple-input-select.component';\nimport { SimpleInputKeyValuePairComponent } from './components/inputs/simple-inputs/simple-input-key-value-pair/simple-input-key-value-pair.component';\nimport { SimpleInputFileUploadComponent } from './components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload.component';\nimport { SimpleAlertService } from './services/simple-alert.service';\nimport { ToastrModule, ToastrService } from 'ngx-toastr';\nimport { NgxDaterangepickerBootstrapComponent, NgxDaterangepickerBootstrapDirective, NgxDaterangepickerBootstrapModule, NgxDaterangepickerLocaleService, provideDaterangepickerLocale } from 'ngx-daterangepicker-bootstrap';\nimport { SimpleRepeaterComponent } from './components/simple-repeater/simple-repeater.component';\nimport { SimpleRepeatingItemsComponent } from './components/simple-repeating-items/simple-repeating-items.component';\nimport { SimpleFormComponent } from './components/simple-form/simple-form.component';\nimport { SimpleRecordsListComponent } from './components/simple-records-list/simple-records-list.component';\nimport { SimpleFiltersComponent } from './components/simple-filters/simple-filters.component';\nimport { SimpleTemplatesListDirective } from './directives/simple-templates-list.directive';\nimport { CdkDrag, CdkDragPlaceholder, CdkDropList } from '@angular/cdk/drag-drop';\nimport { SimpleDynamicComponent } from './components/simple-dynamic-component/simple-dynamic-component.component';\nimport { SimpleFieldsCustomizerComponent } from './components/simple-fields-customizer/simple-fields-customizer.component';\nimport { AutoSimpleInputComponent } from './components/inputs/simple-inputs/auto-simple-input/auto-simple-input.component';\nimport { SimpleResizeDirective } from './directives/simple-resize.directive';\nimport { SimpleConversationFormComponent } from './components/simple-conversation-form/simple-conversation-form.component';\nimport { SimpleConversationFormInputComponent } from './components/simple-conversation-form/simple-conversation-form-input/simple-conversation-form-input.component';\nimport { ConditionalTemplateDirective } from './directives/templates.directive';\nimport { SimpleFilePreviewComponent } from './components/simple-file-preview/simple-file-preview.component';\nimport { SimpleCollapsibleContainerComponent } from './components/simple-collapsible-container/simple-collapsible-container.component';\nimport { SimpleContextMenuTemplateDirective } from './directives/simple-context-menu-template.directive';\nimport { NgxSonnerToaster } from 'ngx-sonner';\nimport { HtmlPrintPreviewComponent } from './components/html-print-preview/html-print-preview.component';\nimport { RemoveComponentTagDirective } from './directives/remove-component-tag.directive';\nimport { SimpleRepeatingItemDirective } from './directives/simple-repeating-item.directive';\nimport { SimpleActivityDetectionService } from './services/simple-activity-detection.service';\nimport { InViewportDirective } from './directives/in-viewport.directive';\nimport { SimpleAutoFocusElementDirective } from './directives/simple-auto-focus-element.directive';\nimport { SimpleCommentElementTagDirective } from './directives/simple-comment-element-tag.directive';\nimport { SimpleDatabaseInputTemplateComponent } from './components/inputs/simple-database-input/simple-database-input-template/simple-database-input-template.component';\nimport { SimpleDatabaseInputComponent } from './components/inputs/simple-database-input/simple-database-input.component';\nimport { SimpleDatabaseInputElementComponent } from './components/inputs/simple-database-input/simple-database-input-template/simple-database-input-element/simple-database-input-element.component';\nimport { SimpleInputFileUploadPreviewEmptyComponent } from './components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload-preview-empty/simple-input-file-upload-preview-empty.component';\nimport { SimpleRuntimeService } from './services/simple-runtime.service';\nimport { SimpleIframeContentComponent } from './components/simple-iframe-content/simple-iframe-content.component';\nimport { SimpleRuntimeHtmlDirective } from './directives/simple-runtime-html.directive';\n@NgModule({ declarations: [\n        /* COMPONENTS */\n        AutoSimpleInputComponent,\n        RepeaterComponent,\n        RecordsListComponent,\n        FilterInputComponent,\n        HtmlPrintPreviewComponent,\n        SimpleCollapsibleContainerComponent,\n        SimpleDynamicComponent,\n        SimpleFieldsCustomizerComponent,\n        SimpleFiltersComponent,\n        SimpleFormComponent,\n        SimpleInputComponent,\n        SimpleInputTextareaComponent,\n        SimpleInputDateComponent,\n        SimpleInputCheckComponent,\n        SimpleInputSelectComponent,\n        SimpleInputKeyValuePairComponent,\n        SimpleRecordsListComponent,\n        SimpleRepeaterComponent,\n        SimpleRepeatingItemsComponent,\n        SimpleInputFileUploadComponent,\n        SimpleSortButtonComponent,\n        SimpleConversationFormComponent,\n        SimpleConversationFormInputComponent,\n        SimpleFilePreviewComponent,\n        SimpleDatabaseInputComponent,\n        SimpleDatabaseInputTemplateComponent,\n        SimpleDatabaseInputElementComponent,\n        SimpleInputFileUploadPreviewEmptyComponent,\n        SimpleIframeContentComponent,\n        /* DIRECTIVES */\n        ConditionalTemplateDirective,\n        InViewportDirective,\n        RemoveComponentTagDirective,\n        SimpleAutoFocusElementDirective,\n        SimpleCommentElementTagDirective,\n        SimpleContextMenuTemplateDirective,\n        SimpleRepeatingItemDirective,\n        SimpleResizeDirective,\n        SimpleRuntimeHtmlDirective,\n        SimpleTemplatesListDirective,\n    ],\n    exports: [\n        /* COMPONENTS */\n        AutoSimpleInputComponent,\n        RepeaterComponent,\n        RecordsListComponent,\n        FilterInputComponent,\n        HtmlPrintPreviewComponent,\n        SimpleCollapsibleContainerComponent,\n        SimpleDynamicComponent,\n        SimpleFieldsCustomizerComponent,\n        SimpleFiltersComponent,\n        SimpleFormComponent,\n        SimpleInputComponent,\n        SimpleInputTextareaComponent,\n        SimpleInputDateComponent,\n        SimpleInputCheckComponent,\n        SimpleInputSelectComponent,\n        SimpleInputKeyValuePairComponent,\n        SimpleRecordsListComponent,\n        SimpleRepeaterComponent,\n        SimpleRepeatingItemsComponent,\n        SimpleInputFileUploadComponent,\n        SimpleSortButtonComponent,\n        SimpleConversationFormComponent,\n        SimpleConversationFormInputComponent,\n        SimpleFilePreviewComponent,\n        SimpleDatabaseInputComponent,\n        SimpleDatabaseInputTemplateComponent,\n        SimpleDatabaseInputElementComponent,\n        SimpleInputFileUploadPreviewEmptyComponent,\n        SimpleIframeContentComponent,\n        /* DIRECTIVES */\n        ConditionalTemplateDirective,\n        InViewportDirective,\n        RemoveComponentTagDirective,\n        SimpleAutoFocusElementDirective,\n        SimpleCommentElementTagDirective,\n        SimpleContextMenuTemplateDirective,\n        SimpleRepeatingItemDirective,\n        SimpleResizeDirective,\n        SimpleRuntimeHtmlDirective,\n        SimpleTemplatesListDirective,\n\n    ], imports: [\n      CdkDropList,\n        CdkDrag,\n        CdkDragPlaceholder,\n        CommonModule,\n        DecimalPipe,\n        FormsModule,\n        NgbTypeaheadModule,\n        NgbPaginationModule,\n        NgxSonnerToaster,\n        NgbDropdownModule,\n        ReactiveFormsModule,\n        NgbDatepickerModule,\n        JsonPipe,\n        NgSelectModule,\n        NgbAlertModule,\n        NgxDaterangepickerBootstrapModule.forRoot(),\n        NgxDaterangepickerBootstrapDirective,\n        NgxDaterangepickerBootstrapComponent,\n        ToastrModule.forRoot(),\n        HttpClientModule\n      ],\n      providers: [\n        AjaxService,\n        DynamicComponentService,\n        NgxDaterangepickerLocaleService,\n        SimpleActivityDetectionService,\n        SimpleAlertService,\n        SimplifyService,\n        SimpleRuntimeService,\n        ToastrService,\n        ViewportService,\n        provideHttpClient(withInterceptorsFromDi()),\n    ] })\nexport class SimplifyAngularModule { }\n// export { AjaxService } from './services/ajax.service';\n// export { DynamicComponentService } from './services/dynamic-component.service';\n// export { NumberToWords } from './services/number-to-words.service';\n// export { SimplifyService } from './services/simplify.service';\n// export { ViewportService } from './services/viewport.service';\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SimpleDatagridColumnComponent } from './components/simple-datagrid-column/simple-datagrid-column.component';\r\nimport { SimpleDatagridComponent } from './components/simple-datagrid/simple-datagrid.component';\r\nimport { SimpleDatagridRowComponent } from './components/simple-datagrid-row/simple-datagrid-row.component';\r\nimport { SimpleDatagridCellComponent } from './components/simple-datagrid-cell/simple-datagrid-cell.component';\r\nimport { SimpleDatagridColumnHeadComponent } from './components/simple-datagrid-column-head/simple-datagrid-column-head.component';\r\nimport { SimplifyAngularModule } from '../simplify-angular.module';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    SimpleDatagridComponent,\r\n    SimpleDatagridColumnComponent,\r\n    SimpleDatagridColumnHeadComponent,\r\n    SimpleDatagridRowComponent,\r\n    SimpleDatagridCellComponent\r\n  ],\r\n  exports: [\r\n    SimpleDatagridComponent,\r\n    SimpleDatagridColumnComponent,\r\n    SimpleDatagridColumnHeadComponent,\r\n    SimpleDatagridRowComponent,\r\n    SimpleDatagridCellComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    SimplifyAngularModule\r\n]\r\n})\r\nexport class SimpleDatagridModule { }\r\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ISimplePage } from '../interfaces/simple-page.interface';\r\nimport { SimpleBaseClass } from '../../_base/simple-base-class';\r\nimport { ISimplePaginationEvent } from '../interfaces/simple-pagination-event.interface';\r\n\r\n@Component({\r\n    selector: 'simple-pagination',\r\n    templateUrl: './simple-pagination.component.html',\r\n    styleUrl: './simple-pagination.component.css',\r\n    standalone: false\r\n})\r\nexport class SimplePaginationComponent extends SimpleBaseClass implements OnChanges {\r\n  @ViewChild(\"selectPerPage\") perPageSelect:Element;\r\n  @Input() activePage: number = 1;\r\n  @Input() displayPerPage: number = 25;\r\n  @Input() perPageOptions:number[] = [5,10,25,50,100];\r\n  @Input() nextHtml: string = \"Next\";\r\n  @Input() pagesDisplayCount: number = 9;\r\n  @Input() previousHtml: string = \"Previous\";\r\n  @Input() totalResults: number = 0;\r\n  @Output() onPageChange:EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n  pageButtons: ISimplePage[] = [];\r\n  totalPages: number = 1;\r\n  resultStartNumber:number = 0;\r\n  resultEndNumber:number = 0;\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    this.setPages();\r\n  }\r\n\r\n  override ngOnInit(): void {\r\n    super.ngOnInit();\r\n    this.setPages();\r\n  }\r\n\r\n  override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n  }\r\n\r\n  handleNextClick(){\r\n    if(this.activePage<this.totalPages){\r\n      this.setActivePage(this.activePage + 1);\r\n    }\r\n  }\r\n\r\n  handlePageClick(page: ISimplePage) {\r\n    if (page.pageNumber) {\r\n      if (page.pageNumber > 0) {\r\n        this.setActivePage(page.pageNumber);\r\n      }\r\n    }\r\n  }\r\n\r\n  handlePreviousClick(){\r\n    if(this.activePage>1){\r\n      this.setActivePage(this.activePage - 1);\r\n    }\r\n  }\r\n\r\n  setActivePage(newActivePage:number){\r\n    this.activePage = newActivePage;\r\n    this.setPages();\r\n    let eventData:ISimplePaginationEvent = {\r\n      activePage:this.activePage,\r\n      displayPerPage:this.displayPerPage,\r\n      totalPages:this.totalPages,\r\n      startRecordNumber:this.resultStartNumber,\r\n      endRecordNumber:this.resultEndNumber\r\n    };\r\n    this.onPageChange.emit(eventData);\r\n    this.events.execute(\"pageChange\",eventData);\r\n  }\r\n\r\n  setDisplayPerPage(value:any){\r\n    this.displayPerPage = parseInt(value);\r\n    this.setActivePage(1);\r\n  }\r\n\r\n  setPages() {\r\n    this.pageButtons = [];\r\n    this.totalPages = Math.ceil(this.totalResults / this.displayPerPage);\r\n    this.resultEndNumber = this.activePage * this.displayPerPage;\r\n    this.resultStartNumber = (this.resultEndNumber - this.displayPerPage)+1;\r\n    if(this.resultStartNumber>this.totalResults){\r\n      this.resultStartNumber = this.totalResults;\r\n    }\r\n    if(this.resultEndNumber>this.totalResults){\r\n      this.resultEndNumber = this.totalResults;\r\n    }\r\n    let pagesArray:number[] = [];\r\n    if (this.pagesDisplayCount < 7) {\r\n      this.pagesDisplayCount = 7;\r\n    }\r\n    if(this.pagesDisplayCount < this.totalPages){\r\n      pagesArray = [1];\r\n      let pagesToAdjust: number = this.pagesDisplayCount - 4;\r\n      let pageMedian: number = Math.floor(pagesToAdjust / 2);\r\n      let andjustStartIndex: number = this.activePage - pageMedian;\r\n      if (andjustStartIndex < 2) {\r\n        andjustStartIndex = 2;\r\n      }\r\n      let andjustEndIndex: number = andjustStartIndex + pagesToAdjust;\r\n      if (andjustEndIndex >= this.totalPages) {\r\n        andjustEndIndex = this.totalPages - 1;\r\n        andjustStartIndex = andjustEndIndex - pagesToAdjust;\r\n      }\r\n      if (andjustStartIndex > 2) {\r\n        pagesArray.push(-1);\r\n        andjustEndIndex--;\r\n      }\r\n      if (andjustStartIndex >= (this.totalPages - (pagesToAdjust + 1))) {\r\n        andjustEndIndex++;\r\n      }\r\n      for (let i = andjustStartIndex; i <= andjustEndIndex; i++) {\r\n        pagesArray.push(i);\r\n      }\r\n      if (andjustEndIndex < this.totalPages - pageMedian) {\r\n        pagesArray.push(-1);\r\n      }\r\n      pagesArray.push(this.totalPages);\r\n    }\r\n    else{\r\n      for(let index=1;index<=this.totalPages;index++){\r\n        pagesArray.push(index);\r\n      }\r\n    }\r\n    if(!pagesArray.includes(this.activePage)){\r\n      // pagesArray.push(this.activePage);\r\n    }\r\n    for (let pageNumber of pagesArray) {\r\n      this.pageButtons.push({\r\n        pageNumber: pageNumber,\r\n        pageLabel: pageNumber > 0 ? pageNumber.toString() : \"...\",\r\n        isActive: this.activePage == pageNumber\r\n      });\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"simple-pagination-container\">\r\n  <div class=\"simple-pagination-results-info\">\r\n    {{resultStartNumber}} to {{resultEndNumber}} of {{totalResults}},\r\n    Showing\r\n    <select class=\"simple-pagination-per-page-select\" #perPageSelect [(ngModel)]=\"displayPerPage\" (change)=\"setDisplayPerPage(perPageSelect.value)\">\r\n      <option *ngFor=\"let option of perPageOptions\" [value]=\"option\">{{option}}</option>\r\n    </select> per page\r\n  </div>\r\n  <div class=\"simple-pagination-page-buttons-container\">\r\n      <!-- <div>Goto Page <input type=\"number\" class=\"simple-pagination-goto-page-input\"> &nbsp;</div> -->\r\n      <ul class=\"simple-pagination-buttons-list\">\r\n        <li [innerHTML]=\"previousHtml\" (click)=\"handlePreviousClick()\" [attr.disabled]=\"activePage==1\"></li>\r\n        <li [class]=\"page.isActive?'simple-page-active':''\" *ngFor=\"let page of pageButtons\" (click)=\"handlePageClick(page)\">\r\n          {{ page.pageLabel }}\r\n        </li>\r\n        <li [innerHTML]=\"nextHtml\" (click)=\"handleNextClick()\"  [attr.disabled]=\"activePage<totalPages\"></li>\r\n      </ul>\r\n  </div>\r\n</div>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SimplePaginationComponent } from './simple-pagination/simple-pagination.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    SimplePaginationComponent\r\n  ],\r\n  exports: [\r\n    SimplePaginationComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule\r\n  ]\r\n})\r\nexport class SimplePaginationModule { }\r\n","export class NumberToWords {\r\n  static numberToWords(number: number, params: object = {}) {\r\n    return NumberToWords.numberToWordsEight(number);\r\n  }\r\n  static numberToWordsOne(number: number, params: object = {}) {\r\n    let result = \"\";\r\n    if (number == 0) {\r\n      result = \"\";\r\n    }\r\n    else if (number == 1) {\r\n      result = \"One\";\r\n    }\r\n    else if (number == 2) {\r\n      result = \"Two\";\r\n    }\r\n    else if (number == 3) {\r\n      result = \"Three\";\r\n    }\r\n    else if (number == 4) {\r\n      result = \"Four\";\r\n    }\r\n    else if (number == 5) {\r\n      result = \"Five\";\r\n    }\r\n    else if (number == 6) {\r\n      result = \"Six\";\r\n    }\r\n    else if (number == 7) {\r\n      result = \"Seven\";\r\n    }\r\n    else if (number == 8) {\r\n      result = \"Eight\";\r\n    }\r\n    else if (number == 9) {\r\n      result = \"Nine\";\r\n    }\r\n    else if (number == 10) {\r\n      result = \"Ten\";\r\n    }\r\n    else if (number == 11) {\r\n      result = \"Eleven\";\r\n    }\r\n    else if (number == 12) {\r\n      result = \"Twelve\";\r\n    }\r\n    else if (number == 13) {\r\n      result = \"Thirteen\";\r\n    }\r\n    else if (number == 14) {\r\n      result = \"Fouteen\";\r\n    }\r\n    else if (number == 15) {\r\n      result = \"Fifteen\";\r\n    }\r\n    else if (number == 16) {\r\n      result = \"Sixteen\";\r\n    }\r\n    else if (number == 17) {\r\n      result = \"Seventeen\";\r\n    }\r\n    else if (number == 18) {\r\n      result = \"Eighteen\";\r\n    }\r\n    else if (number == 19) {\r\n      result = \"Ninteen\";\r\n    }\r\n    return result;\r\n  }\r\n  static numberToWordsTwo(number: number, params: object = {}) {\r\n    let result = \"\";\r\n\r\n    if (number < 20) {\r\n      result = NumberToWords.numberToWordsOne(number);\r\n    }\r\n    else if (number > 19 && number < 30) {\r\n      result = \"Twenty \" + NumberToWords.numberToWordsOne(number % 20);\r\n    }\r\n    else if (number > 29 && number < 40) {\r\n      result = \"Thirty \" + NumberToWords.numberToWordsOne(number % 30);\r\n    }\r\n    else if (number > 39 && number < 50) {\r\n      result = \"Fourty \" + NumberToWords.numberToWordsOne(number % 40);\r\n    }\r\n    else if (number > 49 && number < 60) {\r\n      result = \"Fifty \" + NumberToWords.numberToWordsOne(number % 50);\r\n    }\r\n    else if (number > 59 && number < 70) {\r\n      result = \"Sixty \" + NumberToWords.numberToWordsOne(number % 60);\r\n    }\r\n    else if (number > 69 && number < 80) {\r\n      result = \"Seventy \" + NumberToWords.numberToWordsOne(number % 70);\r\n    }\r\n    else if (number > 79 && number < 90) {\r\n      result = \"Eighty \" + NumberToWords.numberToWordsOne(number % 80);\r\n    }\r\n    else if (number > 89 && number < 100) {\r\n      result = \"Ninty \" + NumberToWords.numberToWordsOne(number % 90);\r\n    }\r\n    return result;\r\n  }\r\n  static numberToWordsThree(number: number, params: object = {}) {\r\n    let result = \"\";\r\n\r\n    if (number < 100) {\r\n      result = NumberToWords.numberToWordsTwo(number);\r\n    }\r\n    else {\r\n      result = NumberToWords.numberToWordsOne(number / 100) + \" Hundred \" + NumberToWords.numberToWordsTwo(number % 100);\r\n    }\r\n    return result;\r\n  }\r\n  static numberToWordsFour(number: number, params: object = {}) {\r\n    let result = \"\";\r\n\r\n    if (number < 1000) {\r\n      result = NumberToWords.numberToWordsThree(number);\r\n    }\r\n    else {\r\n      result = NumberToWords.numberToWordsTwo(number / 1000) + \" Thousand \" + NumberToWords.numberToWordsThree(number % 1000);\r\n    }\r\n    return result;\r\n  }\r\n  static numberToWordsFive(number: number, params: object = {}) {\r\n    let result = \"\";\r\n\r\n    if (number < 100000) {\r\n      result = NumberToWords.numberToWordsFour(number);\r\n    }\r\n    else {\r\n      result = NumberToWords.numberToWordsTwo(number / 100000) + \" Lakh \" + NumberToWords.numberToWordsFour(number % 100000);\r\n    }\r\n    return result;\r\n  }\r\n  static numberToWordsSix(number: number, params: object = {}) {\r\n    let result = \"\";\r\n\r\n    if (number < 10000000) {\r\n      result = NumberToWords.numberToWordsFive(number);\r\n    }\r\n    else {\r\n      result = NumberToWords.numberToWordsTwo(number / 10000000) + \" Crore \" + NumberToWords.numberToWordsFive(number % 10000000);\r\n    }\r\n    return result;\r\n  }\r\n  static numberToWordsSeven(number: number, params: object = {}) {\r\n    let result = \"\";\r\n\r\n    if (number < 1000000000) {\r\n      result = NumberToWords.numberToWordsSix(number);\r\n    }\r\n    else {\r\n      result = NumberToWords.numberToWordsTwo(number / 1000000000) + \" Arab \" + NumberToWords.numberToWordsSix(number % 1000000000);\r\n    }\r\n    return result;\r\n  }\r\n  static numberToWordsEight(number: number, params: object = {}) {\r\n    let result = \"\";\r\n    if (number < 100000000000) {\r\n      result = NumberToWords.numberToWordsSeven(number);\r\n    }\r\n    else {\r\n      result = NumberToWords.numberToWordsTwo(number / 100000000000) + \" Kharab \" + NumberToWords.numberToWordsSeven(number % 100000000000);\r\n    }\r\n    return result;\r\n  }\r\n}\r\n","import { SimpleDatabase } from \"../database/simple-database\";\r\nimport { SimpleDataDictionary } from \"./simple-data-dictionary\";\r\nimport { SimpleExtensionMethods } from \"./simple-extension-methods\";\r\nimport { Simplify } from \"./simplify\";\r\n\r\nexport class SimpleDatabaseColumn {\r\n  static columnResolutionFunction: Function | undefined;\r\n  static typeColumnConfigurations: { [key: string]: any } = {\r\n    [SimpleDatabase.typeAutoNumber]: {},\r\n    [SimpleDatabase.typeBlob]: { visible: false, sort: false },\r\n    [SimpleDatabase.typeDate]: { formatDate: 'DISPLAY' },\r\n    [SimpleDatabase.typeDateTime]: { formatDateTime: 'DISPLAY' },\r\n    [SimpleDatabase.typeDouble]: { formatNumber: 'DISPLAY' },\r\n    [SimpleDatabase.typeInt]: { formatNumber: 'INT' },\r\n    [SimpleDatabase.typeJson]: { visible: false, sort: false },\r\n    [SimpleDatabase.typeMediaJson]: { visible: false, sort: false },\r\n    [SimpleDatabase.typePassword]: { visible: false, sort: false },\r\n  };\r\n  static getTableColumns({ tableName, excludeFields, includeFields, defaultHiddenFields, defaultVisibleFields, fields }: { tableName: string, excludeFields?: string[], includeFields?: string[], defaultHiddenFields?: string[], defaultVisibleFields?: string[], fields?: any }) {\r\n    let simpleDatabase: SimpleDatabase = SimpleDataDictionary.getSimpleDatabaseTable(tableName);\r\n    let tableFields = Object.keys(simpleDatabase.fields);\r\n    let columns: any = {};\r\n    if(fields){\r\n      columns = {...fields};\r\n    }\r\n    for (let field of tableFields) {\r\n      let getColumnDetails: boolean = true;\r\n      if (excludeFields != undefined) {\r\n        if (excludeFields.length > 0) {\r\n          if (excludeFields.includes(field)) {\r\n            getColumnDetails = false;\r\n          }\r\n        }\r\n      }\r\n      if (includeFields != undefined) {\r\n        if (includeFields.length > 0) {\r\n          getColumnDetails = false\r\n          if (includeFields.includes(field)) {\r\n            getColumnDetails = true;\r\n          }\r\n        }\r\n      }\r\n      if (fields) {\r\n        if (fields[field] != undefined) {\r\n          getColumnDetails = false;\r\n        }\r\n      }\r\n      let visible: boolean | undefined;\r\n      if(defaultHiddenFields){\r\n        if (defaultHiddenFields.includes(field)) {\r\n          visible = false;\r\n        }\r\n        else{\r\n          visible = true;\r\n        }\r\n      }\r\n      if(defaultVisibleFields){\r\n        if (defaultVisibleFields.includes(field)) {\r\n          visible = true;\r\n        }\r\n        else if(visible == undefined){\r\n          visible = false;\r\n        }\r\n      }\r\n      if (getColumnDetails) {\r\n        let columnDetails:any = SimpleDatabaseColumn.getTableColumn({ tableName: tableName, fieldName: field, visible: visible });\r\n        if(columnDetails){\r\n          columns[field] = columnDetails;\r\n        }\r\n      }\r\n    }\r\n    return columns;\r\n  }\r\n  static getTableColumn({ tableName, fieldName, title ,formatNumber, formatDate, formatDateTime, ngComponent,skipFunctionResolution, ngComponentProperties, \"class\": cssClass, style, sort, visible }: { tableName: string, fieldName: string, class?: string, formatNumber?: string, formatDate?: string, formatDateTime?: string, ngComponent?: any, ngComponentProperties?: any, sort?: boolean, visible?: boolean, style?: string, title?:string,skipFunctionResolution?:boolean }) {\r\n    let simpleDatabase: SimpleDatabase = SimpleDataDictionary.getSimpleDatabaseTable(tableName);\r\n    let fieldDetails: any = simpleDatabase.getField(fieldName);\r\n    let columnConfig: any;\r\n    let type: any = fieldDetails[SimpleDatabase.fieldType];\r\n    let fieldProperties: any = simpleDatabase.getFieldProperties(fieldName);\r\n    if (SimpleDatabaseColumn.columnResolutionFunction && !skipFunctionResolution) {\r\n      let requestParams: any = {\r\n        tableName: tableName,\r\n        fieldName: fieldName,\r\n        fieldDetails: fieldDetails,\r\n        fieldProperties: fieldProperties,\r\n        fieldType: type\r\n      }\r\n      columnConfig = SimpleDatabaseColumn.columnResolutionFunction(requestParams);\r\n    }\r\n    let label = fieldDetails[SimpleDatabase.fieldName];\r\n    if(title!=undefined){\r\n      label = title;\r\n    }\r\n    else if (fieldProperties[SimpleDatabase.propertyFieldTitle]) {\r\n      label = fieldProperties[SimpleDatabase.propertyFieldTitle];\r\n    }\r\n    if (columnConfig == undefined || columnConfig == null) {\r\n      columnConfig = {\r\n        \"title\": label\r\n      };\r\n      if (cssClass) {\r\n        columnConfig[\"class\"] = cssClass;\r\n      }\r\n      if (formatDate) {\r\n        columnConfig[\"formatDate\"] = formatDate;\r\n      }\r\n      if (formatDateTime) {\r\n        columnConfig[\"formatDateTime\"] = formatDateTime;\r\n      }\r\n      if (formatNumber) {\r\n        columnConfig[\"formatNumber\"] = formatNumber;\r\n      }\r\n      if (ngComponent) {\r\n        columnConfig[\"ngComponent\"] = ngComponent;\r\n      }\r\n      if (ngComponentProperties) {\r\n        columnConfig[\"ngComponentProperties\"] = ngComponentProperties;\r\n      }\r\n      if (cssClass) {\r\n        columnConfig[\"class\"] = cssClass;\r\n      }\r\n      if (style) {\r\n        columnConfig[\"style\"] = style;\r\n      }\r\n      if (sort != undefined) {\r\n        columnConfig[\"sort\"] = sort;\r\n      }\r\n      if (visible != undefined) {\r\n        columnConfig[\"visible\"] = visible;\r\n      }\r\n      if (SimpleDatabaseColumn.typeColumnConfigurations[type]) {\r\n        let defaultConfigKeys: string[] = Object.keys(SimpleDatabaseColumn.typeColumnConfigurations[type]);\r\n        let excludeField:boolean = false;\r\n        for (let key of defaultConfigKeys) {\r\n          if(key == \"excludeField\"){\r\n            excludeField = SimpleDatabaseColumn.typeColumnConfigurations[type][key];\r\n          }\r\n          else if (columnConfig[key] == undefined) {\r\n            columnConfig[key] = SimpleDatabaseColumn.typeColumnConfigurations[type][key];\r\n          }\r\n        }\r\n        if(excludeField){\r\n          columnConfig = undefined;\r\n        }\r\n      }\r\n    }\r\n    return columnConfig;\r\n  }\r\n  static getViewTableColumns({ viewName, tableNames, excludeFields, includeFields, defaultHiddenFields, defaultVisibleFields, fields }: { viewName: string, tableNames: string[], excludeFields?: string[], includeFields?: string[], defaultHiddenFields?: string[], defaultVisibleFields?: string[], fields?: any }) {\r\n    let columns: any = {};\r\n    if(fields){\r\n      columns = {...fields};\r\n    }\r\n    if (Simplify.validValue(SimpleDataDictionary.dataDictionary)) {\r\n      if (Simplify.validValue(SimpleDataDictionary.dataDictionary[\"views\"])) {\r\n        if (Simplify.validValue(SimpleDataDictionary.dataDictionary[\"views\"][viewName])) {\r\n          let viewDetails: any = SimpleDataDictionary.dataDictionary[\"views\"][viewName];\r\n          if (viewDetails[SimpleDatabase.viewFields]) {\r\n            let viewFields: string[] = Object.keys(viewDetails[SimpleDatabase.viewFields]);\r\n            let pendingFields: string[] = [...viewFields];\r\n            if (includeFields != undefined) {\r\n              for (let field of includeFields) {\r\n                if (!includeFields.includes(field)) {\r\n                  includeFields.push(field);\r\n                }\r\n              }\r\n            }\r\n            else{\r\n              includeFields = pendingFields;\r\n            }\r\n            for (let tableName of tableNames) {\r\n              if (pendingFields.length > 0) {\r\n                let tableColumns: any = SimpleDatabaseColumn.getTableColumns({ tableName: tableName, excludeFields: excludeFields, includeFields: includeFields, fields: fields, defaultHiddenFields: defaultHiddenFields, defaultVisibleFields: defaultVisibleFields });\r\n                let tableColumnFields = Object.keys(tableColumns);\r\n                for (let field of tableColumnFields) {\r\n                  columns[field] = tableColumns[field];\r\n                  pendingFields = SimpleExtensionMethods.arrayRemove(pendingFields, field);\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return columns;\r\n  }\r\n}\r\n","import { AjaxService } from \"../services/ajax.service\";\r\nimport { SimpleExtensionMethods } from \"./simple-extension-methods\";\r\nimport { Simplify } from \"./simplify\";\r\n\r\nexport interface SimpleEmailAttachmentDetails {\r\n  name: string,\r\n  url?: string,\r\n  fileData?:Blob|number[]\r\n}\r\n\r\nexport interface SimpleEmailDetails {\r\n  attachments?: SimpleEmailAttachmentDetails[],\r\n  body?: string,\r\n  subject?: string,\r\n  to?: string,\r\n  cc?: string,\r\n  bcc?: string,\r\n  from?: string,\r\n}\r\n\r\n\r\n\r\nexport class SimpleEmail {\r\n  static async downloadEmlFile(emailDetails: SimpleEmailDetails, fileName?: string | undefined) {\r\n    const emlContent = await this.generateEmlContent(emailDetails);\r\n    const blob = new Blob([emlContent], { type: 'message/rfc822' });\r\n    const url = URL.createObjectURL(blob);\r\n    if (fileName) {\r\n      const a = document.createElement('a');\r\n      a.href = url;\r\n      a.download = fileName;\r\n      a.click();\r\n    }\r\n    else {\r\n      window.open(url);\r\n    }\r\n    URL.revokeObjectURL(url);\r\n  }\r\n\r\n  static async generateEmlContent(emailDetails: SimpleEmailDetails) {\r\n\r\n    const boundary = 'boundary';\r\n    const buffer = [];\r\n    if (emailDetails.from) {\r\n      buffer.push(`From: ${emailDetails.from}`);\r\n    }\r\n    if (emailDetails.to) {\r\n      buffer.push(`To: ${emailDetails.to}`);\r\n    }\r\n    if (emailDetails.cc) {\r\n      buffer.push(`Cc: ${emailDetails.cc}`);\r\n  }\r\n  if (emailDetails.bcc) {\r\n      buffer.push(`Bcc: ${emailDetails.bcc}`);\r\n  }\r\n    if (emailDetails.subject) {\r\n      buffer.push(`Subject: ${emailDetails.subject}`);\r\n    }\r\n    buffer.push('MIME-Version: 1.0');\r\n    buffer.push('X-Unsent: 1');\r\n    buffer.push('X-Draft-Status: Yes');\r\n    buffer.push(`Content-Type: multipart/mixed; boundary=\"${boundary}\"`);\r\n    buffer.push('');\r\n    buffer.push(`--${boundary}`);\r\n    if (emailDetails.body) {\r\n      buffer.push('Content-Type: text/html; charset=\"UTF-8\"');\r\n      buffer.push('');\r\n      buffer.push(emailDetails.body);\r\n      buffer.push('');\r\n    }\r\n\r\n    if (emailDetails.attachments) {\r\n      for (let attachment of emailDetails.attachments) {\r\n        let base64String:any = \"\" ;\r\n        if(attachment.url){\r\n          base64String = await AjaxService.getFileContentAsBase64FromUrl(attachment.url);\r\n        }\r\n        else if(attachment.fileData){\r\n          base64String = await SimpleExtensionMethods.convertFileDataToBase64(attachment.fileData,attachment.name);\r\n        }\r\n        buffer.push(`--${boundary}`);\r\n        buffer.push(`Content-Disposition: attachment; filename=\"${attachment.name}\"`);\r\n        buffer.push(`Content-Type: ${Simplify.getMimeTypeFromFileName(attachment.name)}; name=\"${attachment.name}\"`);\r\n        buffer.push('Content-Transfer-Encoding: base64');\r\n        buffer.push('');\r\n        buffer.push(base64String);\r\n        buffer.push('');\r\n      }\r\n    }\r\n    buffer.push(`--${boundary}--`);\r\n    return buffer.join('\\n');\r\n  }\r\n\r\n}\r\n","import { SimpleResult } from \"./simple-result\";\r\nimport { Simplify } from \"./simplify\";\r\n\r\n\r\nexport class SimpleFunctions {\r\n  functions: Map<string, Map<string, Function>> = new Map();\r\n\r\n  async execute(key: string, data?: any): Promise<SimpleFunctionExecutionResult> {\r\n    const result = new SimpleFunctionExecutionResult();\r\n    try {\r\n      const functionResults: { [key: string]: any } = {};\r\n      if (this.functions.has(key)) {\r\n        const functionsToExecute = this.functions.get(key)!;\r\n        for (const functionId of functionsToExecute.keys()) {\r\n          const func = functionsToExecute.get(functionId)!;\r\n          let functionResult;\r\n          if (data !== undefined) {\r\n            functionResult = await func(data);\r\n          } else {\r\n            functionResult = await func();\r\n          }\r\n          if (functionResult && functionResult.status === \"success\") {\r\n            functionResults[functionId] = functionResult;\r\n          }\r\n        }\r\n      }\r\n      if (Object.keys(functionResults).length > 0) {\r\n        result.hasResults = true;\r\n        result.results = functionResults;\r\n      }\r\n      result.setSuccess();\r\n    } catch (ex) {\r\n      result.setException(ex);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  register(functionName: string, func: Function): string {\r\n    if (!this.functions.has(functionName)) {\r\n      this.functions.set(functionName, new Map());\r\n    }\r\n    const functionId = Simplify.generateId();\r\n    this.functions.get(functionName)!.set(functionId, func);\r\n    return functionId;\r\n  }\r\n\r\n  contains(key: string): boolean {\r\n    return this.functions.has(key);\r\n  }\r\n}\r\n\r\nclass SimpleFunctionExecutionResult extends SimpleResult {\r\n  static readonly keyHasResults = \"has_results\";\r\n  hasResults: boolean = false;\r\n  results: { [key: string]: any } = {};\r\n\r\n  override toJson(): { [key: string]: any } {\r\n    const result = super.toJson();\r\n    result[SimpleFunctionExecutionResult.keyHasResults] = this.hasResults;\r\n    return result;\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of simplify-angular\r\n */\r\nimport 'intersection-observer';\r\n\r\nexport * from './lib/_base/simple-base-class';\r\nexport * from './lib/_base/simple-base-for-input.component';\r\n\r\n//Component\r\nexport * from './lib/components/buttons/simple-sort-button/simple-sort-button.component';\r\nexport * from './lib/components/html-print-preview/html-print-preview.component';\r\nexport * from './lib/components/inputs/filter-input/filter-input.component';\r\n\r\n//Simple Database Input Component\r\nexport * from './lib/components/inputs/simple-database-input/simple-database-input.component';\r\nexport * from './lib/components/inputs/simple-database-input/simple-database-input-template/simple-database-input-template.component';\r\nexport * from './lib/components/inputs/simple-database-input/simple-database-input-template/simple-database-input-element/simple-database-input-element.component';\r\n\r\n//SimpleInputs\r\nexport * from './lib/components/inputs/simple-inputs/auto-simple-input/auto-simple-input.component';\r\nexport * from './lib/components/inputs/simple-inputs/simple-input/simple-input.component';\r\nexport * from './lib/components/inputs/simple-inputs/simple-input-check/simple-input-check.component';\r\nexport * from './lib/components/inputs/simple-inputs/simple-input-date/simple-input-date.component';\r\nexport * from './lib/components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload.component';\r\nexport * from './lib/components/inputs/simple-inputs/simple-input-file-upload/simple-input-file-upload-preview-empty/simple-input-file-upload-preview-empty.component';\r\nexport * from './lib/components/inputs/simple-inputs/simple-input-key-value-pair/simple-input-key-value-pair.component';\r\nexport * from './lib/components/inputs/simple-inputs/simple-input-select/simple-input-select.component';\r\nexport * from './lib/components/inputs/simple-inputs/simple-input-textarea/simple-input-textarea.component';\r\n\r\nexport * from './lib/components/records-list/records-list.component';\r\nexport * from './lib/components/repeater/repeater.component';\r\nexport * from './lib/components/simple-collapsible-container/simple-collapsible-container.component';\r\nexport * from './lib/components/simple-conversation-form/simple-conversation-form.component';\r\nexport * from './lib/components/simple-conversation-form/simple-conversation-form-input/simple-conversation-form-input.component';\r\nexport * from './lib/components/simple-dynamic-component/simple-dynamic-component.component';\r\nexport * from './lib/components/simple-fields-customizer/simple-fields-customizer.component';\r\nexport * from './lib/components/simple-file-preview/simple-file-preview.component';\r\nexport * from './lib/components/simple-filters/simple-filters.component';\r\nexport * from './lib/components/simple-form/simple-form.component';\r\nexport * from './lib/components/simple-iframe-content/simple-iframe-content.component';\r\nexport * from './lib/components/simple-records-list/simple-records-list.component';\r\nexport * from './lib/components/simple-repeater/simple-repeater.component';\r\nexport * from './lib/components/simple-repeating-items/simple-repeating-items.component';\r\n\r\n// Configs\r\nexport * from './lib/configs/constants';\r\nexport * from './lib/configs/enum';\r\nexport * from './lib/configs/simplify-configurations';\r\nexport * from './lib/configs/models';\r\nexport * from './lib/configs/constants';\r\n\r\n/* Database */\r\nexport * from './lib/database/simple-database';\r\n\r\n//Directives\r\nexport * from './lib/directives/in-viewport.directive';\r\nexport * from './lib/directives/remove-component-tag.directive';\r\nexport * from './lib/directives/simple-auto-focus-element.directive';\r\nexport * from './lib/directives/simple-comment-element-tag.directive';\r\nexport * from './lib/directives/simple-context-menu-template.directive';\r\nexport * from './lib/directives/simple-repeating-item.directive';\r\nexport * from './lib/directives/simple-resize.directive';\r\nexport * from './lib/directives/simple-runtime-html.directive';\r\nexport * from './lib/directives/simple-templates-list.directive';\r\nexport * from './lib/directives/templates.directive';\r\n\r\n//Interfaces\r\nexport * from './lib/interfaces/simple-database-input-foreign-key-input.interface';\r\nexport * from './lib/interfaces/simple-database-input-resolution-function-params.interface';\r\nexport * from './lib/interfaces/simple-database-input-type-input-mapping.interface';\r\nexport * from './lib/interfaces/simple-http-request-params.interface';\r\n\r\n\r\n//Mixins\r\nexport * from './lib/mixins/lifecycle-multi-listener.mixin';\r\n\r\n//Services\r\nexport * from './lib/services/ajax.service';\r\nexport * from './lib/services/app-browser.service';\r\nexport * from './lib/services/data-dictionary.service';\r\nexport * from './lib/services/components-register.service';\r\nexport * from './lib/services/dynamic-component.service';\r\nexport * from './lib/services/printing.service';\r\nexport * from './lib/services/simple-activity-detection.service';\r\nexport * from './lib/services/simple-alert.service';\r\nexport * from './lib/services/simple-runtime.service';\r\nexport * from './lib/services/simplify.service';\r\nexport * from './lib/services/viewport.service';\r\n\r\n/* SimpleDataGrid */\r\nexport * from './lib/simple-datagrid/components/simple-datagrid/simple-datagrid.component';\r\nexport * from './lib/simple-datagrid/components/simple-datagrid-cell/simple-datagrid-cell.component';\r\nexport * from './lib/simple-datagrid/components/simple-datagrid-column/simple-datagrid-column.component';\r\nexport * from './lib/simple-datagrid/components/simple-datagrid-column-head/simple-datagrid-column-head.component';\r\nexport * from './lib/simple-datagrid/components/simple-datagrid-row/simple-datagrid-row.component';\r\nexport * from './lib/simple-datagrid/interfaces/simple-datagrid-cell-event.interface';\r\nexport * from './lib/simple-datagrid/interfaces/simple-datagrid-column-state.interface';\r\nexport * from './lib/simple-datagrid/interfaces/simple-datagrid-column-width-change-event.interface';\r\nexport * from './lib/simple-datagrid/interfaces/simple-datagrid-column.interface';\r\nexport * from './lib/simple-datagrid/interfaces/simple-datagrid-row-data-change-event.interface';\r\nexport * from './lib/simple-datagrid/interfaces/simple-datagrid-row-event.interface';\r\nexport * from './lib/simple-datagrid/interfaces/simple-datagrid.interface';\r\nexport * from './lib/simple-datagrid/simple-datagrid.module';\r\n\r\n/* Pagination */\r\nexport * from './lib/simple-pagination/interfaces/simple-page.interface';\r\nexport * from './lib/simple-pagination/interfaces/simple-pagination-event.interface';\r\nexport * from './lib/simple-pagination/simple-pagination/simple-pagination.component';\r\nexport * from './lib/simple-pagination/simple-pagination.module';\r\n\r\n/* Utilities */\r\nexport * from './lib/utilities/number-to-words';\r\nexport * from './lib/utilities/simple-data-dictionary';\r\nexport * from './lib/utilities/simple-data-operations';\r\nexport * from './lib/utilities/simple-database-column';\r\nexport * from './lib/utilities/simple-database-input';\r\nexport * from './lib/utilities/simple-email';\r\nexport * from './lib/utilities/simple-event-execution-result';\r\nexport * from './lib/utilities/simple-events';\r\nexport * from './lib/utilities/simple-extension-methods';\r\nexport * from './lib/utilities/simple-functions';\r\nexport * from './lib/utilities/simple-http';\r\nexport * from './lib/utilities/simple-logger';\r\nexport * from './lib/utilities/simple-result';\r\nexport * from './lib/utilities/simple-storage';\r\nexport * from './lib/utilities/simplify';\r\n\r\n//Module\r\nexport * from './lib/simplify-angular.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ComponentsRegisterService","i2.DataDictionaryService","i3.DynamicComponentService","i4.SimpleActivityDetectionService","i5.SimpleAlertService","i6.ViewportService","i1.SimplifyService","i2.AppBrowserService","i1","i2","i3.SimpleFilePreviewComponent","i1.DynamicComponentService","i2.SimplifyService","i2.SimpleDynamicComponent","i1.SimpleDynamicComponent","i1.AjaxService","i3.ViewportService","i4.SimplifyService","i5.DynamicComponentService","i3.SimpleInputCheckComponent","i2.SimpleInputComponent","i2.SimpleAlertService","i2.AjaxService","i3.SimpleDynamicComponent","i4.SimpleInputComponent","i5.SimpleInputCheckComponent","i6.SimpleSortButtonComponent","i7.SimpleResizeDirective","i1.AppBrowserService","i2.SimpleDatagridCellComponent","i3.SimpleDatagridColumnHeadComponent","i4.SimpleDatagridRowComponent"],"mappings":"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"}