{"version":3,"file":"net7-boilerplate-common.mjs","sources":["../../../projects/n7-boilerplate-common/src/lib/services/configuration.service.ts","../../../projects/n7-boilerplate-common/src/lib/services/layouts-configuration.service.ts","../../../projects/n7-boilerplate-common/src/lib/services/main-state.service.ts","../../../projects/n7-boilerplate-common/src/lib/services/communication-providers/apollo.provider.ts","../../../projects/n7-boilerplate-common/src/lib/services/communication-providers/rest.provider.ts","../../../projects/n7-boilerplate-common/src/lib/services/communication.service.ts","../../../projects/n7-boilerplate-common/src/lib/models/abstract-layout.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/main-layout/main-layout.ds.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/main-layout/main-layout.eh.ts","../../../projects/n7-boilerplate-common/src/lib/data-sources/header.ds.ts","../../../projects/n7-boilerplate-common/src/lib/data-sources/subnav.ds.ts","../../../projects/n7-boilerplate-common/src/lib/data-sources/breadcrumbs.ds.ts","../../../projects/n7-boilerplate-common/src/lib/data-sources/facets.ds.ts","../../../projects/n7-boilerplate-common/src/lib/data-sources/footer.ds.ts","../../../projects/n7-boilerplate-common/src/lib/data-sources/smart-pagination.ds.ts","../../../projects/n7-boilerplate-common/src/lib/event-handlers/header.eh.ts","../../../projects/n7-boilerplate-common/src/lib/event-handlers/subnav.eh.ts","../../../projects/n7-boilerplate-common/src/lib/event-handlers/breadcrumbs.eh.ts","../../../projects/n7-boilerplate-common/src/lib/event-handlers/footer.eh.ts","../../../projects/n7-boilerplate-common/src/lib/event-handlers/smart-pagination.eh.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/main-layout/main-layout.config.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/main-layout/main-layout.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/main-layout/main-layout.html","../../../projects/n7-boilerplate-common/src/lib/layouts/page404-layout/page404-layout.ds.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/page404-layout/page404-layout.eh.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/page404-layout/page404-layout.config.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/page404-layout/page404-layout.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/page404-layout/page404-layout.html","../../../projects/n7-boilerplate-common/src/lib/components/smart-pagination/smart-pagination.ts","../../../projects/n7-boilerplate-common/src/lib/components/smart-pagination/smart-pagination.html","../../../projects/n7-boilerplate-common/src/lib/directives/click-outside.directive.ts","../../../projects/n7-boilerplate-common/src/lib/components/grid/grid.ts","../../../projects/n7-boilerplate-common/src/lib/components/grid/grid.html","../../../projects/n7-boilerplate-common/src/lib/components/container/container.ts","../../../projects/n7-boilerplate-common/src/lib/components/container/container.html","../../../projects/n7-boilerplate-common/src/lib/components/side-scroller/side-scroller.ts","../../../projects/n7-boilerplate-common/src/lib/components/side-scroller/side-scroller.html","../../../projects/n7-boilerplate-common/src/lib/pipes/trans.pipe.ts","../../../projects/n7-boilerplate-common/src/lib/n7-boilerplate-common.module.ts","../../../projects/n7-boilerplate-common/src/lib/services/json-config.service.ts","../../../projects/n7-boilerplate-common/src/lib/services/local-config.service.ts","../../../projects/n7-boilerplate-common/src/lib/layouts/index.ts","../../../projects/n7-boilerplate-common/src/lib/helpers.ts","../../../projects/n7-boilerplate-common/src/public-api.ts","../../../projects/n7-boilerplate-common/src/net7-boilerplate-common.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ConfigurationService {\n  private defaults: any = {};\n\n  public get = (key) => this.defaults[key];\n\n  public set = (key, value) => { this.defaults[key] = value; }\n}\n","import { Injectable, Inject } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LayoutsConfigurationService {\n  private defaults: any = {};\n\n  constructor(@Inject('config') private config: any) {\n    if (this.config?.layouts) {\n      Object.keys(this.config.layouts).forEach((key) => {\n        this.set(key, this.config.layouts[key]);\n      });\n    }\n  }\n\n  public get = (key) => this.defaults[key];\n\n  public set = (key, value) => { this.defaults[key] = value; }\n}\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class MainStateService {\n  // custom streams\n  private custom: any = {};\n\n  // default streams\n  private default: {\n    headTitle: ReplaySubject<any>;\n    pageTitle: ReplaySubject<any>;\n    subnav: ReplaySubject<any>;\n    breadcrumbs: ReplaySubject<any>;\n    filters: ReplaySubject<any>;\n    header: ReplaySubject<any>;\n    headerEvents: ReplaySubject<any>;\n    footer: ReplaySubject<any>;\n    footerEvents: ReplaySubject<any>;\n  } = {\n      headTitle: new ReplaySubject(),\n      pageTitle: new ReplaySubject(),\n      subnav: new ReplaySubject(),\n      breadcrumbs: new ReplaySubject(),\n      filters: new ReplaySubject(),\n      header: new ReplaySubject(),\n      headerEvents: new ReplaySubject(),\n      footer: new ReplaySubject(),\n      footerEvents: new ReplaySubject(),\n    };\n\n  public get$ = (key: string) => this._get('default', key);\n\n  public getCustom$ = (key: string) => this._get('custom', key);\n\n  public update = (key: string, newValue: any) => this._update('default', key, newValue);\n\n  public updateCustom = (key: string, newValue: any) => this._update('custom', key, newValue);\n\n  public has = (key: string) => !!this.default[key];\n\n  public hasCustom = (key: string) => !!this.custom[key];\n\n  public addCustom(key: string, stream$: ReplaySubject<any>) {\n    if (this.custom[key]) throw Error(`custom stream ${key} exists!`);\n\n    this.custom[key] = stream$;\n  }\n\n  private _update(type: string, key: string, newValue: any) {\n    if (!this[type]) throw Error(`${type} stream group does not exists!`);\n    if (!this[type][key]) throw Error(`${type} stream ${key} does not exists!`);\n\n    this[type][key].next(newValue);\n  }\n\n  private _get(type: string, key: string) {\n    if (!this[type]) throw Error(`${type} stream group does not exists!`);\n    if (!this[type][key]) throw Error(`${type} stream ${key} does not exists!`);\n\n    return this[type][key];\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { CommunicationProvider } from './communication-provider.interface';\nimport { ConfigurationService } from '../configuration.service';\nimport { CommunicationOptions } from '../communication.service';\n\nconst DEFAULT_TREE_DEPTH = 15;\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ApolloProvider implements CommunicationProvider {\n  constructor(\n    private http: HttpClient,\n    private configuration: ConfigurationService,\n  ) {}\n\n  request$<T>(providerConfig, requestId: string, options: CommunicationOptions<T>) {\n    const { params, method, httpOptions } = options;\n    const treeDepth = this.configuration.get('treeDepth') || DEFAULT_TREE_DEPTH;\n    const config = providerConfig.config ? providerConfig.config(treeDepth) : {};\n    let query;\n\n    if (config && config[requestId]) {\n      query = config[requestId];\n    }\n\n    query = query || {};\n    const { queryName } = query;\n    let { queryBody } = query;\n\n    // config query control\n    if (!queryName || !queryBody) {\n      throw Error(`No config found for requestId '${requestId}'`);\n    }\n\n    if (params) {\n      const paramsStr = this.makeParamsStr(params);\n      queryBody = queryBody.replace('__PARAMS__', paramsStr);\n    } else {\n      queryBody = queryBody.replace('(__PARAMS__)', '');\n    }\n\n    let source$: Observable<any>;\n\n    if (method && method === 'GET') {\n      source$ = this.http.get(providerConfig.baseUrl);\n    } else {\n      source$ = this.http.post(\n        providerConfig.baseUrl,\n        { query: queryBody },\n        {\n          ...httpOptions,\n          responseType: 'json' // force to json\n        },\n      );\n    }\n\n    return source$.pipe(map((response: any) => response.data[queryName]));\n  }\n\n  private makeParamsStr(params) {\n    const paramsStr = [];\n    Object.keys(params).forEach((key) => {\n      if (Array.isArray(params[key])) {\n        const arrStr = [];\n        params[key].forEach((val) => {\n          if (typeof val === 'object') {\n            const subParamsStr = this.makeParamsStr(val);\n            arrStr.push(`{ ${subParamsStr} }`);\n          } else if (typeof val === 'number' || typeof val === 'boolean' || val === null) {\n            arrStr.push(`${val}`);\n          } else {\n            // JSON.stringify yields a valid GraphQL string literal (same escape\n            // sequences), so user input containing \" or \\ doesn't break the query.\n            arrStr.push(JSON.stringify(val));\n          }\n        });\n        paramsStr.push(`${key}: [${arrStr.join(',')}]`);\n      } else if (typeof params[key] === 'object' && params[key]) {\n        const subParamsStr = this.makeParamsStr(params[key]);\n        paramsStr.push(`${key}: { ${subParamsStr} }`);\n      } else if (typeof params[key] === 'string' && key.indexOf('$') === 0) {\n        paramsStr.push(`${key.replace('$', '')}: ${params[key]}`);\n      } else if (typeof params[key] === 'number' || typeof params[key] === 'boolean' || params[key] === null) {\n        paramsStr.push(`${key}: ${params[key]}`);\n      } else {\n        // JSON.stringify yields a valid GraphQL string literal (same escape\n        // sequences), so user input containing \" or \\ doesn't break the query.\n        paramsStr.push(`${key}: ${JSON.stringify(params[key])}`);\n      }\n    });\n    return paramsStr.join(' ');\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { CommunicationProvider } from './communication-provider.interface';\nimport { CommunicationOptions } from '../communication.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class RestProvider implements CommunicationProvider {\n  constructor(\n    private http: HttpClient,\n  ) {}\n\n  request$<T>(providerConfig, requestId, options: CommunicationOptions<T>) {\n    const {\n      params, httpOptions, urlParams = '',\n    } = options;\n    let { method } = options;\n    let point;\n\n    // default method\n    if (!method) { method = providerConfig.defaultMethod || 'GET'; }\n\n    if (providerConfig.config && providerConfig.config[requestId]) {\n      point = providerConfig.config[requestId];\n    }\n\n    // config point control\n    if (!point) {\n      throw Error(`No config found for requestId \"${requestId}\"`);\n    }\n\n    const formattedUrl = this.getFormattedUrl(providerConfig.baseUrl, point, urlParams);\n    if (['POST', 'PUT', 'PATCH'].includes(method)) {\n      return this.http[method.toLowerCase()](\n        formattedUrl,\n        params,\n        httpOptions\n      );\n    } if (['GET', 'DELETE'].includes(method)) {\n      return this.http[method.toLowerCase()](\n        formattedUrl,\n        httpOptions\n      );\n    }\n    throw Error(`Rest method ${method} not supported`);\n  }\n\n  private getFormattedUrl(baseUrl: string, point: string, urlParams: string | object) {\n    if (typeof urlParams === 'string') {\n      return baseUrl + point + urlParams;\n    }\n    return baseUrl + this.parseUrlPlaceholders(point, urlParams);\n  }\n\n  private parseUrlPlaceholders(source: string, placeholders: object) {\n    return source.replace(/{\\s*\\w+\\s*}/g, (match) => {\n      const key = match.replace(/{|}/g, '').trim();\n      return placeholders[key] || match;\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { catchError } from 'rxjs/operators';\nimport { Observable, EMPTY } from 'rxjs';\nimport {\n  HttpContext, HttpHeaders, HttpParams\n} from '@angular/common/http';\nimport { ConfigurationService } from './configuration.service';\nimport { ApolloProvider } from './communication-providers/apollo.provider';\nimport { RestProvider } from './communication-providers/rest.provider';\nimport { ConfigCommonCommunication } from '../config-types';\n\nexport type CommunicationQueryParams = HttpParams | {\n  [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n};\n\nexport type CommunicationHttpOptions = {\n  body?: any;\n  context?: HttpContext;\n  responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\n  withCredentials?: boolean;\n  params?: CommunicationQueryParams;\n  headers?: HttpHeaders | {\n    [header: string]: string | string[];\n  };\n}\n\nexport type CommunicationOptions<U> = {\n  method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n  params?: U;\n  urlParams?: string | object;\n  queryParams?: CommunicationQueryParams;\n  httpOptions?: CommunicationHttpOptions;\n  onError?: (err) => void;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CommunicationService {\n  private defaultProvider: string;\n\n  private communicationConfig: ConfigCommonCommunication;\n\n  constructor(\n    private config: ConfigurationService,\n    private apollo: ApolloProvider,\n    private rest: RestProvider,\n  ) {\n    try {\n      this.communicationConfig = this.config.get('communication');\n      this.defaultProvider = this.communicationConfig.defaultProvider;\n    } catch (err) {\n      throw Error('No communications.defaultProvider setted in config');\n    }\n  }\n\n  request$<T = any, U = any>(\n    requestId: string,\n    options?: CommunicationOptions<U>,\n    provider?: string\n  ): Observable<T> {\n    const activeProvider = provider || this.defaultProvider;\n    const activeProviderConfig = this.communicationConfig.providers[activeProvider];\n\n    if (!activeProviderConfig) {\n      throw Error(`There is no config for \"${activeProvider}\" provider`);\n    }\n\n    // provider.type check for retrocompatibility\n    const activeProviderType = activeProviderConfig.type || activeProvider;\n\n    if (!this[activeProviderType]) {\n      throw Error(`There is no \"${activeProviderType}\" provider type`);\n    }\n\n    const requestOptions = options || {};\n\n    // adding query params\n    // to http client httpoptions params\n    if (requestOptions.queryParams) {\n      requestOptions.httpOptions = {\n        ...(requestOptions.httpOptions || {}),\n        params: requestOptions.queryParams\n      };\n    }\n\n    const { onError } = options || {};\n    return this[activeProviderType].request$<T>(activeProviderConfig, requestId, requestOptions)\n      .pipe(\n        catchError((error) => this.handleError(error, onError)),\n      );\n  }\n\n  handleError(error, onError: (err) => void): Observable<any> {\n    if (onError) {\n      onError(error);\n    } else {\n      console.warn('No error handler for communication request', error);\n    }\n\n    return EMPTY;\n  }\n\n  getUrl(requestId?, provider?) {\n    const activeProvider = provider || this.defaultProvider;\n    const activeProviderConfig = this.communicationConfig.providers[activeProvider];\n\n    if (!activeProviderConfig) {\n      throw Error(`There is no config for \"${activeProvider}\" provider`);\n    }\n\n    const { baseUrl } = activeProviderConfig;\n\n    if (!requestId) {\n      return baseUrl;\n    }\n\n    if (!activeProviderConfig.config[requestId]) {\n      throw Error(`There is no config for \"${requestId}\"`);\n    }\n    return baseUrl + activeProviderConfig.config[requestId];\n  }\n}\n","import { LayoutBuilder } from '@net7/core';\n\nexport abstract class AbstractLayout {\n  protected config: any;\n\n  protected widgets: any[];\n\n  public lb: any;\n\n  constructor(config: any) {\n    this.config = config;\n    this.widgets = this.config.widgets;\n    this.lb = new LayoutBuilder(this.config.layoutId);\n  }\n\n  protected abstract initPayload(): any;\n\n  protected onInit() {\n    // on ready\n    this.lb.ready$.subscribe(() => {\n      this.lb.eventHandler.emitInner('init', this.initPayload());\n    });\n\n    const LayoutDS = this.config.layoutDS;\n    const LayoutEH = this.config.layoutEH;\n    this.lb.init({\n      widgetsConfig: this.widgets,\n      widgetsDataSources: this.config.widgetsDataSources,\n      widgetsEventHandlers: this.config.widgetsEventHandlers,\n      dataSource: new LayoutDS(),\n      eventHandler: new LayoutEH(),\n    });\n  }\n\n  protected onDestroy() {\n    this.lb.eventHandler.emitInner('destroy');\n  }\n}\n","import { LayoutDataSource } from '@net7/core';\nimport { hideAll } from 'tippy.js';\n\nexport class MainLayoutDS extends LayoutDataSource {\n  protected configuration: any;\n\n  protected mainState: any;\n\n  protected router: any;\n\n  protected route: any;\n\n  protected titleService: any;\n\n  public options: any;\n\n  public pageTitle: string;\n\n  onInit({\n    configuration, mainState, router, options, titleService, route,\n  }) {\n    this.configuration = configuration;\n    this.mainState = mainState;\n    this.router = router;\n    this.route = route;\n    this.titleService = titleService;\n    this.options = options;\n\n    // update header\n    if (this.configuration.get('header')) {\n      this.one('header').update(this.configuration.get('header'));\n    }\n\n    if (this.configuration.get('footer')) {\n      this.one('footer').update(this.configuration.get('footer'));\n    }\n\n    // main state updates\n    this.mainState.get$('headTitle').subscribe((val) => {\n      this.titleService.setTitle(val);\n    });\n    this.mainState.get$('pageTitle').subscribe((val) => {\n      this.pageTitle = val;\n    });\n    this.mainState.get$('subnav').subscribe((val) => {\n      this.one('subnav').update(val);\n    });\n    this.mainState.get$('breadcrumbs').subscribe((val) => {\n      this.one('breadcrumbs').update(val);\n    });\n    this.mainState.get$('header').subscribe((val) => {\n      this.one('header').update(val);\n    });\n    this.mainState.get$('footer').subscribe((val) => {\n      this.one('footer').update(val);\n    });\n\n    // mainState test\n    /* this.mainState.addCustom('customNav', new Subject());\n    this.mainState.get$('pageTitle').subscribe(val => console.log('pageTitle', val));\n    this.mainState.getCustom$('customNav').subscribe(val => console.log('customNav', val));\n\n    this.mainState.update('pageTitle', 'hola');\n    this.mainState.updateCustom('customNav', {'hello': 'mundo!'});\n\n    setTimeout(() => {\n      this.mainState.update('pageTitle', 'chao');\n      this.mainState.updateCustom('customNav', {'hello': 'world!'});\n      console.log('has', {\n        'pageSubTitle' : this.mainState.has('pageSubTitle'),\n        'customNav' : this.mainState.hasCustom('customNav'),\n        'customNavs' : this.mainState.has('customNavs'),\n      });\n    }, 5000); */\n  }\n\n  // navigate emitter (click) handler\n  onNavigate(payload) {\n    // router navigation\n    if (payload.handler === 'router') {\n      const { path, queryParams } = payload;\n\n      // path control\n      if (!path) throw Error('onNavigate: no path for router navigate');\n\n      if (queryParams) {\n        this.router.navigate(path, {\n          relativeTo: this.route,\n          queryParams,\n          queryParamsHandling: 'merge',\n        });\n      } else {\n        this.router.navigate(path);\n      }\n\n      // on change\n      this._onRouterNavigate();\n    }\n  }\n\n  // links routerLink change handler\n  onRouterChanged() {\n    hideAll();\n  }\n\n  private _onRouterNavigate() {\n    // hide tippy\n    hideAll();\n  }\n}\n","import { EventHandler } from '@net7/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, filter } from 'rxjs/operators';\nimport { NavigationStart } from '@angular/router';\n\nexport class MainLayoutEH extends EventHandler {\n  private destroyed$: Subject<void> = new Subject();\n\n  private route: any;\n\n  private router: any;\n\n  private mainState: any;\n\n  public listen() {\n    this.innerEvents$.subscribe(({ type, payload }) => {\n      switch (type) {\n        case 'main-layout.init':\n          this.dataSource.onInit(payload);\n          this.mainState = payload.mainState;\n          this.route = payload.route;\n          this.router = payload.router;\n\n          this._listenRouterChanges();\n          this._listenMainStateChanges();\n          break;\n\n        case 'main-layout.destroy':\n          this.destroyed$.next();\n          break;\n\n        default:\n          break;\n      }\n    });\n\n    this.outerEvents$.subscribe(({ type, payload }) => {\n      // header events\n      if (type.indexOf('header') === 0) {\n        this.mainState.update('headerEvents', { type, payload });\n      }\n      // footer events\n      if (type.indexOf('footer') === 0) {\n        this.mainState.update('footerEvents', { type, payload });\n      }\n    });\n\n    // listen to global events\n    EventHandler.globalEvents$.pipe(\n      takeUntil(this.destroyed$),\n    ).subscribe(({ type, payload }) => {\n      switch (type) {\n        case 'global.navigate':\n          this.dataSource.onNavigate(payload);\n          break;\n\n        default:\n          break;\n      }\n    });\n  }\n\n  private _listenRouterChanges() {\n    this.route.queryParams.pipe(\n      filter((params) => {\n        if (Object.keys(params).length) return true;\n        return false;\n      }),\n    ).subscribe((params) => {\n      this.emitGlobal('queryparams', params);\n    });\n    // router changed\n    this.router.events.pipe(\n      filter((event) => event instanceof NavigationStart),\n    ).subscribe(() => {\n      this.emitOuter('routerchange');\n      this.dataSource.onRouterChanged();\n    });\n  }\n\n  private _listenMainStateChanges() {\n    this.mainState.addCustom('currentNav', new Subject());\n    this.mainState.getCustom$('currentNav').subscribe((val) => {\n      this.emitOuter('currentnavchange', val);\n    });\n  }\n}\n","import { DataSource } from '@net7/core';\nimport { HeaderData } from '@net7/components';\n\nconst MOBILE_CLASS = 'is-mobile-nav-displayed';\n\nconst ACTIVE_CLASS = 'is-active';\n\nexport class HeaderDS extends DataSource {\n  protected transform(data): HeaderData {\n    if (!data) {\n      return null;\n    }\n\n    return {\n      ...data,\n      menuToggle: {\n        open: {\n          payload: 'mobile-open'\n        },\n        close: {\n          payload: 'mobile-close'\n        }\n      }\n    };\n  }\n\n  public onCurrentNavChange(payload) {\n    this.output.nav.items.forEach((item) => {\n      this.updateItemClass(item, payload);\n      if (item.subnav) {\n        item.subnav.forEach((subNavItem) => {\n          this.updateItemClass(subNavItem, payload);\n        });\n      }\n    });\n  }\n\n  public onRouterChange() {\n    if (!this.output) {\n      return;\n    }\n    let { classes } = this.output;\n    classes = classes || '';\n    classes = classes.split(' ');\n\n    if (classes.includes(MOBILE_CLASS)) {\n      classes.splice(classes.indexOf(MOBILE_CLASS), 1);\n      this.output.classes = classes.join(' ');\n    }\n  }\n\n  public onClick(payload) {\n    // mobile control\n    if (['mobile-open', 'mobile-close'].includes(payload)) {\n      let { classes } = this.output;\n      classes = classes || '';\n      classes = classes.split(' ');\n\n      if (classes.includes(MOBILE_CLASS)) {\n        classes.splice(classes.indexOf(MOBILE_CLASS), 1);\n      } else {\n        classes.push(MOBILE_CLASS);\n      }\n      this.output.classes = classes.join(' ');\n    }\n  }\n\n  private updateItemClass(item, payload) {\n    let itemClasses = [];\n    if (item.classes) {\n      itemClasses = itemClasses.concat(item.classes.split(' '));\n    }\n    if (item._meta.id === payload && !itemClasses.includes(ACTIVE_CLASS)) {\n      itemClasses.push(ACTIVE_CLASS);\n    } else if (itemClasses.includes(ACTIVE_CLASS)) {\n      itemClasses.splice(itemClasses.indexOf(ACTIVE_CLASS, 1));\n    }\n    item.classes = itemClasses.join(' ');\n  }\n}\n","import { DataSource } from '@net7/core';\n\nexport class SubnavDS extends DataSource {\n  protected transform(data) {\n    return {\n      classes: 'main-subnav',\n      items: data,\n    };\n  }\n\n  setActive(id) {\n    this.output.items.forEach((item) => {\n      if (item._meta.id === id) {\n        item.classes = 'is-current';\n        item._meta.isActive = true;\n      } else {\n        item.classes = '';\n        item._meta.isActive = false;\n      }\n    });\n  }\n\n  getActive() {\n    return this.output.items.filter((item) => item._meta.isActive)[0] || null;\n  }\n}\n","import { DataSource } from '@net7/core';\nimport { BreadcrumbsData } from '@net7/components';\n\nexport class BreadcrumbsDS extends DataSource {\n  protected transform(data): BreadcrumbsData | null {\n    return data;\n  }\n}\n","import { DataSource } from '@net7/core';\n\nexport class FacetsDS extends DataSource {\n  public searchModel: any;\n\n  protected transform({ fields }) {\n    const { searchModel } = this.options;\n    this.searchModel = searchModel;\n\n    return fields;\n  }\n}\n","import { DataSource } from '@net7/core';\n\nexport class FooterDS extends DataSource {\n  protected transform(data): any {\n    if (!data) {\n      return null;\n    }\n    return data;\n  }\n}\n","import { DataSource, _t } from '@net7/core';\n\nexport class SmartPaginationDS extends DataSource {\n  protected transform(data) {\n    const {\n      totalPages, currentPage, pageLimit, sizes\n    } = data;\n    const { mode, href, queryParams } = this.options;\n    // ===== WARNINGS =====\n    if (!['href', 'payload'].includes(mode)) {\n      console.warn('(smart-pagination) The \"mode\" option is incorrect. Please specify \"href\" or \"payload\" as the mode option.');\n    }\n\n    const {\n      links, first, prev, next, last,\n    } = this.paginationBuilder(\n      totalPages, +currentPage, pageLimit,\n      mode, href, queryParams,\n    );\n    return {\n      first,\n      prev,\n      next,\n      last,\n      links,\n      select: sizes ? {\n        label: sizes.label || _t('search#resultsamount'),\n        options: sizes.list.map((s) => ({\n          text: s,\n          selected: s === sizes.active,\n        })),\n        payload: 'select-size',\n      } : null,\n    };\n  }\n\n  private paginationBuilder = (tp, cp: number, pl, m, href, qp) => {\n    const result = [];\n    /*\n      tp - total pages\n      cp - current page\n      pl - page limit\n      m - pagination mode (href or payloads)\n      href - href for anchor wrapper\n      qp - query params for pagination\n    */\n    let limit = pl;\n    if (tp <= limit) {\n      limit = tp - 1;\n    }\n    if (limit) {\n      let\n        lp: number; // last page\n      let fp: number; // first page\n      if (cp > Math.floor(limit / 2)) {\n        if (tp === 2) {\n          lp = tp;\n          fp = 1;\n          // when currentPage is after half-point\n          // (example: [ 14 ][ 15 ][!16!][ 17 ][ 18 ])\n        } else if (cp < (tp - Math.floor(limit / 2))) {\n          lp = cp / 1 + Math.floor(limit / 2);\n          fp = cp / 1 - Math.floor(limit / 2);\n        } else {\n          lp = tp;\n          fp = cp - limit + (tp - cp);\n        }\n      } else {\n        // when currentPage is before half-point\n        // (example: [ 1 ][!2!][ 3 ][ 4 ][ 5 ])\n        lp = limit + 1;\n        fp = 1;\n      }\n      for (let i = fp; i <= lp; i += 1) {\n        result.push({\n          text: String(i),\n          classes: cp === i ? 'is-active' : '',\n          anchor: cp !== i ? this._getPaginationAnchor(i, m, href, qp) : null,\n        });\n      }\n    } else {\n      result.push({\n        text: '1',\n        classes: cp === 1 ? 'is-active' : '',\n        anchor: cp !== 1 ? this._getPaginationAnchor(1, m, href, qp) : null,\n      });\n      for (let i = 1; i < tp; i += 1) {\n        result.push({\n          text: String(i + 1),\n          classes: cp === i + 1 ? 'is-active' : '',\n          anchor: cp !== i + 1 ? this._getPaginationAnchor(i + 1, m, href, qp) : null,\n        });\n      }\n    }\n    return {\n      links: result,\n      first: {\n        classes: cp === 1 ? 'is-disabled' : '',\n        anchor: cp !== 1 ? this._getPaginationAnchor(1, m, href, qp) : null,\n      },\n      prev: {\n        classes: cp === 1 ? 'is-disabled' : '',\n        anchor: cp !== 1 ? this._getPaginationAnchor(cp / 1 - 1, m, href, qp) : null,\n      },\n      next: {\n        classes: cp === tp ? 'is-disabled' : '',\n        anchor: cp !== tp ? this._getPaginationAnchor(cp / 1 + 1, m, href, qp) : null,\n      },\n      last: {\n        classes: cp === tp ? 'is-disabled' : '',\n        anchor: cp !== tp ? this._getPaginationAnchor(tp, m, href, qp) : null,\n      },\n    };\n  }\n\n  private _getPaginationAnchor(page, mode, href, queryParams) {\n    switch (mode) {\n      case 'payload':\n        return {\n          payload: { source: 'pagination', page },\n        };\n      case 'href':\n        return {\n          href: queryParams ? href : href + page,\n          queryParams: queryParams ? {\n            ...queryParams,\n            page,\n          } : null,\n        };\n      default:\n        break;\n    }\n    return {};\n  }\n}\n","import { EventHandler } from '@net7/core';\n\nexport class HeaderEH extends EventHandler {\n  public listen() {\n    this.innerEvents$.subscribe(({ type, payload }) => {\n      // redirect event\n      this.emitOuter(type.replace(`${this.hostId}.`, ''), payload);\n\n      switch (type) {\n        case 'header.click':\n          this.dataSource.onClick(payload);\n          break;\n\n        default:\n          break;\n      }\n    });\n    this.outerEvents$.subscribe(({ type, payload }) => {\n      switch (type) {\n        case 'main-layout.currentnavchange':\n          this.dataSource.onCurrentNavChange(payload);\n          break;\n\n        case 'main-layout.routerchange':\n          this.dataSource.onRouterChange();\n          break;\n\n        default:\n          break;\n      }\n    });\n  }\n}\n","import { EventHandler } from '@net7/core';\n\nexport class SubnavEH extends EventHandler {\n  public listen() {\n    this.innerEvents$.subscribe(({ type, payload }) => {\n      switch (type) {\n        case 'subnav.click':\n          // navigate control\n          if (payload.source === 'navigate') {\n            this.emitGlobal('navigate', payload);\n          }\n\n          // global signal\n          this.emitGlobal(type, payload);\n          break;\n\n        default:\n          break;\n      }\n    });\n  }\n}\n","import { EventHandler } from '@net7/core';\n\nexport class BreadcrumbsEH extends EventHandler {\n  public listen() {\n    this.innerEvents$.subscribe(({ type, payload }) => {\n      switch (type) {\n        case 'breadcrumbs.click':\n          // navigate control\n          if (payload.source === 'navigate') {\n            this.emitGlobal('navigate', payload);\n          }\n\n          // global signal\n          this.emitGlobal(type, payload);\n          break;\n\n        default:\n          break;\n      }\n    });\n  }\n}\n","import { EventHandler } from '@net7/core';\n\nexport class FooterEH extends EventHandler {\n  public listen() {\n    this.innerEvents$.subscribe(({ type, payload }) => {\n      // redirect event\n      this.emitOuter(type.replace(`${this.hostId}.`, ''), payload);\n    });\n  }\n}\n","import { EventHandler } from '@net7/core';\n\nexport class SmartPaginationEH extends EventHandler {\n  public listen() {\n    this.innerEvents$.subscribe(({ type, payload }) => {\n      switch (type) {\n        case 'n7-smart-pagination.change':\n          this.emitOuter('change', payload);\n          break;\n\n        case 'n7-smart-pagination.click':\n          this.emitOuter('click', payload);\n          break;\n\n        default:\n          console.warn('unhandled inner event of type', type);\n          break;\n      }\n    });\n  }\n}\n","import { MainLayoutDS } from './main-layout.ds';\nimport { MainLayoutEH } from './main-layout.eh';\nimport * as DS from '../../data-sources';\nimport * as EH from '../../event-handlers';\n\nexport const MainLayoutConfig = {\n  layoutId: 'main-layout',\n  widgets: [{\n    id: 'header',\n  }, {\n    id: 'subnav',\n  }, {\n    id: 'breadcrumbs',\n  }, {\n    id: 'footer',\n  }],\n  layoutDS: MainLayoutDS,\n  layoutEH: MainLayoutEH,\n  widgetsDataSources: DS,\n  widgetsEventHandlers: EH,\n  options: {\n    // TODO\n  },\n};\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { AbstractLayout } from '../../models/abstract-layout';\nimport { ConfigurationService } from '../../services/configuration.service';\nimport { LayoutsConfigurationService } from '../../services/layouts-configuration.service';\nimport { MainStateService } from '../../services/main-state.service';\nimport { MainLayoutConfig as config } from './main-layout.config';\n\n@Component({\n  selector: 'main-layout',\n  templateUrl: './main-layout.html',\n})\nexport class MainLayoutComponent extends AbstractLayout implements OnInit, OnDestroy {\n  constructor(\n    private router: Router,\n    private route: ActivatedRoute,\n    private configuration: ConfigurationService,\n    private layoutsConfiguration: LayoutsConfigurationService,\n    private mainState: MainStateService,\n    private titleService: Title,\n  ) {\n    super(layoutsConfiguration.get('MainLayoutConfig') || config);\n  }\n\n  protected initPayload() {\n    return {\n      configuration: this.configuration,\n      mainState: this.mainState,\n      router: this.router,\n      route: this.route,\n      titleService: this.titleService,\n      options: this.config.options || {},\n    };\n  }\n\n  ngOnInit() {\n    this.onInit();\n  }\n\n  ngOnDestroy() {\n    this.onDestroy();\n  }\n}\n","<div class=\"n7-main-layout\" id=\"main-layout\">\n    <div class=\"n7-page-content\">\n        <n7-header\n            [data]=\"lb.widgets['header'].ds.out$ | async\"\n            [emit]=\"lb.widgets['header'].emit\">\n        </n7-header>\n        <main class=\"n7-content\">\n            <div class=\"n7-top-page-bar\">\n                <div class=\"n7-top-page-bar__main\"></div>\n            </div>\n            <div class=\"n7-alert-bar\">\n                <!--<n7-alert\n                [attr.id]=\"'main-layout-alert'\"\n                [data]=\"lb.dataSource.alertData$ | async\"\n                [emit]=\"lb.dataSource.closeAlert.bind(lb.dataSource)\"></n7-alert>-->\n            </div>\n            <ng-content></ng-content>\n        </main>\n    </div>\n    <n7-footer\n        [data]=\"lb.widgets['footer'].ds.out$ | async\"\n        [emit]=\"lb.widgets['footer'].emit\">\n    </n7-footer>\n</div>\n","import { LayoutDataSource } from '@net7/core';\n\nexport class Page404LayoutDS extends LayoutDataSource {\n  public options: any;\n\n  onInit({ options }) {\n    this.options = options;\n  }\n}\n","import { EventHandler } from '@net7/core';\nimport { Subject } from 'rxjs';\n\nexport class Page404LayoutEH extends EventHandler {\n  private destroyed$: Subject<void> = new Subject();\n\n  public listen() {\n    this.innerEvents$.subscribe(({ type, payload }) => {\n      switch (type) {\n        case 'n7-page404-layout.init':\n          this.dataSource.onInit(payload);\n          break;\n\n        case 'n7-page404-layout.destroy':\n          this.destroyed$.next();\n          break;\n\n        default:\n          break;\n      }\n    });\n\n    // listen to global events\n    /* EventHandler.globalEvents$.pipe(\n      takeUntil(this.destroyed$)\n    ).subscribe(({type, payload}) => {\n      switch(type){\n        case 'global.navigate':\n          this.dataSource.onNavigate(payload);\n          break;\n\n        default:\n          break;\n      }\n    }); */\n  }\n}\n","import { Page404LayoutDS } from './page404-layout.ds';\nimport { Page404LayoutEH } from './page404-layout.eh';\nimport * as DS from '../../data-sources';\nimport * as EH from '../../event-handlers';\n\nexport const Page404LayoutConfig = {\n  layoutId: 'n7-page404-layout',\n  widgets: [],\n  layoutDS: Page404LayoutDS,\n  layoutEH: Page404LayoutEH,\n  widgetsDataSources: DS,\n  widgetsEventHandlers: EH,\n  options: {\n    // TODO\n  },\n};\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { AbstractLayout } from '../../models/abstract-layout';\nimport { LayoutsConfigurationService } from '../../services/layouts-configuration.service';\nimport { Page404LayoutConfig as config } from './page404-layout.config';\n\n@Component({\n  selector: 'n7-page404-layout',\n  templateUrl: './page404-layout.html',\n})\nexport class Page404LayoutComponent extends AbstractLayout implements OnInit, OnDestroy {\n  constructor(\n    layoutsConfiguration: LayoutsConfigurationService,\n  ) {\n    super(layoutsConfiguration.get('Page404LayoutConfig') || config);\n  }\n\n  protected initPayload() {\n    return {\n      options: this.config.options || {},\n    };\n  }\n\n  ngOnInit() {\n    this.onInit();\n  }\n\n  ngOnDestroy() {\n    this.onDestroy();\n  }\n}\n","<div class=\"n7-page404-layout\">\n    404 - Resource not found\n</div>","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'n7-smart-pagination',\n  templateUrl: './smart-pagination.html',\n})\n\nexport class SmartPaginationComponent {\n  @Input() data: any;\n\n  @Input() emit: any;\n\n  constructor() {\n    this.handlePaginationEvent.bind(this);\n  }\n\n  handlePaginationEvent(type, payload) {\n    if (!this.emit) return;\n    this.emit('change', payload);\n  }\n}\n","<div class=\"n7-smart-pagination\" *ngIf=\"data\">\n  <n7-pagination\n    [data]=\"data\"\n    [emit]=\"emit\">\n  </n7-pagination>\n</div>","import {\n  Directive, ElementRef, Output, EventEmitter, HostListener\n} from '@angular/core';\n\n@Directive({\n  selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n  constructor(private _elementRef: ElementRef) {\n  }\n\n  @Output()\n  public clickOutside = new EventEmitter<MouseEvent>();\n\n  @HostListener('document:click', ['$event', '$event.target'])\n  public onClick(event: MouseEvent, targetElement: HTMLElement): void {\n    if (!targetElement) {\n      return;\n    }\n\n    const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n    if (!clickedInside) {\n      this.clickOutside.emit(event);\n    }\n  }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'n7-grid',\n  templateUrl: './grid.html',\n})\n\nexport class GridComponent {\n  /**\n   * Sets the grid-template-column css attribute\n   * defines the width of each column.\n   *\n   * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns\n   */\n  @Input() templateColumns: string;\n\n  /**\n   * Additional classes for the root element.\n   */\n  @Input() classes: string;\n}\n","<div\n  class=\"n7-grid {{classes || ''}}\"\n  [ngStyle]=\"{'grid-template-columns': templateColumns}\"\n>\n  <ng-content></ng-content>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'n7-container',\n  templateUrl: './container.html',\n})\n\nexport class ContainerComponent {\n  /**\n   * When true, enables responsiveness\n   * and fills the available space\n   */\n  @Input() fluid: boolean;\n\n  /**\n   * Additional classes for the container element\n   */\n  @Input() classes: string;\n}\n","<div class=\"n7-container {{classes || ''}}\" [ngClass]=\"{'is-fluid': fluid}\">\n  <ng-content></ng-content>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'n7-side-scroller',\n  templateUrl: './side-scroller.html',\n})\n\nexport class SideScrollerComponent {\n  /**\n   * Additional classes for the root element.\n   */\n   @Input() classes: string;\n}\n","<div\n  class=\"n7-side-scroller {{classes || ''}} \"\n>\n  <ng-content></ng-content>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\nimport { translate, _t } from '@net7/core';\n\nexport interface TranslationString {\n  [T: string]: string;\n}\n\nexport function getLanguage() {\n  return translate.getCurrentLang();\n}\n\nexport function getTranslation(s: TranslationString | string, language: string = null): string {\n  if (!s) return '';\n  if (typeof s === 'string') {\n    return s;\n  }\n  if (language && s[language]) {\n    return s[language];\n  }\n  return s[getLanguage()] || s.en;\n}\n\n@Pipe({\n  name: 'tranz'\n})\nexport class TranzPipe implements PipeTransform {\n  public static tranzform(value: unknown, ...args: unknown[]): string {\n    let lang: string = null;\n    if (args.length > 0 && typeof (args[0]) === 'string') {\n      lang = args[0] as string;\n    }\n    if (typeof (value) === 'string') {\n      if (args.length > 1 && typeof (args[1]) === 'number' && args[1] !== 1) {\n        return _t(`${value}s`);\n      }\n      return _t(value);\n    }\n    if (typeof (value) === 'object') {\n      return getTranslation(value as TranslationString, lang);\n    }\n    return value as string;\n  }\n\n  transform(value: unknown, ...args: unknown[]): string {\n    return TranzPipe.tranzform(value, ...args);\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { DvComponentsLibModule } from '@net7/components';\n\n// services\nimport { ConfigurationService } from './services/configuration.service';\nimport { LayoutsConfigurationService } from './services/layouts-configuration.service';\nimport { MainStateService } from './services/main-state.service';\nimport { CommunicationService } from './services/communication.service';\n\n// layouts\nimport { MainLayoutComponent } from './layouts/main-layout/main-layout';\nimport { Page404LayoutComponent } from './layouts/page404-layout/page404-layout';\n\n// components\nimport { SmartPaginationComponent } from './components/smart-pagination/smart-pagination';\n\n// directives\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nimport { GridComponent } from './components/grid/grid';\nimport { ContainerComponent } from './components/container/container';\nimport { SideScrollerComponent } from './components/side-scroller/side-scroller';\nimport { TranzPipe } from './pipes/trans.pipe';\n\nconst DECLARATIONS = [\n  MainLayoutComponent,\n  Page404LayoutComponent,\n  SmartPaginationComponent,\n  ClickOutsideDirective,\n  GridComponent,\n  ContainerComponent,\n  SideScrollerComponent,\n  TranzPipe,\n];\n\n@NgModule({\n  declarations: DECLARATIONS,\n  imports: [\n    CommonModule,\n    HttpClientModule,\n    DvComponentsLibModule,\n  ],\n  providers: [],\n  exports: DECLARATIONS\n})\nexport class N7BoilerplateCommonModule {\n  static forRoot(config?: any): ModuleWithProviders<N7BoilerplateCommonModule> {\n    return {\n      ngModule: N7BoilerplateCommonModule,\n      providers: [\n        MainStateService,\n        ConfigurationService,\n        LayoutsConfigurationService,\n        CommunicationService,\n        { provide: 'config', useValue: config },\n      ],\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { tap, catchError } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { isObject, merge } from 'lodash';\nimport { ConfigurationService } from './configuration.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class JsonConfigService {\n  constructor(\n    private http: HttpClient,\n    private config: ConfigurationService,\n  ) {}\n\n  load(path): Promise<any> {\n    return this.http.get(path).pipe(\n      catchError(() => of({})),\n      tap((response) => this._handleResponse(response)),\n    ).toPromise();\n  }\n\n  private _handleResponse(response) {\n    // set loaded json config\n    if (response) {\n      // merge config\n      Object.keys(response).forEach((key) => {\n        const oldValue = this.config.get(key);\n        const newValue = response[key];\n        const mergeValue = this.mergeConfigKey(oldValue, newValue);\n        this.config.set(key, mergeValue);\n      });\n\n      // config keys colors\n      if (response['config-keys']) {\n        const headTag = document.querySelector('head');\n        const styleElement = document.createElement('style');\n\n        const styles = [];\n\n        Object.keys(response['config-keys']).forEach((key) => {\n          const configKey = response['config-keys'][key] || {};\n          const className = configKey['class-name'];\n\n          if (configKey.color && configKey.color.hex) {\n            // add css class\n            styles.push(`--color-${className}: ${configKey.color.hex};`);\n          }\n        });\n\n        if (styles.length) {\n          styles.unshift(':root {');\n          styles.push('}');\n          styleElement.appendChild(document.createTextNode(styles.join('\\n')));\n          headTag.appendChild(styleElement);\n        }\n      }\n    }\n  }\n\n  public mergeConfigKey(oldValue, newValue) {\n    if (isObject(oldValue) && isObject(newValue)) {\n      return merge(oldValue, newValue);\n    }\n    return newValue || oldValue;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { tap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { ConfigurationService } from './configuration.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LocalConfigService {\n  constructor(\n    private config: ConfigurationService,\n  ) {}\n\n  load(config): Promise<any> {\n    return of(true).pipe(\n      tap(() => {\n        if (config) {\n          Object.keys(config).forEach((key) => this.config.set(key, config[key]));\n\n          // config keys colors\n          if (config['config-keys']) {\n            const headTag = document.querySelector('head');\n            const styleElement = document.createElement('style');\n\n            const styles = [];\n\n            Object.keys(config['config-keys']).forEach((key) => {\n              const configKey = config['config-keys'][key] || {};\n              const className = configKey['class-name'];\n\n              if (configKey.color && configKey.color.hex) {\n                // add css class\n                styles.push(`--color-${className}: ${configKey.color.hex};`);\n              }\n            });\n\n            if (styles.length) {\n              styles.unshift(':root {');\n              styles.push('}');\n              styleElement.appendChild(document.createTextNode(styles.join('\\n')));\n              headTag.appendChild(styleElement);\n            }\n          }\n        }\n      }),\n    ).toPromise();\n  }\n}\n","// main layout\nexport * from './main-layout/main-layout';\nexport * from './main-layout/main-layout.ds';\nexport * from './main-layout/main-layout.eh';\nexport * from './main-layout/main-layout.config';\n\n// page404 layout\nexport * from './page404-layout/page404-layout';\nexport * from './page404-layout/page404-layout.ds';\nexport * from './page404-layout/page404-layout.eh';\nexport * from './page404-layout/page404-layout.config';\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport slugify from 'slugify';\n\nconst domParser = new DOMParser();\n\nexport const helpers = {\n  prettifySnakeCase(key: string, label?: string) {\n    if (typeof label === 'string') {\n      return label;\n    }\n    return (key || '').split('_').map((word, index) => (index === 0 ? this.ucFirst(word) : word)).join(' ');\n  },\n  ucFirst(str: string) {\n    return str.charAt(0).toUpperCase() + str.slice(1);\n  },\n  slugify(str: string) {\n    if (!str) {\n      return '';\n    }\n    const parsedDoc = domParser.parseFromString(str, 'text/html');\n    let parsedString = parsedDoc.body.textContent || '';\n    // custom replacements\n    parsedString = parsedString.replace(/\\//g, '-');\n    return slugify(parsedString, {\n      remove: /[*+~.()'\"!:@,]/g,\n      lower: true\n    });\n  },\n  browserIsIE() {\n    return window.navigator.userAgent.match(/(MSIE|Trident)/);\n  },\n  escapeQuotes(str) {\n    if (typeof str !== 'string') {\n      return '';\n    }\n    return str\n      .replace(/\"/g, '\\\\\\\\\\\\\"')\n      .replace(/'/g, '\\\\\\\\\\'');\n  },\n  unescapeQuotes(str) {\n    if (typeof str !== 'string') {\n      return '';\n    }\n    return str\n      .replace(/\\\\\\\\\\\\\"/g, '\"')\n      .replace(/\\\\\\\\'/g, '\\'');\n  },\n  escapeDoubleQuotes(str) {\n    if (str.search(/\\\\?(\")([\\w\\s]+)\\\\?(\")/g) >= 0) {\n      // match piece of string between double quotes\n      return str.replace(/\\\\?(\")([\\w\\s]+)\\\\?(\")/g, '\\\\$1$2\\\\$3'); // thanks @slevithan!\n    }\n    return str.replace(/\\\\([\\s\\S])|(\")/g, '\\\\\\\\\\\\$1$2'); // thanks @slevithan!\n  },\n  unescapeDoubleQuotes(str) {\n    return (str && str !== '') ? str.replace(/\\\\*(\")/g, '$1') : str; // thanks @slevithan!\n  },\n  striptags(str) {\n    if (typeof str !== 'string') {\n      return '';\n    }\n    return str.replace(/(<([^>]+)>)/gi, '');\n  },\n  isElementInViewport(el: HTMLElement): boolean {\n    if (!el) {\n      throw Error('There is no element');\n    }\n    const rect = el.getBoundingClientRect();\n\n    return rect.bottom > 0\n      && rect.right > 0\n      && rect.left < (window.innerWidth || document.documentElement.clientWidth)\n      && rect.top < (window.innerHeight || document.documentElement.clientHeight);\n  },\n  /** Return true if an object is empty */\n  isEmpty: (obj) => (\n    typeof obj === 'object'\n      && Object.keys(obj).length === 0\n  )\n};\n","/*\n * Public API Surface of n7-boilerplate-common\n */\n\n// common\nexport * from './lib/n7-boilerplate-common.module';\nexport * from './lib/config-types';\nexport * from './lib/services';\nexport * from './lib/models';\nexport * from './lib/data-sources';\nexport * from './lib/event-handlers';\nexport * from './lib/layouts';\nexport * from './lib/components';\nexport * from './lib/helpers';\nexport * from './lib/directives';\nexport * from './lib/pipes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ConfigurationService","i1.ConfigurationService","i2.ApolloProvider","i3.RestProvider","config","i1","i3.LayoutsConfigurationService","i4.MainStateService","i7","i1.LayoutsConfigurationService","i2"],"mappings":"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"}