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