@m1z23r/ngx-ui 1.1.46 → 1.1.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m1z23r/ngx-ui",
3
- "version": "1.1.46",
3
+ "version": "1.1.48",
4
4
  "description": "A modern Angular UI component library with themeable components and responsive layout system",
5
5
  "license": "MIT",
6
6
  "author": "m1z23r",
@@ -1435,6 +1435,82 @@ declare class SliderComponent {
1435
1435
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SliderComponent, "ui-slider", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "valueCommit": "valueCommit"; }, never, never, true, never>;
1436
1436
  }
1437
1437
 
1438
+ type RangeSliderMode = 'time' | 'date' | 'datetime';
1439
+ type RangeSliderSize = 'sm' | 'md' | 'lg';
1440
+ type RangeSliderBubbles = 'always' | 'active' | 'never';
1441
+ interface DateRangeValue {
1442
+ start: Date;
1443
+ end: Date;
1444
+ }
1445
+ type ThumbId = 'start' | 'end';
1446
+ declare class RangeSliderComponent {
1447
+ readonly min: _angular_core.InputSignal<Date>;
1448
+ readonly max: _angular_core.InputSignal<Date>;
1449
+ readonly mode: _angular_core.InputSignal<RangeSliderMode>;
1450
+ readonly size: _angular_core.InputSignal<RangeSliderSize>;
1451
+ readonly label: _angular_core.InputSignal<string>;
1452
+ readonly disabled: _angular_core.InputSignal<boolean>;
1453
+ readonly step: _angular_core.InputSignal<number | null>;
1454
+ readonly bubbles: _angular_core.InputSignal<RangeSliderBubbles>;
1455
+ readonly showRange: _angular_core.InputSignal<boolean>;
1456
+ readonly format: _angular_core.InputSignal<string | null>;
1457
+ readonly value: _angular_core.ModelSignal<DateRangeValue | null>;
1458
+ readonly valueCommit: _angular_core.OutputEmitterRef<DateRangeValue>;
1459
+ protected readonly trackEl: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
1460
+ protected readonly startMs: _angular_core.WritableSignal<number>;
1461
+ protected readonly endMs: _angular_core.WritableSignal<number>;
1462
+ protected readonly dragging: _angular_core.WritableSignal<ThumbId | null>;
1463
+ protected readonly focusedThumb: _angular_core.WritableSignal<ThumbId | null>;
1464
+ protected readonly hoveredThumb: _angular_core.WritableSignal<ThumbId | null>;
1465
+ private lastEmitted;
1466
+ protected readonly minMs: _angular_core.Signal<number>;
1467
+ protected readonly maxMs: _angular_core.Signal<number>;
1468
+ protected readonly range: _angular_core.Signal<number>;
1469
+ protected readonly effectiveStep: _angular_core.Signal<number>;
1470
+ protected readonly startPercent: _angular_core.Signal<number>;
1471
+ protected readonly endPercent: _angular_core.Signal<number>;
1472
+ protected readonly fillStyle: _angular_core.Signal<{
1473
+ left: string;
1474
+ width: string;
1475
+ }>;
1476
+ protected readonly startLabel: _angular_core.Signal<string>;
1477
+ protected readonly endLabel: _angular_core.Signal<string>;
1478
+ protected readonly bubbleVisible: _angular_core.Signal<{
1479
+ start: boolean;
1480
+ end: boolean;
1481
+ }>;
1482
+ protected readonly rootClasses: _angular_core.Signal<string>;
1483
+ constructor();
1484
+ /** Push current thumb state into the value model (live, during interaction). */
1485
+ private writeValue;
1486
+ protected onThumbPointerDown(event: PointerEvent, thumb: ThumbId): void;
1487
+ protected onThumbPointerMove(event: PointerEvent, thumb: ThumbId): void;
1488
+ protected onThumbPointerUp(event: PointerEvent, thumb: ThumbId): void;
1489
+ protected onTrackPointerDown(event: PointerEvent): void;
1490
+ protected onThumbKeyDown(event: KeyboardEvent, thumb: ThumbId): void;
1491
+ protected onThumbKeyUp(event: KeyboardEvent): void;
1492
+ protected onThumbFocus(thumb: ThumbId): void;
1493
+ protected onThumbBlur(): void;
1494
+ protected onThumbEnter(thumb: ThumbId): void;
1495
+ protected onThumbLeave(): void;
1496
+ private setThumb;
1497
+ private commit;
1498
+ private clamp;
1499
+ private snap;
1500
+ private toPercent;
1501
+ private pixelToMs;
1502
+ /**
1503
+ * Convert internal ms to a Date appropriate for the current mode.
1504
+ * date mode normalizes time-of-day to that of `min`.
1505
+ */
1506
+ private materialize;
1507
+ private formatMs;
1508
+ /** Tiny formatter for common tokens: yyyy MM dd HH mm ss MMM d. */
1509
+ private applyFormat;
1510
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RangeSliderComponent, never>;
1511
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RangeSliderComponent, "ui-range-slider", never, { "min": { "alias": "min"; "required": true; "isSignal": true; }; "max": { "alias": "max"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "bubbles": { "alias": "bubbles"; "required": false; "isSignal": true; }; "showRange": { "alias": "showRange"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "valueCommit": "valueCommit"; }, never, never, true, never>;
1512
+ }
1513
+
1438
1514
  type ChipInputVariant = 'default' | 'outlined' | 'filled';
1439
1515
  type ChipInputSize = 'sm' | 'md' | 'lg';
1440
1516
  /** Context provided to custom chip templates */
@@ -1449,7 +1525,7 @@ declare class ChipTemplateDirective {
1449
1525
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChipTemplateDirective, never>;
1450
1526
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ChipTemplateDirective, "ng-template[uiChipTemplate]", never, {}, {}, never, never, true, never>;
1451
1527
  }
1452
- declare class ChipInputComponent<T = string> {
1528
+ declare class ChipInputComponent<T = string> implements OnDestroy {
1453
1529
  readonly variant: _angular_core.InputSignal<ChipInputVariant>;
1454
1530
  readonly size: _angular_core.InputSignal<ChipInputSize>;
1455
1531
  readonly placeholder: _angular_core.InputSignal<string>;
@@ -1460,6 +1536,11 @@ declare class ChipInputComponent<T = string> {
1460
1536
  readonly allowDuplicates: _angular_core.InputSignal<boolean>;
1461
1537
  /** When false, only emits the `added` event without adding to the array (useful for custom object chips) */
1462
1538
  readonly autoAdd: _angular_core.InputSignal<boolean>;
1539
+ readonly suggestions: _angular_core.InputSignal<(string | AsyncSelectOption<T>)[]>;
1540
+ readonly asyncSearch: _angular_core.InputSignal<AsyncSearchFn<T> | null>;
1541
+ readonly strict: _angular_core.InputSignal<boolean>;
1542
+ readonly minSearchLength: _angular_core.InputSignal<number>;
1543
+ readonly debounceTime: _angular_core.InputSignal<number>;
1463
1544
  /** The array of chip values */
1464
1545
  readonly value: _angular_core.ModelSignal<T[]>;
1465
1546
  /** Emitted when a chip is added */
@@ -1468,13 +1549,36 @@ declare class ChipInputComponent<T = string> {
1468
1549
  readonly removed: _angular_core.OutputEmitterRef<T>;
1469
1550
  /** Custom chip template */
1470
1551
  readonly chipTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1552
+ readonly optionTemplate: _angular_core.Signal<OptionTemplateDirective<any> | undefined>;
1471
1553
  inputRef?: ElementRef<HTMLInputElement>;
1554
+ triggerRef: ElementRef<HTMLElement>;
1555
+ dropdownRef: ElementRef<HTMLElement>;
1472
1556
  protected readonly inputValue: _angular_core.WritableSignal<string>;
1473
1557
  protected readonly isFocused: _angular_core.WritableSignal<boolean>;
1558
+ protected readonly isOpen: _angular_core.WritableSignal<boolean>;
1559
+ protected readonly focusedIndex: _angular_core.WritableSignal<number>;
1560
+ protected readonly asyncOptions: _angular_core.WritableSignal<AsyncSelectOption<T>[]>;
1561
+ protected readonly asyncLoading: _angular_core.WritableSignal<boolean>;
1562
+ protected readonly asyncError: _angular_core.WritableSignal<string | null>;
1563
+ private readonly labelCache;
1564
+ private readonly elementRef;
1565
+ private readonly document;
1566
+ private asyncSearchAbortController;
1567
+ private debounceTimer;
1568
+ private blurCloseTimer;
1569
+ private positionCleanup;
1474
1570
  protected readonly containerClasses: _angular_core.Signal<string>;
1571
+ protected readonly isAsyncMode: _angular_core.Signal<boolean>;
1572
+ protected readonly normalizedSuggestions: _angular_core.Signal<AsyncSelectOption<T>[]>;
1573
+ protected readonly visibleSuggestions: _angular_core.Signal<AsyncSelectOption<T>[]>;
1574
+ protected readonly exactMatchExists: _angular_core.Signal<boolean>;
1575
+ protected readonly showCreateRow: _angular_core.Signal<boolean>;
1576
+ ngOnDestroy(): void;
1475
1577
  protected onContainerClick(): void;
1476
1578
  protected onInputKeydown(event: KeyboardEvent): void;
1579
+ protected onInputChange(value: string): void;
1477
1580
  protected addChip(chipValue: string): void;
1581
+ protected addSuggestion(option: AsyncSelectOption<T>): void;
1478
1582
  removeChip(chipValue: T): void;
1479
1583
  /** Get template context for a chip */
1480
1584
  protected getChipContext(chip: T): ChipTemplateContext<T>;
@@ -1482,8 +1586,20 @@ declare class ChipInputComponent<T = string> {
1482
1586
  protected getChipDisplay(chip: T): string;
1483
1587
  protected onFocus(): void;
1484
1588
  protected onBlur(): void;
1589
+ protected onDropdownMousedown(event: MouseEvent): void;
1590
+ protected open(): void;
1591
+ protected close(): void;
1592
+ protected onDocumentClick(event: MouseEvent): void;
1593
+ private portalDropdown;
1594
+ private unportalDropdown;
1595
+ private updateDropdownPosition;
1596
+ private addPositionListeners;
1597
+ private removePositionListeners;
1598
+ private triggerAsyncSearch;
1599
+ private executeAsyncSearch;
1600
+ private cancelAsyncSearch;
1485
1601
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChipInputComponent<any>, never>;
1486
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChipInputComponent<any>, "ui-chip-input", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "autoAdd": { "alias": "autoAdd"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "added": "added"; "removed": "removed"; }, ["chipTemplate"], never, true, never>;
1602
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChipInputComponent<any>, "ui-chip-input", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "autoAdd": { "alias": "autoAdd"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "asyncSearch": { "alias": "asyncSearch"; "required": false; "isSignal": true; }; "strict": { "alias": "strict"; "required": false; "isSignal": true; }; "minSearchLength": { "alias": "minSearchLength"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "added": "added"; "removed": "removed"; }, ["chipTemplate", "optionTemplate"], never, true, never>;
1487
1603
  }
1488
1604
 
1489
1605
  type DatepickerView = 'day' | 'month' | 'year';
@@ -1537,7 +1653,7 @@ declare class DatepickerComponent implements OnDestroy {
1537
1653
  readonly format: _angular_core.InputSignal<string>;
1538
1654
  readonly firstDayOfWeek: _angular_core.InputSignal<0 | 1>;
1539
1655
  readonly id: _angular_core.InputSignal<string>;
1540
- readonly value: _angular_core.ModelSignal<DateRange | Date | null>;
1656
+ readonly value: _angular_core.ModelSignal<Date | DateRange | null>;
1541
1657
  readonly opened: _angular_core.OutputEmitterRef<void>;
1542
1658
  readonly closed: _angular_core.OutputEmitterRef<void>;
1543
1659
  triggerRef: ElementRef<HTMLElement>;
@@ -2076,5 +2192,5 @@ declare class TemplateInputComponent implements OnDestroy, AfterViewInit {
2076
2192
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TemplateInputComponent, "ui-template-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "variables": { "alias": "variables"; "required": true; "isSignal": true; }; }, { "value": "valueChange"; "variables": "variablesChange"; "variableHover": "variableHover"; }, ["popoverTemplate", "hasSuffix"], ["[uiTemplateInputSuffix]"], true, never>;
2077
2193
  }
2078
2194
 
2079
- export { AccordionComponent, AccordionHeaderDirective, AccordionItemComponent, AlertComponent, BadgeComponent, ButtonComponent, CardComponent, CellTemplateDirective, CellValuePipe, CheckboxComponent, ChipInputComponent, ChipTemplateDirective, CircularProgressComponent, ContentComponent, ContextMenuDirective, DIALOG_DATA, DIALOG_REF, DatepickerComponent, DatetimepickerComponent, DialogRef, DialogService, DropdownComponent, DropdownDividerComponent, DropdownItemComponent, DropdownTriggerDirective, DynamicTabsComponent, FileChooserComponent, FilePreviewPipe, FileSizePipe, FooterComponent, InputComponent, LOADABLE, LoadingDirective, LoadingService, ModalComponent, NavbarComponent, OptionComponent, OptionTemplateDirective, PaginationComponent, ProgressComponent, RadioComponent, RadioGroupComponent, SelectComponent, ShellComponent, SidebarComponent, SidebarService, SidebarToggleComponent, SliderComponent, SpinnerComponent, SplitComponent, SplitPaneComponent, SwitchComponent, TAB_DATA, TAB_REF, TREE_HOST, TabActivePipe, TabComponent, TabIconDirective, TabRef, TableComponent, TabsComponent, TabsService, TemplateInputComponent, TemplateInputSuffixDirective, TextareaComponent, TimepickerComponent, ToastRef, ToastService, TooltipDirective, TreeComponent, TreeNodeComponent, Validators, VariablePopoverDirective };
2080
- export type { AccordionVariant, AlertVariant, AsyncSearchFn, AsyncSelectOption, BadgeSize, BadgeVariant, ButtonColor, ButtonSize, ButtonVariant, CardPadding, CardVariant, CheckboxSize, ChipInputSize, ChipInputVariant, ChipTemplateContext, CircularProgressSize, CircularProgressVariant, DateRange, DatepickerSize, DatepickerVariant, DatepickerView, DatetimepickerSize, DatetimepickerVariant, DatetimepickerView, DialogConfig, DropdownAlign, DropdownPosition, DynamicTabConfig, DynamicTabsSize, DynamicTabsVariant, FileChooserSize, FileChooserVariant, InputType, Loadable, ModalSize, OptionTemplateContext, PaginationSize, ProgressSize, ProgressVariant, RadioGroupOrientation, RadioGroupSize, RadioGroupVariant, SelectSize, SelectVariant, ShellVariant, SliderSize, SortDirection, SortState, SpinnerSize, SpinnerVariant, SplitGutterSize, SplitOrientation, SplitSizeChange, SwitchSize, TabRenderMode, TableColumn, TabsSize, TabsVariant, TemplateVariable, TextareaResize, TimeFormat, TimeValue, TimepickerSize, TimepickerVariant, ToastConfig, ToastPosition, ToastVariant, TooltipPosition, TreeDropPosition, TreeNode, TreeNodeDropEvent, ValidationError, ValidationState, ValidatorFn, VariablePopoverContext, VariableState };
2195
+ export { AccordionComponent, AccordionHeaderDirective, AccordionItemComponent, AlertComponent, BadgeComponent, ButtonComponent, CardComponent, CellTemplateDirective, CellValuePipe, CheckboxComponent, ChipInputComponent, ChipTemplateDirective, CircularProgressComponent, ContentComponent, ContextMenuDirective, DIALOG_DATA, DIALOG_REF, DatepickerComponent, DatetimepickerComponent, DialogRef, DialogService, DropdownComponent, DropdownDividerComponent, DropdownItemComponent, DropdownTriggerDirective, DynamicTabsComponent, FileChooserComponent, FilePreviewPipe, FileSizePipe, FooterComponent, InputComponent, LOADABLE, LoadingDirective, LoadingService, ModalComponent, NavbarComponent, OptionComponent, OptionTemplateDirective, PaginationComponent, ProgressComponent, RadioComponent, RadioGroupComponent, RangeSliderComponent, SelectComponent, ShellComponent, SidebarComponent, SidebarService, SidebarToggleComponent, SliderComponent, SpinnerComponent, SplitComponent, SplitPaneComponent, SwitchComponent, TAB_DATA, TAB_REF, TREE_HOST, TabActivePipe, TabComponent, TabIconDirective, TabRef, TableComponent, TabsComponent, TabsService, TemplateInputComponent, TemplateInputSuffixDirective, TextareaComponent, TimepickerComponent, ToastRef, ToastService, TooltipDirective, TreeComponent, TreeNodeComponent, Validators, VariablePopoverDirective };
2196
+ export type { AccordionVariant, AlertVariant, AsyncSearchFn, AsyncSelectOption, BadgeSize, BadgeVariant, ButtonColor, ButtonSize, ButtonVariant, CardPadding, CardVariant, CheckboxSize, ChipInputSize, ChipInputVariant, ChipTemplateContext, CircularProgressSize, CircularProgressVariant, DateRange, DateRangeValue, DatepickerSize, DatepickerVariant, DatepickerView, DatetimepickerSize, DatetimepickerVariant, DatetimepickerView, DialogConfig, DropdownAlign, DropdownPosition, DynamicTabConfig, DynamicTabsSize, DynamicTabsVariant, FileChooserSize, FileChooserVariant, InputType, Loadable, ModalSize, OptionTemplateContext, PaginationSize, ProgressSize, ProgressVariant, RadioGroupOrientation, RadioGroupSize, RadioGroupVariant, RangeSliderBubbles, RangeSliderMode, RangeSliderSize, SelectSize, SelectVariant, ShellVariant, SliderSize, SortDirection, SortState, SpinnerSize, SpinnerVariant, SplitGutterSize, SplitOrientation, SplitSizeChange, SwitchSize, TabRenderMode, TableColumn, TabsSize, TabsVariant, TemplateVariable, TextareaResize, TimeFormat, TimeValue, TimepickerSize, TimepickerVariant, ToastConfig, ToastPosition, ToastVariant, TooltipPosition, TreeDropPosition, TreeNode, TreeNodeDropEvent, ValidationError, ValidationState, ValidatorFn, VariablePopoverContext, VariableState };