{"version":3,"file":"ngx-st-base-functions.mjs","sources":["../../../projects/ngx-st-base-functions/src/lib/services/st-base.service.ts","../../../projects/ngx-st-base-functions/src/lib/components/loader/loader.component.ts","../../../projects/ngx-st-base-functions/src/lib/components/loader/loader.component.html","../../../projects/ngx-st-base-functions/src/lib/components/subscribe-destroy/st-subscribe-destroy.component.ts","../../../projects/ngx-st-base-functions/src/lib/components/base-create-edit/base-create-edit.ts","../../../projects/ngx-st-base-functions/src/lib/components/base-create-edit-dialog/base-create-edit-dialog.ts","../../../projects/ngx-st-base-functions/src/lib/pipes/st-safe.pipe.ts","../../../projects/ngx-st-base-functions/src/lib/pipes/st-safe-html.pipe.ts","../../../projects/ngx-st-base-functions/src/lib/pipes/st-check-empty-string.pipe.ts","../../../projects/ngx-st-base-functions/src/lib/pipes/st-cut-text.pipe.ts","../../../projects/ngx-st-base-functions/src/lib/ngx-st-base-functions.module.ts","../../../projects/ngx-st-base-functions/src/public-api.ts","../../../projects/ngx-st-base-functions/src/ngx-st-base-functions.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class StBaseService {\r\n  constructor() {}\r\n\r\n  static removeXMLInvalidChars(\r\n    str: string,\r\n    removeDiscouragedChars: boolean = true\r\n  ) {\r\n    // str = StBaseService.decodeHtmlCharCodes(str);\r\n    // remove everything forbidden by XML 1.0 specifications, plus the unicode replacement character U+FFFD\r\n    let regex =\r\n      /((?:[\\0-\\x08\\x0B\\f\\x0E-\\x1F\\uFFFD\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))/g;\r\n    // ensure we have a string\r\n    str = String(str || '').replace(regex, '');\r\n    if (removeDiscouragedChars) {\r\n      // remove everything discouraged by XML 1.0 specifications\r\n      regex = new RegExp(\r\n        '([\\\\x7F-\\\\x84]|[\\\\x86-\\\\x9F]|[\\\\uFDD0-\\\\uFDEF]|(?:\\\\uD83F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD87F[\\\\uDF' +\r\n          'FE\\\\uDFFF])|(?:\\\\uD8BF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD8FF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD93F[\\\\uDFFE\\\\uD' +\r\n          'FFF])|(?:\\\\uD97F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD9BF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD9FF[\\\\uDFFE\\\\uDFFF])' +\r\n          '|(?:\\\\uDA3F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDA7F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDABF[\\\\uDFFE\\\\uDFFF])|(?:\\\\' +\r\n          'uDAFF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDB3F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDB7F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDBBF' +\r\n          '[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDBFF[\\\\uDFFE\\\\uDFFF])(?:[\\\\0-\\\\t\\\\x0B\\\\f\\\\x0E-\\\\u2027\\\\u202A-\\\\uD7FF\\\\' +\r\n          'uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]|[\\\\uD800-\\\\uDBFF](?![\\\\uDC00-\\\\uDFFF])|' +\r\n          '(?:[^\\\\uD800-\\\\uDBFF]|^)[\\\\uDC00-\\\\uDFFF]))',\r\n        'g'\r\n      );\r\n      str = str.replace(regex, '');\r\n    }\r\n    return str;\r\n  }\r\n\r\n  static cutText(\r\n    string: string | undefined = '',\r\n    length: number,\r\n    delimiter?: string\r\n  ) {\r\n    delimiter = delimiter || '...';\r\n    if (string) {\r\n      return string.length > length\r\n        ? string.substr(0, length) + delimiter\r\n        : string;\r\n    }\r\n    return '';\r\n  }\r\n\r\n  static decodeHtmlCharCodes(str: string) {\r\n    return str.replace(/(&#(\\d+);)/g, (match, capture, charCode) => {\r\n      return String.fromCharCode(charCode);\r\n    });\r\n  }\r\n\r\n  static generateGUID() {\r\n    let d = new Date().getTime(); //Timestamp\r\n    let d2 =\r\n      (typeof performance !== 'undefined' &&\r\n        performance.now &&\r\n        performance.now() * 1000) ||\r\n      0; //Time in microseconds since page-load or 0 if unsupported\r\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\r\n      /[xy]/g,\r\n      function (c) {\r\n        var r = Math.random() * 16; //random number between 0 and 16\r\n        if (d > 0) {\r\n          //Use timestamp until depleted\r\n          r = (d + r) % 16 | 0;\r\n          d = Math.floor(d / 16);\r\n        } else {\r\n          //Use microseconds since page-load if supported\r\n          r = (d2 + r) % 16 | 0;\r\n          d2 = Math.floor(d2 / 16);\r\n        }\r\n        return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n      }\r\n    );\r\n  }\r\n\r\n  static getEnumStrings(enumObj: any): string[] {\r\n    return Object.keys(enumObj)\r\n      .map(key => enumObj[key])\r\n      .filter(value => typeof value === 'string');\r\n  }\r\n\r\n  static getEnumNumbers(enumObj: any): number[] {\r\n    return Object.keys(enumObj)\r\n      .map(key => enumObj[key])\r\n      .filter(value => typeof value === 'number');\r\n  }\r\n\r\n  static convertArrayToObject<T>(array: T[]): {\r\n    [key: number]: T;\r\n  } {\r\n    const initialValue = {};\r\n    array.forEach((item, key) => {\r\n      // @ts-ignore\r\n      initialValue[key] = item;\r\n    });\r\n    return initialValue;\r\n  }\r\n\r\n  static notNull = <T>(value: T | null): value is T => !!value;\r\n\r\n  static roundNumberToTwoDecimalPlaces(num: number) {\r\n    return Math.round((num + Number.EPSILON) * 100) / 100;\r\n  }\r\n}\r\n","import { Component, OnInit, input } from '@angular/core';\r\n\r\n@Component({\n    selector: 'ngx-st-loader',\n    templateUrl: './loader.component.html',\n    styleUrls: ['./loader.component.scss'],\n    standalone: false\n})\r\nexport class LoaderComponent implements OnInit {\r\n  showLoader = input(false);\r\n\r\n  positionVal = input('absolute');\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","@if (showLoader()) {\r\n  <div\r\n    class=\"loader row justify-content-center\"\r\n    style=\"position: {{ positionVal() }};\"\r\n  >\r\n    <div class=\"lds-ring\">\r\n      <div></div>\r\n      <div></div>\r\n      <div></div>\r\n      <div></div>\r\n    </div>\r\n  </div>\r\n}\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\n    selector: 'lib-subscribe-destroy',\n    template: '',\n    styleUrls: [],\n    standalone: false\n})\r\nexport class StSubscribeDestroyComponent implements OnDestroy {\r\n  ngDestroyed$ = new Subject();\r\n\r\n  constructor() {}\r\n\r\n  ngOnDestroy() {\r\n    this.ngDestroyed$.next(true);\r\n    this.ngDestroyed$.complete();\r\n  }\r\n}\r\n","import { StSubscribeDestroyComponent } from '../subscribe-destroy/st-subscribe-destroy.component';\r\nimport {\r\n  Component,\r\n  HostBinding,\r\n  inject,\r\n  Injectable,\r\n  signal,\r\n} from '@angular/core';\r\nimport { Form, FormGroup, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\n    selector: 'st-base-create-edit',\n    template: '',\n    styles: [],\n    host: {\n        class: 'display-flex-component',\n    },\n    standalone: false\n})\r\nexport abstract class StBaseCreateEdit {\r\n  editId = signal<string | undefined>('');\r\n  form: FormGroup<any> = new FormGroup({});\r\n\r\n  protected router = inject(Router);\r\n  protected activatedRoute = inject(ActivatedRoute);\r\n  protected location = inject(Location);\r\n\r\n  init = () => {\r\n    this.editId.set(this.activatedRoute.snapshot.params['id']);\r\n    if (this.editId()) {\r\n      this.loadEditModel().then(res => {\r\n        this.setFormSubscribers();\r\n      });\r\n    } else {\r\n      this.setFormSubscribers();\r\n    }\r\n  };\r\n\r\n  formSubmitted = () => {\r\n    if (this.form.valid) {\r\n      this.setLoader(true);\r\n      this.createUpdateRequest().subscribe(res => {\r\n        this.setLoader(false);\r\n        this.router.navigate([this.editId() ? '../../' : '../'], {\r\n          relativeTo: this.activatedRoute,\r\n        });\r\n      });\r\n    }\r\n  };\r\n  goBack = () => {\r\n    this.location.back();\r\n  };\r\n\r\n  protected abstract setFormSubscribers(): void;\r\n\r\n  protected abstract setLoader(show: boolean): void;\r\n\r\n  protected abstract loadEditModel(): Promise<boolean>;\r\n\r\n  protected abstract createUpdateRequest(): Observable<any>;\r\n}\r\n","import { StSubscribeDestroyComponent } from '../subscribe-destroy/st-subscribe-destroy.component';\r\nimport { Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport abstract class StBaseCreateEditDialog extends StSubscribeDestroyComponent {\r\n  abstract form: FormGroup;\r\n\r\n  constructor(\r\n    @Inject(MAT_DIALOG_DATA)\r\n    public dialogData: {\r\n      editId?: string;\r\n      editModel?: any;\r\n    }\r\n  ) {\r\n    super();\r\n  }\r\n\r\n  init() {\r\n    if (this.dialogData?.editId || this.dialogData?.editModel) {\r\n      this.loadEditModel();\r\n    }\r\n  }\r\n\r\n  formSubmitted() {\r\n    if (this.form.valid) {\r\n      this.setLoader(true);\r\n      this.createUpdateRequest().subscribe(res => {\r\n        this.setLoader(false);\r\n      });\r\n    }\r\n  }\r\n\r\n  protected abstract setLoader(show: boolean): void;\r\n\r\n  protected abstract loadEditModel(): void;\r\n\r\n  protected abstract createUpdateRequest(): Observable<any>;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\n    name: 'stSafe',\n    standalone: false\n})\r\nexport class StSafePipe implements PipeTransform {\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n\r\n  transform(url: string): SafeResourceUrl {\r\n    return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\n    name: 'stSafeHtml',\n    standalone: false\n})\r\nexport class StSafeHtmlPipe implements PipeTransform {\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n  transform(value: any, args?: any): any {\r\n    return this.sanitizer.bypassSecurityTrustHtml(value);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\n    name: 'stCheckEmptyString',\n    standalone: false\n})\r\nexport class StCheckEmptyStringPipe implements PipeTransform {\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n\r\n  transform(value: any): any {\r\n    if (value) {\r\n      return value;\r\n    } else {\r\n      return '- - -';\r\n    }\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { StBaseService } from '../services/st-base.service';\r\n\r\n@Pipe({\n    name: 'stCutText',\n    standalone: false\n})\r\nexport class CutTextPipe implements PipeTransform {\r\n  transform(value: string, length: number = 20): string {\r\n    return StBaseService.cutText(value, length);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\nimport { StSubscribeDestroyComponent } from './components/subscribe-destroy/st-subscribe-destroy.component';\r\nimport { StCheckEmptyStringPipe } from './pipes/st-check-empty-string.pipe';\r\nimport { CutTextPipe } from './pipes/st-cut-text.pipe';\r\nimport { StSafePipe } from './pipes/st-safe.pipe';\r\nimport { StSafeHtmlPipe } from './pipes/st-safe-html.pipe';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { StBaseService } from './services/st-base.service';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    LoaderComponent,\r\n    StSubscribeDestroyComponent,\r\n    StCheckEmptyStringPipe,\r\n    CutTextPipe,\r\n    StSafePipe,\r\n    StSafeHtmlPipe,\r\n  ],\r\n  imports: [CommonModule, FormsModule, ReactiveFormsModule],\r\n  exports: [\r\n    LoaderComponent,\r\n    StSafeHtmlPipe,\r\n    StSafePipe,\r\n    StCheckEmptyStringPipe,\r\n    CutTextPipe,\r\n  ],\r\n  providers: [StBaseService],\r\n})\r\nexport class StBaseFunctionsModule {\r\n  constructor(private matIconRegistry: MatIconRegistry) {\r\n    this.matIconRegistry.setDefaultFontSetClass('material-symbols-outlined');\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-base-functions-example\r\n */\r\n\r\nexport * from './lib/services/st-base.service';\r\nexport * from './lib/components/loader/loader.component';\r\nexport * from './lib/components/subscribe-destroy/st-subscribe-destroy.component';\r\nexport * from './lib/components/base-create-edit/base-create-edit';\r\nexport * from './lib/components/base-create-edit-dialog/base-create-edit-dialog';\r\nexport * from './lib/pipes/st-safe.pipe';\r\nexport * from './lib/pipes/st-safe-html.pipe';\r\nexport * from './lib/pipes/st-check-empty-string.pipe';\r\nexport * from './lib/pipes/st-cut-text.pipe';\r\nexport * from './lib/ngx-st-base-functions.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}