@ngflux/ngflux 3.0.0 → 3.0.1
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.
|
@@ -1051,13 +1051,13 @@ class NgFluxFrameHeaderMenu {
|
|
|
1051
1051
|
this.open.set(false);
|
|
1052
1052
|
}
|
|
1053
1053
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: NgFluxFrameHeaderMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1054
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.0", type: NgFluxFrameHeaderMenu, isStandalone: true, selector: "ngf-frame-header-menu", inputs: { menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"toggle\" (click)=\"toggle($event)\">\n
|
|
1054
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.0", type: NgFluxFrameHeaderMenu, isStandalone: true, selector: "ngf-frame-header-menu", inputs: { menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "@if (menu().length) {\n <div class=\"toggle\" (click)=\"toggle($event)\">\n @let icons = ['ngf-icon', open() ? 'close' : 'menu'];\n <i [className]=\"icons.join(' ')\"></i>\n </div>\n}\n\n<div class=\"wrapper\" [class.open]=\"open()\">\n @if (menu().length) {\n <ul class=\"menu\">\n @for (item of menu(); track $index) {\n <li>\n @if (item.isExternal) {\n <a [href]=\"item.href\" [attr.target]=\"target(item)\">\n @if (item.icon) {\n <div class=\"icon\">\n <i [className]=\"item.icon\"></i>\n </div>\n }\n\n <div class=\"text\">{{ item.text }}</div>\n </a>\n } @else {\n <a [routerLink]=\"item.href\" [attr.target]=\"target(item)\">\n @if (item.icon) {\n <div class=\"icon\">\n <i [className]=\"item.icon\"></i>\n </div>\n }\n\n <div class=\"text\">{{ item.text }}</div>\n </a>\n }\n </li>\n }\n </ul>\n }\n</div>\n", styles: [":host{display:flex;flex-direction:row;justify-content:end;container:main/inline-size scroll-state!important;align-self:stretch;--border: 1px solid #DDD}:host .toggle{display:flex;flex-direction:row;align-items:center;justify-content:center;border-left:var(--border)!important;border-right:var(--border)!important;padding:0 10px;cursor:pointer}@container main (min-width: 576px){:host .toggle{display:none}}:host .wrapper{display:none;position:relative}:host .wrapper.open{display:block}@container main (min-width: 576px){:host .wrapper{display:block}}:host .wrapper>.menu{display:block;position:absolute;inset:100% 0 auto auto;box-shadow:0 3px 3px #00000080;background-color:#fff;list-style:none;height:auto;padding:0;margin:0}@container main (min-width: 576px){:host .wrapper>.menu{display:flex;flex-direction:row;align-items:center;justify-content:end;position:static;background-color:transparent;box-shadow:none;height:100%;inset:auto;gap:15px}}:host .wrapper>.menu>li{display:block;padding:0;margin:0}:host .wrapper>.menu>li>a{display:flex;flex-direction:row;align-items:center;text-decoration:none!important;padding:7px 20px;gap:5px}@container main (min-width: 576px){:host .wrapper>.menu>li>a{padding:0}}:host .wrapper>.menu>li>a>.icon{display:block}:host .wrapper>.menu>li>a>.icon>*{font-size:1.2em}:host .wrapper>.menu>li>a>.text{display:block;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }] });
|
|
1055
1055
|
}
|
|
1056
1056
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: NgFluxFrameHeaderMenu, decorators: [{
|
|
1057
1057
|
type: Component,
|
|
1058
1058
|
args: [{ selector: 'ngf-frame-header-menu', imports: [RouterLink], host: {
|
|
1059
1059
|
'(document:click)': 'onDocumentClick($event)',
|
|
1060
|
-
}, template: "<div class=\"toggle\" (click)=\"toggle($event)\">\n
|
|
1060
|
+
}, template: "@if (menu().length) {\n <div class=\"toggle\" (click)=\"toggle($event)\">\n @let icons = ['ngf-icon', open() ? 'close' : 'menu'];\n <i [className]=\"icons.join(' ')\"></i>\n </div>\n}\n\n<div class=\"wrapper\" [class.open]=\"open()\">\n @if (menu().length) {\n <ul class=\"menu\">\n @for (item of menu(); track $index) {\n <li>\n @if (item.isExternal) {\n <a [href]=\"item.href\" [attr.target]=\"target(item)\">\n @if (item.icon) {\n <div class=\"icon\">\n <i [className]=\"item.icon\"></i>\n </div>\n }\n\n <div class=\"text\">{{ item.text }}</div>\n </a>\n } @else {\n <a [routerLink]=\"item.href\" [attr.target]=\"target(item)\">\n @if (item.icon) {\n <div class=\"icon\">\n <i [className]=\"item.icon\"></i>\n </div>\n }\n\n <div class=\"text\">{{ item.text }}</div>\n </a>\n }\n </li>\n }\n </ul>\n }\n</div>\n", styles: [":host{display:flex;flex-direction:row;justify-content:end;container:main/inline-size scroll-state!important;align-self:stretch;--border: 1px solid #DDD}:host .toggle{display:flex;flex-direction:row;align-items:center;justify-content:center;border-left:var(--border)!important;border-right:var(--border)!important;padding:0 10px;cursor:pointer}@container main (min-width: 576px){:host .toggle{display:none}}:host .wrapper{display:none;position:relative}:host .wrapper.open{display:block}@container main (min-width: 576px){:host .wrapper{display:block}}:host .wrapper>.menu{display:block;position:absolute;inset:100% 0 auto auto;box-shadow:0 3px 3px #00000080;background-color:#fff;list-style:none;height:auto;padding:0;margin:0}@container main (min-width: 576px){:host .wrapper>.menu{display:flex;flex-direction:row;align-items:center;justify-content:end;position:static;background-color:transparent;box-shadow:none;height:100%;inset:auto;gap:15px}}:host .wrapper>.menu>li{display:block;padding:0;margin:0}:host .wrapper>.menu>li>a{display:flex;flex-direction:row;align-items:center;text-decoration:none!important;padding:7px 20px;gap:5px}@container main (min-width: 576px){:host .wrapper>.menu>li>a{padding:0}}:host .wrapper>.menu>li>a>.icon{display:block}:host .wrapper>.menu>li>a>.icon>*{font-size:1.2em}:host .wrapper>.menu>li>a>.text{display:block;white-space:nowrap}\n"] }]
|
|
1061
1061
|
}], propDecorators: { menu: [{ type: i0.Input, args: [{ isSignal: true, alias: "menu", required: true }] }] } });
|
|
1062
1062
|
|
|
1063
1063
|
class NgFluxFrame {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngflux-ngflux.mjs","sources":["../../../projects/ngflux/src/lib/interfaces/Config.ts","../../../projects/ngflux/src/lib/interfaces/Dialog.ts","../../../projects/ngflux/src/lib/components/actions/actions.component.ts","../../../projects/ngflux/src/lib/components/actions/actions.component.html","../../../projects/ngflux/src/lib/components/button/button.component.ts","../../../projects/ngflux/src/lib/components/button/button.component.html","../../../projects/ngflux/src/lib/components/dialog/body/body.component.ts","../../../projects/ngflux/src/lib/components/dialog/body/body.component.html","../../../projects/ngflux/src/lib/components/dialog/footer/footer.component.ts","../../../projects/ngflux/src/lib/components/dialog/footer/footer.component.html","../../../projects/ngflux/src/lib/components/dialog/root/root.component.ts","../../../projects/ngflux/src/lib/components/dialog/root/root.component.html","../../../projects/ngflux/src/lib/internal/Dialog.ts","../../../projects/ngflux/src/lib/internal/DialogTokens.ts","../../../projects/ngflux/src/lib/internal/RouteTitleStrategy.ts","../../../projects/ngflux/src/lib/internal/Meta.ts","../../../projects/ngflux/src/lib/internal/TabNavController.ts","../../../projects/ngflux/src/lib/internal/TabGroupController.ts","../../../projects/ngflux/src/lib/components/dialog/header/header.component.ts","../../../projects/ngflux/src/lib/components/dialog/header/header.component.html","../../../projects/ngflux/src/lib/components/loading/main/main.component.ts","../../../projects/ngflux/src/lib/components/loading/main/main.component.html","../../../projects/ngflux/src/lib/components/loading/root/root.component.ts","../../../projects/ngflux/src/lib/components/loading/root/root.component.html","../../../projects/ngflux/src/lib/components/pagination/info/info.component.ts","../../../projects/ngflux/src/lib/components/pagination/info/info.component.html","../../../projects/ngflux/src/lib/components/pagination/pagination.component.ts","../../../projects/ngflux/src/lib/components/pagination/pagination.component.html","../../../projects/ngflux/src/lib/components/input/select/items/items.component.ts","../../../projects/ngflux/src/lib/components/input/select/items/items.component.html","../../../projects/ngflux/src/lib/components/input/select/select.component.ts","../../../projects/ngflux/src/lib/components/input/select/select.component.html","../../../projects/ngflux/src/lib/components/input/pin/pin.directive.ts","../../../projects/ngflux/src/lib/components/input/pin/pin.component.ts","../../../projects/ngflux/src/lib/components/input/pin/pin.component.html","../../../projects/ngflux/src/lib/directives/tab/nav.directive.ts","../../../projects/ngflux/src/lib/directives/tab/content.directive.ts","../../../projects/ngflux/src/lib/components/tab/tab.component.ts","../../../projects/ngflux/src/lib/components/tab/tab.component.html","../../../projects/ngflux/src/lib/components/tab/navbar/navbar.component.ts","../../../projects/ngflux/src/lib/components/tab/navbar/navbar.component.html","../../../projects/ngflux/src/lib/components/tab/panel/panel.component.ts","../../../projects/ngflux/src/lib/components/tab/panel/panel.component.html","../../../projects/ngflux/src/lib/components/tab/group/group.component.ts","../../../projects/ngflux/src/lib/components/tab/group/group.component.html","../../../projects/ngflux/src/lib/components/frame/side-menu/side-menu.component.ts","../../../projects/ngflux/src/lib/components/frame/side-menu/side-menu.component.html","../../../projects/ngflux/src/lib/components/frame/header-menu/header-menu.component.ts","../../../projects/ngflux/src/lib/components/frame/header-menu/header-menu.component.html","../../../projects/ngflux/src/lib/components/frame/frame.component.ts","../../../projects/ngflux/src/lib/components/frame/frame.component.html","../../../projects/ngflux/src/lib/internal/Loading.ts","../../../projects/ngflux/src/lib/services/Loading.ts","../../../projects/ngflux/src/lib/components/dialog/main/main.component.ts","../../../projects/ngflux/src/lib/components/dialog/main/main.component.html","../../../projects/ngflux/src/lib/services/DialogRef.ts","../../../projects/ngflux/src/lib/services/DialogInstance.ts","../../../projects/ngflux/src/lib/components/dialog/boxes/alert/alert.dialog.ts","../../../projects/ngflux/src/lib/components/dialog/boxes/alert/alert.dialog.html","../../../projects/ngflux/src/lib/components/dialog/boxes/confirm/confirm.dialog.ts","../../../projects/ngflux/src/lib/components/dialog/boxes/confirm/confirm.dialog.html","../../../projects/ngflux/src/lib/components/dialog/boxes/prompt/prompt.dialog.ts","../../../projects/ngflux/src/lib/components/dialog/boxes/prompt/prompt.dialog.html","../../../projects/ngflux/src/lib/services/Dialog.ts","../../../projects/ngflux/src/lib/ngflux.ts","../../../projects/ngflux/src/public-api.ts","../../../projects/ngflux/src/ngflux-ngflux.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport type { NgFluxComponent } from \"./Component\";\nimport type { ButtonOptions } from \"./Button\";\nimport type { PaginationTransformer } from \"./Pagination\";\n\nexport type NgFluxConfig = {\n loading?: LoadingOptions;\n dialog?: DialogOptions;\n pagination?: PaginationOptions;\n title?: RouterTitleOptions;\n};\n\nexport const NGF_CONFIG = new InjectionToken<NgFluxConfig>('ngf-config');\n\n// BEGIN: Router\ntype RouterTitleOptions = {\n separator?: string;\n prefix?: string;\n suffix?: string;\n};\n// END: Router\n\n\n// BEGIN: Loading\ntype LoadingOptions = {\n showOnRouteNavigation?: boolean;\n component?: NgFluxComponent;\n};\n// END: Loading\n\n// BEGIN: Dialog Options\ntype DialogAlertOptions = {\n okayButton?: ButtonOptions;\n};\n\ntype DialogConfirmOptions = {\n okayButton?: ButtonOptions;\n cancelButton?: ButtonOptions;\n};\n\ntype DialogPromptOptions = {\n submitButton?: ButtonOptions;\n cancelButton?: ButtonOptions;\n};\n\ntype DialogOptions = {\n alert?: DialogAlertOptions;\n confirm?: DialogConfirmOptions;\n prompt?: DialogPromptOptions;\n};\n// END: Dialog Options\n\n// BEGIN: Pagination\ntype PaginationOptions = {\n preload?: boolean;\n transform?: PaginationTransformer;\n limitOptions?: number[];\n limit?: number;\n};\n// END: Pagination\n","import { InjectionToken, Injector, Signal, ViewContainerRef } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\nimport type { NgFluxDialogRef } from \"../services/DialogRef\";\nimport type { ButtonOptions } from \"./Button\";\n\nexport type NgFluxDialogRoot = {\n viewContainer: Signal<ViewContainerRef>;\n injector: Injector;\n}\n\nexport type NgFluxDialogConfig = {\n closeOnEsc?: boolean;\n closeOnBackBtn?: boolean;\n backdropClose?: boolean;\n closeBtn?: boolean;\n data?: any\n};\n\nexport type NgFluxDialogCommand<T = any> = {\n name: string;\n value?: T;\n};\n\nexport const NGF_DIALOG_DATA = new InjectionToken<any>('ngf-dialog-data');\n\nexport type NgFluxDialogEvents<T = any> = {\n readonly closing: Observable<T | null>;\n readonly closed: Observable<T | null>;\n};\n\nexport type NgFluxDialogButtonObj<T = any> = ButtonOptions & {\n onClick?: (e: MouseEvent, btn: NgFluxDialogButton<T>, dialogRef: NgFluxDialogRef<T>) => void;\n disabled?: () => boolean;\n};\n\nexport type NgFluxDialogButton<T = any> = 'flex' | NgFluxDialogButtonObj<T>;\n\nexport type NgFluxDialogAlertOptions = {\n title?: string;\n content: string;\n buttons?: NgFluxDialogButton<boolean>[];\n};\n\nexport type NgFluxDialogConfirmOptions = {\n title?: string;\n content: string;\n okayButton?: NgFluxDialogButtonObj;\n cancelButton?: NgFluxDialogButtonObj;\n};\n\nexport type NgFluxDialogPromptOptions = {\n title: string;\n content: string;\n placeholder?: string,\n defaultValue?: string,\n submitButton?: NgFluxDialogButtonObj;\n cancelButton?: NgFluxDialogButtonObj;\n};\n","import { Component, input } from \"@angular/core\";\n\ntype Justify = 'start' | 'center' | 'end' | 'stretch';\n\n@Component({\n selector: 'ngf-actions',\n templateUrl: 'actions.component.html',\n styleUrls: ['actions.component.scss'],\n imports: []\n})\nexport class NgFluxActions {\n\n readonly justify = input<Justify>('end');\n readonly wrap = input(true);\n readonly gap = input(10);\n\n}\n","<div class=\"wrapper\" [class.wrap]=\"wrap()\" [style.gap.px]=\"gap()\" [style.justify-content]=\"justify()\">\n <ng-content></ng-content>\n</div>\n","import { Component, computed, effect, ElementRef, HostBinding, inject, input, output } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { ButtonDirection, ButtonSize, ButtonTheme, ButtonType } from '../../interfaces';\n\n@Component({\n selector: 'ngf-button',\n templateUrl: 'button.component.html',\n styleUrls: ['button.component.scss'],\n imports: [NgClass],\n})\nexport class NgFluxButton {\n private readonly ref: ElementRef<HTMLElement> = inject(ElementRef);\n\n readonly icon = input<string>();\n readonly theme = input<ButtonTheme>();\n readonly type = input<ButtonType>();\n readonly size = input<ButtonSize>();\n readonly direction = input<ButtonDirection>();\n\n readonly block = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n\n readonly btnClassNames = computed(() => {\n const names: string[] = [];\n\n const direction = this.direction() ?? 'normal';\n if (direction === 'reversed') names.push(direction);\n\n return names;\n });\n\n readonly classNames = computed(() => [this.theme() ?? 'default', this.size() ?? 'md'].join(' '));\n\n @HostBinding('class')\n get bindClass() { return this.classNames(); }\n\n @HostBinding('class.block')\n get isBlock() { return this.block(); }\n\n @HostBinding('class.disabled')\n get isDisabled() { return this.disabled(); }\n\n @HostBinding('tabIndex')\n get tabIndex() { return 1; }\n\n}\n","<button [type]=\"type()\" [disabled]=\"disabled()\">\n <div class=\"wrapper\" [ngClass]=\"btnClassNames()\">\n @if (icon(); as ico) {\n <div class=\"icon\">\n <i [ngClass]=\"ico\"></i>\n </div>\n }\n\n <div class=\"content\">\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngf-dialog-body',\n templateUrl: 'body.component.html',\n styleUrls: ['body.component.scss'],\n imports: [],\n})\nexport class NgFluxDialogBody {\n //\n}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngf-dialog-footer',\n templateUrl: 'footer.component.html',\n styleUrls: ['footer.component.scss'],\n imports: [],\n})\nexport class NgFluxDialogFooter {\n\n //\n\n}\n","<ng-content></ng-content>\n","import {\n Component,\n inject,\n Injector,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n selector: 'ngf-dialog-root',\n templateUrl: 'root.component.html',\n styleUrls: ['root.component.scss'],\n imports: [],\n})\nexport class NgFluxDialogRootComponent {\n\n readonly injector = inject(Injector);\n\n readonly viewContainer = viewChild.required('container', { read: ViewContainerRef });\n\n}\n","<ng-template #container></ng-template>\n","import { ApplicationRef, ComponentRef, computed, createComponent, effect, inject, Injectable, signal } from \"@angular/core\";\nimport { NgFluxDialogRootComponent } from \"../components/dialog/root/root.component\";\nimport { NgFluxDialogInstance } from \"../services/DialogInstance\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgFluxDialogInternal {\n\n private readonly appRef = inject(ApplicationRef);\n\n private readonly list = signal<NgFluxDialogInstance[]>([]);\n\n readonly count = computed(() => this.list().length);\n readonly isOpen = computed(() => this.count() > 0);\n\n readonly active = computed(() => {\n const entries = this.cloneList();\n if (!entries.length) return null;\n\n const lastIndex = entries.length - 1;\n return entries[lastIndex];\n });\n\n readonly rootRef: ComponentRef<NgFluxDialogRootComponent>;\n\n constructor() {\n const { appRef } = this;\n\n this.rootRef = createComponent(NgFluxDialogRootComponent, {\n environmentInjector: appRef.injector,\n });\n\n const body = document.querySelector('body');\n\n effect(() => {\n const isOpen = this.isOpen();\n body?.classList.toggle('ngf-dialog-open', isOpen);\n });\n\n window.addEventListener('popstate', e => {\n const active = this.active();\n if (!active) return;\n\n history.forward();\n\n const config = active.config;\n\n if (config.closeOnBackBtn) {\n active.send({ name: 'backButton.close' });\n }\n });\n }\n\n initialize() {\n const { appRef, rootRef } = this;\n appRef.attachView(rootRef.hostView);\n\n const elem = rootRef.location.nativeElement as HTMLElement;\n document.body.appendChild(elem);\n }\n\n // ==========================\n\n private readonly cloneList = () => Array.from(this.list());\n\n private readonly indexOf = (item: NgFluxDialogInstance) => {\n const entries = this.list();\n return entries.indexOf(item);\n }\n\n readonly focus = () => {\n const item = this.active();\n item?.focus();\n }\n\n readonly add = (...items: NgFluxDialogInstance[]) => {\n const entries = this.cloneList();\n\n entries.push(...items);\n\n this.list.set(entries);\n\n // ====================\n\n history.pushState(null, '', location.href);\n }\n\n readonly remove = (item: NgFluxDialogInstance) => {\n history.back();\n\n const entries = this.cloneList();\n\n const index = this.indexOf(item);\n entries.splice(index, 1);\n\n this.list.set(entries);\n }\n\n readonly closeAll = () => {\n const entries = this.cloneList();\n\n while (entries.length) {\n const instance = entries.pop();\n instance?.close(false);\n }\n\n this.list.set(entries);\n }\n\n readonly clear = () => {\n this.list.set([]);\n }\n\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { NgFluxComponent, NgFluxDialogConfig } from \"../interfaces\";\nimport type { NgFluxDialogInstance } from \"../services\";\n\nexport const NGF_DIALOG_CONTENT = new InjectionToken<NgFluxComponent>('ngf-dialog-content');\n\nexport const NGF_DIALOG_CONFIG = new InjectionToken<NgFluxDialogConfig>('ngf-dialog-config');\n\nexport const NGF_DIALOG_INSTANCE = new InjectionToken<NgFluxDialogInstance>('ngf-dialog-instance');\n\nexport type OnDialogClose<T = any> = (data?: T) => void;\nexport const NGF_DIALOG_CLOSE_FN = new InjectionToken<OnDialogClose>('ngf-dialog-close-fn');\n","import { inject, Injectable } from \"@angular/core\";\nimport { Title } from \"@angular/platform-browser\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, TitleStrategy } from \"@angular/router\";\nimport { NGF_CONFIG, NgFluxRoute } from \"../interfaces\";\n\n@Injectable({ providedIn: 'root' })\nexport class RouteTitleStrategy extends TitleStrategy {\n\n private readonly config = inject(NGF_CONFIG);\n private readonly service = inject(Title);\n\n private getChildSnapshot(snapshot: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (snapshot.firstChild) return this.getChildSnapshot(snapshot.firstChild);\n return snapshot;\n }\n\n private getParentTitle(snapshot: ActivatedRouteSnapshot): string | undefined {\n if (snapshot.parent) {\n const title = snapshot.parent.title;\n if (title) return title;\n\n return this.getParentTitle(snapshot.parent);\n }\n\n return undefined;\n }\n\n override updateTitle(snapshot: RouterStateSnapshot): void {\n const { config, service } = this;\n const entries: string[] = [];\n\n if (config.title?.prefix) entries.push(config.title.prefix);\n\n const child = this.getChildSnapshot(snapshot.root);\n const routeConfig = (child.routeConfig ?? {}) as NgFluxRoute;\n\n let routeTitle = routeConfig.getTitle?.(child.data) ?? this.buildTitle(snapshot);\n\n if (routeConfig.addParentTitle) {\n const parentTitle = this.getParentTitle(child);\n\n if (parentTitle) {\n const separator = routeConfig.parentTitleSeparator ?? ' - ';\n\n if (routeTitle) {\n routeTitle += separator + parentTitle;\n } else {\n routeTitle = parentTitle;\n }\n }\n }\n\n if (routeTitle) entries.push(routeTitle);\n if (config.title?.suffix) entries.push(config.title.suffix);\n\n const separator = config.title?.separator ?? ' | ';\n const title = entries.join(separator);\n\n if (title) service.setTitle(title);\n }\n\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { Meta } from \"@angular/platform-browser\";\nimport { ActivationEnd, Router } from \"@angular/router\";\nimport { filter, map } from \"rxjs\";\n\nimport { NgFluxRoute } from \"../interfaces\";\n\n@Injectable({ providedIn: 'root' })\nexport class MetaInternal {\n\n private readonly meta = inject(Meta);\n private readonly router = inject(Router);\n\n private readonly snapshot = this.router.events.pipe(\n filter(e => e instanceof ActivationEnd),\n filter(e => !e.snapshot.firstChild),\n map(e => e.snapshot),\n );\n\n initialize() {\n const { meta, snapshot } = this;\n\n const initialDescription = meta.getTag('name=\"description\"')?.content;\n const initialKeywords = meta.getTag('name=\"keywords\"')?.content;\n\n snapshot.subscribe(snap => {\n const config = (snap.routeConfig ?? {}) as NgFluxRoute;\n\n const description = config.getDescription?.(snap.data) ?? config.description ?? initialDescription;\n if (description) meta.updateTag({ name: 'description', content: description });\n\n let keywords = config.getKeywords?.(snap.data) ?? config.keywords ?? initialKeywords;\n if (Array.isArray(keywords)) keywords = keywords.join(', ');\n if (keywords) meta.updateTag({ name: 'keywords', content: keywords });\n });\n }\n\n}\n","import { computed, effect, Injectable, linkedSignal, signal } from \"@angular/core\";\n\nimport type { NgFluxTabContentDirective, NgFluxTabNavDirective } from \"../directives\";\n\n@Injectable()\nexport class TabNavController {\n\n private readonly map = signal(new Map<NgFluxTabNavDirective, any>());\n readonly navs = computed(() => Array.from(this.map().keys()));\n\n private readonly selected = linkedSignal({\n source: () => ({\n navs: this.navs(),\n selectedIndex: this.selectedIndex(),\n }),\n computation: (src, prev): NgFluxTabNavDirective | null => {\n const { navs, selectedIndex } = src;\n const value: NgFluxTabNavDirective | null = prev?.value ?? null;\n\n let index = Math.min(Math.max(selectedIndex, 0), navs.length - 1);\n return navs.find(v => v === value) ?? navs.at(index) ?? null;\n }\n });\n\n readonly selectedIndex = signal(0);\n\n readonly active = this.selected.asReadonly();\n readonly activeContent = computed(() => this.active()?.navContent());\n\n activate(nav: NgFluxTabNavDirective) {\n const map = this.map();\n if (!map.has(nav)) return;\n\n this.selected.set(nav);\n }\n\n add(nav: NgFluxTabNavDirective) {\n this.map.update(v => {\n const map = new Map(v);\n map.set(nav, true);\n\n return map;\n });\n }\n\n remove(nav: NgFluxTabNavDirective) {\n this.map.update(v => {\n if (!v.has(nav)) return v;\n\n const map = new Map(v);\n map.delete(nav);\n\n return map;\n });\n }\n\n}\n","import { computed, Injectable, signal } from \"@angular/core\";\n\nimport type { NgFluxTab } from \"../components\";\n\n@Injectable()\nexport class TabGroupController {\n\n private readonly map = signal(new Map<NgFluxTab, any>());\n readonly tabs = computed(() => Array.from(this.map().keys()));\n\n add(nav: NgFluxTab) {\n this.map.update(v => {\n const map = new Map(v);\n map.set(nav, true);\n\n return map;\n });\n }\n\n remove(nav: NgFluxTab) {\n this.map.update(v => {\n if (!v.has(nav)) return v;\n\n const map = new Map(v);\n map.delete(nav);\n\n return map;\n });\n }\n\n}\n","import { Component, inject, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { NGF_DIALOG_CONFIG } from '../../../internal';\nimport { NgFluxDialogRef } from '../../../services';\n\n@Component({\n selector: 'ngf-dialog-header',\n templateUrl: 'header.component.html',\n styleUrls: ['header.component.scss'],\n imports: [NgClass],\n})\nexport class NgFluxDialogHeader {\n\n readonly config = inject(NGF_DIALOG_CONFIG);\n readonly dialogRef = inject(NgFluxDialogRef);\n\n readonly icon = input<string>();\n}\n","@if (icon(); as ico) {\n <div class=\"left\">\n <i [ngClass]=\"ico\"></i>\n </div>\n}\n\n<div class=\"middle\">\n <ng-content></ng-content>\n</div>\n\n@if (config.closeBtn) {\n <div class=\"right\" title=\"Close\" (click)=\"dialogRef.close()\">\n <i class=\"ngf-icon close\"></i>\n </div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngf-loading',\n templateUrl: 'main.component.html',\n styleUrls: ['main.component.scss'],\n imports: [],\n})\nexport class NgFluxLoadingComponent {}\n","<svg viewBox=\"25 25 50 50\">\n <circle r=\"20\" cy=\"50\" cx=\"50\"></circle>\n</svg>\n","import {\n Component,\n ComponentRef,\n computed,\n effect,\n HostBinding,\n inject,\n Injector,\n signal,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { NgFluxLoadingComponent } from '../main/main.component';\nimport { NGF_CONFIG, NgFluxLoadingEntry } from '../../../interfaces';\n\n@Component({\n selector: 'ngf-loading-root',\n templateUrl: 'root.component.html',\n styleUrls: ['root.component.scss'],\n imports: [],\n})\nexport class NgFluxLoadingRootComponent {\n\n private readonly config = inject(NGF_CONFIG);\n private readonly injector = inject(Injector);\n\n private readonly entries = signal<NgFluxLoadingEntry[]>([]);\n\n readonly count = computed(() => this.entries().length);\n readonly isLoading = computed(() => this.count() > 0);\n\n @HostBinding('class.show')\n get showLoading() { return this.isLoading(); }\n\n readonly viewContainer = viewChild.required('container', { read: ViewContainerRef });\n\n private componentRef!: ComponentRef<any>;\n\n constructor() {\n const { config, injector } = this;\n\n effect(() => {\n const viewContainer = this.viewContainer();\n const component = config.loading?.component ?? NgFluxLoadingComponent;\n\n const newInjector = Injector.create({\n parent: injector,\n providers: [],\n });\n\n this.componentRef = viewContainer.createComponent(component, {\n injector: newInjector,\n });\n });\n }\n\n readonly entry = computed(() => {\n const entries = this.entries();\n return entries.at(entries.length - 1);\n });\n\n readonly start = (text: string = '') => this.entries.update(v => {\n const entries = Array.from(v);\n entries.push({ text });\n return entries;\n });\n\n readonly stop = () => this.entries.update(v => {\n const entries = Array.from(v);\n entries.pop();\n return entries;\n });\n\n}\n","<div class=\"wrapper\">\n <ng-template #container></ng-template>\n</div>\n","import {\n Component,\n computed,\n inject,\n input,\n model,\n output,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { Pagination, PaginationInfo } from '../../../interfaces';\n\n@Component({\n selector: 'ngf-pagination-info',\n templateUrl: 'info.component.html',\n styleUrls: ['info.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [FormsModule],\n})\nexport class NgFluxPaginationInfo {\n readonly data = input.required<Pagination>();\n readonly callback = output<PaginationInfo>();\n\n readonly limit = model.required<number>();\n readonly limitOptions = input.required<number[]>();\n\n protected readonly info = computed(() => {\n const data = this.data();\n\n const from = data.from.toLocaleString();\n const to = data.to.toLocaleString();\n const total = data.total.toLocaleString();\n\n return `${from} - ${to} of ${total}`;\n });\n\n protected readonly disablePrev = computed(() => {\n const data = this.data();\n return data.currentPage <= 1;\n });\n\n protected readonly disableNext = computed(() => {\n const data = this.data();\n return data.currentPage >= data.lastPage;\n });\n\n protected prev() {\n const data = this.data();\n\n this.callback.emit({\n page: data.currentPage - 1,\n limit: data.perPage,\n });\n }\n\n protected next() {\n const data = this.data();\n\n this.callback.emit({\n page: data.currentPage + 1,\n limit: data.perPage,\n });\n }\n}\n","<div class=\"wrapper\">\n <div class=\"block limit\">\n <div>Per page</div>\n <select name=\"\" id=\"\" [(ngModel)]=\"limit\">\n @for (entry of limitOptions(); track $index) {\n <option [value]=\"entry\">{{ entry }}</option>\n }\n </select>\n </div>\n\n <div class=\"block info\">\n <div>{{ info() }}</div>\n </div>\n\n <div class=\"block nav\">\n <button (click)=\"prev()\" [disabled]=\"disablePrev()\">\n <i class=\"ngf-icon chevron-left\"></i>\n </button>\n\n <button (click)=\"next()\" [disabled]=\"disableNext()\">\n <i class=\"ngf-icon chevron-right\"></i>\n </button>\n </div>\n</div>\n","import {\n Component,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\nimport { NgFluxPaginationInfo } from './info/info.component';\nimport { NGF_CONFIG, Pagination, PaginationInfo, PaginationTransformer } from '../../interfaces';\n\n@Component({\n selector: 'ngf-pagination',\n templateUrl: 'pagination.component.html',\n styleUrls: ['pagination.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [NgFluxPaginationInfo],\n})\nexport class NgFluxPagination {\n private readonly config = inject(NGF_CONFIG);\n\n readonly data = input.required<any>();\n readonly preload = input<boolean>(this.config.pagination?.preload ?? false);\n readonly transform = input<PaginationTransformer>();\n\n readonly limit = model<number>(this.config.pagination?.limit ?? 10);\n readonly limitOptions = input<number[]>(this.config.pagination?.limitOptions ?? [5, 10, 20, 30, 40, 50]);\n\n readonly callback = output<PaginationInfo>();\n\n protected readonly value = computed<Pagination>(() => {\n const { config } = this;\n\n const data = this.data();\n const transform = this.transform() ?? config.pagination?.transform;\n\n if (!transform) return data as Pagination;\n\n return {\n currentPage: transform.getCurrentPage(data),\n lastPage: transform.getLastPage(data),\n perPage: transform.getPerPage(data),\n from: transform.getFrom(data),\n to: transform.getTo(data),\n total: transform.getTotal(data),\n data: transform.getData(data),\n };\n });\n\n constructor() {\n let init = false;\n\n effect(() => {\n const limit = Number(this.limit());\n const preload = untracked(this.preload);\n const { currentPage: page } = untracked(this.value);\n\n if (preload || init) {\n this.callback.emit({ limit, page });\n }\n\n init = true;\n });\n }\n}\n","<ngf-pagination-info\n [data]=\"value()\"\n [(limit)]=\"limit\"\n [limitOptions]=\"limitOptions()\"\n (callback)=\"callback.emit($event)\"\n></ngf-pagination-info>\n\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n\n<ngf-pagination-info\n [data]=\"value()\"\n [(limit)]=\"limit\"\n [limitOptions]=\"limitOptions()\"\n (callback)=\"callback.emit($event)\"\n></ngf-pagination-info>\n","import { Component, inject, input, output } from \"@angular/core\";\n\nimport { SelectItem, SelectTransformer } from \"../../../../interfaces\";\n\nexport type SelectItemOptions = {\n getSelected: (item: any) => boolean;\n};\n\n@Component({\n selector: 'ngf-select-items',\n templateUrl: 'items.component.html',\n styleUrls: ['items.component.scss'],\n imports: [],\n host: {\n '[class.has-parent]': '!!parent',\n },\n})\nexport class NgFluxSelectItems {\n\n protected readonly parent = inject(NgFluxSelectItems, {\n optional: true,\n skipSelf: true,\n });\n\n readonly data = input.required<any[]>();\n readonly options = input.required<SelectItemOptions>();\n readonly transform = input.required<SelectTransformer>();\n\n readonly select = output<any>();\n\n protected getItem(item: any): SelectItem {\n const transform = this.transform();\n\n return {\n label: transform.getLabel(item),\n value: transform.getValue(item),\n children: transform.getChildren?.(item) ?? [],\n disabled: transform.isDisabled?.(item) ?? false,\n };\n }\n\n protected onSelect(item: any) {\n const info = this.getItem(item);\n if (info.disabled) return;\n\n this.select.emit(item);\n }\n\n}\n","<ul class=\"wrapper\">\n @for (entry of data(); track $index) {\n @let item = getItem(entry);\n\n <li [class.disabled]=\"item.disabled\" [class.has-parent]=\"!!parent\" [class.active]=\"options().getSelected(entry)\">\n <div class=\"text\" (click)=\"onSelect(entry)\">\n <span>{{ item.label }}</span>\n </div>\n\n @if (item.children?.length) {\n <ngf-select-items [data]=\"item.children\" [options]=\"options()\" [transform]=\"transform()\" (select)=\"onSelect($event)\" />\n }\n </li>\n }\n</ul>\n","import { booleanAttribute, Component, computed, ElementRef, inject, input, InputSignal, InputSignalWithTransform, model, ModelSignal, OutputRef, signal } from \"@angular/core\";\nimport { DisabledReason, FormValueControl, ValidationError, WithOptionalFieldTree } from \"@angular/forms/signals\";\nimport { FormsModule } from \"@angular/forms\";\nimport { KeyValuePipe } from \"@angular/common\";\n\nimport { SelectItem, SelectTransformer } from \"../../../interfaces\";\nimport { NgFluxSelectItems, SelectItemOptions } from \"./items/items.component\";\n\ntype Item<V = any> = Partial<SelectItem<any, V>>;\n\n@Component({\n selector: 'ngf-select',\n templateUrl: 'select.component.html',\n styleUrls: ['select.component.scss'],\n imports: [\n FormsModule,\n NgFluxSelectItems,\n KeyValuePipe,\n ],\n host: {\n '[class.block]': 'block()',\n '(document:click)': 'onDocumentClick($event)',\n },\n})\nexport class NgFluxSelect<V = any> implements FormValueControl<V | V[] | null> {\n\n private readonly ref: ElementRef<HTMLElement> = inject(ElementRef);\n\n readonly data = input.required<any[]>();\n readonly block = input(false, { transform: booleanAttribute });\n readonly multi = input(false, { transform: booleanAttribute });\n readonly placeholder = input<string>();\n\n readonly transform = input<SelectTransformer<any, V>>({\n getLabel: item => (item as Item<V>).label ?? '',\n getValue: item => (item as SelectItem<any, V>).value as V,\n getChildren: item => (item as Item<V>).children ?? [],\n setChildren: (item, children) => (item as Item<V>).children = children,\n });\n\n protected readonly mapper = computed(() => {\n const data = this.data();\n\n const value = new Map<V, any>();\n this.doFlatMap(value, data);\n\n return value;\n });\n\n readonly value = model<V | V[] | null>(null);\n\n protected readonly vmap = computed(() => {\n let value = this.value() ?? [];\n value = Array.isArray(value) ? value : [value];\n\n const mapper = this.mapper();\n const result = new Map<V, any>();\n\n for (let val of value) {\n const item = mapper.get(val);\n if (!item) continue;\n result.set(val, item);\n }\n\n return result;\n });\n\n protected readonly open = signal(false);\n\n protected readonly searchbox = signal('');\n\n protected readonly search = computed(() => {\n const data = this.data();\n\n const text = this.searchbox().toLowerCase();\n if (!text) return data;\n\n return this.doSearch(text, data);\n });\n\n protected readonly headerText = computed(() => {\n const multi = this.multi();\n const placeholder = this.placeholder() ?? 'Select Item' + (multi ? 's' : '');\n\n const items = Array.from(this.vmap().values());\n if (!items.length) return placeholder;\n\n const transform = this.transform();\n const first = items.splice(0, 1).at(0);\n\n let text = transform.getLabel(first);\n if (items.length) text += ` + ${items.length.toLocaleString()} more`;\n\n return text;\n });\n\n private doFlatMap(map: Map<V, any>, data: any[]) {\n const transform = this.transform();\n\n for (let item of data) {\n const key = transform.getValue(item);\n map.set(key, item);\n\n const children = transform.getChildren?.(item) ?? [];\n this.doFlatMap(map, children);\n }\n }\n\n private doSearch(text: string, data: any[]) {\n const transform = this.transform();\n const result: any[] = [];\n\n for (let entry of data) {\n const item = Object.assign({}, entry);\n\n let children = transform.getChildren?.(item) ?? [];\n children = this.doSearch(text, children);\n transform.setChildren?.(item, children);\n\n if (children.length) {\n result.push(item);\n continue;\n }\n\n const label = transform.getLabel(item).toLowerCase();\n if (label.includes(text)) result.push(item);\n }\n\n return result;\n }\n\n protected toggleOpen() {\n if (this.multi()) return;\n this.open.update(v => !v);\n }\n\n protected toggle(item: any) {\n const multi = this.multi();\n const transform = this.transform();\n const vmap = new Map(this.vmap());\n\n const key = transform.getValue(item);\n if (!key) return;\n\n if (!vmap.has(key)) {\n if (!multi) vmap.clear();\n vmap.set(key, item);\n } else {\n vmap.delete(key);\n }\n\n const values = Array.from(vmap.keys());\n\n if (values.length) {\n this.value.set(multi ? values : values[0]);\n } else {\n this.value.set(null);\n }\n\n this.open.set(false);\n }\n\n protected readonly options: SelectItemOptions = {\n getSelected: item => {\n const transform = this.transform();\n\n const key = transform.getValue(item);\n if (!key) return false;\n\n return this.vmap().has(key);\n },\n };\n\n protected onDocumentClick(e: PointerEvent) {\n if (this.multi()) return;\n\n const { ref: { nativeElement: elem } } = this;\n const target = e.target as HTMLElement;\n\n if (elem.contains(target)) return;\n\n this.open.set(false);\n }\n\n}\n","<div class=\"wrapper\">\n <div class=\"header\" [class.single]=\"!multi()\" (click)=\"toggleOpen()\">\n <div class=\"text\">{{ headerText() }}</div>\n @if (!multi()) {\n @let icons = ['ngf-icon', (open() ? 'arrow-drop-up' : 'arrow-drop-down')];\n <i [className]=\"icons.join(' ')\"></i>\n }\n </div>\n\n <div class=\"body\" [class.single]=\"!multi()\" [class.show]=\"open()\">\n <div class=\"searchbox\">\n <input type=\"text\" placeholder=\"Search Items\" [(ngModel)]=\"searchbox\">\n\n @if (searchbox().length) {\n <div class=\"clear\" (click)=\"searchbox.set('')\">\n <i class=\"ngf-icon close\"></i>\n </div>\n }\n </div>\n\n <ngf-select-items [data]=\"search()\" [options]=\"options\" [transform]=\"transform()\" (select)=\"toggle($event)\" />\n </div>\n\n @if (multi()) {\n <div class=\"footer\">\n @if (!vmap().size) {\n <div class=\"none\">No item selected</div>\n } @else {\n <div class=\"entries\">\n @for (item of vmap() | keyvalue; track $index) {\n <div class=\"entries-item\">\n <div class=\"text\">{{ transform().getLabel(item.value) }}</div>\n <div class=\"btn\" (click)=\"toggle(item.value)\">\n <i class=\"ngf-icon close\"></i>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if (multi()) {\n <div class=\"clear-btn\" (click)=\"value.set(null)\">\n <span>Clear All</span>\n </div>\n }\n</div>\n","import { Directive, ElementRef, inject } from \"@angular/core\";\n\n@Directive({\n selector: '[pinInput]',\n})\nexport class PinInputDirective {\n\n private readonly ref: ElementRef<HTMLInputElement> = inject(ElementRef);\n\n readonly elem = this.ref.nativeElement;\n\n}\n","import { booleanAttribute, Component, computed, effect, input, InputSignal, InputSignalWithTransform, model, OutputRef, signal, viewChildren } from \"@angular/core\";\nimport { FormValueControl } from \"@angular/forms/signals\";\n\nimport { PinInputDirective } from \"./pin.directive\";\n\n\n@Component({\n selector: 'ngf-pin-input',\n templateUrl: 'pin.component.html',\n styleUrls: ['pin.component.scss'],\n imports: [\n PinInputDirective,\n ],\n host: {\n '[class.block]': 'block()',\n },\n})\nexport class NgFluxPinInput implements FormValueControl<string> {\n\n readonly chars = input(4);\n readonly block = input(false, { transform: booleanAttribute });\n\n readonly value = model<string>('');\n\n protected readonly values = computed(() => {\n const chars = this.chars(), value = this.value() ?? '';\n return Array.from({ length: chars }, (_, i) => value.charAt(i));\n });\n\n protected readonly inputs = viewChildren(PinInputDirective);\n\n protected onKeyDown(e: KeyboardEvent, index: number) {\n const target = e.target as HTMLInputElement;\n const values = Array.from(this.values());\n\n switch (e.key) {\n case 'Backspace': {\n e.preventDefault();\n values[index] = '';\n this.setFocus(index - 1);\n } break;\n\n case 'Delete': {\n e.preventDefault();\n values[index] = '';\n this.setFocus(index);\n } break;\n\n default: {\n if (e.key.length !== 1) return;\n if (e.ctrlKey || e.altKey || e.metaKey) return;\n\n e.preventDefault();\n\n const code = e.key.charCodeAt(0);\n if (!this.allowed(code)) return;\n\n values[index] = e.key;\n\n this.setFocus(index + 1);\n }\n }\n\n this.value.set(values.join(''));\n }\n\n protected onPaste(e: ClipboardEvent, index: number) {\n e.preventDefault();\n\n const values = Array.from(this.values());\n\n const data = e.clipboardData?.getData('text/plain');\n if (!data) return;\n\n let cursor = 0, lastIndex = index;\n\n for (let i = index; i < values.length; i++) {\n while (cursor < data.length) {\n const ptr = cursor++;\n\n let code = data.charCodeAt(ptr);\n if (!this.allowed(code)) continue;\n\n let char = data.charAt(ptr);\n values[i] = char;\n\n break;\n }\n\n if (cursor >= data.length) break;\n\n lastIndex++;\n }\n\n this.value.set(values.join(''));\n\n this.setFocus(lastIndex + 1);\n }\n\n private setFocus(index: number) {\n const maxIndex = this.chars() - 1;\n\n index = Math.min(maxIndex, Math.max(index, 0));\n const input = this.inputs().at(index);\n\n input?.elem.focus();\n input?.elem.select();\n }\n\n private readonly allowed = (code: number) => (\n (code > 47 && code < 58) || // Numeric (0-9)\n (code > 64 && code < 91) || // Uppercase (A-Z)\n (code > 96 && code < 123) // Lowercase (a-z)\n );\n\n focus(options?: FocusOptions): void {\n const inputs = this.inputs();\n inputs.at(0)?.elem.focus();\n }\n\n}\n","<div class=\"wrapper\">\n @for (val of values(); track $index) {\n <input type=\"text\" pinInput [value]=\"val\" (keydown)=\"onKeyDown($event, $index)\" (paste)=\"onPaste($event, $index)\">\n }\n</div>\n","import { computed, Directive, effect, inject, input } from \"@angular/core\";\nimport { isActive, Router, RouterLink, RouterLinkActive } from \"@angular/router\";\n\nimport { TabNavController } from \"../../internal\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { NgFluxTabPanel } from \"../../components\";\nimport { NgFluxTabContentDirective } from \"./content.directive\";\n\n@Directive({\n selector: '[ngfTabNav]',\n hostDirectives: [\n { directive: RouterLink, inputs: ['routerLink: link'] },\n RouterLinkActive,\n ],\n host: {\n '[class.ngf-tab-nav]': 'true',\n '[class.active]': 'active()',\n '(click)': 'activate($event)',\n },\n})\nexport class NgFluxTabNavDirective {\n\n private readonly routerLink = inject(RouterLink);\n private readonly routerLinkActive = inject(RouterLinkActive);\n\n protected readonly ctrl = inject(TabNavController);\n\n readonly content = input<NgFluxTabContentDirective>();\n readonly navContent = computed(() => this.content());\n\n private readonly routeActive = toSignal(this.routerLinkActive.isActiveChange, { initialValue: false });\n\n protected readonly active = computed(() => this.ctrl.active() === this);\n\n constructor() {\n const { ctrl } = this;\n\n effect((onCleanup) => {\n ctrl.add(this);\n\n onCleanup(() => {\n ctrl.remove(this);\n });\n });\n\n effect(() => {\n const active = this.routeActive();\n if (active) ctrl.activate(this);\n });\n }\n\n protected activate(e?: PointerEvent) {\n const { ctrl, routerLink, routeActive } = this;\n if (routerLink.href !== null && !routeActive()) return;\n ctrl.activate(this);\n }\n\n}\n","import { Directive, inject, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: '[ngfTabContent]',\n exportAs: 'content',\n})\nexport class NgFluxTabContentDirective {\n\n readonly templateRef = inject(TemplateRef);\n\n}\n","import { Component, computed, effect, inject, input, viewChild } from \"@angular/core\";\n\nimport { NgFluxTabContentDirective } from \"../../directives\";\nimport { TabGroupController } from \"../../internal\";\n\n@Component({\n selector: 'ngf-tab',\n templateUrl: 'tab.component.html',\n styleUrls: ['tab.component.scss'],\n imports: [\n NgFluxTabContentDirective,\n ],\n})\nexport class NgFluxTab {\n\n private readonly ctrl = inject(TabGroupController);\n\n readonly label = input.required<string>();\n readonly navLabel = computed(() => this.label());\n\n readonly content = viewChild.required(NgFluxTabContentDirective);\n\n constructor() {\n const { ctrl } = this;\n\n effect(onCleanup => {\n ctrl.add(this);\n\n onCleanup(() => {\n ctrl.remove(this);\n });\n })\n }\n\n}\n","<ng-template ngfTabContent>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, effect, inject, input, output } from \"@angular/core\";\n\nimport { NgFluxTabPanel } from \"../panel/panel.component\";\n\nimport { TabNavController } from \"../../../internal\";\nimport { NgFluxTabContentDirective } from \"../../../directives\";\n\n@Component({\n selector: 'ngf-tab-navbar',\n templateUrl: 'navbar.component.html',\n styleUrls: ['navbar.component.scss'],\n providers: [TabNavController],\n imports: [],\n})\nexport class NgFluxTabNavbar {\n\n private readonly ctrl = inject(TabNavController);\n\n readonly panel = input<NgFluxTabPanel>();\n readonly selectedIndex = input(0);\n\n constructor() {\n const { ctrl } = this;\n\n effect(() => {\n const index = this.selectedIndex();\n ctrl.selectedIndex.set(index);\n });\n\n effect(() => {\n const panel = this.panel();\n const content = ctrl.activeContent();\n panel?.setContent(content?.templateRef);\n });\n }\n\n}\n","<div class=\"wrapper\">\n <ng-content select=\"[ngfTabNav]\"></ng-content>\n</div>\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component, input, signal, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: 'ngf-tab-panel',\n templateUrl: 'panel.component.html',\n styleUrls: ['panel.component.scss'],\n imports: [NgTemplateOutlet],\n})\nexport class NgFluxTabPanel {\n\n readonly label = input<string>();\n\n protected readonly content = signal<TemplateRef<any> | null>(null);\n\n setContent(tpl?: TemplateRef<any>) {\n this.content.set(tpl ?? null);\n }\n\n}\n","<div class=\"wrapper\">\n <ng-container [ngTemplateOutlet]=\"content()\"></ng-container>\n</div>\n","import { Component, inject, input } from \"@angular/core\";\n\nimport { TabGroupController } from \"../../../internal\";\nimport { NgFluxTabNavDirective } from \"../../../directives\";\n\nimport { NgFluxTabNavbar } from \"../navbar/navbar.component\";\nimport { NgFluxTabPanel } from \"../panel/panel.component\";\n\n@Component({\n selector: 'ngf-tab-group',\n templateUrl: 'group.component.html',\n styleUrls: ['group.component.scss'],\n providers: [TabGroupController],\n imports: [\n NgFluxTabNavbar,\n NgFluxTabNavDirective,\n NgFluxTabPanel\n],\n})\nexport class NgFluxTabGroup {\n\n protected readonly ctrl = inject(TabGroupController);\n\n readonly selectedIndex = input(0);\n\n protected readonly showTabs: boolean = false;\n\n}\n","<ngf-tab-navbar [panel]=\"panel\" [selectedIndex]=\"selectedIndex()\">\n @for (tab of ctrl.tabs(); track $index) {\n <div ngfTabNav [content]=\"tab.content()\">\n <span>{{ tab.navLabel() }}</span>\n </div>\n }\n</ngf-tab-navbar>\n\n<ngf-tab-panel #panel></ngf-tab-panel>\n\n@if (showTabs) {\n <ng-content select=\"ngf-tab\"></ng-content>\n}\n","import { Component, computed, inject, input, Signal, signal } from \"@angular/core\";\nimport { isActive, Router, RouterLink, RouterLinkActive } from \"@angular/router\";\n\nimport { Menu } from \"../../../interfaces\";\n\n@Component({\n selector: 'ngf-frame-side-menu',\n templateUrl: 'side-menu.component.html',\n styleUrls: ['side-menu.component.scss'],\n imports: [\n RouterLink,\n RouterLinkActive,\n ],\n host: {\n '[class.has-parent]': 'hasParent()',\n },\n})\nexport class NgFluxFrameSideMenu {\n\n private readonly router = inject(Router, { optional: true });\n\n private readonly parent = inject(NgFluxFrameSideMenu, {\n optional: true,\n skipSelf: true,\n });\n\n readonly menu = input.required<Menu[]>();\n\n protected readonly expanded = signal(new Map<Menu, boolean>());\n\n protected readonly map = computed(() => {\n const { router } = this;\n const menu = this.menu();\n const map = new Map<Menu, () => boolean>();\n\n for (let item of menu) {\n const active = (router && item.href && !item.isExternal) ? isActive(item.href, router) : () => false;\n map.set(item, active);\n }\n\n return map;\n });\n\n protected readonly hasParent = computed(() => !!this.parent);\n\n protected target = (item: Menu) => item.targetBlank ? '_blank' : null;\n\n protected isExpanded(item: Menu) {\n return this.expanded().has(item);\n }\n\n protected isActive(item: Menu) {\n return this.map().get(item)?.() ?? false;\n }\n\n protected toggle(e: PointerEvent, item: Menu) {\n e.preventDefault();\n e.stopPropagation();\n\n this.expanded.update(v => {\n const map = new Map(v);\n\n if (!map.has(item)) {\n map.set(item, true);\n } else {\n map.delete(item);\n }\n\n return map;\n });\n }\n\n}\n","@if (menu().length) {\n <ul class=\"wrapper\">\n @for (item of menu(); track $index) {\n <li routerLinkActive=\"active\">\n @if(item.isExternal) {\n <a [href]=\"item.href ?? null\" [attr.target]=\"target(item)\" (click)=\"item.onClick?.($event, item)\">\n <div class=\"icon\">\n @if (item.icon) {<i [className]=\"item.icon\"></i>}\n </div>\n\n <div class=\"text\" [attr.title]=\"item.text\">{{ item.text }}</div>\n\n @if (item.children?.length) {\n @let icons = ['ngf-icon', isExpanded(item) ? 'unfold-less' : 'unfold-more'];\n <div class=\"toggle\" (click)=\"toggle($event, item)\">\n <i [className]=\"icons.join(' ')\"></i>\n </div>\n }\n </a>\n } @else {\n <a [routerLink]=\"item.href\" [attr.target]=\"target(item)\" (click)=\"item.onClick?.($event, item)\">\n <div class=\"icon\">\n @if (item.icon) {<i [className]=\"item.icon\"></i>}\n </div>\n\n <div class=\"text\" [attr.title]=\"item.text\">{{ item.text }}</div>\n\n @if (item.children?.length) {\n @let icons = ['ngf-icon', isExpanded(item) ? 'unfold-less' : 'unfold-more'];\n <div class=\"toggle\" (click)=\"toggle($event, item)\">\n <i [className]=\"icons.join(' ')\"></i>\n </div>\n }\n </a>\n }\n\n @if (item.children?.length && (isActive(item) || isExpanded(item))) {\n <ngf-frame-side-menu [menu]=\"item.children\" />\n }\n </li>\n }\n </ul>\n}\n","import { Component, input, signal } from \"@angular/core\";\nimport { RouterLink } from \"@angular/router\";\n\nimport { Menu } from \"../../../interfaces\";\n\n@Component({\n selector: 'ngf-frame-header-menu',\n templateUrl: 'header-menu.component.html',\n styleUrls: ['header-menu.component.scss'],\n imports: [RouterLink],\n host: {\n '(document:click)': 'onDocumentClick($event)',\n },\n})\nexport class NgFluxFrameHeaderMenu {\n\n readonly menu = input.required<Menu[]>();\n\n protected readonly open = signal(false);\n\n protected target = (item: Menu) => item.targetBlank ? '_blank' : null;\n\n protected toggle(e: PointerEvent) {\n e.stopPropagation();\n this.open.update(v => !v);\n }\n\n protected onDocumentClick(e: PointerEvent) {\n this.open.set(false);\n }\n\n}\n","<div class=\"toggle\" (click)=\"toggle($event)\">\n @let icons = ['ngf-icon', open() ? 'close' : 'menu'];\n <i [className]=\"icons.join(' ')\"></i>\n</div>\n\n<div class=\"wrapper\" [class.open]=\"open()\">\n @if (menu().length) {\n <ul class=\"menu\">\n @for (item of menu(); track $index) {\n <li>\n @if (item.isExternal) {\n <a [href]=\"item.href\" [attr.target]=\"target(item)\">\n @if (item.icon) {\n <div class=\"icon\">\n <i [className]=\"item.icon\"></i>\n </div>\n }\n\n <div class=\"text\">{{ item.text }}</div>\n </a>\n } @else {\n <a [routerLink]=\"item.href\" [attr.target]=\"target(item)\">\n @if (item.icon) {\n <div class=\"icon\">\n <i [className]=\"item.icon\"></i>\n </div>\n }\n\n <div class=\"text\">{{ item.text }}</div>\n </a>\n }\n </li>\n }\n </ul>\n }\n</div>\n","import { booleanAttribute, Component, computed, debounced, ElementRef, inject, input, signal, viewChild } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { FrameOptions, Menu } from \"../../interfaces\";\nimport { NgFluxFrameSideMenu } from \"./side-menu/side-menu.component\";\nimport { NgFluxFrameHeaderMenu } from \"./header-menu/header-menu.component\";\n\n@Component({\n selector: 'ngf-frame',\n templateUrl: 'frame.component.html',\n styleUrls: ['frame.component.scss'],\n imports: [\n FormsModule,\n NgFluxFrameHeaderMenu,\n NgFluxFrameSideMenu,\n ],\n host: {\n '[class.viewport]': 'viewport()',\n '(document:click)': 'onDocumentClick($event)',\n },\n})\nexport class NgFluxFrame {\n\n private readonly leftRef = viewChild.required<ElementRef<HTMLElement>>('left');\n\n readonly viewport = input(false, { transform: booleanAttribute });\n\n readonly options = input<FrameOptions>({});\n\n protected readonly title = computed(() => this.options().title?.() ?? '');\n protected readonly icon = computed(() => this.options().icon?.() ?? '');\n protected readonly image = computed(() => this.options().image?.() ?? '');\n protected readonly toolbarItems = computed(() => this.options().toolbarItems?.() ?? []);\n protected readonly headerMenu = computed(() => this.options().headerMenu?.() ?? []);\n\n protected readonly drawer = signal(false);\n\n protected readonly search = signal('');\n protected readonly searchText = debounced(this.search, 300);\n\n protected readonly sideMenu = computed(() => {\n const menu = this.options().sideMenu?.() ?? [];\n\n const text = (this.searchText.value() ?? '').trim().toLowerCase();\n if (!text) return menu;\n\n return this.searchMenu(text, menu);\n });\n\n private searchMenu(text: string, menu?: Menu[]) {\n const result: Menu[] = [];\n\n for (let entry of menu ?? []) {\n const item = Object.assign({}, entry);\n item.children = this.searchMenu(text, item.children);\n\n if (item.children.length) {\n result.push(item);\n continue;\n }\n\n const itemText = item.text.toLowerCase();\n if (itemText.includes(text)) result.push(item);\n }\n\n return result;\n }\n\n protected toggleDrawer(e?: PointerEvent) {\n e?.stopPropagation();\n this.drawer.update(v => !v);\n }\n\n protected closeDrawer(e?: PointerEvent) {\n e?.stopPropagation();\n this.drawer.set(false);\n }\n\n protected onDocumentClick(e: PointerEvent) {\n const target = e.target as HTMLElement;\n const left = this.leftRef().nativeElement;\n\n if (left.contains(target)) return;\n\n this.drawer.set(false);\n }\n\n}\n","<div class=\"frame\">\n <!-- BEGIN: Frame Header -->\n <div class=\"frame-header\">\n @if (image()) {\n <img [src]=\"image()\" alt=\"\" class=\"image\">\n } @else if (icon()) {\n <div class=\"icon\">\n <i [className]=\"icon()\"></i>\n </div>\n }\n\n @if (title()) {<h1>{{ title() }}</h1>}\n\n <ngf-frame-header-menu [menu]=\"headerMenu()\" />\n </div>\n <!-- END: Frame Header -->\n\n <div class=\"frame-body\">\n <!-- BEGIN: Left Sidebar -->\n <div #left class=\"frame-body-left\" [class.drawer]=\"drawer()\">\n <div class=\"btn-row\">\n <div class=\"close-btn\" (click)=\"closeDrawer($event)\">\n <i class=\"ngf-icon close\"></i>\n </div>\n </div>\n\n <div class=\"search-form\">\n <input type=\"text\" placeholder=\"Search menu\" [(ngModel)]=\"search\">\n\n @if (search()) {\n <div class=\"clear\" (click)=\"search.set('')\">\n <i class=\"ngf-icon close\"></i>\n </div>\n }\n </div>\n\n <div class=\"menu-pane\">\n <ngf-frame-side-menu [menu]=\"sideMenu()\" />\n </div>\n </div>\n <!-- END: Left Sidebar -->\n\n <div class=\"frame-body-overlay\" [class.drawer]=\"drawer()\"></div>\n\n <!-- BEGIN: Right Sidebar -->\n <div class=\"frame-body-right\" [class.drawer]=\"drawer()\">\n <div class=\"frame-toolbar\">\n <div class=\"drawer-btn\" (click)=\"toggleDrawer($event)\">\n <i class=\"ngf-icon menu\"></i>\n </div>\n\n <div class=\"spacer\"></div>\n\n <!--\n <div class=\"drawer-btn\" (click)=\"toggleDrawer($event)\">\n <i class=\"ngf-icon close\"></i>\n </div>\n -->\n </div>\n\n <div class=\"frame-content\">\n <ng-content></ng-content>\n </div>\n </div>\n <!-- END: Right Sidebar -->\n </div>\n</div>\n","import { ApplicationRef, ComponentRef, computed, createComponent, EmbeddedViewRef, inject, Injectable, signal } from \"@angular/core\";\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from \"@angular/router\";\nimport { filter } from \"rxjs\";\n\nimport { NgFluxLoadingRootComponent } from \"../components\";\nimport { NGF_CONFIG } from \"../interfaces\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgFluxLoadingInternal {\n\n private readonly config = inject(NGF_CONFIG);\n private readonly appRef = inject(ApplicationRef);\n private readonly router = inject(Router, { optional: true });\n\n readonly rootRef: ComponentRef<NgFluxLoadingRootComponent>;\n\n constructor() {\n const { appRef } = this;\n\n this.rootRef = createComponent(NgFluxLoadingRootComponent, {\n environmentInjector: appRef.injector,\n });\n }\n\n initialize() {\n const { appRef, rootRef } = this;\n appRef.attachView(rootRef.hostView);\n\n const elem = rootRef.location.nativeElement as HTMLElement;\n document.body.appendChild(elem);\n }\n\n showOnRouteNavigation() {\n const { config, router } = this;\n\n if (router && config.loading?.showOnRouteNavigation) {\n const root = this.rootRef.instance;\n\n const navStart = filter(nav => nav instanceof NavigationStart);\n router.events.pipe(navStart).subscribe(nav => root.start());\n\n const navEnd = filter(nav => nav instanceof NavigationEnd);\n router.events.pipe(navEnd).subscribe(nav => root.stop());\n\n const navCancel = filter(nav => nav instanceof NavigationCancel);\n router.events.pipe(navCancel).subscribe(nav => root.stop());\n\n const navError = filter(nav => nav instanceof NavigationError);\n router.events.pipe(navError).subscribe(nav => root.stop());\n }\n }\n\n}\n","import { computed, inject, Injectable } from \"@angular/core\";\nimport { NgFluxLoadingInternal } from \"../internal/Loading\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgFluxLoading {\n\n private readonly internal = inject(NgFluxLoadingInternal);\n\n private readonly root = this.internal.rootRef.instance;\n\n readonly data = computed(() => this.root.entry());\n readonly isLoading = computed(() => this.root.isLoading());\n\n readonly start = (text: string = '') => this.root.start(text);\n readonly stop = () => this.root.stop();\n\n}\n","import {\n Component,\n ComponentRef,\n effect,\n ElementRef,\n HostListener,\n inject,\n Injector,\n viewChild,\n ViewContainerRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\nimport { NGF_DIALOG_CLOSE_FN, NGF_DIALOG_CONFIG, NGF_DIALOG_CONTENT } from '../../../internal';\nimport { NGF_DIALOG_DATA } from '../../../interfaces';\nimport { NgFluxDialogInstance } from '../../../services';\n\ntype CloseFn = () => void;\n\n@Component({\n selector: 'ngf-dialog',\n templateUrl: 'main.component.html',\n styleUrls: ['main.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [],\n})\nexport class NgFluxDialogComponent {\n private readonly injector = inject(Injector);\n private readonly instance = inject(NgFluxDialogInstance);\n private readonly onClosed = inject(NGF_DIALOG_CLOSE_FN);\n private readonly content = inject(NGF_DIALOG_CONTENT);\n private readonly config = inject(NGF_DIALOG_CONFIG);\n\n readonly viewContainer = viewChild.required('container', { read: ViewContainerRef });\n\n private componentRef!: ComponentRef<any>;\n\n private data: any;\n\n constructor() {\n const { injector, content, config } = this;\n\n effect((onCleanup) => {\n const viewContainer = this.viewContainer();\n\n const newInjector = Injector.create({\n parent: injector,\n providers: [{ provide: NGF_DIALOG_DATA, useValue: config?.data ?? null }],\n });\n\n this.componentRef = viewContainer.createComponent(content, {\n injector: newInjector,\n });\n\n const { nativeElement } = this.componentRef.location as ElementRef<HTMLElement>;\n\n nativeElement.tabIndex = -1;\n nativeElement.classList.add('ngf-dialog-box');\n nativeElement.focus();\n\n nativeElement.addEventListener('click', this.onComponentClick);\n nativeElement.addEventListener('animationend', this.onAnimationComplete);\n\n onCleanup(() => {\n nativeElement.removeEventListener('click', this.onComponentClick);\n nativeElement.removeEventListener('animationend', this.onAnimationComplete);\n });\n });\n }\n\n @HostListener('click', ['$event'])\n onBackdropClick(e: MouseEvent) {\n const { instance } = this;\n\n instance.send({\n name: 'backdrop.close',\n value: false,\n });\n }\n\n private readonly onComponentClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n private readonly onAnimationComplete = (e: AnimationEvent) => {\n switch (e.animationName) {\n case 'ngfDialogOpen':\n {\n }\n break;\n\n case 'ngfDialogClose':\n {\n this.onClosed(this.data);\n }\n break;\n }\n };\n\n focus() {\n const ref = this.componentRef.location as ElementRef<HTMLElement>;\n ref.nativeElement.focus();\n }\n\n close(data?: any) {\n this.data = data;\n\n const ref = this.componentRef.location as ElementRef<HTMLElement>;\n ref.nativeElement.classList.add('close');\n }\n}\n","<div class=\"wrapper\">\n <div class=\"content\">\n <ng-template #container></ng-template>\n </div>\n</div>\n","import { NgFluxDialogCommand } from \"../interfaces\";\n\ntype OnClosed<T = any> = (cmd: NgFluxDialogCommand<T>) => void;\n\nexport class NgFluxDialogRef<T = any> {\n\n constructor(\n private readonly onClosed: OnClosed<T>\n ) {}\n\n readonly close = (value?: T) => this.onClosed({\n name: 'close',\n value,\n });\n\n}\n","import { ComponentRef, Injector, signal, ViewContainerRef } from \"@angular/core\";\nimport { AsyncSubject } from \"rxjs\";\n\nimport { NgFluxDialogCommand, NgFluxDialogConfig, NgFluxDialogEvents } from \"../interfaces/Dialog\";\nimport { NgFluxDialogComponent } from \"../components/dialog/main/main.component\";\nimport { NgFluxDialogRef } from \"./DialogRef\";\nimport { NGF_DIALOG_CLOSE_FN, NGF_DIALOG_CONFIG, NGF_DIALOG_CONTENT, NGF_DIALOG_INSTANCE } from \"../internal\";\nimport { NgFluxComponent } from \"../interfaces\";\n\ntype OnClosedFn<T = any> = (ins: NgFluxDialogInstance<T>) => void;\n\nexport class NgFluxDialogInstance<T = any> {\n\n private readonly xDialogComponentRef: ComponentRef<NgFluxDialogComponent> = null as any;\n\n private readonly xClosing = new AsyncSubject<T | null>();\n private readonly xAfterClosed = new AsyncSubject<T | null>();\n\n readonly events: NgFluxDialogEvents<T> = {\n closing: this.xClosing.asObservable(),\n closed: this.xAfterClosed.asObservable(),\n };\n\n constructor(\n private readonly viewContainer: ViewContainerRef,\n private readonly component: NgFluxComponent<any>,\n private readonly injector: Injector,\n private readonly onClosed: OnClosedFn<T>,\n readonly config: NgFluxDialogConfig,\n ) {\n const dialogRef = new NgFluxDialogRef<T>(this.onCommand);\n\n const newInjector = Injector.create({\n parent: injector,\n providers: [\n { provide: NgFluxDialogRef, useValue: dialogRef },\n { provide: NGF_DIALOG_CONFIG, useValue: config },\n { provide: NGF_DIALOG_CONTENT, useValue: component },\n { provide: NGF_DIALOG_CLOSE_FN, useValue: this.afterClosedFn },\n { provide: NgFluxDialogInstance, useValue: this }\n ],\n });\n\n this.xDialogComponentRef = viewContainer.createComponent(NgFluxDialogComponent, {\n injector: newInjector,\n index: undefined\n });\n }\n\n private readonly onCommand = (cmd: NgFluxDialogCommand<T>) => {\n const { config } = this;\n\n switch (cmd.name) {\n case 'esc.close': {\n if (config.closeOnEsc) this.close();\n } break;\n\n case 'backdrop.close': {\n if (config.backdropClose) this.close();\n } break;\n\n case 'backButton.close': {\n if (config.closeOnBackBtn) this.close();\n } break;\n\n case 'close': {\n this.close(cmd.value);\n } break;\n }\n }\n\n private readonly afterClosedFn = (data?: T) => {\n const { xDialogComponentRef } = this;\n xDialogComponentRef.destroy();\n\n this.xAfterClosed.next(data ?? null);\n this.xAfterClosed.complete();\n\n this.onClosed(this);\n }\n\n focus() {\n const { xDialogComponentRef: { instance } } = this;\n instance.focus();\n }\n\n close(data?: T) {\n const { xDialogComponentRef } = this;\n\n this.xClosing.next(data ?? null);\n this.xClosing.complete();\n\n xDialogComponentRef.instance.close(data);\n }\n\n send(cmd: NgFluxDialogCommand<T>) {\n this.onCommand(cmd);\n }\n\n}\n","import { Component, computed, inject } from '@angular/core';\n\nimport {\n NGF_CONFIG,\n NGF_DIALOG_DATA,\n NgFluxDialogAlertOptions,\n NgFluxDialogButton,\n NgFluxDialogButtonObj,\n} from '../../../../interfaces';\n\nimport { NgFluxDialogRef } from '../../../../services';\n\nimport { NgFluxDialogHeader } from '../../header/header.component';\nimport { NgFluxDialogBody } from '../../body/body.component';\nimport { NgFluxDialogFooter } from '../../footer/footer.component';\nimport { NgFluxButton } from '../../../button/button.component';\n\n@Component({\n selector: 'ngf-dialog-box-alert',\n templateUrl: 'alert.dialog.html',\n styleUrls: ['alert.dialog.scss'],\n imports: [\n NgFluxButton,\n NgFluxDialogHeader,\n NgFluxDialogBody,\n NgFluxDialogFooter,\n ],\n})\nexport class NgFluxAlertDialog {\n\n readonly config = inject(NGF_CONFIG);\n readonly dialogRef = inject<NgFluxDialogRef<boolean>>(NgFluxDialogRef);\n readonly options: NgFluxDialogAlertOptions = inject(NGF_DIALOG_DATA);\n\n readonly buttons = computed<NgFluxDialogButton<boolean>[]>(() => {\n const config = this.config.dialog?.alert || {};\n\n const baseOkayButton: NgFluxDialogButtonObj<boolean> = {\n text: 'Okay',\n theme: 'primary',\n onClick: (e, btn, ref) => ref.close(),\n };\n\n return (\n this.options.buttons ?? [Object.assign(baseOkayButton, config.okayButton)]\n );\n });\n\n onButtonClick(e: MouseEvent, btn: NgFluxDialogButtonObj<boolean>) {\n const { dialogRef } = this;\n\n if (btn.onClick) {\n btn.onClick(e, btn, dialogRef);\n } else {\n dialogRef.close();\n }\n }\n\n}\n","@if (options.title) {\n <ngf-dialog-header>\n <h1 ngf-dialog-title>{{ options.title }}</h1>\n </ngf-dialog-header>\n}\n\n<ngf-dialog-body>\n <div [innerHTML]=\"options.content\"></div>\n</ngf-dialog-body>\n\n<ngf-dialog-footer>\n @for (btn of buttons(); track $index) {\n @switch (btn) {\n @case ('flex') {<div ngf-flex-x></div>}\n\n @default {\n <ngf-button [theme]=\"btn.theme\" [size]=\"btn.size\" [direction]=\"btn.direction\" (click)=\"onButtonClick($event, btn)\">\n <span>{{ btn.text }}</span>\n </ngf-button>\n }\n }\n }\n</ngf-dialog-footer>\n","import { Component, computed, inject } from '@angular/core';\n\nimport { NgFluxDialogHeader } from '../../header/header.component';\nimport { NgFluxDialogFooter } from '../../footer/footer.component';\nimport { NgFluxDialogBody } from '../../body/body.component';\nimport { NgFluxButton } from '../../../button/button.component';\n\nimport { NgFluxDialogRef } from '../../../../services';\n\nimport {\n NGF_CONFIG,\n NGF_DIALOG_DATA,\n NgFluxDialogButtonObj,\n NgFluxDialogConfirmOptions,\n} from '../../../../interfaces';\n\n@Component({\n selector: 'ngf-dialog-box-confirm',\n templateUrl: 'confirm.dialog.html',\n styleUrls: ['confirm.dialog.scss'],\n imports: [\n NgFluxButton,\n NgFluxDialogHeader,\n NgFluxDialogFooter,\n NgFluxDialogBody,\n ],\n})\nexport class NgFluxConfirmDialog {\n\n readonly config = inject(NGF_CONFIG);\n readonly dialogRef = inject<NgFluxDialogRef<boolean>>(NgFluxDialogRef);\n readonly options: NgFluxDialogConfirmOptions = inject(NGF_DIALOG_DATA);\n\n readonly buttons = computed(() => {\n const config = this.config.dialog?.prompt ?? {};\n\n const baseCancelButton: NgFluxDialogButtonObj = {\n text: 'Cancel',\n theme: 'dark',\n onClick: (e, btn, dialogRef) => dialogRef.close(),\n };\n\n const baseSubmitButton: NgFluxDialogButtonObj = {\n text: 'Okay',\n theme: 'primary',\n onClick: (e, btn, dialogRef) => dialogRef.close(true),\n };\n\n return [\n this.options.cancelButton ?? Object.assign(baseCancelButton, config.cancelButton),\n this.options.okayButton ?? Object.assign(baseSubmitButton, config.submitButton),\n ];\n });\n\n onButtonClick(e: MouseEvent, btn: NgFluxDialogButtonObj) {\n btn.onClick?.call(null, e, btn, this.dialogRef);\n }\n}\n","@if (options.title) {\n <ngf-dialog-header>\n <h1 ngf-dialog-title>{{ options.title }}</h1>\n </ngf-dialog-header>\n}\n\n<ngf-dialog-body>\n <div [innerHTML]=\"options.content\"></div>\n</ngf-dialog-body>\n\n<ngf-dialog-footer>\n @for (btn of buttons(); track $index) {\n <ngf-button [theme]=\"btn.theme\" (click)=\"onButtonClick($event, btn)\">\n <span>{{ btn.text }}</span>\n </ngf-button>\n }\n</ngf-dialog-footer>\n","import { Component, computed, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgFluxDialogHeader } from '../../header/header.component';\nimport { NgFluxDialogFooter } from '../../footer/footer.component';\nimport { NgFluxDialogBody } from '../../body/body.component';\nimport { NgFluxButton } from '../../../button/button.component';\n\nimport { NgFluxDialogRef } from '../../../../services';\n\nimport {\n NGF_CONFIG,\n NGF_DIALOG_DATA,\n NgFluxDialogButtonObj,\n NgFluxDialogPromptOptions,\n} from '../../../../interfaces';\n\n@Component({\n selector: 'ngf-dialog-box-prompt',\n templateUrl: 'prompt.dialog.html',\n styleUrls: ['prompt.dialog.scss'],\n imports: [\n FormsModule,\n NgFluxButton,\n NgFluxDialogHeader,\n NgFluxDialogFooter,\n NgFluxDialogBody,\n ],\n})\nexport class NgFluxPromptDialog {\n\n readonly config = inject(NGF_CONFIG);\n readonly dialogRef = inject<NgFluxDialogRef<string>>(NgFluxDialogRef);\n readonly options: NgFluxDialogPromptOptions = inject(NGF_DIALOG_DATA);\n\n readonly text = signal(this.options.defaultValue ?? '');\n readonly value = computed(() => this.text().trim());\n\n readonly buttons = computed(() => {\n const config = this.config.dialog?.prompt ?? {};\n const value = this.value();\n\n const baseCancelButton: NgFluxDialogButtonObj = {\n text: 'Cancel',\n theme: 'dark',\n onClick: (e, btn, dialogRef) => dialogRef.close()\n };\n\n const baseSubmitButton: NgFluxDialogButtonObj = {\n text: 'Submit',\n theme: 'primary',\n onClick: (e, btn, dialogRef) => dialogRef.close(value),\n disabled: () => !value,\n };\n\n return [\n this.options.cancelButton ?? Object.assign(baseCancelButton, config.cancelButton),\n this.options.submitButton ?? Object.assign(baseSubmitButton, config.submitButton),\n ];\n });\n\n onButtonClick(e: MouseEvent, btn: NgFluxDialogButtonObj) {\n btn.onClick?.call(null, e, btn, this.dialogRef);\n }\n}\n","<ngf-dialog-header>\n <h1 ngf-dialog-title>{{ options.title }}</h1>\n</ngf-dialog-header>\n\n<ngf-dialog-body>\n <div class=\"content\" [innerHTML]=\"options.content\"></div>\n <input type=\"text\" name=\"text\" [placeholder]=\"options.placeholder\" [(ngModel)]=\"text\">\n</ngf-dialog-body>\n\n<ngf-dialog-footer>\n @for (btn of buttons(); track $index) {\n <ngf-button [theme]=\"btn.theme\" (click)=\"onButtonClick($event, btn)\" [disabled]=\"btn.disabled?.() ?? false\">\n <span>{{ btn.text }}</span>\n </ngf-button>\n }\n</ngf-dialog-footer>\n","import { inject, Injectable } from \"@angular/core\";\n\nimport { NgFluxDialogInstance } from \"./DialogInstance\";\nimport { NgFluxAlertDialog } from \"../components/dialog/boxes/alert/alert.dialog\";\nimport { NgFluxConfirmDialog } from \"../components/dialog/boxes/confirm/confirm.dialog\";\nimport { NgFluxPromptDialog } from \"../components/dialog/boxes/prompt/prompt.dialog\";\n\nimport { NgFluxDialogInternal } from \"../internal\";\n\nimport {\n NgFluxComponent,\n NgFluxDialogAlertOptions,\n NgFluxDialogButton,\n NgFluxDialogConfig,\n NgFluxDialogConfirmOptions,\n NgFluxDialogEvents,\n NgFluxDialogPromptOptions,\n} from \"../interfaces\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgFluxDialog {\n\n private readonly internal = inject(NgFluxDialogInternal);\n\n open<T = any>(component: NgFluxComponent<any>, config?: NgFluxDialogConfig): NgFluxDialogEvents<T> {\n config ??= {};\n config.backdropClose ??= true;\n config.closeBtn ??= true;\n config.closeOnBackBtn ??= true;\n config.closeOnEsc ??= true;\n\n const { internal } = this;\n const root = internal.rootRef.instance;\n\n const onClosed = (ins: NgFluxDialogInstance<T>) => {\n internal.remove(ins);\n };\n\n const instance = new NgFluxDialogInstance<T>(\n root.viewContainer(),\n component,\n root.injector,\n onClosed,\n config\n );\n\n internal.add(instance);\n\n return instance.events;\n }\n\n readonly closeAll = () => this.internal.closeAll();\n\n alert(data: NgFluxDialogAlertOptions) {\n const dialog = this.open<boolean>(NgFluxAlertDialog, {\n closeOnBackBtn: false,\n backdropClose: false,\n closeOnEsc: false,\n data\n });\n\n return dialog.closed;\n }\n\n success(data: NgFluxDialogAlertOptions) {\n data.content = `<div class=\"success\">${data.content}</div>`;\n return this.alert(data);\n }\n\n error(data: NgFluxDialogAlertOptions) {\n data.content = `<div class=\"error\">${data.content}</div>`;\n return this.alert(data);\n }\n\n confirm(data: NgFluxDialogConfirmOptions) {\n const dialog = this.open(NgFluxConfirmDialog, {\n closeOnBackBtn: false,\n backdropClose: false,\n closeOnEsc: false,\n data\n });\n\n return dialog.closed;\n }\n\n prompt(data: NgFluxDialogPromptOptions) {\n const dialog = this.open(NgFluxPromptDialog, {\n closeOnBackBtn: false,\n backdropClose: false,\n closeOnEsc: false,\n data\n });\n\n return dialog.closed;\n }\n\n}\n","import { inject, makeEnvironmentProviders, provideAppInitializer } from \"@angular/core\";\nimport { TitleStrategy } from \"@angular/router\";\n\nimport {\n NGF_CONFIG,\n NgFluxConfig,\n} from \"./interfaces\";\n\nimport {\n NgFluxDialog,\n NgFluxLoading,\n} from \"./services\";\n\nimport {\n MetaInternal,\n NgFluxDialogInternal,\n NgFluxLoadingInternal,\n RouteTitleStrategy,\n} from \"./internal\";\n\nexport const provideNgFlux = (config?: NgFluxConfig) => {\n config ??= {};\n\n return makeEnvironmentProviders([\n { provide: NGF_CONFIG, useValue: config },\n { provide: TitleStrategy, useClass: RouteTitleStrategy },\n\n NgFluxDialog,\n NgFluxDialogInternal,\n\n NgFluxLoading,\n NgFluxLoadingInternal,\n\n MetaInternal,\n\n provideAppInitializer(() => {\n const meta = inject(MetaInternal);\n meta.initialize();\n }),\n\n provideAppInitializer(() => {\n const dialog = inject(NgFluxDialogInternal);\n dialog.initialize();\n }),\n\n provideAppInitializer(() => {\n const loading = inject(NgFluxLoadingInternal);\n\n loading.initialize();\n loading.showOnRouteNavigation();\n }),\n ]);\n};\n","/*\n * Public API Surface of ngflux\n */\n\n\nexport * from './lib/ngflux';\n\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/interfaces';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngflux-ngflux.mjs","sources":["../../../projects/ngflux/src/lib/interfaces/Config.ts","../../../projects/ngflux/src/lib/interfaces/Dialog.ts","../../../projects/ngflux/src/lib/components/actions/actions.component.ts","../../../projects/ngflux/src/lib/components/actions/actions.component.html","../../../projects/ngflux/src/lib/components/button/button.component.ts","../../../projects/ngflux/src/lib/components/button/button.component.html","../../../projects/ngflux/src/lib/components/dialog/body/body.component.ts","../../../projects/ngflux/src/lib/components/dialog/body/body.component.html","../../../projects/ngflux/src/lib/components/dialog/footer/footer.component.ts","../../../projects/ngflux/src/lib/components/dialog/footer/footer.component.html","../../../projects/ngflux/src/lib/components/dialog/root/root.component.ts","../../../projects/ngflux/src/lib/components/dialog/root/root.component.html","../../../projects/ngflux/src/lib/internal/Dialog.ts","../../../projects/ngflux/src/lib/internal/DialogTokens.ts","../../../projects/ngflux/src/lib/internal/RouteTitleStrategy.ts","../../../projects/ngflux/src/lib/internal/Meta.ts","../../../projects/ngflux/src/lib/internal/TabNavController.ts","../../../projects/ngflux/src/lib/internal/TabGroupController.ts","../../../projects/ngflux/src/lib/components/dialog/header/header.component.ts","../../../projects/ngflux/src/lib/components/dialog/header/header.component.html","../../../projects/ngflux/src/lib/components/loading/main/main.component.ts","../../../projects/ngflux/src/lib/components/loading/main/main.component.html","../../../projects/ngflux/src/lib/components/loading/root/root.component.ts","../../../projects/ngflux/src/lib/components/loading/root/root.component.html","../../../projects/ngflux/src/lib/components/pagination/info/info.component.ts","../../../projects/ngflux/src/lib/components/pagination/info/info.component.html","../../../projects/ngflux/src/lib/components/pagination/pagination.component.ts","../../../projects/ngflux/src/lib/components/pagination/pagination.component.html","../../../projects/ngflux/src/lib/components/input/select/items/items.component.ts","../../../projects/ngflux/src/lib/components/input/select/items/items.component.html","../../../projects/ngflux/src/lib/components/input/select/select.component.ts","../../../projects/ngflux/src/lib/components/input/select/select.component.html","../../../projects/ngflux/src/lib/components/input/pin/pin.directive.ts","../../../projects/ngflux/src/lib/components/input/pin/pin.component.ts","../../../projects/ngflux/src/lib/components/input/pin/pin.component.html","../../../projects/ngflux/src/lib/directives/tab/nav.directive.ts","../../../projects/ngflux/src/lib/directives/tab/content.directive.ts","../../../projects/ngflux/src/lib/components/tab/tab.component.ts","../../../projects/ngflux/src/lib/components/tab/tab.component.html","../../../projects/ngflux/src/lib/components/tab/navbar/navbar.component.ts","../../../projects/ngflux/src/lib/components/tab/navbar/navbar.component.html","../../../projects/ngflux/src/lib/components/tab/panel/panel.component.ts","../../../projects/ngflux/src/lib/components/tab/panel/panel.component.html","../../../projects/ngflux/src/lib/components/tab/group/group.component.ts","../../../projects/ngflux/src/lib/components/tab/group/group.component.html","../../../projects/ngflux/src/lib/components/frame/side-menu/side-menu.component.ts","../../../projects/ngflux/src/lib/components/frame/side-menu/side-menu.component.html","../../../projects/ngflux/src/lib/components/frame/header-menu/header-menu.component.ts","../../../projects/ngflux/src/lib/components/frame/header-menu/header-menu.component.html","../../../projects/ngflux/src/lib/components/frame/frame.component.ts","../../../projects/ngflux/src/lib/components/frame/frame.component.html","../../../projects/ngflux/src/lib/internal/Loading.ts","../../../projects/ngflux/src/lib/services/Loading.ts","../../../projects/ngflux/src/lib/components/dialog/main/main.component.ts","../../../projects/ngflux/src/lib/components/dialog/main/main.component.html","../../../projects/ngflux/src/lib/services/DialogRef.ts","../../../projects/ngflux/src/lib/services/DialogInstance.ts","../../../projects/ngflux/src/lib/components/dialog/boxes/alert/alert.dialog.ts","../../../projects/ngflux/src/lib/components/dialog/boxes/alert/alert.dialog.html","../../../projects/ngflux/src/lib/components/dialog/boxes/confirm/confirm.dialog.ts","../../../projects/ngflux/src/lib/components/dialog/boxes/confirm/confirm.dialog.html","../../../projects/ngflux/src/lib/components/dialog/boxes/prompt/prompt.dialog.ts","../../../projects/ngflux/src/lib/components/dialog/boxes/prompt/prompt.dialog.html","../../../projects/ngflux/src/lib/services/Dialog.ts","../../../projects/ngflux/src/lib/ngflux.ts","../../../projects/ngflux/src/public-api.ts","../../../projects/ngflux/src/ngflux-ngflux.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport type { NgFluxComponent } from \"./Component\";\nimport type { ButtonOptions } from \"./Button\";\nimport type { PaginationTransformer } from \"./Pagination\";\n\nexport type NgFluxConfig = {\n loading?: LoadingOptions;\n dialog?: DialogOptions;\n pagination?: PaginationOptions;\n title?: RouterTitleOptions;\n};\n\nexport const NGF_CONFIG = new InjectionToken<NgFluxConfig>('ngf-config');\n\n// BEGIN: Router\ntype RouterTitleOptions = {\n separator?: string;\n prefix?: string;\n suffix?: string;\n};\n// END: Router\n\n\n// BEGIN: Loading\ntype LoadingOptions = {\n showOnRouteNavigation?: boolean;\n component?: NgFluxComponent;\n};\n// END: Loading\n\n// BEGIN: Dialog Options\ntype DialogAlertOptions = {\n okayButton?: ButtonOptions;\n};\n\ntype DialogConfirmOptions = {\n okayButton?: ButtonOptions;\n cancelButton?: ButtonOptions;\n};\n\ntype DialogPromptOptions = {\n submitButton?: ButtonOptions;\n cancelButton?: ButtonOptions;\n};\n\ntype DialogOptions = {\n alert?: DialogAlertOptions;\n confirm?: DialogConfirmOptions;\n prompt?: DialogPromptOptions;\n};\n// END: Dialog Options\n\n// BEGIN: Pagination\ntype PaginationOptions = {\n preload?: boolean;\n transform?: PaginationTransformer;\n limitOptions?: number[];\n limit?: number;\n};\n// END: Pagination\n","import { InjectionToken, Injector, Signal, ViewContainerRef } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\nimport type { NgFluxDialogRef } from \"../services/DialogRef\";\nimport type { ButtonOptions } from \"./Button\";\n\nexport type NgFluxDialogRoot = {\n viewContainer: Signal<ViewContainerRef>;\n injector: Injector;\n}\n\nexport type NgFluxDialogConfig = {\n closeOnEsc?: boolean;\n closeOnBackBtn?: boolean;\n backdropClose?: boolean;\n closeBtn?: boolean;\n data?: any\n};\n\nexport type NgFluxDialogCommand<T = any> = {\n name: string;\n value?: T;\n};\n\nexport const NGF_DIALOG_DATA = new InjectionToken<any>('ngf-dialog-data');\n\nexport type NgFluxDialogEvents<T = any> = {\n readonly closing: Observable<T | null>;\n readonly closed: Observable<T | null>;\n};\n\nexport type NgFluxDialogButtonObj<T = any> = ButtonOptions & {\n onClick?: (e: MouseEvent, btn: NgFluxDialogButton<T>, dialogRef: NgFluxDialogRef<T>) => void;\n disabled?: () => boolean;\n};\n\nexport type NgFluxDialogButton<T = any> = 'flex' | NgFluxDialogButtonObj<T>;\n\nexport type NgFluxDialogAlertOptions = {\n title?: string;\n content: string;\n buttons?: NgFluxDialogButton<boolean>[];\n};\n\nexport type NgFluxDialogConfirmOptions = {\n title?: string;\n content: string;\n okayButton?: NgFluxDialogButtonObj;\n cancelButton?: NgFluxDialogButtonObj;\n};\n\nexport type NgFluxDialogPromptOptions = {\n title: string;\n content: string;\n placeholder?: string,\n defaultValue?: string,\n submitButton?: NgFluxDialogButtonObj;\n cancelButton?: NgFluxDialogButtonObj;\n};\n","import { Component, input } from \"@angular/core\";\n\ntype Justify = 'start' | 'center' | 'end' | 'stretch';\n\n@Component({\n selector: 'ngf-actions',\n templateUrl: 'actions.component.html',\n styleUrls: ['actions.component.scss'],\n imports: []\n})\nexport class NgFluxActions {\n\n readonly justify = input<Justify>('end');\n readonly wrap = input(true);\n readonly gap = input(10);\n\n}\n","<div class=\"wrapper\" [class.wrap]=\"wrap()\" [style.gap.px]=\"gap()\" [style.justify-content]=\"justify()\">\n <ng-content></ng-content>\n</div>\n","import { Component, computed, effect, ElementRef, HostBinding, inject, input, output } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { ButtonDirection, ButtonSize, ButtonTheme, ButtonType } from '../../interfaces';\n\n@Component({\n selector: 'ngf-button',\n templateUrl: 'button.component.html',\n styleUrls: ['button.component.scss'],\n imports: [NgClass],\n})\nexport class NgFluxButton {\n private readonly ref: ElementRef<HTMLElement> = inject(ElementRef);\n\n readonly icon = input<string>();\n readonly theme = input<ButtonTheme>();\n readonly type = input<ButtonType>();\n readonly size = input<ButtonSize>();\n readonly direction = input<ButtonDirection>();\n\n readonly block = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n\n readonly btnClassNames = computed(() => {\n const names: string[] = [];\n\n const direction = this.direction() ?? 'normal';\n if (direction === 'reversed') names.push(direction);\n\n return names;\n });\n\n readonly classNames = computed(() => [this.theme() ?? 'default', this.size() ?? 'md'].join(' '));\n\n @HostBinding('class')\n get bindClass() { return this.classNames(); }\n\n @HostBinding('class.block')\n get isBlock() { return this.block(); }\n\n @HostBinding('class.disabled')\n get isDisabled() { return this.disabled(); }\n\n @HostBinding('tabIndex')\n get tabIndex() { return 1; }\n\n}\n","<button [type]=\"type()\" [disabled]=\"disabled()\">\n <div class=\"wrapper\" [ngClass]=\"btnClassNames()\">\n @if (icon(); as ico) {\n <div class=\"icon\">\n <i [ngClass]=\"ico\"></i>\n </div>\n }\n\n <div class=\"content\">\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngf-dialog-body',\n templateUrl: 'body.component.html',\n styleUrls: ['body.component.scss'],\n imports: [],\n})\nexport class NgFluxDialogBody {\n //\n}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngf-dialog-footer',\n templateUrl: 'footer.component.html',\n styleUrls: ['footer.component.scss'],\n imports: [],\n})\nexport class NgFluxDialogFooter {\n\n //\n\n}\n","<ng-content></ng-content>\n","import {\n Component,\n inject,\n Injector,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n selector: 'ngf-dialog-root',\n templateUrl: 'root.component.html',\n styleUrls: ['root.component.scss'],\n imports: [],\n})\nexport class NgFluxDialogRootComponent {\n\n readonly injector = inject(Injector);\n\n readonly viewContainer = viewChild.required('container', { read: ViewContainerRef });\n\n}\n","<ng-template #container></ng-template>\n","import { ApplicationRef, ComponentRef, computed, createComponent, effect, inject, Injectable, signal } from \"@angular/core\";\nimport { NgFluxDialogRootComponent } from \"../components/dialog/root/root.component\";\nimport { NgFluxDialogInstance } from \"../services/DialogInstance\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgFluxDialogInternal {\n\n private readonly appRef = inject(ApplicationRef);\n\n private readonly list = signal<NgFluxDialogInstance[]>([]);\n\n readonly count = computed(() => this.list().length);\n readonly isOpen = computed(() => this.count() > 0);\n\n readonly active = computed(() => {\n const entries = this.cloneList();\n if (!entries.length) return null;\n\n const lastIndex = entries.length - 1;\n return entries[lastIndex];\n });\n\n readonly rootRef: ComponentRef<NgFluxDialogRootComponent>;\n\n constructor() {\n const { appRef } = this;\n\n this.rootRef = createComponent(NgFluxDialogRootComponent, {\n environmentInjector: appRef.injector,\n });\n\n const body = document.querySelector('body');\n\n effect(() => {\n const isOpen = this.isOpen();\n body?.classList.toggle('ngf-dialog-open', isOpen);\n });\n\n window.addEventListener('popstate', e => {\n const active = this.active();\n if (!active) return;\n\n history.forward();\n\n const config = active.config;\n\n if (config.closeOnBackBtn) {\n active.send({ name: 'backButton.close' });\n }\n });\n }\n\n initialize() {\n const { appRef, rootRef } = this;\n appRef.attachView(rootRef.hostView);\n\n const elem = rootRef.location.nativeElement as HTMLElement;\n document.body.appendChild(elem);\n }\n\n // ==========================\n\n private readonly cloneList = () => Array.from(this.list());\n\n private readonly indexOf = (item: NgFluxDialogInstance) => {\n const entries = this.list();\n return entries.indexOf(item);\n }\n\n readonly focus = () => {\n const item = this.active();\n item?.focus();\n }\n\n readonly add = (...items: NgFluxDialogInstance[]) => {\n const entries = this.cloneList();\n\n entries.push(...items);\n\n this.list.set(entries);\n\n // ====================\n\n history.pushState(null, '', location.href);\n }\n\n readonly remove = (item: NgFluxDialogInstance) => {\n history.back();\n\n const entries = this.cloneList();\n\n const index = this.indexOf(item);\n entries.splice(index, 1);\n\n this.list.set(entries);\n }\n\n readonly closeAll = () => {\n const entries = this.cloneList();\n\n while (entries.length) {\n const instance = entries.pop();\n instance?.close(false);\n }\n\n this.list.set(entries);\n }\n\n readonly clear = () => {\n this.list.set([]);\n }\n\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { NgFluxComponent, NgFluxDialogConfig } from \"../interfaces\";\nimport type { NgFluxDialogInstance } from \"../services\";\n\nexport const NGF_DIALOG_CONTENT = new InjectionToken<NgFluxComponent>('ngf-dialog-content');\n\nexport const NGF_DIALOG_CONFIG = new InjectionToken<NgFluxDialogConfig>('ngf-dialog-config');\n\nexport const NGF_DIALOG_INSTANCE = new InjectionToken<NgFluxDialogInstance>('ngf-dialog-instance');\n\nexport type OnDialogClose<T = any> = (data?: T) => void;\nexport const NGF_DIALOG_CLOSE_FN = new InjectionToken<OnDialogClose>('ngf-dialog-close-fn');\n","import { inject, Injectable } from \"@angular/core\";\nimport { Title } from \"@angular/platform-browser\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, TitleStrategy } from \"@angular/router\";\nimport { NGF_CONFIG, NgFluxRoute } from \"../interfaces\";\n\n@Injectable({ providedIn: 'root' })\nexport class RouteTitleStrategy extends TitleStrategy {\n\n private readonly config = inject(NGF_CONFIG);\n private readonly service = inject(Title);\n\n private getChildSnapshot(snapshot: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (snapshot.firstChild) return this.getChildSnapshot(snapshot.firstChild);\n return snapshot;\n }\n\n private getParentTitle(snapshot: ActivatedRouteSnapshot): string | undefined {\n if (snapshot.parent) {\n const title = snapshot.parent.title;\n if (title) return title;\n\n return this.getParentTitle(snapshot.parent);\n }\n\n return undefined;\n }\n\n override updateTitle(snapshot: RouterStateSnapshot): void {\n const { config, service } = this;\n const entries: string[] = [];\n\n if (config.title?.prefix) entries.push(config.title.prefix);\n\n const child = this.getChildSnapshot(snapshot.root);\n const routeConfig = (child.routeConfig ?? {}) as NgFluxRoute;\n\n let routeTitle = routeConfig.getTitle?.(child.data) ?? this.buildTitle(snapshot);\n\n if (routeConfig.addParentTitle) {\n const parentTitle = this.getParentTitle(child);\n\n if (parentTitle) {\n const separator = routeConfig.parentTitleSeparator ?? ' - ';\n\n if (routeTitle) {\n routeTitle += separator + parentTitle;\n } else {\n routeTitle = parentTitle;\n }\n }\n }\n\n if (routeTitle) entries.push(routeTitle);\n if (config.title?.suffix) entries.push(config.title.suffix);\n\n const separator = config.title?.separator ?? ' | ';\n const title = entries.join(separator);\n\n if (title) service.setTitle(title);\n }\n\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { Meta } from \"@angular/platform-browser\";\nimport { ActivationEnd, Router } from \"@angular/router\";\nimport { filter, map } from \"rxjs\";\n\nimport { NgFluxRoute } from \"../interfaces\";\n\n@Injectable({ providedIn: 'root' })\nexport class MetaInternal {\n\n private readonly meta = inject(Meta);\n private readonly router = inject(Router);\n\n private readonly snapshot = this.router.events.pipe(\n filter(e => e instanceof ActivationEnd),\n filter(e => !e.snapshot.firstChild),\n map(e => e.snapshot),\n );\n\n initialize() {\n const { meta, snapshot } = this;\n\n const initialDescription = meta.getTag('name=\"description\"')?.content;\n const initialKeywords = meta.getTag('name=\"keywords\"')?.content;\n\n snapshot.subscribe(snap => {\n const config = (snap.routeConfig ?? {}) as NgFluxRoute;\n\n const description = config.getDescription?.(snap.data) ?? config.description ?? initialDescription;\n if (description) meta.updateTag({ name: 'description', content: description });\n\n let keywords = config.getKeywords?.(snap.data) ?? config.keywords ?? initialKeywords;\n if (Array.isArray(keywords)) keywords = keywords.join(', ');\n if (keywords) meta.updateTag({ name: 'keywords', content: keywords });\n });\n }\n\n}\n","import { computed, effect, Injectable, linkedSignal, signal } from \"@angular/core\";\n\nimport type { NgFluxTabContentDirective, NgFluxTabNavDirective } from \"../directives\";\n\n@Injectable()\nexport class TabNavController {\n\n private readonly map = signal(new Map<NgFluxTabNavDirective, any>());\n readonly navs = computed(() => Array.from(this.map().keys()));\n\n private readonly selected = linkedSignal({\n source: () => ({\n navs: this.navs(),\n selectedIndex: this.selectedIndex(),\n }),\n computation: (src, prev): NgFluxTabNavDirective | null => {\n const { navs, selectedIndex } = src;\n const value: NgFluxTabNavDirective | null = prev?.value ?? null;\n\n let index = Math.min(Math.max(selectedIndex, 0), navs.length - 1);\n return navs.find(v => v === value) ?? navs.at(index) ?? null;\n }\n });\n\n readonly selectedIndex = signal(0);\n\n readonly active = this.selected.asReadonly();\n readonly activeContent = computed(() => this.active()?.navContent());\n\n activate(nav: NgFluxTabNavDirective) {\n const map = this.map();\n if (!map.has(nav)) return;\n\n this.selected.set(nav);\n }\n\n add(nav: NgFluxTabNavDirective) {\n this.map.update(v => {\n const map = new Map(v);\n map.set(nav, true);\n\n return map;\n });\n }\n\n remove(nav: NgFluxTabNavDirective) {\n this.map.update(v => {\n if (!v.has(nav)) return v;\n\n const map = new Map(v);\n map.delete(nav);\n\n return map;\n });\n }\n\n}\n","import { computed, Injectable, signal } from \"@angular/core\";\n\nimport type { NgFluxTab } from \"../components\";\n\n@Injectable()\nexport class TabGroupController {\n\n private readonly map = signal(new Map<NgFluxTab, any>());\n readonly tabs = computed(() => Array.from(this.map().keys()));\n\n add(nav: NgFluxTab) {\n this.map.update(v => {\n const map = new Map(v);\n map.set(nav, true);\n\n return map;\n });\n }\n\n remove(nav: NgFluxTab) {\n this.map.update(v => {\n if (!v.has(nav)) return v;\n\n const map = new Map(v);\n map.delete(nav);\n\n return map;\n });\n }\n\n}\n","import { Component, inject, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { NGF_DIALOG_CONFIG } from '../../../internal';\nimport { NgFluxDialogRef } from '../../../services';\n\n@Component({\n selector: 'ngf-dialog-header',\n templateUrl: 'header.component.html',\n styleUrls: ['header.component.scss'],\n imports: [NgClass],\n})\nexport class NgFluxDialogHeader {\n\n readonly config = inject(NGF_DIALOG_CONFIG);\n readonly dialogRef = inject(NgFluxDialogRef);\n\n readonly icon = input<string>();\n}\n","@if (icon(); as ico) {\n <div class=\"left\">\n <i [ngClass]=\"ico\"></i>\n </div>\n}\n\n<div class=\"middle\">\n <ng-content></ng-content>\n</div>\n\n@if (config.closeBtn) {\n <div class=\"right\" title=\"Close\" (click)=\"dialogRef.close()\">\n <i class=\"ngf-icon close\"></i>\n </div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngf-loading',\n templateUrl: 'main.component.html',\n styleUrls: ['main.component.scss'],\n imports: [],\n})\nexport class NgFluxLoadingComponent {}\n","<svg viewBox=\"25 25 50 50\">\n <circle r=\"20\" cy=\"50\" cx=\"50\"></circle>\n</svg>\n","import {\n Component,\n ComponentRef,\n computed,\n effect,\n HostBinding,\n inject,\n Injector,\n signal,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { NgFluxLoadingComponent } from '../main/main.component';\nimport { NGF_CONFIG, NgFluxLoadingEntry } from '../../../interfaces';\n\n@Component({\n selector: 'ngf-loading-root',\n templateUrl: 'root.component.html',\n styleUrls: ['root.component.scss'],\n imports: [],\n})\nexport class NgFluxLoadingRootComponent {\n\n private readonly config = inject(NGF_CONFIG);\n private readonly injector = inject(Injector);\n\n private readonly entries = signal<NgFluxLoadingEntry[]>([]);\n\n readonly count = computed(() => this.entries().length);\n readonly isLoading = computed(() => this.count() > 0);\n\n @HostBinding('class.show')\n get showLoading() { return this.isLoading(); }\n\n readonly viewContainer = viewChild.required('container', { read: ViewContainerRef });\n\n private componentRef!: ComponentRef<any>;\n\n constructor() {\n const { config, injector } = this;\n\n effect(() => {\n const viewContainer = this.viewContainer();\n const component = config.loading?.component ?? NgFluxLoadingComponent;\n\n const newInjector = Injector.create({\n parent: injector,\n providers: [],\n });\n\n this.componentRef = viewContainer.createComponent(component, {\n injector: newInjector,\n });\n });\n }\n\n readonly entry = computed(() => {\n const entries = this.entries();\n return entries.at(entries.length - 1);\n });\n\n readonly start = (text: string = '') => this.entries.update(v => {\n const entries = Array.from(v);\n entries.push({ text });\n return entries;\n });\n\n readonly stop = () => this.entries.update(v => {\n const entries = Array.from(v);\n entries.pop();\n return entries;\n });\n\n}\n","<div class=\"wrapper\">\n <ng-template #container></ng-template>\n</div>\n","import {\n Component,\n computed,\n inject,\n input,\n model,\n output,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { Pagination, PaginationInfo } from '../../../interfaces';\n\n@Component({\n selector: 'ngf-pagination-info',\n templateUrl: 'info.component.html',\n styleUrls: ['info.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [FormsModule],\n})\nexport class NgFluxPaginationInfo {\n readonly data = input.required<Pagination>();\n readonly callback = output<PaginationInfo>();\n\n readonly limit = model.required<number>();\n readonly limitOptions = input.required<number[]>();\n\n protected readonly info = computed(() => {\n const data = this.data();\n\n const from = data.from.toLocaleString();\n const to = data.to.toLocaleString();\n const total = data.total.toLocaleString();\n\n return `${from} - ${to} of ${total}`;\n });\n\n protected readonly disablePrev = computed(() => {\n const data = this.data();\n return data.currentPage <= 1;\n });\n\n protected readonly disableNext = computed(() => {\n const data = this.data();\n return data.currentPage >= data.lastPage;\n });\n\n protected prev() {\n const data = this.data();\n\n this.callback.emit({\n page: data.currentPage - 1,\n limit: data.perPage,\n });\n }\n\n protected next() {\n const data = this.data();\n\n this.callback.emit({\n page: data.currentPage + 1,\n limit: data.perPage,\n });\n }\n}\n","<div class=\"wrapper\">\n <div class=\"block limit\">\n <div>Per page</div>\n <select name=\"\" id=\"\" [(ngModel)]=\"limit\">\n @for (entry of limitOptions(); track $index) {\n <option [value]=\"entry\">{{ entry }}</option>\n }\n </select>\n </div>\n\n <div class=\"block info\">\n <div>{{ info() }}</div>\n </div>\n\n <div class=\"block nav\">\n <button (click)=\"prev()\" [disabled]=\"disablePrev()\">\n <i class=\"ngf-icon chevron-left\"></i>\n </button>\n\n <button (click)=\"next()\" [disabled]=\"disableNext()\">\n <i class=\"ngf-icon chevron-right\"></i>\n </button>\n </div>\n</div>\n","import {\n Component,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\nimport { NgFluxPaginationInfo } from './info/info.component';\nimport { NGF_CONFIG, Pagination, PaginationInfo, PaginationTransformer } from '../../interfaces';\n\n@Component({\n selector: 'ngf-pagination',\n templateUrl: 'pagination.component.html',\n styleUrls: ['pagination.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [NgFluxPaginationInfo],\n})\nexport class NgFluxPagination {\n private readonly config = inject(NGF_CONFIG);\n\n readonly data = input.required<any>();\n readonly preload = input<boolean>(this.config.pagination?.preload ?? false);\n readonly transform = input<PaginationTransformer>();\n\n readonly limit = model<number>(this.config.pagination?.limit ?? 10);\n readonly limitOptions = input<number[]>(this.config.pagination?.limitOptions ?? [5, 10, 20, 30, 40, 50]);\n\n readonly callback = output<PaginationInfo>();\n\n protected readonly value = computed<Pagination>(() => {\n const { config } = this;\n\n const data = this.data();\n const transform = this.transform() ?? config.pagination?.transform;\n\n if (!transform) return data as Pagination;\n\n return {\n currentPage: transform.getCurrentPage(data),\n lastPage: transform.getLastPage(data),\n perPage: transform.getPerPage(data),\n from: transform.getFrom(data),\n to: transform.getTo(data),\n total: transform.getTotal(data),\n data: transform.getData(data),\n };\n });\n\n constructor() {\n let init = false;\n\n effect(() => {\n const limit = Number(this.limit());\n const preload = untracked(this.preload);\n const { currentPage: page } = untracked(this.value);\n\n if (preload || init) {\n this.callback.emit({ limit, page });\n }\n\n init = true;\n });\n }\n}\n","<ngf-pagination-info\n [data]=\"value()\"\n [(limit)]=\"limit\"\n [limitOptions]=\"limitOptions()\"\n (callback)=\"callback.emit($event)\"\n></ngf-pagination-info>\n\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n\n<ngf-pagination-info\n [data]=\"value()\"\n [(limit)]=\"limit\"\n [limitOptions]=\"limitOptions()\"\n (callback)=\"callback.emit($event)\"\n></ngf-pagination-info>\n","import { Component, inject, input, output } from \"@angular/core\";\n\nimport { SelectItem, SelectTransformer } from \"../../../../interfaces\";\n\nexport type SelectItemOptions = {\n getSelected: (item: any) => boolean;\n};\n\n@Component({\n selector: 'ngf-select-items',\n templateUrl: 'items.component.html',\n styleUrls: ['items.component.scss'],\n imports: [],\n host: {\n '[class.has-parent]': '!!parent',\n },\n})\nexport class NgFluxSelectItems {\n\n protected readonly parent = inject(NgFluxSelectItems, {\n optional: true,\n skipSelf: true,\n });\n\n readonly data = input.required<any[]>();\n readonly options = input.required<SelectItemOptions>();\n readonly transform = input.required<SelectTransformer>();\n\n readonly select = output<any>();\n\n protected getItem(item: any): SelectItem {\n const transform = this.transform();\n\n return {\n label: transform.getLabel(item),\n value: transform.getValue(item),\n children: transform.getChildren?.(item) ?? [],\n disabled: transform.isDisabled?.(item) ?? false,\n };\n }\n\n protected onSelect(item: any) {\n const info = this.getItem(item);\n if (info.disabled) return;\n\n this.select.emit(item);\n }\n\n}\n","<ul class=\"wrapper\">\n @for (entry of data(); track $index) {\n @let item = getItem(entry);\n\n <li [class.disabled]=\"item.disabled\" [class.has-parent]=\"!!parent\" [class.active]=\"options().getSelected(entry)\">\n <div class=\"text\" (click)=\"onSelect(entry)\">\n <span>{{ item.label }}</span>\n </div>\n\n @if (item.children?.length) {\n <ngf-select-items [data]=\"item.children\" [options]=\"options()\" [transform]=\"transform()\" (select)=\"onSelect($event)\" />\n }\n </li>\n }\n</ul>\n","import { booleanAttribute, Component, computed, ElementRef, inject, input, InputSignal, InputSignalWithTransform, model, ModelSignal, OutputRef, signal } from \"@angular/core\";\nimport { DisabledReason, FormValueControl, ValidationError, WithOptionalFieldTree } from \"@angular/forms/signals\";\nimport { FormsModule } from \"@angular/forms\";\nimport { KeyValuePipe } from \"@angular/common\";\n\nimport { SelectItem, SelectTransformer } from \"../../../interfaces\";\nimport { NgFluxSelectItems, SelectItemOptions } from \"./items/items.component\";\n\ntype Item<V = any> = Partial<SelectItem<any, V>>;\n\n@Component({\n selector: 'ngf-select',\n templateUrl: 'select.component.html',\n styleUrls: ['select.component.scss'],\n imports: [\n FormsModule,\n NgFluxSelectItems,\n KeyValuePipe,\n ],\n host: {\n '[class.block]': 'block()',\n '(document:click)': 'onDocumentClick($event)',\n },\n})\nexport class NgFluxSelect<V = any> implements FormValueControl<V | V[] | null> {\n\n private readonly ref: ElementRef<HTMLElement> = inject(ElementRef);\n\n readonly data = input.required<any[]>();\n readonly block = input(false, { transform: booleanAttribute });\n readonly multi = input(false, { transform: booleanAttribute });\n readonly placeholder = input<string>();\n\n readonly transform = input<SelectTransformer<any, V>>({\n getLabel: item => (item as Item<V>).label ?? '',\n getValue: item => (item as SelectItem<any, V>).value as V,\n getChildren: item => (item as Item<V>).children ?? [],\n setChildren: (item, children) => (item as Item<V>).children = children,\n });\n\n protected readonly mapper = computed(() => {\n const data = this.data();\n\n const value = new Map<V, any>();\n this.doFlatMap(value, data);\n\n return value;\n });\n\n readonly value = model<V | V[] | null>(null);\n\n protected readonly vmap = computed(() => {\n let value = this.value() ?? [];\n value = Array.isArray(value) ? value : [value];\n\n const mapper = this.mapper();\n const result = new Map<V, any>();\n\n for (let val of value) {\n const item = mapper.get(val);\n if (!item) continue;\n result.set(val, item);\n }\n\n return result;\n });\n\n protected readonly open = signal(false);\n\n protected readonly searchbox = signal('');\n\n protected readonly search = computed(() => {\n const data = this.data();\n\n const text = this.searchbox().toLowerCase();\n if (!text) return data;\n\n return this.doSearch(text, data);\n });\n\n protected readonly headerText = computed(() => {\n const multi = this.multi();\n const placeholder = this.placeholder() ?? 'Select Item' + (multi ? 's' : '');\n\n const items = Array.from(this.vmap().values());\n if (!items.length) return placeholder;\n\n const transform = this.transform();\n const first = items.splice(0, 1).at(0);\n\n let text = transform.getLabel(first);\n if (items.length) text += ` + ${items.length.toLocaleString()} more`;\n\n return text;\n });\n\n private doFlatMap(map: Map<V, any>, data: any[]) {\n const transform = this.transform();\n\n for (let item of data) {\n const key = transform.getValue(item);\n map.set(key, item);\n\n const children = transform.getChildren?.(item) ?? [];\n this.doFlatMap(map, children);\n }\n }\n\n private doSearch(text: string, data: any[]) {\n const transform = this.transform();\n const result: any[] = [];\n\n for (let entry of data) {\n const item = Object.assign({}, entry);\n\n let children = transform.getChildren?.(item) ?? [];\n children = this.doSearch(text, children);\n transform.setChildren?.(item, children);\n\n if (children.length) {\n result.push(item);\n continue;\n }\n\n const label = transform.getLabel(item).toLowerCase();\n if (label.includes(text)) result.push(item);\n }\n\n return result;\n }\n\n protected toggleOpen() {\n if (this.multi()) return;\n this.open.update(v => !v);\n }\n\n protected toggle(item: any) {\n const multi = this.multi();\n const transform = this.transform();\n const vmap = new Map(this.vmap());\n\n const key = transform.getValue(item);\n if (!key) return;\n\n if (!vmap.has(key)) {\n if (!multi) vmap.clear();\n vmap.set(key, item);\n } else {\n vmap.delete(key);\n }\n\n const values = Array.from(vmap.keys());\n\n if (values.length) {\n this.value.set(multi ? values : values[0]);\n } else {\n this.value.set(null);\n }\n\n this.open.set(false);\n }\n\n protected readonly options: SelectItemOptions = {\n getSelected: item => {\n const transform = this.transform();\n\n const key = transform.getValue(item);\n if (!key) return false;\n\n return this.vmap().has(key);\n },\n };\n\n protected onDocumentClick(e: PointerEvent) {\n if (this.multi()) return;\n\n const { ref: { nativeElement: elem } } = this;\n const target = e.target as HTMLElement;\n\n if (elem.contains(target)) return;\n\n this.open.set(false);\n }\n\n}\n","<div class=\"wrapper\">\n <div class=\"header\" [class.single]=\"!multi()\" (click)=\"toggleOpen()\">\n <div class=\"text\">{{ headerText() }}</div>\n @if (!multi()) {\n @let icons = ['ngf-icon', (open() ? 'arrow-drop-up' : 'arrow-drop-down')];\n <i [className]=\"icons.join(' ')\"></i>\n }\n </div>\n\n <div class=\"body\" [class.single]=\"!multi()\" [class.show]=\"open()\">\n <div class=\"searchbox\">\n <input type=\"text\" placeholder=\"Search Items\" [(ngModel)]=\"searchbox\">\n\n @if (searchbox().length) {\n <div class=\"clear\" (click)=\"searchbox.set('')\">\n <i class=\"ngf-icon close\"></i>\n </div>\n }\n </div>\n\n <ngf-select-items [data]=\"search()\" [options]=\"options\" [transform]=\"transform()\" (select)=\"toggle($event)\" />\n </div>\n\n @if (multi()) {\n <div class=\"footer\">\n @if (!vmap().size) {\n <div class=\"none\">No item selected</div>\n } @else {\n <div class=\"entries\">\n @for (item of vmap() | keyvalue; track $index) {\n <div class=\"entries-item\">\n <div class=\"text\">{{ transform().getLabel(item.value) }}</div>\n <div class=\"btn\" (click)=\"toggle(item.value)\">\n <i class=\"ngf-icon close\"></i>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if (multi()) {\n <div class=\"clear-btn\" (click)=\"value.set(null)\">\n <span>Clear All</span>\n </div>\n }\n</div>\n","import { Directive, ElementRef, inject } from \"@angular/core\";\n\n@Directive({\n selector: '[pinInput]',\n})\nexport class PinInputDirective {\n\n private readonly ref: ElementRef<HTMLInputElement> = inject(ElementRef);\n\n readonly elem = this.ref.nativeElement;\n\n}\n","import { booleanAttribute, Component, computed, effect, input, InputSignal, InputSignalWithTransform, model, OutputRef, signal, viewChildren } from \"@angular/core\";\nimport { FormValueControl } from \"@angular/forms/signals\";\n\nimport { PinInputDirective } from \"./pin.directive\";\n\n\n@Component({\n selector: 'ngf-pin-input',\n templateUrl: 'pin.component.html',\n styleUrls: ['pin.component.scss'],\n imports: [\n PinInputDirective,\n ],\n host: {\n '[class.block]': 'block()',\n },\n})\nexport class NgFluxPinInput implements FormValueControl<string> {\n\n readonly chars = input(4);\n readonly block = input(false, { transform: booleanAttribute });\n\n readonly value = model<string>('');\n\n protected readonly values = computed(() => {\n const chars = this.chars(), value = this.value() ?? '';\n return Array.from({ length: chars }, (_, i) => value.charAt(i));\n });\n\n protected readonly inputs = viewChildren(PinInputDirective);\n\n protected onKeyDown(e: KeyboardEvent, index: number) {\n const target = e.target as HTMLInputElement;\n const values = Array.from(this.values());\n\n switch (e.key) {\n case 'Backspace': {\n e.preventDefault();\n values[index] = '';\n this.setFocus(index - 1);\n } break;\n\n case 'Delete': {\n e.preventDefault();\n values[index] = '';\n this.setFocus(index);\n } break;\n\n default: {\n if (e.key.length !== 1) return;\n if (e.ctrlKey || e.altKey || e.metaKey) return;\n\n e.preventDefault();\n\n const code = e.key.charCodeAt(0);\n if (!this.allowed(code)) return;\n\n values[index] = e.key;\n\n this.setFocus(index + 1);\n }\n }\n\n this.value.set(values.join(''));\n }\n\n protected onPaste(e: ClipboardEvent, index: number) {\n e.preventDefault();\n\n const values = Array.from(this.values());\n\n const data = e.clipboardData?.getData('text/plain');\n if (!data) return;\n\n let cursor = 0, lastIndex = index;\n\n for (let i = index; i < values.length; i++) {\n while (cursor < data.length) {\n const ptr = cursor++;\n\n let code = data.charCodeAt(ptr);\n if (!this.allowed(code)) continue;\n\n let char = data.charAt(ptr);\n values[i] = char;\n\n break;\n }\n\n if (cursor >= data.length) break;\n\n lastIndex++;\n }\n\n this.value.set(values.join(''));\n\n this.setFocus(lastIndex + 1);\n }\n\n private setFocus(index: number) {\n const maxIndex = this.chars() - 1;\n\n index = Math.min(maxIndex, Math.max(index, 0));\n const input = this.inputs().at(index);\n\n input?.elem.focus();\n input?.elem.select();\n }\n\n private readonly allowed = (code: number) => (\n (code > 47 && code < 58) || // Numeric (0-9)\n (code > 64 && code < 91) || // Uppercase (A-Z)\n (code > 96 && code < 123) // Lowercase (a-z)\n );\n\n focus(options?: FocusOptions): void {\n const inputs = this.inputs();\n inputs.at(0)?.elem.focus();\n }\n\n}\n","<div class=\"wrapper\">\n @for (val of values(); track $index) {\n <input type=\"text\" pinInput [value]=\"val\" (keydown)=\"onKeyDown($event, $index)\" (paste)=\"onPaste($event, $index)\">\n }\n</div>\n","import { computed, Directive, effect, inject, input } from \"@angular/core\";\nimport { isActive, Router, RouterLink, RouterLinkActive } from \"@angular/router\";\n\nimport { TabNavController } from \"../../internal\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { NgFluxTabPanel } from \"../../components\";\nimport { NgFluxTabContentDirective } from \"./content.directive\";\n\n@Directive({\n selector: '[ngfTabNav]',\n hostDirectives: [\n { directive: RouterLink, inputs: ['routerLink: link'] },\n RouterLinkActive,\n ],\n host: {\n '[class.ngf-tab-nav]': 'true',\n '[class.active]': 'active()',\n '(click)': 'activate($event)',\n },\n})\nexport class NgFluxTabNavDirective {\n\n private readonly routerLink = inject(RouterLink);\n private readonly routerLinkActive = inject(RouterLinkActive);\n\n protected readonly ctrl = inject(TabNavController);\n\n readonly content = input<NgFluxTabContentDirective>();\n readonly navContent = computed(() => this.content());\n\n private readonly routeActive = toSignal(this.routerLinkActive.isActiveChange, { initialValue: false });\n\n protected readonly active = computed(() => this.ctrl.active() === this);\n\n constructor() {\n const { ctrl } = this;\n\n effect((onCleanup) => {\n ctrl.add(this);\n\n onCleanup(() => {\n ctrl.remove(this);\n });\n });\n\n effect(() => {\n const active = this.routeActive();\n if (active) ctrl.activate(this);\n });\n }\n\n protected activate(e?: PointerEvent) {\n const { ctrl, routerLink, routeActive } = this;\n if (routerLink.href !== null && !routeActive()) return;\n ctrl.activate(this);\n }\n\n}\n","import { Directive, inject, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: '[ngfTabContent]',\n exportAs: 'content',\n})\nexport class NgFluxTabContentDirective {\n\n readonly templateRef = inject(TemplateRef);\n\n}\n","import { Component, computed, effect, inject, input, viewChild } from \"@angular/core\";\n\nimport { NgFluxTabContentDirective } from \"../../directives\";\nimport { TabGroupController } from \"../../internal\";\n\n@Component({\n selector: 'ngf-tab',\n templateUrl: 'tab.component.html',\n styleUrls: ['tab.component.scss'],\n imports: [\n NgFluxTabContentDirective,\n ],\n})\nexport class NgFluxTab {\n\n private readonly ctrl = inject(TabGroupController);\n\n readonly label = input.required<string>();\n readonly navLabel = computed(() => this.label());\n\n readonly content = viewChild.required(NgFluxTabContentDirective);\n\n constructor() {\n const { ctrl } = this;\n\n effect(onCleanup => {\n ctrl.add(this);\n\n onCleanup(() => {\n ctrl.remove(this);\n });\n })\n }\n\n}\n","<ng-template ngfTabContent>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, effect, inject, input, output } from \"@angular/core\";\n\nimport { NgFluxTabPanel } from \"../panel/panel.component\";\n\nimport { TabNavController } from \"../../../internal\";\nimport { NgFluxTabContentDirective } from \"../../../directives\";\n\n@Component({\n selector: 'ngf-tab-navbar',\n templateUrl: 'navbar.component.html',\n styleUrls: ['navbar.component.scss'],\n providers: [TabNavController],\n imports: [],\n})\nexport class NgFluxTabNavbar {\n\n private readonly ctrl = inject(TabNavController);\n\n readonly panel = input<NgFluxTabPanel>();\n readonly selectedIndex = input(0);\n\n constructor() {\n const { ctrl } = this;\n\n effect(() => {\n const index = this.selectedIndex();\n ctrl.selectedIndex.set(index);\n });\n\n effect(() => {\n const panel = this.panel();\n const content = ctrl.activeContent();\n panel?.setContent(content?.templateRef);\n });\n }\n\n}\n","<div class=\"wrapper\">\n <ng-content select=\"[ngfTabNav]\"></ng-content>\n</div>\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component, input, signal, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: 'ngf-tab-panel',\n templateUrl: 'panel.component.html',\n styleUrls: ['panel.component.scss'],\n imports: [NgTemplateOutlet],\n})\nexport class NgFluxTabPanel {\n\n readonly label = input<string>();\n\n protected readonly content = signal<TemplateRef<any> | null>(null);\n\n setContent(tpl?: TemplateRef<any>) {\n this.content.set(tpl ?? null);\n }\n\n}\n","<div class=\"wrapper\">\n <ng-container [ngTemplateOutlet]=\"content()\"></ng-container>\n</div>\n","import { Component, inject, input } from \"@angular/core\";\n\nimport { TabGroupController } from \"../../../internal\";\nimport { NgFluxTabNavDirective } from \"../../../directives\";\n\nimport { NgFluxTabNavbar } from \"../navbar/navbar.component\";\nimport { NgFluxTabPanel } from \"../panel/panel.component\";\n\n@Component({\n selector: 'ngf-tab-group',\n templateUrl: 'group.component.html',\n styleUrls: ['group.component.scss'],\n providers: [TabGroupController],\n imports: [\n NgFluxTabNavbar,\n NgFluxTabNavDirective,\n NgFluxTabPanel\n],\n})\nexport class NgFluxTabGroup {\n\n protected readonly ctrl = inject(TabGroupController);\n\n readonly selectedIndex = input(0);\n\n protected readonly showTabs: boolean = false;\n\n}\n","<ngf-tab-navbar [panel]=\"panel\" [selectedIndex]=\"selectedIndex()\">\n @for (tab of ctrl.tabs(); track $index) {\n <div ngfTabNav [content]=\"tab.content()\">\n <span>{{ tab.navLabel() }}</span>\n </div>\n }\n</ngf-tab-navbar>\n\n<ngf-tab-panel #panel></ngf-tab-panel>\n\n@if (showTabs) {\n <ng-content select=\"ngf-tab\"></ng-content>\n}\n","import { Component, computed, inject, input, Signal, signal } from \"@angular/core\";\nimport { isActive, Router, RouterLink, RouterLinkActive } from \"@angular/router\";\n\nimport { Menu } from \"../../../interfaces\";\n\n@Component({\n selector: 'ngf-frame-side-menu',\n templateUrl: 'side-menu.component.html',\n styleUrls: ['side-menu.component.scss'],\n imports: [\n RouterLink,\n RouterLinkActive,\n ],\n host: {\n '[class.has-parent]': 'hasParent()',\n },\n})\nexport class NgFluxFrameSideMenu {\n\n private readonly router = inject(Router, { optional: true });\n\n private readonly parent = inject(NgFluxFrameSideMenu, {\n optional: true,\n skipSelf: true,\n });\n\n readonly menu = input.required<Menu[]>();\n\n protected readonly expanded = signal(new Map<Menu, boolean>());\n\n protected readonly map = computed(() => {\n const { router } = this;\n const menu = this.menu();\n const map = new Map<Menu, () => boolean>();\n\n for (let item of menu) {\n const active = (router && item.href && !item.isExternal) ? isActive(item.href, router) : () => false;\n map.set(item, active);\n }\n\n return map;\n });\n\n protected readonly hasParent = computed(() => !!this.parent);\n\n protected target = (item: Menu) => item.targetBlank ? '_blank' : null;\n\n protected isExpanded(item: Menu) {\n return this.expanded().has(item);\n }\n\n protected isActive(item: Menu) {\n return this.map().get(item)?.() ?? false;\n }\n\n protected toggle(e: PointerEvent, item: Menu) {\n e.preventDefault();\n e.stopPropagation();\n\n this.expanded.update(v => {\n const map = new Map(v);\n\n if (!map.has(item)) {\n map.set(item, true);\n } else {\n map.delete(item);\n }\n\n return map;\n });\n }\n\n}\n","@if (menu().length) {\n <ul class=\"wrapper\">\n @for (item of menu(); track $index) {\n <li routerLinkActive=\"active\">\n @if(item.isExternal) {\n <a [href]=\"item.href ?? null\" [attr.target]=\"target(item)\" (click)=\"item.onClick?.($event, item)\">\n <div class=\"icon\">\n @if (item.icon) {<i [className]=\"item.icon\"></i>}\n </div>\n\n <div class=\"text\" [attr.title]=\"item.text\">{{ item.text }}</div>\n\n @if (item.children?.length) {\n @let icons = ['ngf-icon', isExpanded(item) ? 'unfold-less' : 'unfold-more'];\n <div class=\"toggle\" (click)=\"toggle($event, item)\">\n <i [className]=\"icons.join(' ')\"></i>\n </div>\n }\n </a>\n } @else {\n <a [routerLink]=\"item.href\" [attr.target]=\"target(item)\" (click)=\"item.onClick?.($event, item)\">\n <div class=\"icon\">\n @if (item.icon) {<i [className]=\"item.icon\"></i>}\n </div>\n\n <div class=\"text\" [attr.title]=\"item.text\">{{ item.text }}</div>\n\n @if (item.children?.length) {\n @let icons = ['ngf-icon', isExpanded(item) ? 'unfold-less' : 'unfold-more'];\n <div class=\"toggle\" (click)=\"toggle($event, item)\">\n <i [className]=\"icons.join(' ')\"></i>\n </div>\n }\n </a>\n }\n\n @if (item.children?.length && (isActive(item) || isExpanded(item))) {\n <ngf-frame-side-menu [menu]=\"item.children\" />\n }\n </li>\n }\n </ul>\n}\n","import { Component, input, signal } from \"@angular/core\";\nimport { RouterLink } from \"@angular/router\";\n\nimport { Menu } from \"../../../interfaces\";\n\n@Component({\n selector: 'ngf-frame-header-menu',\n templateUrl: 'header-menu.component.html',\n styleUrls: ['header-menu.component.scss'],\n imports: [RouterLink],\n host: {\n '(document:click)': 'onDocumentClick($event)',\n },\n})\nexport class NgFluxFrameHeaderMenu {\n\n readonly menu = input.required<Menu[]>();\n\n protected readonly open = signal(false);\n\n protected target = (item: Menu) => item.targetBlank ? '_blank' : null;\n\n protected toggle(e: PointerEvent) {\n e.stopPropagation();\n this.open.update(v => !v);\n }\n\n protected onDocumentClick(e: PointerEvent) {\n this.open.set(false);\n }\n\n}\n","@if (menu().length) {\n <div class=\"toggle\" (click)=\"toggle($event)\">\n @let icons = ['ngf-icon', open() ? 'close' : 'menu'];\n <i [className]=\"icons.join(' ')\"></i>\n </div>\n}\n\n<div class=\"wrapper\" [class.open]=\"open()\">\n @if (menu().length) {\n <ul class=\"menu\">\n @for (item of menu(); track $index) {\n <li>\n @if (item.isExternal) {\n <a [href]=\"item.href\" [attr.target]=\"target(item)\">\n @if (item.icon) {\n <div class=\"icon\">\n <i [className]=\"item.icon\"></i>\n </div>\n }\n\n <div class=\"text\">{{ item.text }}</div>\n </a>\n } @else {\n <a [routerLink]=\"item.href\" [attr.target]=\"target(item)\">\n @if (item.icon) {\n <div class=\"icon\">\n <i [className]=\"item.icon\"></i>\n </div>\n }\n\n <div class=\"text\">{{ item.text }}</div>\n </a>\n }\n </li>\n }\n </ul>\n }\n</div>\n","import { booleanAttribute, Component, computed, debounced, ElementRef, inject, input, signal, viewChild } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { FrameOptions, Menu } from \"../../interfaces\";\nimport { NgFluxFrameSideMenu } from \"./side-menu/side-menu.component\";\nimport { NgFluxFrameHeaderMenu } from \"./header-menu/header-menu.component\";\n\n@Component({\n selector: 'ngf-frame',\n templateUrl: 'frame.component.html',\n styleUrls: ['frame.component.scss'],\n imports: [\n FormsModule,\n NgFluxFrameHeaderMenu,\n NgFluxFrameSideMenu,\n ],\n host: {\n '[class.viewport]': 'viewport()',\n '(document:click)': 'onDocumentClick($event)',\n },\n})\nexport class NgFluxFrame {\n\n private readonly leftRef = viewChild.required<ElementRef<HTMLElement>>('left');\n\n readonly viewport = input(false, { transform: booleanAttribute });\n\n readonly options = input<FrameOptions>({});\n\n protected readonly title = computed(() => this.options().title?.() ?? '');\n protected readonly icon = computed(() => this.options().icon?.() ?? '');\n protected readonly image = computed(() => this.options().image?.() ?? '');\n protected readonly toolbarItems = computed(() => this.options().toolbarItems?.() ?? []);\n protected readonly headerMenu = computed(() => this.options().headerMenu?.() ?? []);\n\n protected readonly drawer = signal(false);\n\n protected readonly search = signal('');\n protected readonly searchText = debounced(this.search, 300);\n\n protected readonly sideMenu = computed(() => {\n const menu = this.options().sideMenu?.() ?? [];\n\n const text = (this.searchText.value() ?? '').trim().toLowerCase();\n if (!text) return menu;\n\n return this.searchMenu(text, menu);\n });\n\n private searchMenu(text: string, menu?: Menu[]) {\n const result: Menu[] = [];\n\n for (let entry of menu ?? []) {\n const item = Object.assign({}, entry);\n item.children = this.searchMenu(text, item.children);\n\n if (item.children.length) {\n result.push(item);\n continue;\n }\n\n const itemText = item.text.toLowerCase();\n if (itemText.includes(text)) result.push(item);\n }\n\n return result;\n }\n\n protected toggleDrawer(e?: PointerEvent) {\n e?.stopPropagation();\n this.drawer.update(v => !v);\n }\n\n protected closeDrawer(e?: PointerEvent) {\n e?.stopPropagation();\n this.drawer.set(false);\n }\n\n protected onDocumentClick(e: PointerEvent) {\n const target = e.target as HTMLElement;\n const left = this.leftRef().nativeElement;\n\n if (left.contains(target)) return;\n\n this.drawer.set(false);\n }\n\n}\n","<div class=\"frame\">\n <!-- BEGIN: Frame Header -->\n <div class=\"frame-header\">\n @if (image()) {\n <img [src]=\"image()\" alt=\"\" class=\"image\">\n } @else if (icon()) {\n <div class=\"icon\">\n <i [className]=\"icon()\"></i>\n </div>\n }\n\n @if (title()) {<h1>{{ title() }}</h1>}\n\n <ngf-frame-header-menu [menu]=\"headerMenu()\" />\n </div>\n <!-- END: Frame Header -->\n\n <div class=\"frame-body\">\n <!-- BEGIN: Left Sidebar -->\n <div #left class=\"frame-body-left\" [class.drawer]=\"drawer()\">\n <div class=\"btn-row\">\n <div class=\"close-btn\" (click)=\"closeDrawer($event)\">\n <i class=\"ngf-icon close\"></i>\n </div>\n </div>\n\n <div class=\"search-form\">\n <input type=\"text\" placeholder=\"Search menu\" [(ngModel)]=\"search\">\n\n @if (search()) {\n <div class=\"clear\" (click)=\"search.set('')\">\n <i class=\"ngf-icon close\"></i>\n </div>\n }\n </div>\n\n <div class=\"menu-pane\">\n <ngf-frame-side-menu [menu]=\"sideMenu()\" />\n </div>\n </div>\n <!-- END: Left Sidebar -->\n\n <div class=\"frame-body-overlay\" [class.drawer]=\"drawer()\"></div>\n\n <!-- BEGIN: Right Sidebar -->\n <div class=\"frame-body-right\" [class.drawer]=\"drawer()\">\n <div class=\"frame-toolbar\">\n <div class=\"drawer-btn\" (click)=\"toggleDrawer($event)\">\n <i class=\"ngf-icon menu\"></i>\n </div>\n\n <div class=\"spacer\"></div>\n\n <!--\n <div class=\"drawer-btn\" (click)=\"toggleDrawer($event)\">\n <i class=\"ngf-icon close\"></i>\n </div>\n -->\n </div>\n\n <div class=\"frame-content\">\n <ng-content></ng-content>\n </div>\n </div>\n <!-- END: Right Sidebar -->\n </div>\n</div>\n","import { ApplicationRef, ComponentRef, computed, createComponent, EmbeddedViewRef, inject, Injectable, signal } from \"@angular/core\";\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from \"@angular/router\";\nimport { filter } from \"rxjs\";\n\nimport { NgFluxLoadingRootComponent } from \"../components\";\nimport { NGF_CONFIG } from \"../interfaces\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgFluxLoadingInternal {\n\n private readonly config = inject(NGF_CONFIG);\n private readonly appRef = inject(ApplicationRef);\n private readonly router = inject(Router, { optional: true });\n\n readonly rootRef: ComponentRef<NgFluxLoadingRootComponent>;\n\n constructor() {\n const { appRef } = this;\n\n this.rootRef = createComponent(NgFluxLoadingRootComponent, {\n environmentInjector: appRef.injector,\n });\n }\n\n initialize() {\n const { appRef, rootRef } = this;\n appRef.attachView(rootRef.hostView);\n\n const elem = rootRef.location.nativeElement as HTMLElement;\n document.body.appendChild(elem);\n }\n\n showOnRouteNavigation() {\n const { config, router } = this;\n\n if (router && config.loading?.showOnRouteNavigation) {\n const root = this.rootRef.instance;\n\n const navStart = filter(nav => nav instanceof NavigationStart);\n router.events.pipe(navStart).subscribe(nav => root.start());\n\n const navEnd = filter(nav => nav instanceof NavigationEnd);\n router.events.pipe(navEnd).subscribe(nav => root.stop());\n\n const navCancel = filter(nav => nav instanceof NavigationCancel);\n router.events.pipe(navCancel).subscribe(nav => root.stop());\n\n const navError = filter(nav => nav instanceof NavigationError);\n router.events.pipe(navError).subscribe(nav => root.stop());\n }\n }\n\n}\n","import { computed, inject, Injectable } from \"@angular/core\";\nimport { NgFluxLoadingInternal } from \"../internal/Loading\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgFluxLoading {\n\n private readonly internal = inject(NgFluxLoadingInternal);\n\n private readonly root = this.internal.rootRef.instance;\n\n readonly data = computed(() => this.root.entry());\n readonly isLoading = computed(() => this.root.isLoading());\n\n readonly start = (text: string = '') => this.root.start(text);\n readonly stop = () => this.root.stop();\n\n}\n","import {\n Component,\n ComponentRef,\n effect,\n ElementRef,\n HostListener,\n inject,\n Injector,\n viewChild,\n ViewContainerRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\nimport { NGF_DIALOG_CLOSE_FN, NGF_DIALOG_CONFIG, NGF_DIALOG_CONTENT } from '../../../internal';\nimport { NGF_DIALOG_DATA } from '../../../interfaces';\nimport { NgFluxDialogInstance } from '../../../services';\n\ntype CloseFn = () => void;\n\n@Component({\n selector: 'ngf-dialog',\n templateUrl: 'main.component.html',\n styleUrls: ['main.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [],\n})\nexport class NgFluxDialogComponent {\n private readonly injector = inject(Injector);\n private readonly instance = inject(NgFluxDialogInstance);\n private readonly onClosed = inject(NGF_DIALOG_CLOSE_FN);\n private readonly content = inject(NGF_DIALOG_CONTENT);\n private readonly config = inject(NGF_DIALOG_CONFIG);\n\n readonly viewContainer = viewChild.required('container', { read: ViewContainerRef });\n\n private componentRef!: ComponentRef<any>;\n\n private data: any;\n\n constructor() {\n const { injector, content, config } = this;\n\n effect((onCleanup) => {\n const viewContainer = this.viewContainer();\n\n const newInjector = Injector.create({\n parent: injector,\n providers: [{ provide: NGF_DIALOG_DATA, useValue: config?.data ?? null }],\n });\n\n this.componentRef = viewContainer.createComponent(content, {\n injector: newInjector,\n });\n\n const { nativeElement } = this.componentRef.location as ElementRef<HTMLElement>;\n\n nativeElement.tabIndex = -1;\n nativeElement.classList.add('ngf-dialog-box');\n nativeElement.focus();\n\n nativeElement.addEventListener('click', this.onComponentClick);\n nativeElement.addEventListener('animationend', this.onAnimationComplete);\n\n onCleanup(() => {\n nativeElement.removeEventListener('click', this.onComponentClick);\n nativeElement.removeEventListener('animationend', this.onAnimationComplete);\n });\n });\n }\n\n @HostListener('click', ['$event'])\n onBackdropClick(e: MouseEvent) {\n const { instance } = this;\n\n instance.send({\n name: 'backdrop.close',\n value: false,\n });\n }\n\n private readonly onComponentClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n private readonly onAnimationComplete = (e: AnimationEvent) => {\n switch (e.animationName) {\n case 'ngfDialogOpen':\n {\n }\n break;\n\n case 'ngfDialogClose':\n {\n this.onClosed(this.data);\n }\n break;\n }\n };\n\n focus() {\n const ref = this.componentRef.location as ElementRef<HTMLElement>;\n ref.nativeElement.focus();\n }\n\n close(data?: any) {\n this.data = data;\n\n const ref = this.componentRef.location as ElementRef<HTMLElement>;\n ref.nativeElement.classList.add('close');\n }\n}\n","<div class=\"wrapper\">\n <div class=\"content\">\n <ng-template #container></ng-template>\n </div>\n</div>\n","import { NgFluxDialogCommand } from \"../interfaces\";\n\ntype OnClosed<T = any> = (cmd: NgFluxDialogCommand<T>) => void;\n\nexport class NgFluxDialogRef<T = any> {\n\n constructor(\n private readonly onClosed: OnClosed<T>\n ) {}\n\n readonly close = (value?: T) => this.onClosed({\n name: 'close',\n value,\n });\n\n}\n","import { ComponentRef, Injector, signal, ViewContainerRef } from \"@angular/core\";\nimport { AsyncSubject } from \"rxjs\";\n\nimport { NgFluxDialogCommand, NgFluxDialogConfig, NgFluxDialogEvents } from \"../interfaces/Dialog\";\nimport { NgFluxDialogComponent } from \"../components/dialog/main/main.component\";\nimport { NgFluxDialogRef } from \"./DialogRef\";\nimport { NGF_DIALOG_CLOSE_FN, NGF_DIALOG_CONFIG, NGF_DIALOG_CONTENT, NGF_DIALOG_INSTANCE } from \"../internal\";\nimport { NgFluxComponent } from \"../interfaces\";\n\ntype OnClosedFn<T = any> = (ins: NgFluxDialogInstance<T>) => void;\n\nexport class NgFluxDialogInstance<T = any> {\n\n private readonly xDialogComponentRef: ComponentRef<NgFluxDialogComponent> = null as any;\n\n private readonly xClosing = new AsyncSubject<T | null>();\n private readonly xAfterClosed = new AsyncSubject<T | null>();\n\n readonly events: NgFluxDialogEvents<T> = {\n closing: this.xClosing.asObservable(),\n closed: this.xAfterClosed.asObservable(),\n };\n\n constructor(\n private readonly viewContainer: ViewContainerRef,\n private readonly component: NgFluxComponent<any>,\n private readonly injector: Injector,\n private readonly onClosed: OnClosedFn<T>,\n readonly config: NgFluxDialogConfig,\n ) {\n const dialogRef = new NgFluxDialogRef<T>(this.onCommand);\n\n const newInjector = Injector.create({\n parent: injector,\n providers: [\n { provide: NgFluxDialogRef, useValue: dialogRef },\n { provide: NGF_DIALOG_CONFIG, useValue: config },\n { provide: NGF_DIALOG_CONTENT, useValue: component },\n { provide: NGF_DIALOG_CLOSE_FN, useValue: this.afterClosedFn },\n { provide: NgFluxDialogInstance, useValue: this }\n ],\n });\n\n this.xDialogComponentRef = viewContainer.createComponent(NgFluxDialogComponent, {\n injector: newInjector,\n index: undefined\n });\n }\n\n private readonly onCommand = (cmd: NgFluxDialogCommand<T>) => {\n const { config } = this;\n\n switch (cmd.name) {\n case 'esc.close': {\n if (config.closeOnEsc) this.close();\n } break;\n\n case 'backdrop.close': {\n if (config.backdropClose) this.close();\n } break;\n\n case 'backButton.close': {\n if (config.closeOnBackBtn) this.close();\n } break;\n\n case 'close': {\n this.close(cmd.value);\n } break;\n }\n }\n\n private readonly afterClosedFn = (data?: T) => {\n const { xDialogComponentRef } = this;\n xDialogComponentRef.destroy();\n\n this.xAfterClosed.next(data ?? null);\n this.xAfterClosed.complete();\n\n this.onClosed(this);\n }\n\n focus() {\n const { xDialogComponentRef: { instance } } = this;\n instance.focus();\n }\n\n close(data?: T) {\n const { xDialogComponentRef } = this;\n\n this.xClosing.next(data ?? null);\n this.xClosing.complete();\n\n xDialogComponentRef.instance.close(data);\n }\n\n send(cmd: NgFluxDialogCommand<T>) {\n this.onCommand(cmd);\n }\n\n}\n","import { Component, computed, inject } from '@angular/core';\n\nimport {\n NGF_CONFIG,\n NGF_DIALOG_DATA,\n NgFluxDialogAlertOptions,\n NgFluxDialogButton,\n NgFluxDialogButtonObj,\n} from '../../../../interfaces';\n\nimport { NgFluxDialogRef } from '../../../../services';\n\nimport { NgFluxDialogHeader } from '../../header/header.component';\nimport { NgFluxDialogBody } from '../../body/body.component';\nimport { NgFluxDialogFooter } from '../../footer/footer.component';\nimport { NgFluxButton } from '../../../button/button.component';\n\n@Component({\n selector: 'ngf-dialog-box-alert',\n templateUrl: 'alert.dialog.html',\n styleUrls: ['alert.dialog.scss'],\n imports: [\n NgFluxButton,\n NgFluxDialogHeader,\n NgFluxDialogBody,\n NgFluxDialogFooter,\n ],\n})\nexport class NgFluxAlertDialog {\n\n readonly config = inject(NGF_CONFIG);\n readonly dialogRef = inject<NgFluxDialogRef<boolean>>(NgFluxDialogRef);\n readonly options: NgFluxDialogAlertOptions = inject(NGF_DIALOG_DATA);\n\n readonly buttons = computed<NgFluxDialogButton<boolean>[]>(() => {\n const config = this.config.dialog?.alert || {};\n\n const baseOkayButton: NgFluxDialogButtonObj<boolean> = {\n text: 'Okay',\n theme: 'primary',\n onClick: (e, btn, ref) => ref.close(),\n };\n\n return (\n this.options.buttons ?? [Object.assign(baseOkayButton, config.okayButton)]\n );\n });\n\n onButtonClick(e: MouseEvent, btn: NgFluxDialogButtonObj<boolean>) {\n const { dialogRef } = this;\n\n if (btn.onClick) {\n btn.onClick(e, btn, dialogRef);\n } else {\n dialogRef.close();\n }\n }\n\n}\n","@if (options.title) {\n <ngf-dialog-header>\n <h1 ngf-dialog-title>{{ options.title }}</h1>\n </ngf-dialog-header>\n}\n\n<ngf-dialog-body>\n <div [innerHTML]=\"options.content\"></div>\n</ngf-dialog-body>\n\n<ngf-dialog-footer>\n @for (btn of buttons(); track $index) {\n @switch (btn) {\n @case ('flex') {<div ngf-flex-x></div>}\n\n @default {\n <ngf-button [theme]=\"btn.theme\" [size]=\"btn.size\" [direction]=\"btn.direction\" (click)=\"onButtonClick($event, btn)\">\n <span>{{ btn.text }}</span>\n </ngf-button>\n }\n }\n }\n</ngf-dialog-footer>\n","import { Component, computed, inject } from '@angular/core';\n\nimport { NgFluxDialogHeader } from '../../header/header.component';\nimport { NgFluxDialogFooter } from '../../footer/footer.component';\nimport { NgFluxDialogBody } from '../../body/body.component';\nimport { NgFluxButton } from '../../../button/button.component';\n\nimport { NgFluxDialogRef } from '../../../../services';\n\nimport {\n NGF_CONFIG,\n NGF_DIALOG_DATA,\n NgFluxDialogButtonObj,\n NgFluxDialogConfirmOptions,\n} from '../../../../interfaces';\n\n@Component({\n selector: 'ngf-dialog-box-confirm',\n templateUrl: 'confirm.dialog.html',\n styleUrls: ['confirm.dialog.scss'],\n imports: [\n NgFluxButton,\n NgFluxDialogHeader,\n NgFluxDialogFooter,\n NgFluxDialogBody,\n ],\n})\nexport class NgFluxConfirmDialog {\n\n readonly config = inject(NGF_CONFIG);\n readonly dialogRef = inject<NgFluxDialogRef<boolean>>(NgFluxDialogRef);\n readonly options: NgFluxDialogConfirmOptions = inject(NGF_DIALOG_DATA);\n\n readonly buttons = computed(() => {\n const config = this.config.dialog?.prompt ?? {};\n\n const baseCancelButton: NgFluxDialogButtonObj = {\n text: 'Cancel',\n theme: 'dark',\n onClick: (e, btn, dialogRef) => dialogRef.close(),\n };\n\n const baseSubmitButton: NgFluxDialogButtonObj = {\n text: 'Okay',\n theme: 'primary',\n onClick: (e, btn, dialogRef) => dialogRef.close(true),\n };\n\n return [\n this.options.cancelButton ?? Object.assign(baseCancelButton, config.cancelButton),\n this.options.okayButton ?? Object.assign(baseSubmitButton, config.submitButton),\n ];\n });\n\n onButtonClick(e: MouseEvent, btn: NgFluxDialogButtonObj) {\n btn.onClick?.call(null, e, btn, this.dialogRef);\n }\n}\n","@if (options.title) {\n <ngf-dialog-header>\n <h1 ngf-dialog-title>{{ options.title }}</h1>\n </ngf-dialog-header>\n}\n\n<ngf-dialog-body>\n <div [innerHTML]=\"options.content\"></div>\n</ngf-dialog-body>\n\n<ngf-dialog-footer>\n @for (btn of buttons(); track $index) {\n <ngf-button [theme]=\"btn.theme\" (click)=\"onButtonClick($event, btn)\">\n <span>{{ btn.text }}</span>\n </ngf-button>\n }\n</ngf-dialog-footer>\n","import { Component, computed, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgFluxDialogHeader } from '../../header/header.component';\nimport { NgFluxDialogFooter } from '../../footer/footer.component';\nimport { NgFluxDialogBody } from '../../body/body.component';\nimport { NgFluxButton } from '../../../button/button.component';\n\nimport { NgFluxDialogRef } from '../../../../services';\n\nimport {\n NGF_CONFIG,\n NGF_DIALOG_DATA,\n NgFluxDialogButtonObj,\n NgFluxDialogPromptOptions,\n} from '../../../../interfaces';\n\n@Component({\n selector: 'ngf-dialog-box-prompt',\n templateUrl: 'prompt.dialog.html',\n styleUrls: ['prompt.dialog.scss'],\n imports: [\n FormsModule,\n NgFluxButton,\n NgFluxDialogHeader,\n NgFluxDialogFooter,\n NgFluxDialogBody,\n ],\n})\nexport class NgFluxPromptDialog {\n\n readonly config = inject(NGF_CONFIG);\n readonly dialogRef = inject<NgFluxDialogRef<string>>(NgFluxDialogRef);\n readonly options: NgFluxDialogPromptOptions = inject(NGF_DIALOG_DATA);\n\n readonly text = signal(this.options.defaultValue ?? '');\n readonly value = computed(() => this.text().trim());\n\n readonly buttons = computed(() => {\n const config = this.config.dialog?.prompt ?? {};\n const value = this.value();\n\n const baseCancelButton: NgFluxDialogButtonObj = {\n text: 'Cancel',\n theme: 'dark',\n onClick: (e, btn, dialogRef) => dialogRef.close()\n };\n\n const baseSubmitButton: NgFluxDialogButtonObj = {\n text: 'Submit',\n theme: 'primary',\n onClick: (e, btn, dialogRef) => dialogRef.close(value),\n disabled: () => !value,\n };\n\n return [\n this.options.cancelButton ?? Object.assign(baseCancelButton, config.cancelButton),\n this.options.submitButton ?? Object.assign(baseSubmitButton, config.submitButton),\n ];\n });\n\n onButtonClick(e: MouseEvent, btn: NgFluxDialogButtonObj) {\n btn.onClick?.call(null, e, btn, this.dialogRef);\n }\n}\n","<ngf-dialog-header>\n <h1 ngf-dialog-title>{{ options.title }}</h1>\n</ngf-dialog-header>\n\n<ngf-dialog-body>\n <div class=\"content\" [innerHTML]=\"options.content\"></div>\n <input type=\"text\" name=\"text\" [placeholder]=\"options.placeholder\" [(ngModel)]=\"text\">\n</ngf-dialog-body>\n\n<ngf-dialog-footer>\n @for (btn of buttons(); track $index) {\n <ngf-button [theme]=\"btn.theme\" (click)=\"onButtonClick($event, btn)\" [disabled]=\"btn.disabled?.() ?? false\">\n <span>{{ btn.text }}</span>\n </ngf-button>\n }\n</ngf-dialog-footer>\n","import { inject, Injectable } from \"@angular/core\";\n\nimport { NgFluxDialogInstance } from \"./DialogInstance\";\nimport { NgFluxAlertDialog } from \"../components/dialog/boxes/alert/alert.dialog\";\nimport { NgFluxConfirmDialog } from \"../components/dialog/boxes/confirm/confirm.dialog\";\nimport { NgFluxPromptDialog } from \"../components/dialog/boxes/prompt/prompt.dialog\";\n\nimport { NgFluxDialogInternal } from \"../internal\";\n\nimport {\n NgFluxComponent,\n NgFluxDialogAlertOptions,\n NgFluxDialogButton,\n NgFluxDialogConfig,\n NgFluxDialogConfirmOptions,\n NgFluxDialogEvents,\n NgFluxDialogPromptOptions,\n} from \"../interfaces\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgFluxDialog {\n\n private readonly internal = inject(NgFluxDialogInternal);\n\n open<T = any>(component: NgFluxComponent<any>, config?: NgFluxDialogConfig): NgFluxDialogEvents<T> {\n config ??= {};\n config.backdropClose ??= true;\n config.closeBtn ??= true;\n config.closeOnBackBtn ??= true;\n config.closeOnEsc ??= true;\n\n const { internal } = this;\n const root = internal.rootRef.instance;\n\n const onClosed = (ins: NgFluxDialogInstance<T>) => {\n internal.remove(ins);\n };\n\n const instance = new NgFluxDialogInstance<T>(\n root.viewContainer(),\n component,\n root.injector,\n onClosed,\n config\n );\n\n internal.add(instance);\n\n return instance.events;\n }\n\n readonly closeAll = () => this.internal.closeAll();\n\n alert(data: NgFluxDialogAlertOptions) {\n const dialog = this.open<boolean>(NgFluxAlertDialog, {\n closeOnBackBtn: false,\n backdropClose: false,\n closeOnEsc: false,\n data\n });\n\n return dialog.closed;\n }\n\n success(data: NgFluxDialogAlertOptions) {\n data.content = `<div class=\"success\">${data.content}</div>`;\n return this.alert(data);\n }\n\n error(data: NgFluxDialogAlertOptions) {\n data.content = `<div class=\"error\">${data.content}</div>`;\n return this.alert(data);\n }\n\n confirm(data: NgFluxDialogConfirmOptions) {\n const dialog = this.open(NgFluxConfirmDialog, {\n closeOnBackBtn: false,\n backdropClose: false,\n closeOnEsc: false,\n data\n });\n\n return dialog.closed;\n }\n\n prompt(data: NgFluxDialogPromptOptions) {\n const dialog = this.open(NgFluxPromptDialog, {\n closeOnBackBtn: false,\n backdropClose: false,\n closeOnEsc: false,\n data\n });\n\n return dialog.closed;\n }\n\n}\n","import { inject, makeEnvironmentProviders, provideAppInitializer } from \"@angular/core\";\nimport { TitleStrategy } from \"@angular/router\";\n\nimport {\n NGF_CONFIG,\n NgFluxConfig,\n} from \"./interfaces\";\n\nimport {\n NgFluxDialog,\n NgFluxLoading,\n} from \"./services\";\n\nimport {\n MetaInternal,\n NgFluxDialogInternal,\n NgFluxLoadingInternal,\n RouteTitleStrategy,\n} from \"./internal\";\n\nexport const provideNgFlux = (config?: NgFluxConfig) => {\n config ??= {};\n\n return makeEnvironmentProviders([\n { provide: NGF_CONFIG, useValue: config },\n { provide: TitleStrategy, useClass: RouteTitleStrategy },\n\n NgFluxDialog,\n NgFluxDialogInternal,\n\n NgFluxLoading,\n NgFluxLoadingInternal,\n\n MetaInternal,\n\n provideAppInitializer(() => {\n const meta = inject(MetaInternal);\n meta.initialize();\n }),\n\n provideAppInitializer(() => {\n const dialog = inject(NgFluxDialogInternal);\n dialog.initialize();\n }),\n\n provideAppInitializer(() => {\n const loading = inject(NgFluxLoadingInternal);\n\n loading.initialize();\n loading.showOnRouteNavigation();\n }),\n ]);\n};\n","/*\n * Public API Surface of ngflux\n */\n\n\nexport * from './lib/ngflux';\n\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/interfaces';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|