@ngflux/ngflux 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,40 @@
22
22
  &.search::before { content: "\e8b6"; }
23
23
  &.close::before { content: "\e5cd"; }
24
24
 
25
+ &.arrow-drop-down::before { content: "\e5c5"; }
26
+ &.arrow-drop-up::before { content: "\e5c7"; }
27
+
28
+ &.unfold-more::before { content: "\e5d7"; }
29
+ &.unfold-less::before { content: "\e5d6"; }
30
+
25
31
  &.chevron-left::before { content: "\e5cb"; }
26
32
  &.chevron-right::before { content: "\e5cc"; }
33
+
34
+ &.add::before { content: "\e145"; }
35
+ &.edit::before { content: "\e3c9"; }
36
+ &.eye::before { content: "\e8f4"; }
37
+ &.trash::before { content: "\e872"; }
38
+ &.refresh::before { content: "\e5d5"; }
39
+ &.close::before { content: "\e5cd"; }
40
+ &.filter::before { content: "\ef4f"; }
41
+ &.upgrade::before { content: "\f0fb"; }
42
+ &.download::before { content: "\f090"; }
43
+ &.upload::before { content: "\f09b"; }
44
+
45
+ &.heart::before { content: "\e87d"; }
46
+ &.heart-plus::before { content: "\f884"; }
47
+ &.heart-minus::before { content: "\f883"; }
48
+ &.heart-check::before { content: "\f60a"; }
49
+
50
+ &.cart::before { content: "\e8cc"; }
51
+ &.cart-plus::before { content: "\e854"; }
52
+ &.cart-minus::before { content: "\e928"; }
53
+ &.cart-checkout::before { content: "\eb88"; }
54
+ &.cart-off::before { content: "\f4f7"; }
55
+
56
+ &.arrow-up::before { content: "\e986"; }
57
+ &.arrow-down::before { content: "\e984"; }
58
+
59
+ &.arrow-left::before { content: "\ef7d"; }
60
+ &.arrow-right::before { content: "\e941"; }
27
61
  }
@@ -0,0 +1,31 @@
1
+ .ngf-tab-nav {
2
+ display: block;
3
+ padding: 10px 30px;
4
+ background-color: var(--background-color) !important;
5
+ color: var(--color) !important;
6
+ text-decoration: none !important;
7
+ cursor: pointer;
8
+
9
+ --color: #333;
10
+ --background-color: #FFF;
11
+
12
+ &:hover {
13
+ --background-color: rgba(var(--ngf-primary-rgb), .1);
14
+ }
15
+
16
+ &.active {
17
+ position: relative;
18
+
19
+ --color: var(--ngf-primary);
20
+
21
+ &::before {
22
+ display: block;
23
+ position: absolute;
24
+ inset: auto 0px -1px 0px;
25
+ background-color: var(--ngf-primary);
26
+ height: 3px;
27
+ content: "";
28
+ z-index: 2;
29
+ }
30
+ }
31
+ }
@@ -1,8 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, Signal, ViewContainerRef, Injector } from '@angular/core';
2
+ import { InjectionToken, Signal, ViewContainerRef, Injector, InputSignal, InputSignalWithTransform, ModelSignal, TemplateRef } from '@angular/core';
3
3
  import * as _ngflux_ngflux from '@ngflux/ngflux';
4
4
  import * as rxjs from 'rxjs';
5
5
  import { Observable } from 'rxjs';
6
+ import { FormValueControl } from '@angular/forms/signals';
7
+ import * as i1 from '@angular/router';
6
8
  import { Route, Data } from '@angular/router';
7
9
 
8
10
  type ButtonDirection = 'normal' | 'reversed';
@@ -151,8 +153,53 @@ type NgFluxRoute = Route & {
151
153
  children?: NgFluxRoutes;
152
154
  };
153
155
 
156
+ type SelectItem<T = any, V = any> = {
157
+ label: string;
158
+ value: V;
159
+ children?: T[];
160
+ disabled?: boolean;
161
+ };
162
+ type SelectTransformer<T = any, V = any> = {
163
+ getLabel(item: T): string;
164
+ getValue(item: T): V;
165
+ getChildren?(item: T): T[];
166
+ setChildren?(item: T, children: T[]): void;
167
+ isDisabled?(item: T): boolean;
168
+ };
169
+
170
+ type Menu = {
171
+ text: string;
172
+ icon?: string;
173
+ href?: string;
174
+ isExternal?: boolean;
175
+ targetBlank?: boolean;
176
+ onClick?: (e: PointerEvent, item: Menu) => any;
177
+ children?: Menu[];
178
+ };
179
+
180
+ type FrameSize = 'auto' | 'viewport';
181
+ type FrameToolbarItem = {};
182
+ type FrameHeaderMenu = Omit<Menu, 'children'>;
183
+ type FrameOptions = {
184
+ title?: () => string;
185
+ icon?: () => string;
186
+ image?: () => string;
187
+ toolbarItems?: () => FrameToolbarItem[];
188
+ headerMenu?: () => FrameHeaderMenu[];
189
+ sideMenu?: () => Menu[];
190
+ };
191
+
154
192
  declare const provideNgFlux: (config?: NgFluxConfig) => _angular_core.EnvironmentProviders;
155
193
 
194
+ type Justify = 'start' | 'center' | 'end' | 'stretch';
195
+ declare class NgFluxActions {
196
+ readonly justify: _angular_core.InputSignal<Justify>;
197
+ readonly wrap: _angular_core.InputSignal<boolean>;
198
+ readonly gap: _angular_core.InputSignal<number>;
199
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxActions, never>;
200
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxActions, "ngf-actions", never, { "justify": { "alias": "justify"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
201
+ }
202
+
156
203
  declare class NgFluxButton {
157
204
  private readonly ref;
158
205
  readonly icon: _angular_core.InputSignal<string | undefined>;
@@ -271,5 +318,154 @@ declare class NgFluxPagination {
271
318
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxPagination, "ngf-pagination", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "preload": { "alias": "preload"; "required": false; "isSignal": true; }; "transform": { "alias": "transform"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "limitOptions": { "alias": "limitOptions"; "required": false; "isSignal": true; }; }, { "limit": "limitChange"; "callback": "callback"; }, never, ["*"], true, never>;
272
319
  }
273
320
 
274
- export { NGF_CONFIG, NGF_DIALOG_DATA, NgFluxButton, NgFluxDialog, NgFluxDialogBodyComponent, NgFluxDialogFooterComponent, NgFluxDialogHeaderComponent, NgFluxDialogInstance, NgFluxDialogRef, NgFluxDialogRootComponent, NgFluxLoading, NgFluxLoadingRootComponent, NgFluxPagination, provideNgFlux };
275
- export type { ButtonDirection, ButtonOptions, ButtonSize, ButtonTheme, ButtonType, NgFluxComponent, NgFluxConfig, NgFluxDialogAlertOptions, NgFluxDialogButton, NgFluxDialogButtonObj, NgFluxDialogCommand, NgFluxDialogConfig, NgFluxDialogConfirmOptions, NgFluxDialogEvents, NgFluxDialogPromptOptions, NgFluxDialogRoot, NgFluxLoadingEntry, NgFluxRoute, NgFluxRoutes, Pagination, PaginationInfo, PaginationTransformer };
321
+ type SelectItemOptions = {
322
+ getSelected: (item: any) => boolean;
323
+ };
324
+
325
+ declare class NgFluxSelect<V = any> implements FormValueControl<V | V[] | null> {
326
+ private readonly ref;
327
+ readonly data: InputSignal<any[]>;
328
+ readonly block: InputSignalWithTransform<boolean, unknown>;
329
+ readonly multi: InputSignalWithTransform<boolean, unknown>;
330
+ readonly placeholder: InputSignal<string | undefined>;
331
+ readonly transform: InputSignal<SelectTransformer<any, V>>;
332
+ protected readonly mapper: _angular_core.Signal<Map<V, any>>;
333
+ readonly value: ModelSignal<V | V[] | null>;
334
+ protected readonly vmap: _angular_core.Signal<Map<V, any>>;
335
+ protected readonly open: _angular_core.WritableSignal<boolean>;
336
+ protected readonly searchbox: _angular_core.WritableSignal<string>;
337
+ protected readonly search: _angular_core.Signal<any[]>;
338
+ protected readonly headerText: _angular_core.Signal<string>;
339
+ private doFlatMap;
340
+ private doSearch;
341
+ protected toggleOpen(): void;
342
+ protected toggle(item: any): void;
343
+ protected readonly options: SelectItemOptions;
344
+ protected onDocumentClick(e: PointerEvent): void;
345
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxSelect<any>, never>;
346
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxSelect<any>, "ngf-select", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "transform": { "alias": "transform"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
347
+ }
348
+
349
+ declare class PinInputDirective {
350
+ private readonly ref;
351
+ readonly elem: HTMLInputElement;
352
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PinInputDirective, never>;
353
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PinInputDirective, "[pinInput]", never, {}, {}, never, never, true, never>;
354
+ }
355
+
356
+ declare class NgFluxPinInput implements FormValueControl<string> {
357
+ readonly chars: InputSignal<number>;
358
+ readonly block: InputSignalWithTransform<boolean, unknown>;
359
+ readonly value: _angular_core.ModelSignal<string>;
360
+ protected readonly values: _angular_core.Signal<string[]>;
361
+ protected readonly inputs: _angular_core.Signal<readonly PinInputDirective[]>;
362
+ protected onKeyDown(e: KeyboardEvent, index: number): void;
363
+ protected onPaste(e: ClipboardEvent, index: number): void;
364
+ private setFocus;
365
+ private readonly allowed;
366
+ focus(options?: FocusOptions): void;
367
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxPinInput, never>;
368
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxPinInput, "ngf-pin-input", never, { "chars": { "alias": "chars"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
369
+ }
370
+
371
+ declare class TabNavController {
372
+ private readonly map;
373
+ readonly navs: _angular_core.Signal<NgFluxTabNavDirective[]>;
374
+ private readonly selected;
375
+ readonly selectedIndex: _angular_core.WritableSignal<number>;
376
+ readonly active: _angular_core.Signal<NgFluxTabNavDirective | null>;
377
+ readonly activeContent: _angular_core.Signal<NgFluxTabContentDirective | undefined>;
378
+ activate(nav: NgFluxTabNavDirective): void;
379
+ add(nav: NgFluxTabNavDirective): void;
380
+ remove(nav: NgFluxTabNavDirective): void;
381
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabNavController, never>;
382
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<TabNavController>;
383
+ }
384
+
385
+ declare class TabGroupController {
386
+ private readonly map;
387
+ readonly tabs: _angular_core.Signal<NgFluxTab[]>;
388
+ add(nav: NgFluxTab): void;
389
+ remove(nav: NgFluxTab): void;
390
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupController, never>;
391
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<TabGroupController>;
392
+ }
393
+
394
+ declare class NgFluxTabContentDirective {
395
+ readonly templateRef: TemplateRef<any>;
396
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxTabContentDirective, never>;
397
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgFluxTabContentDirective, "[ngfTabContent]", ["content"], {}, {}, never, never, true, never>;
398
+ }
399
+
400
+ declare class NgFluxTabNavDirective {
401
+ private readonly routerLink;
402
+ private readonly routerLinkActive;
403
+ protected readonly ctrl: TabNavController;
404
+ readonly content: _angular_core.InputSignal<NgFluxTabContentDirective | undefined>;
405
+ readonly navContent: _angular_core.Signal<NgFluxTabContentDirective | undefined>;
406
+ private readonly routeActive;
407
+ protected readonly active: _angular_core.Signal<boolean>;
408
+ constructor();
409
+ protected activate(e?: PointerEvent): void;
410
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxTabNavDirective, never>;
411
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgFluxTabNavDirective, "[ngfTabNav]", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RouterLink; inputs: { "routerLink": "link"; }; outputs: {}; }, { directive: typeof i1.RouterLinkActive; inputs: {}; outputs: {}; }]>;
412
+ }
413
+
414
+ declare class NgFluxTab {
415
+ private readonly ctrl;
416
+ readonly label: _angular_core.InputSignal<string>;
417
+ readonly navLabel: _angular_core.Signal<string>;
418
+ readonly content: _angular_core.Signal<NgFluxTabContentDirective>;
419
+ constructor();
420
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxTab, never>;
421
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxTab, "ngf-tab", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
422
+ }
423
+
424
+ declare class NgFluxTabGroup {
425
+ protected readonly ctrl: TabGroupController;
426
+ readonly selectedIndex: _angular_core.InputSignal<number>;
427
+ protected readonly showTabs: boolean;
428
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxTabGroup, never>;
429
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxTabGroup, "ngf-tab-group", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, {}, never, ["ngf-tab"], true, never>;
430
+ }
431
+
432
+ declare class NgFluxTabPanel {
433
+ readonly label: _angular_core.InputSignal<string | undefined>;
434
+ protected readonly content: _angular_core.WritableSignal<TemplateRef<any> | null>;
435
+ setContent(tpl?: TemplateRef<any>): void;
436
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxTabPanel, never>;
437
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxTabPanel, "ngf-tab-panel", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
438
+ }
439
+
440
+ declare class NgFluxTabNavbar {
441
+ private readonly ctrl;
442
+ readonly panel: _angular_core.InputSignal<NgFluxTabPanel | undefined>;
443
+ readonly selectedIndex: _angular_core.InputSignal<number>;
444
+ constructor();
445
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxTabNavbar, never>;
446
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxTabNavbar, "ngf-tab-navbar", never, { "panel": { "alias": "panel"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, {}, never, ["[ngfTabNav]"], true, never>;
447
+ }
448
+
449
+ declare class NgFluxFrame {
450
+ private readonly leftRef;
451
+ readonly viewport: _angular_core.InputSignalWithTransform<boolean, unknown>;
452
+ readonly options: _angular_core.InputSignal<FrameOptions>;
453
+ protected readonly title: _angular_core.Signal<string>;
454
+ protected readonly icon: _angular_core.Signal<string>;
455
+ protected readonly image: _angular_core.Signal<string>;
456
+ protected readonly toolbarItems: _angular_core.Signal<_ngflux_ngflux.FrameToolbarItem[]>;
457
+ protected readonly headerMenu: _angular_core.Signal<_ngflux_ngflux.FrameHeaderMenu[]>;
458
+ protected readonly drawer: _angular_core.WritableSignal<boolean>;
459
+ protected readonly search: _angular_core.WritableSignal<string>;
460
+ protected readonly searchText: _angular_core.Resource<string>;
461
+ protected readonly sideMenu: _angular_core.Signal<Menu[]>;
462
+ private searchMenu;
463
+ protected toggleDrawer(e?: PointerEvent): void;
464
+ protected closeDrawer(e?: PointerEvent): void;
465
+ protected onDocumentClick(e: PointerEvent): void;
466
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgFluxFrame, never>;
467
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgFluxFrame, "ngf-frame", never, { "viewport": { "alias": "viewport"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
468
+ }
469
+
470
+ export { NGF_CONFIG, NGF_DIALOG_DATA, NgFluxActions, NgFluxButton, NgFluxDialog, NgFluxDialogBodyComponent, NgFluxDialogFooterComponent, NgFluxDialogHeaderComponent, NgFluxDialogInstance, NgFluxDialogRef, NgFluxDialogRootComponent, NgFluxFrame, NgFluxLoading, NgFluxLoadingRootComponent, NgFluxPagination, NgFluxPinInput, NgFluxSelect, NgFluxTab, NgFluxTabContentDirective, NgFluxTabGroup, NgFluxTabNavDirective, NgFluxTabNavbar, NgFluxTabPanel, provideNgFlux };
471
+ export type { ButtonDirection, ButtonOptions, ButtonSize, ButtonTheme, ButtonType, FrameHeaderMenu, FrameOptions, FrameSize, FrameToolbarItem, Menu, NgFluxComponent, NgFluxConfig, NgFluxDialogAlertOptions, NgFluxDialogButton, NgFluxDialogButtonObj, NgFluxDialogCommand, NgFluxDialogConfig, NgFluxDialogConfirmOptions, NgFluxDialogEvents, NgFluxDialogPromptOptions, NgFluxDialogRoot, NgFluxLoadingEntry, NgFluxRoute, NgFluxRoutes, Pagination, PaginationInfo, PaginationTransformer, SelectItem, SelectTransformer };