@haloduck/ui
Version:
HaloDuck UI Library - Angular
854 lines (816 loc) • 39.3 kB
TypeScript
import { HttpClient } from '@angular/common/http';
import { FormGroup, FormBuilder, ControlValueAccessor } from '@angular/forms';
import * as i0 from '@angular/core';
import { EventEmitter, AfterViewInit, OnChanges, ElementRef, SimpleChanges, OnInit, OnDestroy, Type, Renderer2, Injector, TemplateRef } from '@angular/core';
import * as rxjs from 'rxjs';
import { Observable, Subject } from 'rxjs';
import { LngLat, MenuItemEx, SearchParams, TableRowProperty } from '@haloduck/core';
import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
import * as THREE from 'three';
import { STLLoader, OrbitControls } from 'three-stdlib';
import * as _haloduck_ui from '@haloduck/ui';
import { OverlayRef, Overlay } from '@angular/cdk/overlay';
import * as _jsverse_transloco from '@jsverse/transloco';
declare class AuthenticateComponent {
private fb;
private http;
private notificationService;
loginForm: FormGroup;
signupForm: FormGroup;
resetForm: FormGroup;
newPasswordForm: FormGroup;
otpForm: FormGroup;
stage: 'login' | 'signup' | 'reset' | 'newPassword' | 'otpVerify';
emailForReset: string;
constructor(fb: FormBuilder, http: HttpClient);
switchStage(stage: 'login' | 'signup' | 'reset' | 'newPassword' | 'otpVerify'): void;
login(): void;
confirmNewPassword(): void;
signup(): void;
reset(): void;
verifyOtp(): void;
get passwordValue(): string;
get isMinLength(): boolean;
get hasUppercase(): boolean;
get hasLowercase(): boolean;
get hasNumber(): boolean;
get hasSpecialChar(): boolean;
get isPasswordValid(): boolean;
get passwordRules(): {
label: string;
valid: boolean;
}[];
static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticateComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<AuthenticateComponent, "haloduck-authenticate", never, {}, {}, never, never, true, never>;
}
type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'none';
declare class ButtonComponent {
disabled: boolean | null;
variant: ButtonVariant;
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "haloduck-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, never>;
}
interface Option {
id?: string;
value: string;
isSticky?: boolean;
isExclusive?: boolean;
shouldManualInput?: boolean;
manualPrefix?: string;
}
declare class SelectDropdownComponent {
protected _filteredOptions: i0.WritableSignal<Option[]>;
protected _options: Option[];
protected _selectedOptionIds: string[];
protected manualInputValues: Record<string, string>;
protected activeManualKey: string | null;
selectedChange: EventEmitter<string[]>;
closeDropdown: EventEmitter<void>;
useFilter: boolean;
multiselect: boolean;
atLeastOne: boolean;
asButton: boolean;
set options(value: Option[] | null);
get options(): Option[] | null;
set selectedOptionIds(value: string[] | null);
get selectedOptions(): string[] | null;
onFilterInput(event: Event): void;
onToggleOption(option: Option): void;
isOptionSelected(option: Option): boolean;
private isIdExclusive;
private getManualKey;
private seedManualInputs;
onManualInputChange(option: Option, value: string): void;
onManualInputConfirm(option: Option): void;
onManualInputBlur(option: Option): void;
private emitSelectedChange;
private setSelected;
static ɵfac: i0.ɵɵFactoryDeclaration<SelectDropdownComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<SelectDropdownComponent, "haloduck-select-dropdown", never, { "useFilter": { "alias": "useFilter"; "required": false; }; "multiselect": { "alias": "multiselect"; "required": false; }; "atLeastOne": { "alias": "atLeastOne"; "required": false; }; "asButton": { "alias": "asButton"; "required": false; }; "options": { "alias": "options"; "required": false; }; "selectedOptionIds": { "alias": "selectedOptionIds"; "required": false; }; }, { "selectedChange": "selectedChange"; "closeDropdown": "closeDropdown"; }, never, never, true, never>;
}
declare class SelectComponent implements ControlValueAccessor, AfterViewInit, OnChanges {
private readonly translateService;
private readonly overlay;
private readonly viewContainerRef;
private readonly cdr;
private overlayRef;
selectedChange: EventEmitter<string | string[]>;
disabled: boolean | null;
loading: boolean;
variant: 'primary' | 'secondary' | 'danger' | 'none';
asButton: boolean;
useIcon: boolean;
useFilter: boolean;
multiselect: boolean;
placeholder: string;
atLeastOne: boolean;
showAll: boolean;
options: Option[] | null;
layout: 'horizontal' | 'vertical';
labelWidth: string;
set value(value: string[] | string);
get value(): string | string[] | null;
origin: ElementRef;
label: ElementRef;
isDropdownOpen: i0.WritableSignal<boolean>;
selectedOptionIds: string[];
displayedSelectedOptions: Option[];
private selectedIdToDisplayOption;
onClick(event: MouseEvent): void;
onKeyDown(event: KeyboardEvent): void;
onDeselectOption(event: Event, option: Option): void;
getSelectedValue(): string | string[] | null;
onChange: (_value: any) => void;
onTouched: () => void;
writeValue(value: string[] | string): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
setDisabledState?(isDisabled: boolean): void;
ngAfterViewInit(): void;
constructor();
ngOnChanges(changes: SimpleChanges): void;
private recomputeSelectedOptions;
private isManualSelection;
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "haloduck-select", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "asButton": { "alias": "asButton"; "required": false; }; "useIcon": { "alias": "useIcon"; "required": false; }; "useFilter": { "alias": "useFilter"; "required": false; }; "multiselect": { "alias": "multiselect"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "atLeastOne": { "alias": "atLeastOne"; "required": false; }; "showAll": { "alias": "showAll"; "required": false; }; "options": { "alias": "options"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "labelWidth": { "alias": "labelWidth"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "selectedChange": "selectedChange"; }, never, ["*", "buttonIcon"], true, never>;
}
interface DateRange {
from: string;
to: string;
}
interface DateRangeDropdown {
currentYear: number;
currentMonth: number;
from?: string;
listCalendarDate: CalendarDate[];
}
interface CalendarDate {
datetime: string;
date: string;
isToday: boolean;
isTheDate: boolean;
isCurrentMonth: boolean;
}
declare class CalendarComponent implements OnInit {
private readonly translateService;
monthSelect: SelectComponent;
singleDate: boolean;
firstDayOfWeek: number;
selectedDate?: string;
selectedDateRange?: DateRange;
dateChange: EventEmitter<CalendarDate>;
dateRangeChange: EventEmitter<DateRange>;
currentYear: number;
currentMonth: number;
listCalendarDate: CalendarDate[];
isFromSelected: boolean;
yearList: Option[];
monthList: Option[];
onAdjustYear(amount: number): void;
onAdjustMonth(amount: number): void;
onSelectCalendarDate(date: CalendarDate): void;
onCalenderOpen(value: string | DateRange): void;
calculateDateRangeDropdown(): void;
onSelectYear(year: string | string[]): void;
onSelectMonth(month: string | string[]): void;
ngOnInit(): void;
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<CalendarComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "haloduck-calendar", never, { "singleDate": { "alias": "singleDate"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; "selectedDate": { "alias": "selectedDate"; "required": false; }; "selectedDateRange": { "alias": "selectedDateRange"; "required": false; }; }, { "dateChange": "dateChange"; "dateRangeChange": "dateRangeChange"; }, never, never, true, never>;
}
declare function dateToString(date: Date): string;
interface Button {
id: string;
label: string;
variant: ButtonVariant;
}
declare class ConfirmDialogService {
private readonly dialogService;
private clickedButton$;
confirm(title: string, message: string, buttons: Button[]): Observable<string>;
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialogService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmDialogService>;
}
declare class CopyButtonComponent {
text: string;
isAnimating: boolean;
copyToClipboard($event: Event): void;
static ɵfac: i0.ɵɵFactoryDeclaration<CopyButtonComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<CopyButtonComponent, "haloduck-copy-button", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
}
declare class DatePickerComponent implements ControlValueAccessor, OnInit, OnDestroy {
destroy$: Subject<void>;
private readonly translateService;
private readonly overlay;
disabled: boolean;
placeholder: string;
firstDayOfWeek: number;
origin: ElementRef;
selectedDate?: string;
private overlayRef?;
onClick(): void;
onDateChange(date: CalendarDate): void;
openCalendar(): void;
closeCalendar(): void;
onChange: (value: any) => void;
onTouched: () => void;
writeValue(value: string): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
setDisabledState?(isDisabled: boolean): void;
ngOnInit(): void;
ngOnDestroy(): void;
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "haloduck-date-picker", never, { "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; }, {}, never, ["*"], true, never>;
}
declare class DateRangeComponent implements ControlValueAccessor, OnDestroy {
destroy$: Subject<void>;
private readonly translateService;
private readonly overlay;
dateRangeOptions: Option[];
disabled: boolean;
placeholder: string;
firstDayOfWeek: number;
origin: ElementRef;
selectedDateRangeOptionId?: string;
dateRange?: DateRange;
private overlayRef?;
getSelectedDateRangeString(): any;
onClick(): void;
onDateRangeOptionChange(selectedOptionId: string): void;
onDateRangeChange(dateRange: DateRange): void;
calculateDateRange(): void;
getDateRangeOptionId(dateRange: DateRange): string;
openCalendar(): void;
closeCalendar(): void;
onChange: (value: any) => void;
onTouched: () => void;
writeValue(value: DateRange): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
setDisabledState?(isDisabled: boolean): void;
ngOnDestroy(): void;
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeComponent, "haloduck-date-range", never, { "dateRangeOptions": { "alias": "dateRangeOptions"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; }, {}, never, ["*"], true, never>;
}
declare class DrawCanvasComponent implements AfterViewInit, ControlValueAccessor {
imagePath: string;
lineColor: string;
canvasRef: ElementRef<HTMLCanvasElement>;
private ctx;
private isDrawing;
private onChange;
private onTouched;
ngAfterViewInit(): void;
private loadImage;
private setupCanvas;
private startMouseDrawing;
private mouseDraw;
private startTouchDrawing;
private touchDraw;
private stopDrawing;
saveDrawing(): void;
private dataURLToBlob;
writeValue(file: File | null): void;
registerOnChange(fn: (file: File | null) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState?(isDisabled: boolean): void;
onReset(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DrawCanvasComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DrawCanvasComponent, "haloduck-draw-canvas", never, { "imagePath": { "alias": "imagePath"; "required": false; }; "lineColor": { "alias": "lineColor"; "required": false; }; }, {}, never, never, true, never>;
}
declare const ERROR_NOT_ACCEPTABLE_FILE_TYPE = "NOT_ACCEPTABLE_FILE_TYPE";
declare const ERROR_OVER_SIZE = "OVER_SIZE";
declare const ERROR_OVER_COUNT = "OVER_COUNT";
declare const ERROR_UPLOAD = "UPLOAD";
interface FileEx extends File {
isUploading: boolean;
isUploaded: boolean;
key: string;
name: string;
size: number;
type: string;
tag: string[];
previewUrl?: string;
}
declare class FileUploaderComponent implements ControlValueAccessor {
disabled: boolean;
urlPrefix: string;
keyPrefix: string;
uploadApi: (file: File, keyPrefix: string) => Observable<string>;
multiple: boolean;
maxCount: number;
maxSize: number;
accept: string[];
filesAdded: EventEmitter<FileEx[]>;
fileRemoved: EventEmitter<FileEx>;
error: EventEmitter<{
error: string;
file: FileEx;
}[]>;
private readonly cdr;
private readonly zone;
files: FileEx[];
isUploading: boolean;
isDragOver: boolean;
private onChange;
private onTouched;
writeValue(files: FileEx[]): void;
registerOnChange(fn: (files: FileEx[]) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState?(isDisabled: boolean): void;
onFileSelected(event: Event): void;
removeFile(index: number): void;
onDragOver(event: DragEvent): void;
onDragLeave(event: DragEvent): void;
onDrop(event: DragEvent): void;
getFilePreview(file: FileEx): string;
addFiles(addedFiles: FileEx[]): void;
isAcceptableFileType(file: File): boolean;
startUpload(): Observable<FileEx[]>;
static ɵfac: i0.ɵɵFactoryDeclaration<FileUploaderComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FileUploaderComponent, "haloduck-file-uploader", never, { "disabled": { "alias": "disabled"; "required": false; }; "urlPrefix": { "alias": "urlPrefix"; "required": false; }; "keyPrefix": { "alias": "keyPrefix"; "required": false; }; "uploadApi": { "alias": "uploadApi"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "maxCount": { "alias": "maxCount"; "required": false; }; "maxSize": { "alias": "maxSize"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; }, { "filesAdded": "filesAdded"; "fileRemoved": "fileRemoved"; "error": "error"; }, never, never, true, never>;
}
declare class FlipComponent {
title: string;
set isOpen(value: boolean);
_isOpen: i0.WritableSignal<boolean>;
toggle(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<FlipComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FlipComponent, "haloduck-flip", never, { "title": { "alias": "title"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; }, {}, never, ["*"], true, never>;
}
declare class ImageUploaderComponent implements ControlValueAccessor, OnInit {
disabled: boolean;
id: string;
alt: string;
urlPrefix: string;
keyPrefix: string;
uploadApi: (file: File, keyPrefix: string) => Observable<string>;
backgroundImage: string;
shouldPassToSibling: boolean;
passToSibling: EventEmitter<FileEx[]>;
fileAdded: EventEmitter<FileEx>;
fileRemoved: EventEmitter<FileEx>;
error: EventEmitter<{
error: string;
file: FileEx;
}[]>;
imageUrl: string | null;
file: FileEx | null;
isDragOver: boolean;
isUploading: boolean;
private readonly dialogService;
private onChange;
private onTouched;
writeValue(key: string | null): void;
registerOnChange(fn: (url: string | null) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState?(isDisabled: boolean): void;
startUpload(): Observable<FileEx>;
onFileSelected(event: Event): void;
onDrop(event: DragEvent): void;
onDragOver(event: DragEvent): void;
onDragLeave(event: DragEvent): void;
onDragStart(event: DragEvent): void;
onDragEnd(event: DragEvent): void;
removeImage(): void;
setFiles(listFile: FileEx[]): void;
previewImage(imageUrl: string): void;
ngOnInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ImageUploaderComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ImageUploaderComponent, "haloduck-image-uploader", never, { "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "urlPrefix": { "alias": "urlPrefix"; "required": false; }; "keyPrefix": { "alias": "keyPrefix"; "required": false; }; "uploadApi": { "alias": "uploadApi"; "required": false; }; "backgroundImage": { "alias": "backgroundImage"; "required": false; }; "shouldPassToSibling": { "alias": "shouldPassToSibling"; "required": false; }; }, { "passToSibling": "passToSibling"; "fileAdded": "fileAdded"; "fileRemoved": "fileRemoved"; "error": "error"; }, never, ["*"], true, never>;
}
declare class ImageViewerComponent {
context: any;
imageUrl: string;
imageAlt: string;
private readonly dialogService;
onClose(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ImageViewerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ImageViewerComponent, "haloduck-image-viewer", never, { "context": { "alias": "context"; "required": false; }; "imageUrl": { "alias": "imageUrl"; "required": false; }; "imageAlt": { "alias": "imageAlt"; "required": false; }; }, {}, never, never, true, never>;
}
declare class InputComponent implements ControlValueAccessor, AfterViewInit {
private readonly cdr;
label: ElementRef;
private inputElement;
placeholder: string;
type: string;
disabled: boolean;
rows: number;
autofocus: boolean;
value: string;
onChange: (value: any) => void;
onTouched: () => void;
writeValue(value: any): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
setDisabledState?(isDisabled: boolean): void;
focus(): void;
onInput(event: Event): void;
onKeydown($event: KeyboardEvent): void;
ngAfterViewInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "haloduck-input", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, ["*"], true, never>;
}
declare class LanguageSelectorComponent implements OnInit {
origin: ElementRef;
private readonly destroy$;
private readonly translateService;
private readonly overlay;
language: i0.WritableSignal<string>;
private overlayRef?;
showLanguageOptions(): void;
hideLanguageOptions(): void;
ngOnInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<LanguageSelectorComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LanguageSelectorComponent, "haloduck-language-selector", never, {}, {}, never, never, true, never>;
}
declare const google: any;
interface Location {
plusCode: string;
postalCode: string;
countryCode: string;
country: string;
area1: string;
area2: string;
area3: string;
formatted: string;
lat: number;
lng: number;
}
declare class MapToAddressComponent implements OnInit, ControlValueAccessor {
private readonly coreService;
mapId: string;
defaultLngLat: LngLat;
disabled: boolean;
language: string;
currentLngLat?: LngLat;
private _currentAddress?;
private _isGoogleLoaded;
private _loadError?;
get isGoogleLoaded(): boolean;
get loadError(): string | undefined;
set currentAddress(value: string);
locationChanged: EventEmitter<Location>;
map: any;
marker: any;
location: Location;
private onChange;
private onTouched;
ngOnInit(): Promise<void>;
initScript(): Promise<void>;
initMap(): void;
initializeMap(lngLat: LngLat): void;
onClick(event: any): void;
setMapToAddress(): void;
getAddress(): void;
parseAddress(results: any): Location;
getComponentLongName(results: any[], type: string): string;
getComponentShortName(results: any[], type: string): string;
writeValue(value: Location): void;
registerOnChange(fn: (value: Location) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState?(isDisabled: boolean): void;
static ɵfac: i0.ɵɵFactoryDeclaration<MapToAddressComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<MapToAddressComponent, "haloduck-map-to-address", never, { "disabled": { "alias": "disabled"; "required": false; }; "language": { "alias": "language"; "required": false; }; "currentLngLat": { "alias": "currentLngLat"; "required": false; }; "currentAddress": { "alias": "currentAddress"; "required": false; }; }, { "locationChanged": "locationChanged"; }, never, never, true, never>;
}
declare class SideMenuComponent {
menuItems: Array<MenuItemEx>;
depth: number;
menuItemSelected: EventEmitter<MenuItemEx>;
static ɵfac: i0.ɵɵFactoryDeclaration<SideMenuComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<SideMenuComponent, "haloduck-side-menu", never, { "menuItems": { "alias": "menuItems"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; }, { "menuItemSelected": "menuItemSelected"; }, never, never, true, never>;
}
declare class SideMenuItemComponent implements OnInit {
private sanitizer;
private readonly router;
menuItem: MenuItemEx;
depth: number;
menuItemSelectHandler?: EventEmitter<MenuItemEx>;
iconSvg: SafeHtml;
constructor(sanitizer: DomSanitizer);
ngOnInit(): void;
onMenuItemSelected(menuItem: MenuItemEx): void;
navigateTo(link: string[]): void;
static ɵfac: i0.ɵɵFactoryDeclaration<SideMenuItemComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<SideMenuItemComponent, "haloduck-side-menu-item", never, { "menuItem": { "alias": "menuItem"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "menuItemSelectHandler": { "alias": "menuItemSelectHandler"; "required": false; }; }, {}, never, never, true, never>;
}
declare class StlViewerComponent implements OnInit, AfterViewInit, OnDestroy {
fileUrl: string;
filename: string;
context: any;
containerRef: ElementRef;
private readonly dialogService;
isPopup: boolean;
scene: THREE.Scene;
camera: THREE.PerspectiveCamera;
renderer: THREE.WebGLRenderer;
loader: STLLoader;
controls: OrbitControls;
loadingPercentage: number;
showStl(): void;
download(): void;
closeDialog(): void;
animate: () => void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
ngOnInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<StlViewerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<StlViewerComponent, "haloduck-stl-viewer", never, { "fileUrl": { "alias": "fileUrl"; "required": false; }; "filename": { "alias": "filename"; "required": false; }; "context": { "alias": "context"; "required": false; }; }, {}, never, never, true, never>;
}
interface TableColumn {
key: string | string[];
label: string;
width?: string;
align?: 'text-left' | 'text-center' | 'text-right';
sortable?: boolean;
sort?: SearchParams.Sort;
type?: 'number' | 'date' | 'datetime' | 'time' | 'custom';
breakpoint?: string;
hidden?: Observable<boolean>;
customRenderFn?: (data: any) => Observable<string>;
customRenderTemplate?: string;
}
interface TableRow extends TableRowProperty {
[key: string]: any;
}
declare class TableComponent implements OnInit, AfterViewInit {
private readonly coreService;
private readonly tableSettingService;
loadMoreRowRef?: ElementRef;
tableLayout: 'fixed' | 'auto';
tableName: string;
useLoadMore: boolean;
private defaultAutoLoad;
private defaultShowHeader;
columns: TableColumn[];
rows: Observable<TableRow[]>;
isLoading: Observable<boolean>;
isPaging: Observable<boolean>;
sort: Observable<SearchParams.Sort[]>;
expandedTemplate?: any;
customTemplates: {
[key: string]: any;
};
onSortChange: EventEmitter<SearchParams.Sort>;
lastEvaluatedKey: Observable<any>;
onLoadMore: EventEmitter<any>;
onRowClick: EventEmitter<TableRow>;
onRowDblClick: EventEmitter<TableRow>;
settings$: Observable<_haloduck_ui.TableSettings>;
showHeader$: Observable<boolean>;
autoLoad$: Observable<boolean>;
getColumnValue(row: TableRow, column: TableColumn): Observable<string>;
getColumnValueRaw(row: TableRow, column: TableColumn): any;
getColumnValueRawWithArrayKey(row: TableRow, column: TableColumn): any;
getNumber(data: any): Observable<string>;
getDate(data: any): Observable<string>;
getDateTime(data: any): Observable<string>;
getTime(data: any): Observable<string>;
onUpdateSort(field: string | string[], direction: SearchParams.SortDirection): void;
getSortDirection(field: string | string[]): Observable<string | undefined>;
onLoadMoreClicked(): void;
onAutoLoadTriggered(): void;
onRowClicked(row: TableRow): void;
onRowDblClicked(row: TableRow): void;
ngOnInit(): void;
openSettings(): void;
ngAfterViewInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "haloduck-table", never, { "tableLayout": { "alias": "tableLayout"; "required": false; }; "tableName": { "alias": "tableName"; "required": false; }; "useLoadMore": { "alias": "useLoadMore"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "isPaging": { "alias": "isPaging"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "expandedTemplate": { "alias": "expandedTemplate"; "required": false; }; "customTemplates": { "alias": "customTemplates"; "required": false; }; "lastEvaluatedKey": { "alias": "lastEvaluatedKey"; "required": false; }; }, { "onSortChange": "onSortChange"; "onLoadMore": "onLoadMore"; "onRowClick": "onRowClick"; "onRowDblClick": "onRowDblClick"; }, never, never, true, never>;
}
interface TableSettings {
showHeader: boolean;
autoLoad: boolean;
}
declare class TableSettingService {
private dialogService;
private currentOverlayRef?;
private currentTableNameSubject;
private settingsSubjects;
private defaultSettings;
get currentTableName$(): Observable<string>;
show(tableName: string): void;
hide(): void;
getSettings(tableName: string): Observable<TableSettings>;
setCurrentTableName(tableName: string): void;
updateSettings(tableName: string, settings: TableSettings): void;
private loadSettingsFromStorage;
private saveSettingsToStorage;
static ɵfac: i0.ɵɵFactoryDeclaration<TableSettingService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<TableSettingService>;
}
declare class TableSettingComponent implements OnInit {
private readonly tableSettingService;
context?: {
tableName: string;
overlayRef: OverlayRef;
};
get currentSettings$(): rxjs.Observable<TableSettings>;
ngOnInit(): void;
close(): void;
onSettingChange(settings: TableSettings): void;
static ɵfac: i0.ɵɵFactoryDeclaration<TableSettingComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TableSettingComponent, "haloduck-table-setting", never, { "context": { "alias": "context"; "required": false; }; }, {}, never, never, true, never>;
}
declare class ToggleComponent implements ControlValueAccessor, AfterViewInit {
layout: 'horizontal' | 'vertical';
value: boolean | null;
disabled: boolean;
nullable: boolean;
toggled: EventEmitter<boolean | null>;
label: ElementRef;
onChange: (value: any) => void;
onTouched: () => void;
writeValue(value: any): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
setDisabledState?(isDisabled: boolean): void;
onToggle(): void;
ngAfterViewInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ToggleComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ToggleComponent, "haloduck-toggle", never, { "layout": { "alias": "layout"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "nullable": { "alias": "nullable"; "required": false; }; }, { "toggled": "toggled"; }, never, ["*"], true, never>;
}
interface TabItem {
id?: string;
label: string;
component: Type<any>;
inputs?: Record<string, any>;
}
declare class TabsComponent implements OnChanges, AfterViewInit {
tabs: TabItem[];
selectedIndex: number;
layout: 'horizontal' | 'vertical';
labelWidth: string;
selectedIndexChange: EventEmitter<number>;
label: ElementRef;
ngOnChanges(changes: SimpleChanges): void;
ngAfterViewInit(): void;
get current(): TabItem | null;
select(index: number): void;
private ensureSelectedInRange;
static ɵfac: i0.ɵɵFactoryDeclaration<TabsComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "haloduck-tabs", never, { "tabs": { "alias": "tabs"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "labelWidth": { "alias": "labelWidth"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; }, never, ["[slot=label]"], true, never>;
}
declare class TagInputComponent implements ControlValueAccessor, AfterViewInit {
label: ElementRef;
inputEl: ElementRef<HTMLInputElement>;
placeholder: string;
disabled: boolean;
allowDuplicates: boolean;
set value(tags: string[] | null);
valueChange: EventEmitter<string[]>;
tags: string[];
inputValue: string;
onChange: (value: any) => void;
onTouched: () => void;
writeValue(value: string[] | null): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
setDisabledState(isDisabled: boolean): void;
ngAfterViewInit(): void;
focus(): void;
onInput(event: Event): void;
onBlur(): void;
onKeydown(event: KeyboardEvent): void;
removeTag(index: number): void;
private commitCurrentInput;
private addTag;
private emitChanges;
static ɵfac: i0.ɵɵFactoryDeclaration<TagInputComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TagInputComponent, "haloduck-tag-input", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>;
}
declare class TagViewerComponent implements AfterViewInit {
label: ElementRef;
tags: string[];
shouldWrap: boolean;
set value(tags: string[] | null);
ngAfterViewInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<TagViewerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TagViewerComponent, "haloduck-tag-viewer", never, { "shouldWrap": { "alias": "shouldWrap"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, ["*"], true, never>;
}
interface GroupedConfig {
layoutClasses?: string;
bgClasses?: string;
borderClasses?: string;
labelText?: string;
labelClasses?: string;
labelOffset?: string;
}
declare class GroupedDirective implements OnInit {
private elementRef;
private renderer;
haloduckGrouped: GroupedConfig | string;
layoutClasses: string;
bgClasses: string;
borderClasses: string;
labelText: string;
labelClasses: string;
labelOffset: string;
hostClasses: string;
private labelElement;
constructor(elementRef: ElementRef, renderer: Renderer2);
ngOnInit(): void;
private applyConfig;
private createLayout;
private createBorder;
private createLabel;
private addClasses;
private removeBorderClasses;
updateLabel(text: string): void;
toggleLabel(show: boolean): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GroupedDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GroupedDirective, "[haloduckGrouped]", never, { "haloduckGrouped": { "alias": "haloduckGrouped"; "required": false; }; "layoutClasses": { "alias": "layoutClasses"; "required": false; }; "bgClasses": { "alias": "bgClasses"; "required": false; }; "borderClasses": { "alias": "borderClasses"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelClasses": { "alias": "labelClasses"; "required": false; }; "labelOffset": { "alias": "labelOffset"; "required": false; }; }, {}, never, never, true, never>;
}
declare class AutoLoadDirective implements OnInit, OnDestroy, OnChanges {
private readonly elementRef;
private readonly ngZone;
private observer?;
private isLoading;
autoLoadEnabled: boolean;
autoLoadThreshold: number;
autoLoadRootMargin: string;
autoLoadTrigger: EventEmitter<void>;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
private setupObserver;
private initializeObserver;
private triggerLoad;
private temporarilyDisableObserver;
private disconnect;
setLoadingState(loading: boolean): void;
resetAutoLoad(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<AutoLoadDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<AutoLoadDirective, "[haloduckAutoLoad]", never, { "autoLoadEnabled": { "alias": "autoLoadEnabled"; "required": false; }; "autoLoadThreshold": { "alias": "autoLoadThreshold"; "required": false; }; "autoLoadRootMargin": { "alias": "autoLoadRootMargin"; "required": false; }; }, { "autoLoadTrigger": "autoLoadTrigger"; }, never, never, true, never>;
}
declare class BreadcrumbComponent implements OnInit {
private readonly breadcrumbService;
listBreadcrumb: {
label: string;
url: string;
}[];
ngOnInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "haloduck-breadcrumb", never, {}, {}, never, never, true, never>;
}
declare class DialogService {
private overlay;
private injector;
private dialogStack;
constructor(overlay: Overlay, injector: Injector);
open<T>(component: Type<T> | TemplateRef<any>, data?: any, classList?: string[]): OverlayRef;
close(overlayRef?: OverlayRef): void;
closeAll(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
}
declare class NotificationComponent {
private readonly notificationService;
listNotification$: rxjs.Observable<_haloduck_ui.Notification[]>;
removeNotification(id: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NotificationComponent, "haloduck-notification", never, {}, {}, never, never, true, never>;
}
declare global {
interface Window {
FlutterApp?: {
postMessage: (message: string) => void;
};
}
}
type NotificationType = 'success' | 'error' | 'warning' | 'info';
interface Notification {
id: string;
type: NotificationType;
message: string;
timeout?: number;
timeoutRef?: number;
}
declare class NotificationService {
private listNotification$;
private listNotification;
showNotification(title: string, body: string, timeout?: number, payload?: any): void;
_showNotification(type: NotificationType, message: string, timeout?: number): string;
getListNotification(): Observable<Notification[]>;
removeNotificationById(id: string): void;
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
}
declare class PictureNameComponent {
name?: string;
pictureKey?: string;
cdnUrl?: string;
static ɵfac: i0.ɵɵFactoryDeclaration<PictureNameComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<PictureNameComponent, "haloduck-picture-name", never, { "name": { "alias": "name"; "required": false; }; "pictureKey": { "alias": "pictureKey"; "required": false; }; "cdnUrl": { "alias": "cdnUrl"; "required": false; }; }, {}, never, never, true, never>;
}
declare const provideHaloduckTransloco: () => {
provide: i0.InjectionToken<_jsverse_transloco.TranslocoScope>;
useValue: _jsverse_transloco.TranslocoScope;
multi: boolean;
}[];
export { AuthenticateComponent, AutoLoadDirective, BreadcrumbComponent, ButtonComponent, CalendarComponent, ConfirmDialogService, CopyButtonComponent, DatePickerComponent, DateRangeComponent, DialogService, DrawCanvasComponent, ERROR_NOT_ACCEPTABLE_FILE_TYPE, ERROR_OVER_COUNT, ERROR_OVER_SIZE, ERROR_UPLOAD, FileUploaderComponent, FlipComponent, GroupedDirective, ImageUploaderComponent, ImageViewerComponent, InputComponent, LanguageSelectorComponent, MapToAddressComponent, NotificationComponent, NotificationService, PictureNameComponent, SelectComponent, SelectDropdownComponent, SideMenuComponent, SideMenuItemComponent, StlViewerComponent, TableComponent, TableSettingComponent, TableSettingService, TabsComponent, TagInputComponent, TagViewerComponent, ToggleComponent, dateToString, google, provideHaloduckTransloco };
export type { ButtonVariant, CalendarDate, DateRange, DateRangeDropdown, FileEx, GroupedConfig, Location, Notification, NotificationType, Option, TabItem, TableColumn, TableRow, TableSettings };