@net7/boilerplate-common 3.2.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/smart-pagination/smart-pagination.mjs +3 -3
- package/esm2020/lib/directives/click-outside.directive.mjs +31 -0
- package/esm2020/lib/directives/index.mjs +2 -0
- package/esm2020/lib/layouts/main-layout/main-layout.mjs +3 -3
- package/esm2020/lib/layouts/page404-layout/page404-layout.mjs +3 -3
- package/esm2020/lib/n7-boilerplate-common.module.mjs +15 -10
- package/esm2020/lib/services/communication-providers/apollo.provider.mjs +3 -3
- package/esm2020/lib/services/communication-providers/rest.provider.mjs +3 -3
- package/esm2020/lib/services/communication.service.mjs +3 -3
- package/esm2020/lib/services/configuration.service.mjs +3 -3
- package/esm2020/lib/services/json-config.service.mjs +3 -3
- package/esm2020/lib/services/layouts-configuration.service.mjs +3 -3
- package/esm2020/lib/services/local-config.service.mjs +3 -3
- package/esm2020/lib/services/main-state.service.mjs +3 -3
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/net7-boilerplate-common.mjs +76 -44
- package/fesm2015/net7-boilerplate-common.mjs.map +1 -1
- package/fesm2020/net7-boilerplate-common.mjs +76 -44
- package/fesm2020/net7-boilerplate-common.mjs.map +1 -1
- package/lib/directives/click-outside.directive.d.ts +10 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/n7-boilerplate-common.module.d.ts +5 -4
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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/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 } = {\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 };\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';\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$(providerConfig, requestId: string, options) {\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 httpOptions,\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 arrStr.push(`\"${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 paramsStr.push(`${key}: \"${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';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestProvider implements CommunicationProvider {\n constructor(\n private http: HttpClient,\n ) {}\n\n request$(providerConfig, requestId, options: any = {}) {\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 if (method === 'POST' || method === 'PUT') {\n return this.http[method.toLowerCase()](\n providerConfig.baseUrl + point + urlParams, params, httpOptions,\n );\n } if (method === 'GET' || method === 'DELETE') {\n return this.http[method.toLowerCase()](\n providerConfig.baseUrl + point + urlParams, httpOptions,\n );\n }\n throw Error(`Rest method ${method} not supported`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { catchError } from 'rxjs/operators';\nimport { Observable, empty } from 'rxjs';\nimport { ConfigurationService } from './configuration.service';\nimport { ApolloProvider } from './communication-providers/apollo.provider';\nimport { RestProvider } from './communication-providers/rest.provider';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommunicationService {\n private defaultProvider: string;\n\n private communicationConfig: any;\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$(requestId, options: any = {}, 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 // provider.type control 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 { onError } = options;\n return this[activeProviderType].request$(activeProviderConfig, requestId, options)\n .pipe(\n catchError((error) => this.handleError(error, onError)),\n );\n }\n\n handleError(error, onError): 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","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\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<any> = 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 // 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 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 // no events\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<any> = 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 { 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\nconst COMPONENTS = [\n MainLayoutComponent,\n Page404LayoutComponent,\n SmartPaginationComponent,\n];\n\n@NgModule({\n declarations: COMPONENTS,\n imports: [\n CommonModule,\n HttpClientModule,\n DvComponentsLibModule,\n ],\n providers: [],\n exports: COMPONENTS\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 { 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 Object.keys(response).forEach((key) => {\n const oldValue = this.config.get(key);\n const newValue = response[key];\n this.config.set(key, merge(oldValue, newValue));\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","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';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["config"],"mappings":"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"}
|
|
1
|
+
{"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/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 } = {\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 };\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';\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$(providerConfig, requestId: string, options) {\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 httpOptions,\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 arrStr.push(`\"${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 paramsStr.push(`${key}: \"${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';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RestProvider implements CommunicationProvider {\n constructor(\n private http: HttpClient,\n ) {}\n\n request$(providerConfig, requestId, options: any = {}) {\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 if (method === 'POST' || method === 'PUT') {\n return this.http[method.toLowerCase()](\n providerConfig.baseUrl + point + urlParams, params, httpOptions,\n );\n } if (method === 'GET' || method === 'DELETE') {\n return this.http[method.toLowerCase()](\n providerConfig.baseUrl + point + urlParams, httpOptions,\n );\n }\n throw Error(`Rest method ${method} not supported`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { catchError } from 'rxjs/operators';\nimport { Observable, empty } from 'rxjs';\nimport { ConfigurationService } from './configuration.service';\nimport { ApolloProvider } from './communication-providers/apollo.provider';\nimport { RestProvider } from './communication-providers/rest.provider';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommunicationService {\n private defaultProvider: string;\n\n private communicationConfig: any;\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$(requestId, options: any = {}, 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 // provider.type control 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 { onError } = options;\n return this[activeProviderType].request$(activeProviderConfig, requestId, options)\n .pipe(\n catchError((error) => this.handleError(error, onError)),\n );\n }\n\n handleError(error, onError): 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","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\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<any> = 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 // 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 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 // no events\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<any> = 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 { 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';\n\nconst DECLARATIONS = [\n MainLayoutComponent,\n Page404LayoutComponent,\n SmartPaginationComponent,\n ClickOutsideDirective,\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 { 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 Object.keys(response).forEach((key) => {\n const oldValue = this.config.get(key);\n const newValue = response[key];\n this.config.set(key, merge(oldValue, newValue));\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","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';\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","i1.LayoutsConfigurationService","i2"],"mappings":"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"}
|