@vallift/ngl 0.0.20 → 0.0.21

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.
@@ -8,7 +8,7 @@ export declare class ButtonComponent {
8
8
  type: import("@angular/core").InputSignal<"submit" | "button" | "reset">;
9
9
  disabled: import("@angular/core").InputSignal<boolean>;
10
10
  fullWidth: import("@angular/core").InputSignal<boolean>;
11
- appearance: import("@angular/core").InputSignal<"outline" | "textType" | "primary" | "primaryRounded" | "outlineRounded">;
11
+ appearance: import("@angular/core").InputSignal<"textType" | "primary" | "outline" | "primaryRounded" | "outlineRounded">;
12
12
  loading: import("@angular/core").InputSignal<boolean>;
13
13
  iconSize: import("@angular/core").InputSignal<number>;
14
14
  iconSrc: import("@angular/core").InputSignal<string | null | undefined>;
@@ -1,6 +1,6 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class ShimmerComponent {
3
- type: import("@angular/core").InputSignal<"list" | "grid" | "single-line" | "multiline">;
3
+ type: import("@angular/core").InputSignal<"grid" | "list" | "single-line" | "multiline">;
4
4
  count: import("@angular/core").InputSignal<number>;
5
5
  loop: import("@angular/core").Signal<number[]>;
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<ShimmerComponent, never>;
@@ -1,15 +1,6 @@
1
- import { OnInit } from '@angular/core';
2
- import { TooltipPosition, TooltipTheme } from "./tooltip.enums";
3
1
  import * as i0 from "@angular/core";
4
- export declare class TooltipComponent implements OnInit {
5
- tooltipPosition: TooltipPosition;
6
- tooltipTheme: TooltipTheme;
7
- tooltip: string;
8
- left: number;
9
- top: number;
10
- visible: boolean;
11
- constructor();
12
- ngOnInit(): void;
2
+ export declare class TooltipComponent {
3
+ text: string;
13
4
  static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "app-tooltip", never, {}, {}, never, never, true, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "lib-tooltip", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
15
6
  }
@@ -0,0 +1,21 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TooltipDirective {
3
+ private overlay;
4
+ private elementRef;
5
+ private positionBuilder;
6
+ private overlayRef;
7
+ private longPressTimeout;
8
+ libTooltip: string;
9
+ tooltipPosition: import("@angular/core").InputSignal<"bottom" | "top" | "left" | "right" | "before" | "after">;
10
+ constructor();
11
+ private showTooltip;
12
+ private hideTooltip;
13
+ private getPosition;
14
+ private isTouch;
15
+ onMouseEnter(): void;
16
+ onMouseLeave(): void;
17
+ onTouchStart(): void;
18
+ onTouchEnd(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
20
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[libTooltip]", never, { "libTooltip": { "alias": "libTooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
21
+ }
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, signal, input, output, Component, Input, ElementRef, Renderer2, EventEmitter, Output, RendererFactory2, HostListener, Directive, computed, ChangeDetectorRef, model, ViewChild, ViewContainerRef, ComponentFactoryResolver, ApplicationRef, Injector, Inject, Pipe, ContentChildren, ChangeDetectionStrategy, viewChild } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, signal, input, output, Component, Input, ElementRef, Renderer2, EventEmitter, Output, RendererFactory2, HostListener, Directive, computed, ChangeDetectorRef, model, ViewChild, ViewContainerRef, ComponentFactoryResolver, ApplicationRef, Injector, Inject, Pipe, ContentChildren, ChangeDetectionStrategy, effect, viewChild } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common/http';
4
4
  import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';
5
5
  import { retry, throwError, Subject, debounceTime, fromEvent, filter as filter$1, take, of } from 'rxjs';
@@ -8,11 +8,11 @@ import * as i1 from '@angular/forms';
8
8
  import { FormControl, NgControl, FormGroupDirective, FormsModule, ReactiveFormsModule, FormGroup } from '@angular/forms';
9
9
  import { Router, NavigationStart, NavigationEnd } from '@angular/router';
10
10
  import { DialogRef, DIALOG_DATA, Dialog } from '@angular/cdk/dialog';
11
- import { Overlay, OverlayConfig, CdkConnectedOverlay } from '@angular/cdk/overlay';
11
+ import { Overlay, OverlayConfig, OverlayPositionBuilder, CdkConnectedOverlay } from '@angular/cdk/overlay';
12
12
  import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
13
13
  import { NgClass, DOCUMENT, NgStyle, CommonModule, DatePipe } from '@angular/common';
14
14
  import { SvgIconComponent } from 'angular-svg-icon';
15
- import { CdkPortal } from '@angular/cdk/portal';
15
+ import { CdkPortal, ComponentPortal } from '@angular/cdk/portal';
16
16
  import { NgxMaskDirective } from 'ngx-mask';
17
17
  import { InfiniteScrollDirective } from 'ngx-infinite-scroll';
18
18
  import * as i2 from '@angular/platform-browser';
@@ -3589,42 +3589,146 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
3589
3589
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"toaster fixed top-1 right-1 px-3 py-2\">\n @for (toast of currentToasts; track toast; let i = $index) {\n <div>\n <app-toast\n [type]=\"toast.type\"\n [title]=\"toast.title\"\n [message]=\"toast.message\"\n [duration]=\"toast.duration\"\n (disposeEvent)=\"dispose(i)\"\n [themeType]=\"toast.themeType ?? 'light'\"\n ></app-toast>\n </div>\n }\n</div>\n", styles: [".toaster{z-index:2000}\n"] }]
3590
3590
  }], ctorParameters: () => [{ type: ToastService }, { type: i0.ChangeDetectorRef }] });
3591
3591
 
3592
- var TooltipPosition;
3593
- (function (TooltipPosition) {
3594
- TooltipPosition["ABOVE"] = "above";
3595
- TooltipPosition["BELOW"] = "below";
3596
- TooltipPosition["LEFT"] = "left";
3597
- TooltipPosition["RIGHT"] = "right";
3598
- TooltipPosition["DYNAMIC"] = "dynamic";
3599
- TooltipPosition["DEFAULT"] = "above";
3600
- })(TooltipPosition || (TooltipPosition = {}));
3601
- var TooltipTheme;
3602
- (function (TooltipTheme) {
3603
- TooltipTheme["DARK"] = "dark";
3604
- TooltipTheme["LIGHT"] = "light";
3605
- TooltipTheme["DEFAULT"] = "dark";
3606
- })(TooltipTheme || (TooltipTheme = {}));
3607
-
3608
3592
  class TooltipComponent {
3609
- tooltipPosition = TooltipPosition.DEFAULT;
3610
- tooltipTheme = TooltipTheme.DEFAULT;
3611
- tooltip = '';
3612
- left = 0;
3613
- top = 0;
3614
- visible = false;
3615
- constructor() {
3616
- }
3617
- ngOnInit() {
3618
- }
3593
+ text = '';
3619
3594
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3620
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TooltipComponent, isStandalone: true, selector: "app-tooltip", ngImport: i0, template: "<div class=\"tooltip\"\n [ngClass]=\"['tooltip--'+tooltipPosition, 'tooltip--'+tooltipTheme]\"\n [class.tooltip--visible]=\"visible\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\">\n {{tooltip}}\n</div>\n", styles: [".tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;padding:3px 6px;font-size:13px;opacity:0;z-index:100000}.tooltip--visible{opacity:1;transition:opacity .3s}.tooltip--light{background-color:#fff;color:#000}.tooltip--light:before{border:5px solid white}.tooltip--dark{background-color:#000;color:#fff}.tooltip--dark:before{border:5px solid black}.tooltip--below{transform:translate(-50%);margin-top:7px}.tooltip--below:before{border-left-color:transparent;border-right-color:transparent;border-top:none;left:calc(50% - 5px);top:-5px}.tooltip--above{transform:translate(-50%,-100%);margin-top:-7px}.tooltip--above:before{border-left-color:transparent;border-right-color:transparent;border-bottom:none;left:calc(50% - 5px);bottom:-5px}.tooltip--left{transform:translate(calc(-100% - 7px),-50%)}.tooltip--left:before{border-top-color:transparent;border-bottom-color:transparent;border-right:none;right:-5px;top:calc(50% - 5px)}.tooltip--right{transform:translateY(-50%);margin-left:7px}.tooltip--right:before{border-top-color:transparent;border-bottom-color:transparent;border-left:none;left:-5px;top:calc(50% - 5px)}.tooltip--dynamic{margin-left:20px}.tooltip--dynamic:before{display:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
3595
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TooltipComponent, isStandalone: true, selector: "lib-tooltip", inputs: { text: "text" }, ngImport: i0, template: "<div class=\"bg-gray-800 text-white text-xs px-3 py-1 rounded shadow-lg max-w-xs whitespace-nowrap z-50\">\n {{ text }}\n</div>\n", styles: [""] });
3621
3596
  }
3622
3597
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TooltipComponent, decorators: [{
3623
3598
  type: Component,
3624
- args: [{ selector: 'app-tooltip', standalone: true, imports: [
3625
- NgClass
3626
- ], template: "<div class=\"tooltip\"\n [ngClass]=\"['tooltip--'+tooltipPosition, 'tooltip--'+tooltipTheme]\"\n [class.tooltip--visible]=\"visible\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\">\n {{tooltip}}\n</div>\n", styles: [".tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;padding:3px 6px;font-size:13px;opacity:0;z-index:100000}.tooltip--visible{opacity:1;transition:opacity .3s}.tooltip--light{background-color:#fff;color:#000}.tooltip--light:before{border:5px solid white}.tooltip--dark{background-color:#000;color:#fff}.tooltip--dark:before{border:5px solid black}.tooltip--below{transform:translate(-50%);margin-top:7px}.tooltip--below:before{border-left-color:transparent;border-right-color:transparent;border-top:none;left:calc(50% - 5px);top:-5px}.tooltip--above{transform:translate(-50%,-100%);margin-top:-7px}.tooltip--above:before{border-left-color:transparent;border-right-color:transparent;border-bottom:none;left:calc(50% - 5px);bottom:-5px}.tooltip--left{transform:translate(calc(-100% - 7px),-50%)}.tooltip--left:before{border-top-color:transparent;border-bottom-color:transparent;border-right:none;right:-5px;top:calc(50% - 5px)}.tooltip--right{transform:translateY(-50%);margin-left:7px}.tooltip--right:before{border-top-color:transparent;border-bottom-color:transparent;border-left:none;left:-5px;top:calc(50% - 5px)}.tooltip--dynamic{margin-left:20px}.tooltip--dynamic:before{display:none}\n"] }]
3627
- }], ctorParameters: () => [] });
3599
+ args: [{ selector: 'lib-tooltip', imports: [], template: "<div class=\"bg-gray-800 text-white text-xs px-3 py-1 rounded shadow-lg max-w-xs whitespace-nowrap z-50\">\n {{ text }}\n</div>\n" }]
3600
+ }], propDecorators: { text: [{
3601
+ type: Input
3602
+ }] } });
3603
+
3604
+ class TooltipDirective {
3605
+ overlay = inject(Overlay);
3606
+ elementRef = inject(ElementRef);
3607
+ positionBuilder = inject(OverlayPositionBuilder);
3608
+ overlayRef = null;
3609
+ longPressTimeout = null;
3610
+ // tooltipText = input<string>('');
3611
+ libTooltip = '';
3612
+ tooltipPosition = input('bottom');
3613
+ constructor() {
3614
+ effect(() => {
3615
+ this.hideTooltip();
3616
+ });
3617
+ }
3618
+ showTooltip() {
3619
+ if (this.overlayRef?.hasAttached())
3620
+ return;
3621
+ const position = this.getPosition(this.tooltipPosition());
3622
+ const positionStrategy = this.positionBuilder
3623
+ .flexibleConnectedTo(this.elementRef)
3624
+ .withPositions([position]);
3625
+ this.overlayRef = this.overlay.create({
3626
+ positionStrategy,
3627
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
3628
+ });
3629
+ const tooltipPortal = new ComponentPortal(TooltipComponent);
3630
+ const tooltipRef = this.overlayRef.attach(tooltipPortal);
3631
+ tooltipRef.instance.text = this.libTooltip;
3632
+ }
3633
+ hideTooltip() {
3634
+ if (this.overlayRef?.hasAttached()) {
3635
+ this.overlayRef.detach();
3636
+ }
3637
+ }
3638
+ getPosition(position) {
3639
+ switch (position) {
3640
+ case 'bottom':
3641
+ return {
3642
+ originX: 'center',
3643
+ originY: 'bottom',
3644
+ overlayX: 'center',
3645
+ overlayY: 'top',
3646
+ offsetY: 8,
3647
+ };
3648
+ case 'left':
3649
+ case 'before':
3650
+ return {
3651
+ originX: 'start',
3652
+ originY: 'center',
3653
+ overlayX: 'end',
3654
+ overlayY: 'center',
3655
+ offsetX: -8,
3656
+ };
3657
+ case 'right':
3658
+ case 'after':
3659
+ return {
3660
+ originX: 'end',
3661
+ originY: 'center',
3662
+ overlayX: 'start',
3663
+ overlayY: 'center',
3664
+ offsetX: 8,
3665
+ };
3666
+ default: // 'top'
3667
+ return {
3668
+ originX: 'center',
3669
+ originY: 'top',
3670
+ overlayX: 'center',
3671
+ overlayY: 'bottom',
3672
+ offsetY: -8,
3673
+ };
3674
+ }
3675
+ }
3676
+ isTouch() {
3677
+ return 'ontouchstart' in window || navigator.maxTouchPoints > 0;
3678
+ }
3679
+ // 👉 Hover for desktop
3680
+ onMouseEnter() {
3681
+ if (!this.isTouch()) {
3682
+ this.showTooltip();
3683
+ }
3684
+ }
3685
+ onMouseLeave() {
3686
+ if (!this.isTouch()) {
3687
+ this.hideTooltip();
3688
+ }
3689
+ }
3690
+ // 👉 Long press for mobile
3691
+ onTouchStart() {
3692
+ if (this.isTouch()) {
3693
+ this.longPressTimeout = setTimeout(() => {
3694
+ this.showTooltip();
3695
+ }, 500);
3696
+ }
3697
+ }
3698
+ onTouchEnd() {
3699
+ if (this.longPressTimeout) {
3700
+ clearTimeout(this.longPressTimeout);
3701
+ this.longPressTimeout = null;
3702
+ }
3703
+ this.hideTooltip();
3704
+ }
3705
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3706
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.7", type: TooltipDirective, isStandalone: true, selector: "[libTooltip]", inputs: { libTooltip: { classPropertyName: "libTooltip", publicName: "libTooltip", isSignal: false, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "touchstart": "onTouchStart()", "touchend": "onTouchEnd()", "touchcancel": "onTouchEnd()" } }, ngImport: i0 });
3707
+ }
3708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TooltipDirective, decorators: [{
3709
+ type: Directive,
3710
+ args: [{
3711
+ selector: '[libTooltip]',
3712
+ standalone: true,
3713
+ }]
3714
+ }], ctorParameters: () => [], propDecorators: { libTooltip: [{
3715
+ type: Input
3716
+ }], onMouseEnter: [{
3717
+ type: HostListener,
3718
+ args: ['mouseenter']
3719
+ }], onMouseLeave: [{
3720
+ type: HostListener,
3721
+ args: ['mouseleave']
3722
+ }], onTouchStart: [{
3723
+ type: HostListener,
3724
+ args: ['touchstart']
3725
+ }], onTouchEnd: [{
3726
+ type: HostListener,
3727
+ args: ['touchend']
3728
+ }, {
3729
+ type: HostListener,
3730
+ args: ['touchcancel']
3731
+ }] } });
3628
3732
 
3629
3733
  class ClickOutsideDirective {
3630
3734
  clickOutside = new EventEmitter();
@@ -6481,5 +6585,5 @@ function provideNglConfig(config) {
6481
6585
  * Generated bundle index. Do not edit.
6482
6586
  */
6483
6587
 
6484
- export { AlertDialogComponent, AppErrorComponent, AppSvgIconComponent, BaseApiService, BaseControlValueAccessor, BaseControlValueAccessorV2, BaseControlValueAccessorV3, BaseInputComponent, BaseOverlayComponent, BaseTableComponent, BreadcrumbComponent, ButtonComponent, CheckboxComponent, ClickOutsideDirective, CloseButtonComponent, ColorConverterService, ColorFormats, ColorPickerComponent, ColorPickerDirective, ContextMenuButtonComponent, ContextMenuIconComponent, DataTableComponent, DateInputComponent, DatePickerComponent, DatePickerOverlayComponent, DateRangePickerComponent, DateUtils, DropdownComponent, DynamicRendererComponent, EnvBannerComponent, FORM_ERRORS, FileUploaderComponent, FormValidationUtils, HumanizeFormMessagesPipe, InputDateFormat, InvalidControlScrollContainerDirective, InvalidControlScrollDirective, InvalidTokenError, ListviewComponent, LoaderComponent, LoaderService, MultiSelectDropdownAppearance, MultiSelectDropdownComponent, MultiSelectionFieldComponent, NGL_CONFIG, NetworkImageComponent, NglService, NoDataComponent, NoDataTableComponent, NumberInputComponent, OverlayContextMenuComponent, OverlayService, OverlayWizardUtils, PaginationComponent, PaginationState, PhoneNumberInputComponent, RadioButtonComponent, RequestState, ResizableColumnDirective, ResponsiveHelperComponent, SharedConstants, ShimmerComponent, SingleItemPickerInputComponent, SingleSelectionFieldComponent, SortableTableDirective, SpinnerComponent, State, StatusBadgeComponent, SvgUrlIconComponent, SwitchComponent, TableCustomComponent, TableResizableColumnsDirective, TemplateResolverArrayUtil, TemplateResolverFormat, TextAreaInputComponent, TextInputComponent, TimePickerComponent, ToastComponent, ToastService, ToasterComponent, TooltipComponent, UnsavedAwareDirective, arrayToCSV, arrayToSeparator, arrayToSpaceSeparator, deepEqual, defaultErrors, getDynamicTypeStructure, isDynamicType, isValid, jsonEqual, jwtDecode, mmddyyyyDateValidatorAsync, onlyFutureDateValidator, onlyPastDateValidator, openLink, printInvalidFields, provideNglConfig, resolveTemplateWithObject, toSentenceCase };
6588
+ export { AlertDialogComponent, AppErrorComponent, AppSvgIconComponent, BaseApiService, BaseControlValueAccessor, BaseControlValueAccessorV2, BaseControlValueAccessorV3, BaseInputComponent, BaseOverlayComponent, BaseTableComponent, BreadcrumbComponent, ButtonComponent, CheckboxComponent, ClickOutsideDirective, CloseButtonComponent, ColorConverterService, ColorFormats, ColorPickerComponent, ColorPickerDirective, ContextMenuButtonComponent, ContextMenuIconComponent, DataTableComponent, DateInputComponent, DatePickerComponent, DatePickerOverlayComponent, DateRangePickerComponent, DateUtils, DropdownComponent, DynamicRendererComponent, EnvBannerComponent, FORM_ERRORS, FileUploaderComponent, FormValidationUtils, HumanizeFormMessagesPipe, InputDateFormat, InvalidControlScrollContainerDirective, InvalidControlScrollDirective, InvalidTokenError, ListviewComponent, LoaderComponent, LoaderService, MultiSelectDropdownAppearance, MultiSelectDropdownComponent, MultiSelectionFieldComponent, NGL_CONFIG, NetworkImageComponent, NglService, NoDataComponent, NoDataTableComponent, NumberInputComponent, OverlayContextMenuComponent, OverlayService, OverlayWizardUtils, PaginationComponent, PaginationState, PhoneNumberInputComponent, RadioButtonComponent, RequestState, ResizableColumnDirective, ResponsiveHelperComponent, SharedConstants, ShimmerComponent, SingleItemPickerInputComponent, SingleSelectionFieldComponent, SortableTableDirective, SpinnerComponent, State, StatusBadgeComponent, SvgUrlIconComponent, SwitchComponent, TableCustomComponent, TableResizableColumnsDirective, TemplateResolverArrayUtil, TemplateResolverFormat, TextAreaInputComponent, TextInputComponent, TimePickerComponent, ToastComponent, ToastService, ToasterComponent, TooltipDirective, UnsavedAwareDirective, arrayToCSV, arrayToSeparator, arrayToSpaceSeparator, deepEqual, defaultErrors, getDynamicTypeStructure, isDynamicType, isValid, jsonEqual, jwtDecode, mmddyyyyDateValidatorAsync, onlyFutureDateValidator, onlyPastDateValidator, openLink, printInvalidFields, provideNglConfig, resolveTemplateWithObject, toSentenceCase };
6485
6589
  //# sourceMappingURL=vallift-ngl.mjs.map