@ngartifex/core
Version:
ngartifex core library for angular
1 lines • 11.6 kB
Source Map (JSON)
{"version":3,"file":"ngartifex-core.mjs","sources":["../../../../projects/ngartifex/core/src/lib/dynamic.directive.ts","../../../../projects/ngartifex/core/src/lib/actions/responsive.actions.ts","../../../../projects/ngartifex/core/src/lib/stores/responsive.store.ts","../../../../projects/ngartifex/core/src/lib/selectors/responsive.selector.ts","../../../../projects/ngartifex/core/src/lib/services/responsive.service.ts","../../../../projects/ngartifex/core/src/lib/core.module.ts","../../../../projects/ngartifex/core/src/lib/resolve-component.service.ts","../../../../projects/ngartifex/core/src/lib/models/screen.model.ts","../../../../projects/ngartifex/core/src/public-api.ts","../../../../projects/ngartifex/core/src/ngartifex-core.ts"],"sourcesContent":["import { Directive, ViewContainerRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ngartifexDynamic]'\r\n})\r\nexport class DynamicDirective {\r\n\r\n @Input()\r\n name: string;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\n\r\nexport enum ResponsiveActionTypes {\r\n ScreenChanged = '[Responsive] Screen changed'\r\n}\r\n\r\nexport const screenChanged = createAction(ResponsiveActionTypes.ScreenChanged, props<{ payload: { width: number } }>());\r\n\r\n","import { Store, Action } from \"@ngartifex/ngrx-action\";\r\nimport { ResponsiveStoreModel } from \"../models/responsive-store.model\";\r\nimport * as ResponseActions from \"../actions/responsive.actions\";\r\n\r\n@Store<ResponsiveStoreModel>({\r\n screen: {\r\n xs: false,\r\n sm: false,\r\n md: false,\r\n lg: false,\r\n xl: false,\r\n },\r\n})\r\nexport class ResponsiveStore {\r\n readonly SMALL = 576;\r\n readonly MEDIUM = 768;\r\n readonly LARGE = 992;\r\n readonly EXTRA_LARGE = 1200;\r\n\r\n @Action(ResponseActions.screenChanged)\r\n screenChanged(state: ResponsiveStoreModel, { payload: { width } }) {\r\n const xs = width <= this.SMALL;\r\n const sm = width > this.SMALL && width <= this.MEDIUM;\r\n const md = width > this.MEDIUM && width <= this.LARGE;\r\n const lg = width > this.LARGE && width <= this.EXTRA_LARGE;\r\n const xl = width > this.EXTRA_LARGE;\r\n\r\n const screen = {\r\n xs,\r\n sm,\r\n md,\r\n lg,\r\n xl,\r\n };\r\n return { ...state, screen };\r\n }\r\n}\r\n","import { ResponsiveStoreModel } from \"../models/responsive-store.model\";\r\nimport { createSelector } from \"@ngrx/store\";\r\n\r\nexport const selectResponsiveState = (state) =>\r\n state.responsive.responsive as ResponsiveStoreModel;\r\n\r\nexport const selectAllScreen = createSelector(\r\n selectResponsiveState,\r\n (responsive) => responsive.screen\r\n);\r\n","import { Injectable } from '@angular/core';\r\nimport { Store, select } from '@ngrx/store';\r\nimport { Observable, fromEvent, BehaviorSubject } from 'rxjs';\r\nimport { distinctUntilChanged, startWith, tap, debounceTime, map } from 'rxjs/operators';\r\nimport * as ResponsiveActions from '../actions/responsive.actions';\r\nimport { selectAllScreen } from '../selectors/responsive.selector';\r\nimport { ScreenModel } from '../models/screen.model';\r\n\r\n@Injectable()\r\nexport class ResponsiveService {\r\n\r\n resize$: Observable<number>;\r\n\r\n isMobileSubject: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n isMobile$ = this.isMobileSubject.asObservable();\r\n\r\n constructor(private readonly _store: Store<any>) {\r\n this._listenChange();\r\n this.resize$ = fromEvent(window, 'resize')\r\n .pipe(\r\n debounceTime(100),\r\n map(this.getWindowWith),\r\n distinctUntilChanged(),\r\n startWith(window.innerWidth),\r\n tap(width => this._store.dispatch(ResponsiveActions.screenChanged({ payload: { width } }))),\r\n );\r\n }\r\n\r\n private _listenChange() {\r\n const screen$ = this._store.pipe(\r\n select(selectAllScreen)\r\n );\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\r\n screen$.subscribe(this._onScreenChange.bind(this));\r\n }\r\n\r\n private _onScreenChange(screenModel: ScreenModel) {\r\n this.isMobileSubject.next(screenModel.xs || screenModel.sm);\r\n }\r\n\r\n private getWindowWith() {\r\n return window.innerWidth;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ReduxRegisterModule } from '@ngartifex/ngrx-action';\r\nimport { DynamicDirective } from './dynamic.directive';\r\nimport { ResponsiveStore } from './stores/responsive.store';\r\nimport { ResponsiveService } from './services/responsive.service';\r\n@NgModule({\r\n imports: [\r\n ReduxRegisterModule.forFeature('responsive', { responsive: ResponsiveStore }),\r\n ],\r\n declarations: [\r\n DynamicDirective\r\n ],\r\n exports: [\r\n DynamicDirective\r\n ],\r\n providers: [\r\n ResponsiveService\r\n ]\r\n})\r\nexport class CoreModule { }\r\n","import { Injectable, Injector, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { ComponentType } from '@angular/cdk/portal';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResolveComponent {\r\n\r\n constructor() { }\r\n\r\n createEmbeddedView(template: TemplateRef<any>, context: any, viewContainerRef: ViewContainerRef) {\r\n if (!template) { return; }\r\n viewContainerRef.clear();\r\n viewContainerRef.createEmbeddedView(template, context);\r\n }\r\n\r\n createComponent<T = any>(\r\n component: ComponentType<T>,\r\n viewContainerRef: ViewContainerRef,\r\n injector?: Injector\r\n ) {\r\n if (!component) { return; }\r\n viewContainerRef.clear();\r\n viewContainerRef.createComponent(component, {\r\n injector\r\n });\r\n }\r\n}\r\n","export class ScreenModel {\r\n xs: boolean;\r\n sm: boolean;\r\n md: boolean;\r\n lg: boolean;\r\n xl: boolean;\r\n}\r\n","/*\r\n * Public API Surface of core\r\n */\r\n\r\n\r\nexport * from './lib/core.module';\r\nexport * from './lib/dynamic.directive';\r\nexport * from './lib/resolve-component.service';\r\nexport * from './lib/actions/responsive.actions';\r\nexport * from './lib/models/responsive-store.model';\r\nexport * from './lib/models/screen.model';\r\nexport * from './lib/selectors/responsive.selector';\r\nexport * from './lib/services/responsive.service';\r\nexport * from './lib/stores/responsive.store';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ResponseActions.screenChanged","ResponsiveActions.screenChanged","i1"],"mappings":"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"}