dolfo-angular 1.197.0 → 1.198.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.
|
@@ -797,10 +797,12 @@ class ComboboxComponent extends BaseFormInput {
|
|
|
797
797
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => ComboboxComponent), multi: true },
|
|
798
798
|
{ provide: BaseFormInput, useExisting: ComboboxComponent }
|
|
799
799
|
], viewQueries: [{ propertyName: "combo", first: true, predicate: ["combo"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `<dolfo-input-container>
|
|
800
|
-
<div class="combobox" [class.opened]="opened()" #combo tabindex="0" (focus)="focus($event)" (blur)="onBlur.emit($event)" [class.disabled]="input.disabled">
|
|
800
|
+
<div class="combobox" [class.opened]="opened()" #combo tabindex="0" (focus)="focus($event)" (blur)="onBlur.emit($event); opened.set(false)" [class.disabled]="input.disabled">
|
|
801
801
|
<div class="combobox-label">
|
|
802
802
|
@if(hasValue && !input.disabled){
|
|
803
803
|
<dolfo-icon [dolfoTooltip]="'form.resetValue' | translate" name="cross" (click)="input.setValue(null); $event.stopPropagation()"></dolfo-icon>
|
|
804
|
+
}@else {
|
|
805
|
+
<dolfo-icon name="circle-down" class="combo-icon"></dolfo-icon>
|
|
804
806
|
}
|
|
805
807
|
<span>{{ comboLabel() | translate }}</span>
|
|
806
808
|
</div>
|
|
@@ -822,10 +824,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
822
824
|
args: [{
|
|
823
825
|
selector: "dolfo-combobox",
|
|
824
826
|
template: `<dolfo-input-container>
|
|
825
|
-
<div class="combobox" [class.opened]="opened()" #combo tabindex="0" (focus)="focus($event)" (blur)="onBlur.emit($event)" [class.disabled]="input.disabled">
|
|
827
|
+
<div class="combobox" [class.opened]="opened()" #combo tabindex="0" (focus)="focus($event)" (blur)="onBlur.emit($event); opened.set(false)" [class.disabled]="input.disabled">
|
|
826
828
|
<div class="combobox-label">
|
|
827
829
|
@if(hasValue && !input.disabled){
|
|
828
830
|
<dolfo-icon [dolfoTooltip]="'form.resetValue' | translate" name="cross" (click)="input.setValue(null); $event.stopPropagation()"></dolfo-icon>
|
|
831
|
+
}@else {
|
|
832
|
+
<dolfo-icon name="circle-down" class="combo-icon"></dolfo-icon>
|
|
829
833
|
}
|
|
830
834
|
<span>{{ comboLabel() | translate }}</span>
|
|
831
835
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dolfo-angular.mjs","sources":["../../projects/dolfo-angular/src/lib/shared/classes/subscriptable.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/components/dialog.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/components/grid.ts","../../projects/dolfo-angular/src/lib/components/layout/icon.component.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/components/icon.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/translate.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/utils.ts","../../projects/dolfo-angular/src/lib/shared/services/context-menu.service.ts","../../projects/dolfo-angular/src/lib/shared/services/translate.service.ts","../../projects/dolfo-angular/src/lib/shared/services/dialog.service.ts","../../projects/dolfo-angular/src/lib/shared/services/notification.service.ts","../../projects/dolfo-angular/src/lib/shared/services/popover.service.ts","../../projects/dolfo-angular/src/lib/shared/services/tooltip.service.ts","../../projects/dolfo-angular/src/lib/shared/directives/tooltip.directive.ts","../../projects/dolfo-angular/src/lib/shared/pipes/translate.pipe.ts","../../projects/dolfo-angular/src/lib/components/form/input-container.component.ts","../../projects/dolfo-angular/src/lib/components/form/base-form-input.ts","../../projects/dolfo-angular/src/lib/components/form/autocomplete.component.ts","../../projects/dolfo-angular/src/lib/components/layout/icon-wrapper.component.ts","../../projects/dolfo-angular/src/lib/components/form/combobox.component.ts","../../projects/dolfo-angular/src/lib/components/form/datepicker.component.ts","../../projects/dolfo-angular/src/lib/shared/classes/formable.ts","../../projects/dolfo-angular/src/lib/components/layout/context-menu.component.ts","../../projects/dolfo-angular/src/lib/components/form/input-text.component.ts","../../projects/dolfo-angular/src/lib/components/form/input-radio.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-content.component.ts","../../projects/dolfo-angular/src/lib/components/layout/button.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-header.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-footer.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-layout.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-layout.component.html","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog.component.ts","../../projects/dolfo-angular/src/lib/components/layout/notification.component.ts","../../projects/dolfo-angular/src/lib/components/layout/popover.component.ts","../../projects/dolfo-angular/src/lib/components/layout/tooltip.component.ts","../../projects/dolfo-angular/src/lib/shared/classes/overlay-manager.ts","../../projects/dolfo-angular/src/lib/shared/directives/context-menu.directive.ts","../../projects/dolfo-angular/src/lib/shared/directives/popover.directive.ts","../../projects/dolfo-angular/src/lib/shared/directives/scroll-drag.directive.ts","../../projects/dolfo-angular/src/lib/shared/directives/directives.module.ts","../../projects/dolfo-angular/src/lib/components/layout/loader.component.ts","../../projects/dolfo-angular/src/lib/components/layout/layout.module.ts","../../projects/dolfo-angular/src/lib/components/form/input-checkbox.component.ts","../../projects/dolfo-angular/src/lib/components/form/form.module.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-layout.module.ts","../../projects/dolfo-angular/src/lib/components/layout/grid/grid.component.ts","../../projects/dolfo-angular/src/lib/components/layout/grid/grid.component.html","../../projects/dolfo-angular/src/lib/components/layout/grid/grid.module.ts","../../projects/dolfo-angular/src/public-api.ts","../../projects/dolfo-angular/src/dolfo-angular.ts"],"sourcesContent":["import { Directive, OnDestroy } from \"@angular/core\"\r\nimport { Subscription } from \"rxjs\"\r\n\r\n@Directive()\r\nexport abstract class Subscriptable implements OnDestroy{\r\n private subs: Subscription[] = []\r\n\r\n protected addSubscription = (sub: Subscription) => this.subs.push(sub)\r\n\r\n ngOnDestroy(){\r\n this.subs.forEach(s => s.unsubscribe())\r\n }\r\n}\r\n","import { FormControl } from \"@angular/forms\"\r\nimport { ButtonColor } from \"./button\"\r\nimport { AutocompleteConfig, ComboOption } from \"./combobox\"\r\nimport { InputType } from \"./form\"\r\nimport { IconName } from \"./icon\"\r\n\r\nexport enum DialogActionType{ OK, NO, CANCEL }\r\n\r\nexport type DialogOutput = {\r\n type: DialogActionType\r\n data: Record<string, any>\r\n}\r\n\r\nexport type DialogForm = {\r\n control: FormControl\r\n type: InputType | \"date\" | \"radio\" | \"autocomplete\" | \"combobox\"\r\n name: string\r\n label?: string\r\n // Used only if type = \"autocomplete\"\r\n autocompleteCfg?: AutocompleteConfig<any>\r\n // Used only if type = \"radio\" or \"combobox\"\r\n options?: ComboOption[]\r\n}[]\r\n\r\nexport type DialogType = \"info\" | \"confirm\" | \"loading\" | \"error\"\r\n\r\nexport type IDialogInput = {\r\n title?: string\r\n message: string\r\n type?: DialogType\r\n width?: number\r\n hideCloseX?: boolean\r\n form?: DialogForm\r\n component?: DialogComponentInput,\r\n buttons?: DialogFooterButton[]\r\n}\r\n\r\nexport interface DialogComponentInput{\r\n readonly type: new() => IDialogInput\r\n readonly input?: any\r\n}\r\n\r\nexport type DialogIcon = {\r\n icon: string\r\n color: ButtonColor\r\n}\r\n\r\nexport type DialogFooterButton = {\r\n label: string\r\n color: ButtonColor\r\n icon?: IconName\r\n disabled?: boolean\r\n loading?: boolean\r\n onClick: () => void\r\n}","import { BehaviorSubject, Observable } from \"rxjs\"\r\nimport { ButtonColor } from \"./button\"\r\nimport { ContextMenuItem } from \"./context-menu\"\r\n\r\nexport enum ColumnAlign{\r\n LEFT = \"left\",\r\n RIGHT = \"right\",\r\n CENTER = \"center\"\r\n}\r\n\r\nexport enum ColumnDataType{ TEXT, DATE, DATETIME }\r\n\r\nexport interface GridAction{\r\n readonly icon: string\r\n readonly title?: string\r\n readonly disabled?: boolean\r\n readonly color?: ButtonColor\r\n readonly onClick: () => void\r\n}\r\n\r\nexport interface GridColumn{\r\n readonly label: string\r\n readonly field: string\r\n readonly dataType: ColumnDataType\r\n readonly width?: number\r\n readonly align?: ColumnAlign\r\n readonly formatter?: (value: any) => string\r\n}\r\n\r\nexport interface IGridConfig<T>{\r\n readonly items: T[] | Observable<T[]>\r\n readonly columns: GridColumn[]\r\n readonly selection?: {\r\n readonly type?: \"single\" | \"multiple\"\r\n readonly showSelectAll?: boolean\r\n readonly defaultSelected?: (item: T) => boolean\r\n }\r\n readonly events?: {\r\n onRowClick?: (item: T) => void\r\n onSelectionChange?: (item: T[]) => void\r\n }\r\n readonly getItemKey: (item: T) => string | number\r\n readonly actions?: (item: T) => ContextMenuItem[]\r\n readonly rowClass?: (item: T) => string\r\n}\r\n\r\nexport class GridConfig<T>{\r\n private items$ = new BehaviorSubject<T[]>([])\r\n private loading$ = new BehaviorSubject(false)\r\n private selectedItems: T[]\r\n\r\n constructor(private config: IGridConfig<T>){\r\n this.refreshGrid()\r\n }\r\n\r\n public refreshGrid = () => {\r\n this.selectedItems = []\r\n\r\n if(Array.isArray(this.config.items))\r\n this.items$.next(this.config.items)\r\n else{\r\n this.toggleLoading()\r\n\r\n this.config.items.subscribe(it => {\r\n this.toggleLoading()\r\n this.items$.next(it)\r\n \r\n if(this.getSelectionConfig()?.defaultSelected)\r\n this.selectedItems = it.filter(i => this.getSelectionConfig().defaultSelected(i))\r\n })\r\n }\r\n }\r\n\r\n public getRowClass = (item: T) => this.config.rowClass?.(item)\r\n\r\n public updateList = (newList: T[]) => this.items$.next(newList)\r\n\r\n public getList = () => this.items$.getValue()\r\n\r\n public getList$ = () => this.items$.asObservable()\r\n\r\n public getActions = (item: T) => this.config.actions?.(item)\r\n\r\n public getColumns = () => this.config.columns\r\n\r\n public getEvents = () => this.config.events\r\n\r\n public getUniqueId = (item: T) => this.config.getItemKey(item)\r\n\r\n public isLoading$ = () => this.loading$.asObservable()\r\n\r\n public toggleLoading = () => this.loading$.next(!this.loading$.getValue())\r\n\r\n public getSelectedItems = () => this.items$.getValue().filter(it => this.selectedItems.some(d => this.getUniqueId(d) === this.getUniqueId(it)))\r\n\r\n public toggleSelection = (item: T) => {\r\n if(this.isItemSelected(item))\r\n this.selectedItems = this.selectedItems.filter(it => this.getUniqueId(it) !== this.getUniqueId(item))\r\n else if(this.config.selection?.type === \"single\")\r\n this.selectedItems = [item]\r\n else\r\n this.selectedItems.push(item)\r\n\r\n this.emitSelectionChange()\r\n }\r\n\r\n public isItemSelected = (item: T) => this.selectedItems.some(d => this.getUniqueId(d) === this.getUniqueId(item))\r\n\r\n public toggleSelectAll = () => {\r\n if(this.isAllSelected())\r\n this.selectedItems = []\r\n else\r\n this.selectedItems = this.items$.getValue()\r\n\r\n this.emitSelectionChange()\r\n }\r\n\r\n public getSelectionConfig = () => this.config.selection\r\n\r\n private emitSelectionChange = () => this.config.events?.onSelectionChange?.(this.getSelectedItems())\r\n\r\n public isAllSelected = () => this.selectedItems.length === this.items$.getValue().length\r\n\r\n public get hasActions(){\r\n return !!this.config.actions\r\n }\r\n}","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\"\r\nimport { IconName } from \"../../shared/interfaces\"\r\n\r\n@Component({\r\n selector: \"dolfo-icon-x\",\r\n standalone: false,\r\n template: `<i [class]=\"'icon-' + name\"></i>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IconComponent {\r\n @Input({ required: true }) name: IconName\r\n}\r\n","import { InjectionToken, Type } from \"@angular/core\"\r\nimport { IconComponent } from \"../../../components/layout/icon.component\"\r\n\r\nexport const ICON_COMPONENT = new InjectionToken<Type<any>>(\"ICON_COMPONENT\", {\r\n providedIn: \"root\",\r\n factory: () => IconComponent\r\n})\r\n\r\nexport type IconName = \"home\" | \"home2\" | \"home3\" | \"office\" | \"newspaper\" | \"pencil\" | \"pencil2\" | \"quill\" | \"pen\" | \"blog\" | \"eyedropper\" | \"droplet\" | \"paint-format\" | \"image\" | \"images\" | \"camera\" | \"headphones\" | \"music\" | \"play\" | \"film\" | \"video-camera\" | \"dice\" | \"pacman\" | \"spades\" | \"clubs\" | \"diamonds\" | \"bullhorn\" | \"connection\" | \"podcast\" | \"feed\" | \"mic\" | \"book\" | \"books\" | \"library\" | \"file-text\" | \"profile\" | \"file-empty\" | \"files-empty\" | \"file-text2\" | \"file-picture\" | \"file-music\" | \"file-play\" | \"file-video\" | \"file-zip\" | \"copy\" | \"paste\" | \"stack\" | \"folder\" | \"folder-open\" | \"folder-plus\" | \"folder-minus\" | \"folder-download\" | \"folder-upload\" | \"price-tag\" | \"price-tags\" | \"barcode\" | \"qrcode\" | \"ticket\" | \"cart\" | \"coin-dollar\" | \"coin-euro\" | \"coin-pound\" | \"coin-yen\" | \"credit-card\" | \"calculator\" | \"lifebuoy\" | \"phone\" | \"phone-hang-up\" | \"address-book\" | \"envelop\" | \"pushpin\" | \"location\" | \"location2\" | \"compass\" | \"compass2\" | \"map\" | \"map2\" | \"history\" | \"clock\" | \"clock2\" | \"alarm\" | \"bell\" | \"stopwatch\" | \"calendar\" | \"printer\" | \"keyboard\" | \"display\" | \"laptop\" | \"mobile\" | \"mobile2\" | \"tablet\" | \"tv\" | \"drawer\" | \"drawer2\" | \"box-add\" | \"box-remove\" | \"download\" | \"upload\" | \"floppy-disk\" | \"drive\" | \"database\" | \"undo\" | \"redo\" | \"undo2\" | \"redo2\" | \"forward\" | \"reply\" | \"bubble\" | \"bubbles\" | \"bubbles2\" | \"bubble2\" | \"bubbles3\" | \"bubbles4\" | \"user\" | \"users\" | \"user-plus\" | \"user-minus\" | \"user-check\" | \"user-tie\" | \"quotes-left\" | \"quotes-right\" | \"hour-glass\" | \"spinner\" | \"spinner2\" | \"spinner3\" | \"spinner4\" | \"spinner5\" | \"spinner6\" | \"spinner7\" | \"spinner8\" | \"spinner9\" | \"spinner10\" | \"spinner11\" | \"binoculars\" | \"search\" | \"zoom-in\" | \"zoom-out\" | \"enlarge\" | \"shrink\" | \"enlarge2\" | \"shrink2\" | \"key\" | \"key2\" | \"lock\" | \"unlocked\" | \"wrench\" | \"equalizer\" | \"equalizer2\" | \"cog\" | \"cogs\" | \"hammer\" | \"magic-wand\" | \"aid-kit\" | \"bug\" | \"pie-chart\" | \"stats-dots\" | \"stats-bars\" | \"stats-bars2\" | \"trophy\" | \"gift\" | \"glass\" | \"glass2\" | \"mug\" | \"spoon-knife\" | \"leaf\" | \"rocket\" | \"meter\" | \"meter2\" | \"hammer2\" | \"fire\" | \"lab\" | \"magnet\" | \"bin\" | \"bin2\" | \"briefcase\" | \"airplane\" | \"truck\" | \"road\" | \"accessibility\" | \"target\" | \"shield\" | \"power\" | \"switch\" | \"power-cord\" | \"clipboard\" | \"list-numbered\" | \"list\" | \"list2\" | \"tree\" | \"menu\" | \"menu2\" | \"menu3\" | \"menu4\" | \"cloud\" | \"cloud-download\" | \"cloud-upload\" | \"cloud-check\" | \"download2\" | \"upload2\" | \"download3\" | \"upload3\" | \"sphere\" | \"earth\" | \"link\" | \"flag\" | \"attachment\" | \"eye\" | \"eye-plus\" | \"eye-minus\" | \"eye-blocked\" | \"bookmark\" | \"bookmarks\" | \"sun\" | \"contrast\" | \"brightness-contrast\" | \"star-empty\" | \"star-half\" | \"star-full\" | \"heart\" | \"heart-broken\" | \"man\" | \"woman\" | \"man-woman\" | \"happy\" | \"happy2\" | \"smile\" | \"smile2\" | \"tongue\" | \"tongue2\" | \"sad\" | \"sad2\" | \"wink\" | \"wink2\" | \"grin\" | \"grin2\" | \"cool\" | \"cool2\" | \"angry\" | \"angry2\" | \"evil\" | \"evil2\" | \"shocked\" | \"shocked2\" | \"baffled\" | \"baffled2\" | \"confused\" | \"confused2\" | \"neutral\" | \"neutral2\" | \"hipster\" | \"hipster2\" | \"wondering\" | \"wondering2\" | \"sleepy\" | \"sleepy2\" | \"frustrated\" | \"frustrated2\" | \"crying\" | \"crying2\" | \"point-up\" | \"point-right\" | \"point-down\" | \"point-left\" | \"warning\" | \"notification\" | \"question\" | \"plus\" | \"minus\" | \"info\" | \"cancel-circle\" | \"blocked\" | \"cross\" | \"checkmark\" | \"checkmark2\" | \"spell-check\" | \"enter\" | \"exit\" | \"play2\" | \"pause\" | \"stop\" | \"previous\" | \"next\" | \"backward\" | \"forward2\" | \"play3\" | \"pause2\" | \"stop2\" | \"backward2\" | \"forward3\" | \"first\" | \"last\" | \"previous2\" | \"next2\" | \"eject\" | \"volume-high\" | \"volume-medium\" | \"volume-low\" | \"volume-mute\" | \"volume-mute2\" | \"volume-increase\" | \"volume-decrease\" | \"loop\" | \"loop2\" | \"infinite\" | \"shuffle\" | \"arrow-up-left\" | \"arrow-up\" | \"arrow-up-right\" | \"arrow-right\" | \"arrow-down-right\" | \"arrow-down\" | \"arrow-down-left\" | \"arrow-left\" | \"arrow-up-left2\" | \"arrow-up2\" | \"arrow-up-right2\" | \"arrow-right2\" | \"arrow-down-right2\" | \"arrow-down2\" | \"arrow-down-left2\" | \"arrow-left2\" | \"circle-up\" | \"circle-right\" | \"circle-down\" | \"circle-left\" | \"tab\" | \"move-up\" | \"move-down\" | \"sort-alpha-asc\" | \"sort-alpha-desc\" | \"sort-numeric-asc\" | \"sort-numberic-desc\" | \"sort-amount-asc\" | \"sort-amount-desc\" | \"command\" | \"shift\" | \"ctrl\" | \"opt\" | \"checkbox-checked\" | \"checkbox-unchecked\" | \"radio-checked\" | \"radio-checked2\" | \"radio-unchecked\" | \"crop\" | \"make-group\" | \"ungroup\" | \"scissors\" | \"filter\" | \"font\" | \"ligature\" | \"ligature2\" | \"text-height\" | \"text-width\" | \"font-size\" | \"bold\" | \"underline\" | \"italic\" | \"strikethrough\" | \"omega\" | \"sigma\" | \"page-break\" | \"superscript\" | \"subscript\" | \"superscript2\" | \"subscript2\" | \"text-color\" | \"pagebreak\" | \"clear-formatting\" | \"table\" | \"table2\" | \"insert-template\" | \"pilcrow\" | \"ltr\" | \"rtl\" | \"section\" | \"paragraph-left\" | \"paragraph-center\" | \"paragraph-right\" | \"paragraph-justify\" | \"indent-increase\" | \"indent-decrease\" | \"share\" | \"new-tab\" | \"embed\" | \"embed2\" | \"terminal\" | \"share2\" | \"mail\" | \"mail2\" | \"mail3\" | \"mail4\" | \"amazon\" | \"google\" | \"google2\" | \"google3\" | \"google-plus\" | \"google-plus2\" | \"google-plus3\" | \"hangouts\" | \"google-drive\" | \"facebook\" | \"facebook2\" | \"instagram\" | \"whatsapp\" | \"spotify\" | \"telegram\" | \"twitter\" | \"vine\" | \"vk\" | \"renren\" | \"sina-weibo\" | \"rss\" | \"rss2\" | \"youtube\" | \"youtube2\" | \"twitch\" | \"vimeo\" | \"vimeo2\" | \"lanyrd\" | \"flickr\" | \"flickr2\" | \"flickr3\" | \"flickr4\" | \"dribbble\" | \"behance\" | \"behance2\" | \"deviantart\" | \"500px\" | \"steam\" | \"steam2\" | \"dropbox\" | \"onedrive\" | \"github\" | \"npm\" | \"basecamp\" | \"trello\" | \"wordpress\" | \"joomla\" | \"ello\" | \"blogger\" | \"blogger2\" | \"tumblr\" | \"tumblr2\" | \"yahoo\" | \"yahoo2\" | \"tux\" | \"appleinc\" | \"finder\" | \"android\" | \"windows\" | \"windows8\" | \"soundcloud\" | \"soundcloud2\" | \"skype\" | \"reddit\" | \"hackernews\" | \"wikipedia\" | \"linkedin\" | \"linkedin2\" | \"lastfm\" | \"lastfm2\" | \"delicious\" | \"stumbleupon\" | \"stumbleupon2\" | \"stackoverflow\" | \"pinterest\" | \"pinterest2\" | \"xing\" | \"xing2\" | \"flattr\" | \"foursquare\" | \"yelp\" | \"paypal\" | \"chrome\" | \"firefox\" | \"IE\" | \"edge\" | \"safari\" | \"opera\" | \"file-pdf\" | \"file-openoffice\" | \"file-word\" | \"file-excel\" | \"libreoffice\" | \"html-five\" | \"html-five2\" | \"css3\" | \"git\" | \"codepen\" | \"svg\" | \"IcoMoon\"","import { InjectionToken, ValueProvider } from \"@angular/core\"\r\n\r\nexport interface ILanguage{\r\n readonly name: string\r\n readonly locale: string\r\n readonly altFileName?: string\r\n}\r\n\r\nexport interface ILanguageToken{\r\n readonly defaultLanguage: string\r\n readonly langs: ILanguage[]\r\n}\r\n\r\nexport const TRANSLATE_STORAGE_KEY = \"dolfo-lang-stored\"\r\n\r\nexport const LANGUAGE_TOKEN = new InjectionToken<ILanguageToken>(\"LANGUAGE_TOKEN\")\r\n\r\nexport const provideDolfoLanguages = (langs: ILanguage[], defaultLanguage: string): ValueProvider => ({\r\n provide: LANGUAGE_TOKEN,\r\n useValue: { defaultLanguage, langs } as ILanguageToken\r\n})","export const isDeepEqual = (objA: any, objB: any, map = new WeakMap()) => {\r\n if (Object.is(objA, objB))\r\n return true\r\n\r\n if (objA instanceof Date && objB instanceof Date)\r\n return objA.getTime() === objB.getTime()\r\n \r\n if (objA instanceof RegExp && objB instanceof RegExp)\r\n return objA.toString() === objB.toString()\r\n\r\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null)\r\n return false\r\n\r\n if (map.get(objA) === objB)\r\n return true\r\n\r\n map.set(objA, objB)\r\n\r\n const keysA = Reflect.ownKeys(objA)\r\n const keysB = Reflect.ownKeys(objB)\r\n\r\n if (keysA.length !== keysB.length)\r\n return false\r\n\r\n for (let i = 0; i < keysA.length; i++){\r\n if (!Reflect.has(objB, keysA[i]) || !isDeepEqual(objA[keysA[i]], objB[keysA[i]], map))\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject } from \"rxjs\"\r\nimport { IContextMenu } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ContextMenuService {\r\n private contextMenu$ = new BehaviorSubject<IContextMenu>(null)\r\n\r\n public getContextMenu$ = () => this.contextMenu$.asObservable()\r\n\r\n public openContextMenu = (input: IContextMenu) => this.contextMenu$.next(input)\r\n}\r\n","import { formatDate } from \"@angular/common\"\r\nimport { HttpClient } from \"@angular/common/http\"\r\nimport { Inject, Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject, distinctUntilChanged, tap } from \"rxjs\"\r\nimport { ILanguage, ILanguageToken, LANGUAGE_TOKEN, TRANSLATE_STORAGE_KEY } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class TranslateService {\r\n private lang$ = new BehaviorSubject<ILanguage>(null)\r\n private langContent: Record<string, string>\r\n private langs: ILanguage[]\r\n\r\n constructor(@Inject(LANGUAGE_TOKEN) langConfig: ILanguageToken, private httpClient: HttpClient) {\r\n if(!localStorage.getItem(TRANSLATE_STORAGE_KEY))\r\n localStorage.setItem(TRANSLATE_STORAGE_KEY, langConfig.defaultLanguage)\r\n \r\n const { langs } = langConfig,\r\n lang = localStorage.getItem(TRANSLATE_STORAGE_KEY) as string,\r\n foundLang = langConfig.langs.find(l => l.name === lang)\r\n\r\n this.langs = langs\r\n\r\n if(!foundLang)\r\n localStorage.removeItem(TRANSLATE_STORAGE_KEY)\r\n else\r\n this.lang$.next(foundLang)\r\n }\r\n\r\n public changeLanguage$ = (langName: string) => {\r\n const lang = this.langs.find(l => l.name === langName)\r\n\r\n if(lang)\r\n localStorage.setItem(TRANSLATE_STORAGE_KEY, langName)\r\n\r\n return this.load$(lang).pipe(\r\n tap(() => this.lang$.next(lang))\r\n )\r\n }\r\n\r\n public loadFromStorage$ = () => {\r\n const lang = localStorage.getItem(TRANSLATE_STORAGE_KEY)\r\n\r\n if(!lang)\r\n throw new Error(\"Language not set or not valid!!\")\r\n\r\n const foundLang = this.langs.find(l => l.name === lang)\r\n\r\n return this.load$(foundLang)\r\n }\r\n\r\n private load$ = ({ name, altFileName }: ILanguage) => this.httpClient.get<Record<string, string>>(`assets/langs/${altFileName || name}.json`).pipe(\r\n tap(content => this.langContent = content)\r\n )\r\n\r\n public translate = (key: string, params?: Record<string, string>): string => {\r\n const base = key.split(\".\").reduce((prev, curr) => prev?.[curr], this.langContent as any),\r\n ret = base || key\r\n\r\n if (params){\r\n return Object.keys(params).reduce(\r\n (curr, key) => curr.replace(`{${key}}`, params[key as keyof Object]),\r\n ret\r\n )\r\n }\r\n\r\n return ret\r\n }\r\n\r\n public getLang = () => this.lang$.getValue()\r\n\r\n public getLang$ = () => this.lang$.asObservable().pipe(distinctUntilChanged())\r\n\r\n private getLocale = () => this.getLang()?.locale || \"en-US\"\r\n\r\n public formatDate = (d: string) => formatDate(new Date(d), this.translate(\"dateFormat\"), this.getLocale())\r\n\r\n public formatDateTime = (d: string) => formatDate(new Date(d), this.translate(\"dateTimeFormat\"), this.getLocale())\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject, filter } from \"rxjs\"\r\nimport { DialogComponentInput, DialogOutput, IDialogInput } from \"../interfaces\"\r\nimport { TranslateService } from \"./translate.service\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class DialogService{\r\n private dialog$ = new BehaviorSubject<(IDialogInput & { _dialogId: number })[]>([])\r\n private waiters: BehaviorSubject<DialogOutput>[] = []\r\n\r\n constructor(private ts: TranslateService){}\r\n\r\n private getLastWaiter = () => this.waiters[this.waiters.length - 1]\r\n\r\n public getDialog = () => this.dialog$.getValue()\r\n\r\n public getDialog$ = () => this.dialog$.asObservable()\r\n\r\n public openDialog = (input: IDialogInput) => {\r\n const newWaiter$ = new BehaviorSubject<DialogOutput>(null)\r\n this.waiters.push(newWaiter$)\r\n this.dialog$.next(this.dialog$.getValue().concat({\r\n ...input,\r\n _dialogId: new Date().getTime()\r\n }))\r\n\r\n return this.getLastWaiter().pipe(\r\n filter(d => d != null)\r\n )\r\n }\r\n\r\n public openDialogComponent = (component: DialogComponentInput) => this.openDialog({\r\n message: null,\r\n component\r\n })\r\n\r\n public showLoading = (message = this.ts.translate(\"loading\")) => this.openDialog({\r\n type: \"loading\",\r\n message\r\n })\r\n\r\n public close = () => {\r\n const v = this.dialog$.getValue()\r\n this.dialog$.next(v.slice(0, v.length - 1))\r\n this.getLastWaiter()?.complete()\r\n this.waiters = this.waiters.slice(0, this.waiters.length - 1)\r\n }\r\n\r\n public action = (action: DialogOutput) => this.getLastWaiter().next(action)\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject } from \"rxjs\"\r\nimport { INotificationInput } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class NotificationService {\r\n private notification$ = new BehaviorSubject<INotificationInput>(null)\r\n private history$ = new BehaviorSubject<Array<INotificationInput & { date: Date }>>([])\r\n\r\n public getNotification$ = () => this.notification$.asObservable()\r\n\r\n public show = (input: INotificationInput) => {\r\n this.notification$.next(input)\r\n this.history$.next(this.history$.getValue().concat({ ...input, date: new Date() }))\r\n }\r\n\r\n public hide = () => this.notification$.next(null)\r\n\r\n public getHistory$ = () => this.history$.asObservable()\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject } from \"rxjs\"\r\nimport { IPopover } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class PopoverService {\r\n private popover$ = new BehaviorSubject<IPopover>(null)\r\n\r\n public getPopover$ = () => this.popover$.asObservable()\r\n\r\n public getPopover = () => this.popover$.getValue()\r\n\r\n public showPopover = (input: IPopover) => this.popover$.next(input)\r\n\r\n public hide = () => this.popover$.next(null)\r\n}","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject } from \"rxjs\"\r\nimport { ITooltip } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class TooltipService {\r\n private tooltip$ = new BehaviorSubject<ITooltip>(null)\r\n\r\n public showTooltip = (input: ITooltip) => this.tooltip$.next(input)\r\n \r\n public getTooltip$ = () => this.tooltip$.asObservable()\r\n \r\n public getTooltip = () => this.tooltip$.getValue()\r\n\r\n public hide = () => this.tooltip$.next(null)\r\n}\r\n","import { Directive, ElementRef, Input } from \"@angular/core\"\r\nimport { filter, fromEvent } from \"rxjs\"\r\nimport { Subscriptable } from \"../classes/subscriptable\"\r\nimport { ITooltip, TooltipDirection } from \"../interfaces\"\r\nimport { TooltipService } from \"../services\"\r\n\r\n@Directive({\r\n selector: \"[dolfoTooltip]\",\r\n standalone: false\r\n})\r\nexport class TooltipDirective extends Subscriptable implements Omit<ITooltip, \"elementRef\">{\r\n @Input({ required: true, alias: \"dolfoTooltip\" }) content: string\r\n @Input() direction: TooltipDirection = \"top\"\r\n\r\n constructor(el: ElementRef<HTMLElement>, private ts: TooltipService) {\r\n super()\r\n\r\n this.addSubscription(fromEvent(el.nativeElement, \"mousedown\").pipe(\r\n filter(() => !!this.ts.getTooltip())\r\n ).subscribe(() => this.ts.hide()))\r\n\r\n this.addSubscription(\r\n fromEvent(el.nativeElement, \"mouseenter\").pipe(\r\n filter(() => !!this.content)\r\n ).subscribe(() => this.ts.showTooltip({\r\n content: this.content,\r\n elementRef: el,\r\n direction: this.direction\r\n }))\r\n )\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\"\r\nimport { TranslateService } from \"../services\"\r\n\r\n@Pipe({\r\n name: \"translate\",\r\n standalone: true,\r\n pure: false\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n constructor(private ts: TranslateService){}\r\n\r\n transform = (value: string, args?: Record<string, string>) => this.ts.translate(value, args)\r\n}\r\n","import { DecimalPipe } from \"@angular/common\"\r\nimport { Component, ElementRef } from \"@angular/core\"\r\nimport { ValidationErrors } from \"@angular/forms\"\r\nimport { BehaviorSubject, distinctUntilChanged, map, Observable } from \"rxjs\"\r\nimport { isDeepEqual } from \"../../shared/interfaces\"\r\nimport { TranslateService } from \"../../shared/services\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-input-container\",\r\n template: `<div class=\"input-container\" [class.error]=\"decodedError$ | async\">\r\n @if(input.label){\r\n <label>\r\n {{ input.label }}\r\n @if(input.isRequired){\r\n <span [dolfoTooltip]=\"'form.required' | translate\">*</span>\r\n }\r\n </label>\r\n }\r\n\r\n <ng-content></ng-content>\r\n\r\n @let error = decodedError$ | async;\r\n\r\n @if(error){\r\n <div class=\"input-errors\">\r\n {{ error[0] | translate: error[1] }}\r\n </div>\r\n }\r\n </div>`,\r\n providers: [DecimalPipe],\r\n standalone: false\r\n})\r\nexport class InputContainerComponent{\r\n public errors$ = new BehaviorSubject<ValidationErrors>(null)\r\n public decodedError$: Observable<[string, Record<string, string>?]> = this.errors$.pipe(\r\n distinctUntilChanged((a, b) => isDeepEqual(a, b)),\r\n map(val => {\r\n if(val){\r\n if(val.required)\r\n return [\"form.requiredError\"]\r\n if(val.email)\r\n return [\"form.invalidEmail\"]\r\n if(val.maxlength)\r\n return [`form.maxChars`, { length: val.maxlength.requiredLength }]\r\n if(val.minlength)\r\n return [`form.minChars`, { length: val.minlength.requiredLength }]\r\n if(val.password)\r\n return [\"form.invalidPassword\"]\r\n if(val.max)\r\n return [\"form.maxValue\", { value: this.cp.transform(val.max.max, null, this.translateService.getLang().name) }]\r\n\r\n return [\"form.error.\" + Object.keys(val)[0]]\r\n }\r\n \r\n return null\r\n })\r\n )\r\n\r\n constructor(public input: BaseFormInput<unknown>, private elRef: ElementRef<HTMLDivElement>, private translateService: TranslateService, private cp: DecimalPipe){}\r\n\r\n public focus = () => {\r\n const input = this.elRef.nativeElement.querySelector(\"input\")\r\n\r\n if(input)\r\n input.focus()\r\n }\r\n}\r\n","import { AfterViewInit, Directive, EventEmitter, inject, Input, OnInit, Output, ViewChild } from \"@angular/core\"\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, FormControl, ValidationErrors, Validator, Validators } from \"@angular/forms\"\r\nimport { filter } from \"rxjs\"\r\nimport { Subscriptable } from \"../../shared/classes/subscriptable\"\r\nimport { isDeepEqual } from \"../../shared/interfaces\"\r\nimport { InputContainerComponent } from \"./input-container.component\"\r\n\r\n@Directive()\r\nexport abstract class BaseFormInput<T> extends Subscriptable implements ControlValueAccessor, Validator, AfterViewInit, OnInit {\r\n @ViewChild(InputContainerComponent) public container: InputContainerComponent\r\n @Input({ required: true }) formControlName: string\r\n @Input() label: string\r\n @Output() onChange: EventEmitter<T> = new EventEmitter<T>()\r\n\r\n private changeInternal: (obj: T) => void\r\n private cc = inject(ControlContainer)\r\n \r\n public input = new FormControl<T>(null)\r\n \r\n protected control: AbstractControl\r\n\r\n ngOnInit(){\r\n this.control = this.cc.control.get(this.formControlName)\r\n\r\n const initialValue = this.control.value\r\n\r\n this.addSubscription(this.input.valueChanges.pipe(\r\n filter(v => !this.control.touched && !isDeepEqual(initialValue, v) && this.input.dirty)\r\n ).subscribe(() => this.control.markAsTouched()))\r\n\r\n this.addSubscription(this.control.statusChanges.pipe(\r\n filter(s => (s === \"VALID\" || s === \"INVALID\") && this.control.touched && !!this.container)\r\n ).subscribe(() => this.container.errors$.next(this.control.errors)))\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.addSubscription(this.input.valueChanges.pipe(\r\n filter(() => !this.input.disabled)\r\n ).subscribe(v => {\r\n this.onChange.emit(v)\r\n this.changeInternal(v)\r\n }))\r\n }\r\n\r\n writeValue = (obj: T) => this.input.setValue(obj)\r\n\r\n registerOnChange = (fn: (obj: T) => void) => this.changeInternal = fn\r\n\r\n registerOnTouched = (_fn: (obj: any) => void) => {}\r\n\r\n setDisabledState = (isDisabled: boolean) => {\r\n if(isDisabled)\r\n setTimeout(() => this.input.disable())\r\n else\r\n this.input.enable()\r\n }\r\n\r\n validate = (_control: AbstractControl): ValidationErrors => null\r\n\r\n public get isRequired(){\r\n return this.control.hasValidator(Validators.required)\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, Input, Output, signal, ViewChild } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { delay, filter, fromEvent, map, mergeMap, tap } from \"rxjs\"\r\nimport { AutocompleteConfig, ComboOption } from \"../../shared/interfaces\"\r\nimport { OnBlur, OnFocus } from \"../../shared/interfaces/events\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-autocomplete\",\r\n template: `<dolfo-input-container>\r\n <div class=\"combobox autocomplete\" [class.opened]=\"opened()\" #autocomplete>\r\n <div class=\"combobox-label\">\r\n <input #autocompleteInput type=\"text\" [value]=\"currentOption()\" (focus)=\"focus($event)\" (blur)=\"onBlur.emit($event)\" />\r\n </div>\r\n\r\n <div class=\"combobox-options\" [class.opened]=\"opened()\">\r\n @if(loading()){\r\n <div class=\"loading\">\r\n {{ 'autocomplete.loading' | translate }}\r\n </div>\r\n }\r\n @if(options().length === 0 && !loading()){\r\n <div class=\"no-results\">\r\n {{ 'autocomplete.noResults' | translate }}\r\n </div>\r\n }\r\n\r\n @for(opt of options(); track opt.value; let idx = $index){\r\n <div class=\"combobox-option\" [class.selected]=\"isSelected(opt)\" [class.focused]=\"currentFocus() === idx\" (click)=\"$event.stopPropagation(); setOption(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </dolfo-input-container>`,\r\n standalone: false,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AutocompleteComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => AutocompleteComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: AutocompleteComponent }\r\n ]\r\n})\r\nexport class AutocompleteComponent extends BaseFormInput<any> implements AfterViewInit, OnFocus, OnBlur{\r\n @ViewChild(\"autocomplete\") autocomplete: ElementRef<HTMLDivElement>\r\n @ViewChild(\"autocompleteInput\") autocompleteInput: ElementRef<HTMLInputElement>\r\n @Input({ required: true }) config: AutocompleteConfig<any>\r\n @Input() minChars = 3\r\n @Output() onFocus = new EventEmitter<FocusEvent>()\r\n @Output() onBlur = new EventEmitter<FocusEvent>()\r\n\r\n public options = signal<ComboOption[]>([])\r\n public opened = signal(false)\r\n public currentOption = signal(\"\")\r\n public currentOptionLabel = signal(\"\")\r\n public loading = signal(false)\r\n public currentFocus = signal<number>(null)\r\n private keyDown = false\r\n private keyDownTimeout: NodeJS.Timeout\r\n\r\n constructor(){\r\n super()\r\n\r\n this.addSubscription(fromEvent(window, \"click\").pipe(\r\n filter(() => !!this.autocomplete && !this.input.disabled),\r\n map(ev => ev.target as HTMLElement),\r\n map(target => !this.autocomplete.nativeElement.contains(target) && !target.isEqualNode(this.autocomplete.nativeElement))\r\n ).subscribe(condition => {\r\n if(condition && this.opened()){\r\n this.currentFocus.set(null)\r\n this.opened.set(false)\r\n }else if(!this.opened() && !condition)\r\n this.opened.set(true)\r\n }))\r\n\r\n this.addSubscription(this.input.valueChanges.pipe(\r\n filter(v => v != null && !!this.autocompleteInput && (this.autocompleteInput.nativeElement.value !== this.currentOptionLabel() || !this.currentOptionLabel()))\r\n ).subscribe(value => this.setOption({ value, label: this.config.getLabel(value) }, true)))\r\n\r\n this.addSubscription(this.input.valueChanges.pipe(\r\n filter(v => v == null && !!this.autocompleteInput && this.autocompleteInput.nativeElement.value != null && this.autocompleteInput.nativeElement.value !== \"\")\r\n ).subscribe(() => this.setOption(null, true)))\r\n\r\n this.addSubscription(this.input.statusChanges.pipe(\r\n filter(() => !!this.autocompleteInput)\r\n ).subscribe(() => this.autocompleteInput.nativeElement.disabled = this.input.disabled))\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit()\r\n\r\n this.addSubscription(fromEvent(this.autocompleteInput.nativeElement, \"input\").pipe(\r\n map(ev => (ev.target as HTMLInputElement).value),\r\n tap(value => {\r\n if(!value){\r\n this.input.setValue(null)\r\n this.onChange.emit(null)\r\n this.options.set([])\r\n }\r\n }),\r\n delay(1000),\r\n filter(value => !this.keyDown && value.length >= this.minChars),\r\n tap(() => {\r\n this.options.set([])\r\n this.opened.set(true)\r\n this.loading.set(true)\r\n }),\r\n mergeMap(value => this.config.search$(value)),\r\n map(results => results.map(value => ({\r\n value,\r\n label: this.config.getLabel(value)\r\n })))\r\n ).subscribe(results => {\r\n this.loading.set(false)\r\n this.options.set(results)\r\n this.currentFocus.set(null)\r\n }))\r\n\r\n this.addSubscription(fromEvent<KeyboardEvent>(this.autocompleteInput.nativeElement, \"keydown\").subscribe(e => {\r\n if(e.key.length === 1){\r\n this.keyDown = true\r\n clearTimeout(this.keyDownTimeout)\r\n this.keyDownTimeout = setTimeout(() => this.keyDown = false, 1000)\r\n }else if(this.opened()){\r\n if(e.key === \"ArrowDown\"){\r\n e.preventDefault()\r\n this.currentFocus.update(v => v === this.options().length - 1 ? 0 : v === null ? 0 : v + 1)\r\n }else if(e.key === \"ArrowUp\"){\r\n e.preventDefault()\r\n this.currentFocus.update(v => v === 0 ? this.options().length - 1 : v === null ? 0 : v - 1)\r\n }else if(e.key === \"Enter\" && this.currentFocus() >= 0 && this.currentFocus() != null){\r\n e.preventDefault()\r\n this.setOption(this.options()[this.currentFocus()])\r\n }else if(e.key === \"Tab\"){\r\n this.currentFocus.set(null)\r\n this.opened.set(false)\r\n }\r\n }\r\n }))\r\n }\r\n\r\n\tpublic focus = (e: FocusEvent) => {\r\n\t\tif(this.input.disabled)\r\n\t\t\treturn\r\n\t\t\r\n\t\tthis.opened.set(true); \r\n\t\tthis.onFocus.emit(e)\r\n\t}\r\n\r\n\tpublic isSelected = (opt: ComboOption) => this.input.value === opt.value\r\n\r\n public setOption = (opt: ComboOption, noEmit = false) => {\r\n this.autocompleteInput.nativeElement.value = opt?.label ?? \"\"\r\n this.currentOptionLabel.set(opt?.label)\r\n this.input.setValue(opt?.value)\r\n this.opened.set(false)\r\n\r\n if(!noEmit)\r\n\t\t this.onChange.emit(this.input.value)\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, Input } from \"@angular/core\"\r\nimport { ICON_COMPONENT, IconName } from \"../../shared/interfaces\"\r\n\r\n@Component({\r\n selector: \"dolfo-icon\",\r\n standalone: false,\r\n template: `<ng-container [ngComponentOutlet]=\"iconComponent\" [ngComponentOutletInputs]=\"{ name }\"></ng-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IconWrapperComponent {\r\n @Input({ required: true }) name: IconName\r\n\r\n public iconComponent = inject(ICON_COMPONENT)\r\n}\r\n","import { AfterViewInit, booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, OnChanges, Output, signal, SimpleChanges, ViewChild } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { filter, fromEvent, map } from \"rxjs\"\r\nimport { ComboInput, ComboOption, isDeepEqual } from \"../../shared/interfaces\"\r\nimport { OnBlur, OnFocus } from \"../../shared/interfaces/events\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-combobox\",\r\n template: `<dolfo-input-container>\r\n\t\t<div class=\"combobox\" [class.opened]=\"opened()\" #combo tabindex=\"0\" (focus)=\"focus($event)\" (blur)=\"onBlur.emit($event)\" [class.disabled]=\"input.disabled\">\r\n\t\t\t<div class=\"combobox-label\">\r\n @if(hasValue && !input.disabled){\r\n <dolfo-icon [dolfoTooltip]=\"'form.resetValue' | translate\" name=\"cross\" (click)=\"input.setValue(null); $event.stopPropagation()\"></dolfo-icon>\r\n }\r\n\t\t\t\t<span>{{ comboLabel() | translate }}</span>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"combobox-options\" [class.opened]=\"opened()\">\r\n\t\t\t\t@for(opt of options; track opt.value; let idx = $index){\r\n\t\t\t\t\t<div class=\"combobox-option\" [class.selected]=\"isSelected(opt)\" [class.focused]=\"currentFocus() === idx\" (click)=\"$event.stopPropagation(); setOption(opt)\">\r\n\t\t\t\t\t\t<span>{{ opt.label }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\r\n <input type=\"hidden\" [formControl]=\"input\" />\r\n\t\t</div>\r\n\t</dolfo-input-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ComboboxComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => ComboboxComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: ComboboxComponent }\r\n ],\r\n standalone: false\r\n})\r\nexport class ComboboxComponent extends BaseFormInput<any | any[]> implements AfterViewInit, Required<ComboInput>, OnBlur, OnFocus, OnChanges{\r\n\t@ViewChild(\"combo\") combo: ElementRef<HTMLDivElement>\r\n\t@Input({ required: true }) options: ComboOption[]\r\n\t@Input() placeHolder: string\r\n\t@Input({ transform: booleanAttribute }) multiple = false\r\n\t@Output() onFocus = new EventEmitter<FocusEvent>()\r\n\t@Output() onBlur = new EventEmitter<FocusEvent>()\r\n\r\n\tpublic opened = signal(false)\r\n public currentFocus = signal<number>(null)\r\n public comboLabel = signal(\"\")\r\n\r\n\tconstructor(private cdr: ChangeDetectorRef){\r\n\t\tsuper()\r\n\r\n\t\tthis.addSubscription(fromEvent(window, \"click\").pipe(\r\n filter(() => !!this.combo && !this.input.disabled),\r\n\t\t\tmap(ev => ev.target as HTMLElement),\r\n\t\t\tmap(target => !this.combo.nativeElement.contains(target) && !target.isEqualNode(this.combo.nativeElement))\r\n\t\t).subscribe(condition => {\r\n\t\t\tif(condition && this.opened())\r\n\t\t\t\tthis.opened.set(false)\r\n\t\t\telse if(!this.opened() && !condition)\r\n\t\t\t\tthis.opened.set(true)\r\n\t\t}))\r\n\r\n this.addSubscription(this.input.valueChanges.subscribe(value => this.comboLabel.set(this.extractLabel(value))))\r\n\t}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if(changes.options && !isDeepEqual(changes.options.previousValue, changes.options.currentValue))\r\n this.input.setValue(null)\r\n }\r\n\r\n\toverride ngAfterViewInit() {\r\n\t\tsuper.ngAfterViewInit()\r\n\r\n\t\tthis.addSubscription(fromEvent<KeyboardEvent>(this.combo.nativeElement, \"keydown\").subscribe(e => {\r\n if(this.opened()){\r\n if(e.key === \"ArrowDown\"){\r\n e.preventDefault()\r\n this.currentFocus.update(v => v === this.options.length - 1 ? 0 : v === null ? 0 : v + 1)\r\n }else if(e.key === \"ArrowUp\"){\r\n e.preventDefault()\r\n this.currentFocus.update(v => v === 0 ? this.options.length - 1 : v === null ? 0 : v - 1)\r\n }else if(e.key === \"Enter\" && this.currentFocus() >= 0 && this.currentFocus() != null){\r\n e.preventDefault()\r\n this.setOption(this.options[this.currentFocus()])\r\n\r\n\t\t\t\t\tif(!this.multiple)\r\n\t\t\t\t\t\tthis.opened.set(false)\r\n\r\n\t\t\t\t\tthis.cdr.detectChanges()\r\n }else if(e.key === \"Tab\"){\r\n this.currentFocus.set(null)\r\n this.opened.set(false)\r\n }\r\n }\r\n }))\r\n\t}\r\n\r\n\tprivate extractLabel = (value: any | any[]) => {\r\n\t\tif(value == null || (value as number[])?.length === 0)\r\n\t\t\treturn this.placeHolder || \" \"\r\n\r\n\t\tif(!this.multiple)\r\n\t\t\treturn this.options.find(opt => isDeepEqual(opt.value, value))?.label\r\n\r\n\t\treturn this.options.filter(opt => (value as number[]).some(o => isDeepEqual(opt.value, o))).map(opt => opt.label).join(\", \")\r\n\t}\r\n\r\n\tpublic focus = (e: FocusEvent) => {\r\n\t\tif(this.input.disabled)\r\n\t\t\treturn\r\n\t\t\r\n\t\tthis.opened.set(true); \r\n\t\tthis.onFocus.emit(e)\r\n\t}\r\n\r\n\tpublic setOption = (opt: ComboOption) => {\r\n\t\tconst { value } = this.input\r\n\r\n\t\tif(!this.multiple){\r\n\t\t\tif(isDeepEqual(value, opt.value))\r\n\t\t\t\tthis.input.setValue(null)\r\n\t\t\telse\r\n\t\t\t\tthis.input.setValue(opt.value)\r\n\r\n this.opened.set(false)\r\n\t\t}else{\r\n\t\t\tconst castValue = value as Array<any>\r\n\r\n\t\t\tif(castValue.some(o => isDeepEqual(opt.value, o)))\r\n\t\t\t\tthis.input.setValue(castValue.filter(v => isDeepEqual(opt.value, v)))\r\n\t\t\telse\r\n\t\t\t\tthis.input.setValue(castValue.concat(opt.value))\r\n\t\t}\r\n\r\n\t\tthis.onChange.emit(this.input.value)\r\n\t}\r\n\r\n\tpublic isSelected = (opt: ComboOption) => {\r\n\t\tconst { value } = this.input\r\n\r\n\t\tif(!this.multiple)\r\n\t\t\treturn isDeepEqual(value, opt.value)\r\n\r\n\t\treturn (value as Array<any>).some(o => isDeepEqual(opt.value, o))\r\n\t}\r\n\r\n public get hasValue(){\r\n return this.multiple ? this.input.value != null && this.input.value.length > 0 : this.input.value != null\r\n }\r\n}\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { OnBlur, OnFocus } from \"../../shared/interfaces/events\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n\tselector: \"dolfo-datepicker\",\r\n\ttemplate: `<dolfo-input-container>\r\n\t\t<input #formInput [type]=\"selectTime ? 'datetime-local' : 'date'\" [formControl]=\"input\" (focus)=\"openPicker(); onFocus.emit($event)\" (blur)=\"onBlur.emit($event)\" />\r\n\t</dolfo-input-container>`,\r\n\tstandalone: false,\r\n\tproviders: [\r\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DatepickerComponent), multi: true },\r\n\t\t{ provide: NG_VALIDATORS, useExisting: forwardRef(() => DatepickerComponent), multi: true },\r\n\t\t{ provide: BaseFormInput, useExisting: DatepickerComponent }\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DatepickerComponent extends BaseFormInput<Date> implements OnFocus, OnBlur{\r\n @ViewChild(\"formInput\") formInput: ElementRef<HTMLInputElement>\r\n @Input({ transform: booleanAttribute }) selectTime = false\r\n\t@Output() onFocus = new EventEmitter<FocusEvent>()\r\n\t@Output() onBlur = new EventEmitter<FocusEvent>()\r\n\r\n public openPicker = () => this.formInput.nativeElement.showPicker()\r\n}\r\n","import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Directive, inject, OnDestroy, QueryList, ViewChild, ViewChildren } from \"@angular/core\"\r\nimport { FormGroupDirective } from \"@angular/forms\"\r\nimport { BehaviorSubject, catchError, distinctUntilChanged, mergeMap, Observable, of, Subscription, tap } from \"rxjs\"\r\nimport { BaseFormInput } from \"../../components/form/base-form-input\"\r\nimport { NotificationService, TranslateService } from \"../services\"\r\nimport { Subscriptable } from \"./subscriptable\"\r\n\r\n@Directive()\r\nexport abstract class Formable<T = object> extends Subscriptable implements OnDestroy, AfterViewInit, AfterViewChecked{\r\n @ViewChild(FormGroupDirective) formRef: FormGroupDirective\r\n @ViewChildren(BaseFormInput) inputs: QueryList<BaseFormInput<unknown>>\r\n\r\n public loading$ = new BehaviorSubject(false)\r\n protected notificationService = inject(NotificationService)\r\n protected translateService = inject(TranslateService)\r\n private cdr = inject(ChangeDetectorRef)\r\n private subForm: Subscription\r\n \r\n protected abstract submit: (_formValue: T) => Observable<unknown>\r\n\r\n ngAfterViewInit() {\r\n if(!this.formRef)\r\n return\r\n \r\n this.addSubscription(this.loading$.pipe(\r\n distinctUntilChanged()\r\n ).subscribe(loading => {\r\n if(loading)\r\n this.formRef.form.disable()\r\n else\r\n this.formRef.form.enable()\r\n }))\r\n\r\n this.subForm = this.formRef.ngSubmit.pipe(\r\n tap(() => {\r\n let focused = false\r\n \r\n Object.entries(this.formRef.form.controls).forEach(([key, control]) => {\r\n control.markAsTouched()\r\n control.updateValueAndValidity()\r\n\r\n if(control.invalid && !focused){\r\n this.inputs.toArray().find(i => i.formControlName === key).container.focus()\r\n focused = true\r\n }\r\n })\r\n }),\r\n mergeMap(() => {\r\n if(!this.formRef.invalid && !this.loading$.getValue()){\r\n this.loading$.next(true)\r\n return this.submit(this.formRef.form.getRawValue()).pipe(\r\n catchError(err => {\r\n this.loading$.next(false)\r\n return of(err)\r\n }),\r\n tap(() => this.loading$.next(false))\r\n )\r\n }\r\n \r\n return of(null)\r\n })\r\n ).subscribe()\r\n\r\n this.addSubscription(this.subForm)\r\n\r\n this.addSubscription(this.translateService.getLang$().subscribe(() => this.cdr.detectChanges()))\r\n }\r\n \r\n ngAfterViewChecked() {\r\n if(!this.formRef && this.subForm){\r\n this.subForm.unsubscribe()\r\n this.subForm = null\r\n }else if(this.formRef && !this.subForm)\r\n this.ngAfterViewInit()\r\n }\r\n\r\n protected manualSubmit = () => this.formRef.ngSubmit.emit()\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, InjectionToken, Input, OnInit } from \"@angular/core\"\r\nimport { fromEvent, race } from \"rxjs\"\r\nimport { Subscriptable } from \"../../shared/classes\"\r\nimport { ContextMenuItem, IContextMenu } from \"../../shared/interfaces\"\r\n\r\nexport const CONTEXT_MENU_DESTROY_TOKEN = new InjectionToken<() => void>(\"CONTEXT_MENU_DESTROY_TOKEN\")\r\n\r\n@Component({\r\n selector: \"dolfo-context-menu\",\r\n standalone: false,\r\n template: `<div class=\"context-menu\" [ngStyle]=\"{\r\n top: y + 'px',\r\n left: x + 'px'\r\n }\" (click)=\"$event.stopPropagation()\" [ngClass]=\"'position-' + position\">\r\n @for(item of items; track item.label){\r\n <div [ngClass]=\"item.className\" [class.disabled]=\"item.disabled\" (click)=\"clickItem(item)\">\r\n @if(item.icon){\r\n <dolfo-icon [name]=\"item.icon\"></dolfo-icon>\r\n }\r\n {{ item.label }}\r\n </div>\r\n }\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContextMenuComponent extends Subscriptable implements IContextMenu, OnInit {\r\n @Input({ required: true }) x: number\r\n @Input({ required: true }) y: number\r\n @Input({ required: true }) items: ContextMenuItem[]\r\n @Input({ required: true }) ref: ElementRef<HTMLElement>\r\n @Input() position?: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\"\r\n \r\n private destroyFn = inject(CONTEXT_MENU_DESTROY_TOKEN)\r\n\r\n ngOnInit() {\r\n this.addSubscription(race([\r\n fromEvent(this.ref.nativeElement, \"contextmenu\"),\r\n fromEvent(window, \"click\"),\r\n fromEvent(window, \"resize\"),\r\n fromEvent(window, \"scroll\", { capture: true })\r\n ]).subscribe(this.destroyFn))\r\n }\r\n\r\n public clickItem = (item: ContextMenuItem) => {\r\n if(item.onClick && !item.disabled){\r\n item.onClick()\r\n this.destroyFn()\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { InputType } from \"../../shared/interfaces\"\r\nimport { OnBlur, OnFocus } from \"../../shared/interfaces/events\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-input-text\",\r\n template: `<dolfo-input-container>\r\n @if(type === \"textarea\"){\r\n <textarea #formInput [name]=\"formControlName\" [formControl]=\"input\" (focus)=\"onFocus.emit($event)\" (blur)=\"onBlur.emit($event)\" [placeholder]=\"placeHolder\"></textarea>\r\n }@else{\r\n <input #formInput [name]=\"formControlName\" [type]=\"type\" [formControl]=\"input\" (focus)=\"onFocus.emit($event)\" (blur)=\"onBlur.emit($event)\" [placeholder]=\"placeHolder\" />\r\n }\r\n </dolfo-input-container>`,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputTextComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => InputTextComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: InputTextComponent }\r\n ],\r\n standalone: false\r\n})\r\nexport class InputTextComponent extends BaseFormInput<string> implements OnFocus, OnBlur{\r\n @Input() type: InputType = \"text\"\r\n @Input() placeHolder = \"\"\r\n @Output() onFocus = new EventEmitter<FocusEvent>()\r\n @Output() onBlur = new EventEmitter<FocusEvent>()\r\n @ViewChild(\"formInput\") formInput: ElementRef<HTMLInputElement | HTMLTextAreaElement>\r\n\r\n public focus = () => this.formInput.nativeElement.focus()\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, Input } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { ComboOption, isDeepEqual } from \"../../shared/interfaces\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-input-radio\",\r\n template: `<dolfo-input-container>\r\n @for(option of options; track option){\r\n <div class=\"radio-item\">\r\n <input type=\"radio\" [name]=\"formControlName\" [formControl]=\"input\" [checked]=\"isSelectedOption(option)\" [value]=\"option.value\" />\r\n <label (click)=\"setOption(option)\">{{ option.label }}</label>\r\n </div>\r\n }\r\n </dolfo-input-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputRadioComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => InputRadioComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: InputRadioComponent }\r\n ]\r\n})\r\nexport class InputRadioComponent extends BaseFormInput<any> {\r\n @Input({ required: true }) options: ComboOption[]\r\n\r\n public isSelectedOption = (opt: ComboOption) => isDeepEqual(this.input.value, opt.value)\r\n\r\n public setOption = (opt: ComboOption) => {\r\n if(this.input.disabled)\r\n return\r\n \r\n this.input.setValue(opt.value)\r\n this.onChange.emit(this.input.value)\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, TemplateRef, ViewChild } from \"@angular/core\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog-content\",\r\n template: `<ng-template><ng-content></ng-content></ng-template>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DialogContentComponent implements OnInit{\r\n @ViewChild(TemplateRef) template: TemplateRef<unknown>\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges()\r\n }\r\n}\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from \"@angular/core\"\r\nimport { ButtonColor, ButtonSize } from \"../../shared/interfaces\"\r\nimport { OnBlur, OnClick, OnFocus } from \"../../shared/interfaces/events\"\r\n\r\n@Component({\r\n selector: \"dolfo-button\",\r\n template: `<button #btn [type]=\"type\" [disabled]=\"disabled || loading\" (click)=\"doClick($event)\" [class]=\"'color-' + (color || 'primary')\" (focus)=\"onFocus.emit($event)\" (blur)=\"onFocus.emit($event)\" [class.size-sm]=\"size === 'small'\" [class.size-lg]=\"size === 'large'\">\r\n @if(loading){\r\n <dolfo-icon name=\"spinner8\"></dolfo-icon>\r\n }\r\n <ng-content></ng-content>\r\n </button>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class ButtonComponent implements OnClick, OnBlur, OnFocus{\r\n @ViewChild(\"btn\") btn: ElementRef<HTMLButtonElement>\r\n @Input() type: \"button\" | \"submit\" = \"button\"\r\n @Input({ transform: booleanAttribute }) disabled = false\r\n @Input() color: ButtonColor\r\n @Input() loading = false\r\n @Input() size: ButtonSize\r\n\r\n @Output() onClick = new EventEmitter<MouseEvent>()\r\n @Output() onBlur = new EventEmitter<FocusEvent>()\r\n @Output() onFocus = new EventEmitter<FocusEvent>()\r\n\r\n public doClick = (e: MouseEvent) => {\r\n if (!this.disabled && !this.loading)\r\n this.onClick.emit(e)\r\n }\r\n\r\n public focus = () => {\r\n if(!this.disabled && !this.loading)\r\n this.btn.nativeElement.focus()\r\n }\r\n}\r\n","import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, TemplateRef, ViewChild } from \"@angular/core\"\r\nimport { DialogActionType, DialogIcon } from \"../../../shared/interfaces\"\r\nimport { DialogService } from \"../../../shared/services\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog-header\",\r\n template: `<ng-template>\r\n <h5>\r\n @if(icon){\r\n <i [class]=\"'icon-' + icon.icon + ' fg-' + icon.color\"></i>\r\n }\r\n {{ title }}\r\n </h5>\r\n @if(showCloseX){\r\n <dolfo-button (click)=\"close()\" color=\"secondary\" [dolfoTooltip]=\"'dialog.close' | translate\">\r\n <i class=\"icon-cross\"></i>\r\n </dolfo-button>\r\n }\r\n </ng-template>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DialogHeaderComponent implements OnInit{\r\n @ViewChild(TemplateRef) template: TemplateRef<unknown>\r\n @Input({ required: true }) title: string\r\n @Input() icon: DialogIcon\r\n @Input({ transform: booleanAttribute }) showCloseX = true\r\n\r\n constructor(private cdr: ChangeDetectorRef, private dialogService: DialogService) {}\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges()\r\n }\r\n\r\n public close = () => {\r\n this.dialogService.action({ type: DialogActionType.CANCEL, data: null })\r\n this.dialogService.close()\r\n }\r\n}\r\n","import { AfterViewChecked, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from \"@angular/core\"\r\nimport { DialogFooterButton } from \"../../../shared/interfaces\"\r\nimport { ButtonComponent } from \"../button.component\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog-footer\",\r\n template: `<ng-template>\r\n @for(btn of buttons; track btn.label){\r\n <dolfo-button (onClick)=\"btn.onClick()\" [color]=\"btn.color\" [disabled]=\"btn.disabled\" [loading]=\"btn.loading\">\r\n @if(btn.icon && !btn.loading){\r\n <dolfo-icon [name]=\"btn.icon\"></dolfo-icon>\r\n }\r\n {{ btn.label }}\r\n </dolfo-button>\r\n }\r\n </ng-template>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DialogFooterComponent implements OnInit, AfterViewChecked{\r\n @ViewChild(TemplateRef) template: TemplateRef<unknown>\r\n @ViewChildren(ButtonComponent) childrenButtons: QueryList<ButtonComponent>\r\n @Input({ required: true }) buttons: DialogFooterButton[]\r\n\r\n private focused = false\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges()\r\n setTimeout(() => this.cdr.markForCheck())\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if(!this.focused){\r\n const firstBtn = this.childrenButtons.find(btn => !btn.disabled && !btn.loading)\r\n\r\n if(firstBtn)\r\n firstBtn.focus()\r\n \r\n this.focused = true\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Input } from \"@angular/core\"\r\nimport { DialogContentComponent } from \"./dialog-content.component\"\r\nimport { DialogFooterComponent } from \"./dialog-footer.component\"\r\nimport { DialogHeaderComponent } from \"./dialog-header.component\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog-layout\",\r\n templateUrl: \"./dialog-layout.component.html\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DialogLayoutComponent {\r\n @ContentChild(DialogHeaderComponent) header: DialogHeaderComponent\r\n @ContentChild(DialogContentComponent) content: DialogContentComponent\r\n @ContentChild(DialogFooterComponent) footer: DialogFooterComponent\r\n @Input() width: number\r\n}\r\n","<div class=\"dialog\">\r\n <div class=\"dialog-inner\" [ngStyle]=\"{ width: width + 'px' }\">\r\n @if(header){\r\n <div class=\"dialog-header\">\r\n <ng-content *ngTemplateOutlet=\"header.template\"></ng-content>\r\n </div>\r\n }\r\n @if(content){\r\n <div class=\"dialog-content\">\r\n <ng-content *ngTemplateOutlet=\"content.template\"></ng-content>\r\n </div>\r\n }\r\n @if(footer){\r\n <div class=\"dialog-footer\">\r\n <ng-content *ngTemplateOutlet=\"footer.template\"></ng-content>\r\n </div>\r\n }\r\n </div>\r\n</div>","import { ChangeDetectionStrategy, Component, inject, Input, OnInit } from \"@angular/core\"\r\nimport { FormGroup } from \"@angular/forms\"\r\nimport { DomSanitizer } from \"@angular/platform-browser\"\r\nimport { Observable, of } from \"rxjs\"\r\nimport { Formable } from \"../../../shared/classes\"\r\nimport { DialogActionType, DialogComponentInput, DialogFooterButton, DialogForm, DialogIcon, DialogType, IDialogInput } from \"../../../shared/interfaces\"\r\nimport { DialogService } from \"../../../shared/services\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog\",\r\n standalone: false,\r\n template: `<dolfo-dialog-layout [width]=\"width\">\r\n @if(title){\r\n <dolfo-dialog-header [title]=\"title\" [showCloseX]=\"showCloseX()\" [icon]=\"getIcon()\"></dolfo-dialog-header>\r\n }\r\n\r\n <dolfo-dialog-content>\r\n <div [class.loading]=\"type === 'loading'\">\r\n @if(message){\r\n <span [innerHTML]=\"sanitizeMsg()\"></span>\r\n }\r\n\r\n @if(form && formGroup){\r\n <form [formGroup]=\"formGroup\">\r\n @for(f of form; track f.name){\r\n @switch(f.type){\r\n @case(\"date\"){\r\n <dolfo-datepicker [formControlName]=\"f.name\" [label]=\"f.label\"></dolfo-datepicker>\r\n }\r\n @case(\"autocomplete\"){\r\n <dolfo-autocomplete [formControlName]=\"f.name\" [label]=\"f.label\" [config]=\"f.autocompleteCfg\"></dolfo-autocomplete>\r\n }\r\n @case(\"radio\"){\r\n <dolfo-input-radio [formControlName]=\"f.name\" [label]=\"f.label\" [options]=\"f.options\"></dolfo-input-radio>\r\n }\r\n @case(\"combobox\"){\r\n <dolfo-combobox [formControlName]=\"f.name\" [label]=\"f.label\" [options]=\"f.options\"></dolfo-combobox>\r\n }\r\n @default{\r\n <dolfo-input-text [formControlName]=\"f.name\" [type]=\"f.type\" [label]=\"f.label\"></dolfo-input-text>\r\n }\r\n }\r\n }\r\n </form>\r\n }\r\n </div>\r\n </dolfo-dialog-content>\r\n\r\n @let footer = buttons || getFooter();\r\n\r\n @if(footer){\r\n <dolfo-dialog-footer [buttons]=\"footer\"></dolfo-dialog-footer>\r\n }\r\n </dolfo-dialog-layout>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DialogComponent extends Formable implements Required<IDialogInput>, OnInit {\r\n @Input() title: string\r\n @Input({ required: true }) message: string\r\n @Input() type: DialogType = \"info\"\r\n @Input() width: number\r\n @Input() hideCloseX = false\r\n @Input() form: DialogForm\r\n @Input() component: DialogComponentInput\r\n @Input() buttons: DialogFooterButton[]\r\n public formGroup: FormGroup\r\n \r\n protected dialogService = inject(DialogService)\r\n private sanitizer = inject(DomSanitizer)\r\n\r\n ngOnInit() {\r\n if(this.form){\r\n this.formGroup = new FormGroup({})\r\n this.form.forEach(f => this.formGroup.addControl(f.name, f.control))\r\n }\r\n }\r\n\r\n protected submit = (): Observable<unknown> => of(null)\r\n\r\n public getIcon = (): DialogIcon => {\r\n if(this.type === \"info\")\r\n return { icon: \"info\", color: \"info\" }\r\n if(this.type === \"error\")\r\n return { icon: \"notification\", color: \"error\" }\r\n if(this.type === \"confirm\")\r\n return { icon: \"question\", color: \"warning\" }\r\n\r\n return null\r\n }\r\n\r\n protected close = (type: DialogActionType, data?: Record<string, any>) => {\r\n if(type === DialogActionType.OK && this.formGroup && this.formRef){\r\n this.formRef.ngSubmit.emit()\r\n\r\n if(this.formGroup.invalid)\r\n return\r\n }\r\n\r\n this.dialogService.action({ type, data: data != null ? data : this.formGroup?.getRawValue() })\r\n this.dialogService.close()\r\n }\r\n\r\n public showCloseX = () => this.type !== \"loading\" && !this.hideCloseX\r\n\r\n public getFooter = (): DialogFooterButton[] => {\r\n if(this.type === \"loading\")\r\n return null\r\n\r\n if(this.type === \"info\" || this.type === \"error\"){\r\n return [{\r\n label: this.translateService.translate(\"dialog.ok\"),\r\n onClick: () => this.close(DialogActionType.OK),\r\n color: this.type\r\n }]\r\n }\r\n\r\n return [{\r\n label: this.translateService.translate(\"dialog.confirm\"),\r\n onClick: () => this.close(DialogActionType.OK),\r\n color: \"primary\"\r\n },\r\n {\r\n label: this.translateService.translate(\"dialog.no\"),\r\n onClick: () => this.close(DialogActionType.NO),\r\n color: \"secondary\"\r\n }]\r\n }\r\n\r\n public sanitizeMsg = () => this.sanitizer.bypassSecurityTrustHtml(this.message)\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from \"@angular/core\"\r\nimport { INotificationInput, NotificationAction, NotificationType } from \"../../shared/interfaces\"\r\nimport { NotificationService, TranslateService } from \"../../shared/services\"\r\n\r\n@Component({\r\n selector: \"dolfo-notification\",\r\n standalone: false,\r\n template: `<div class=\"notification\" [ngClass]=\"{\r\n success: type === 'success',\r\n error: type === 'error',\r\n warning: type === 'warning',\r\n info: type === 'info'\r\n }\" (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (click)=\"click()\">\r\n <div class=\"notification-header\">\r\n <h6>{{ title || getTitleByType() }}</h6>\r\n </div>\r\n <div class=\"notification-content\">\r\n {{ message }}\r\n </div>\r\n @if(action){\r\n <div class=\"notification-action\">\r\n <dolfo-button [color]=\"type\" (onClick)=\"action.click()\">\r\n <dolfo-icon name=\"new-tab\"></dolfo-icon>\r\n {{ action.label }}\r\n </dolfo-button>\r\n </div>\r\n }\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NotificationComponent implements OnInit, Required<INotificationInput>{\r\n @Input({ required: true }) title: string\r\n @Input({ required: true }) message: string\r\n @Input() type: NotificationType = \"info\"\r\n @Input() action: NotificationAction\r\n\r\n private timeout: any\r\n\r\n constructor(private ns: NotificationService, private ts: TranslateService){}\r\n\r\n ngOnInit(){\r\n this.mouseLeave()\r\n }\r\n\r\n public mouseEnter = () => clearTimeout(this.timeout)\r\n\r\n public mouseLeave = () => this.timeout = setTimeout(() => this.ns.hide(), 3000)\r\n\r\n public click = () => {\r\n this.mouseEnter()\r\n this.ns.hide()\r\n }\r\n\r\n public getTitleByType = () => this.ts.translate(\"notification.\" + this.type)\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, InjectionToken, Input, OnInit, TemplateRef, ViewChild } from \"@angular/core\"\r\nimport { DomSanitizer } from \"@angular/platform-browser\"\r\nimport { BehaviorSubject, filter, fromEvent, map, race, zip } from \"rxjs\"\r\nimport { Subscriptable } from \"../../shared/classes\"\r\nimport { IPopover, TooltipDirection } from \"../../shared/interfaces\"\r\n\r\nexport const POPOVER_DESTROY_TOKEN = new InjectionToken<() => void>(\"POPOVER_DESTROY_TOKEN\")\r\n\r\n@Component({\r\n selector: \"dolfo-popover\",\r\n standalone: false,\r\n template: `<div class=\"tooltip popover\" #tooltipRef [ngStyle]=\"{\r\n left: (x$ | async) + 'px',\r\n top: (y$ | async) + 'px'\r\n }\" [ngClass]=\"currentDirection$ | async\" [class.show]=\"completed$ | async\">\r\n @if(isTemplate()){\r\n <ng-container [ngTemplateOutlet]=\"getContentTemplate()\"></ng-container>\r\n }@else{\r\n <div [innerHTML]=\"getContentStr()\"></div>\r\n }\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PopoverComponent extends Subscriptable implements OnInit, AfterViewInit, Required<IPopover> {\r\n @ViewChild(\"tooltipRef\") tooltipRef: ElementRef<HTMLDivElement>\r\n @Input({ required: true }) content: string | TemplateRef<any>\r\n @Input({ required: true }) elementRef: ElementRef<HTMLElement>\r\n @Input({ required: true }) direction: TooltipDirection\r\n\r\n private destroyFn = inject(POPOVER_DESTROY_TOKEN)\r\n private checkCount = 0\r\n\r\n public currentDirection$ = new BehaviorSubject<TooltipDirection>(null)\r\n public completed$ = new BehaviorSubject(false)\r\n public readonly x$ = new BehaviorSubject(0)\r\n public readonly y$ = new BehaviorSubject(0)\r\n\r\n constructor(private cdr: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n super()\r\n }\r\n\r\n ngOnInit() {\r\n this.currentDirection$.next(this.direction)\r\n\r\n this.addSubscription(race([\r\n fromEvent(window, \"resize\"),\r\n fromEvent(window, \"scroll\", { capture: true }),\r\n fromEvent<MouseEvent>(window, \"click\").pipe(\r\n map(e => e.target as HTMLElement),\r\n filter(el => !el.isEqualNode(this.tooltipRef.nativeElement) && !this.tooltipRef.nativeElement.contains(el))\r\n )\r\n ]).subscribe(this.destroyFn))\r\n\r\n this.addSubscription(zip([this.x$, this.y$]).pipe(\r\n filter(([x, y]) => x != 0 && y != 0 && this.checkCount < 4)\r\n ).subscribe(() => {\r\n setTimeout(() => {\r\n if (this.isTooltipInViewport()) {\r\n this.completed$.next(true)\r\n this.calculatePosition()\r\n return\r\n }\r\n\r\n if (this.currentDirection$.getValue() === \"bottom\")\r\n this.currentDirection$.next(\"left\")\r\n else if (this.currentDirection$.getValue() === \"left\")\r\n this.currentDirection$.next(\"top\")\r\n else if (this.currentDirection$.getValue() === \"top\")\r\n this.currentDirection$.next(\"right\")\r\n else\r\n this.currentDirection$.next(\"bottom\")\r\n })\r\n }))\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.addSubscription(this.currentDirection$.asObservable().subscribe(() => setTimeout(() => this.calculatePosition())))\r\n }\r\n\r\n private calculatePosition = () => {\r\n const { elementRef, tooltipRef, currentDirection$ } = this,\r\n refRect = elementRef.nativeElement.getBoundingClientRect(),\r\n tooltipRect = tooltipRef.nativeElement.getBoundingClientRect(),\r\n currentDirection = currentDirection$.getValue()\r\n\r\n if (currentDirection === \"top\" || currentDirection === \"bottom\")\r\n this.x$.next(refRect.left - ((tooltipRect.width - refRect.width) / 2))\r\n else if (currentDirection === \"right\")\r\n this.x$.next(refRect.left + refRect.width)\r\n else\r\n this.x$.next(refRect.left - tooltipRect.width)\r\n\r\n if (currentDirection === \"top\")\r\n this.y$.next(refRect.top - tooltipRect.height)\r\n else if (currentDirection === \"bottom\")\r\n this.y$.next(refRect.top + refRect.height)\r\n else\r\n this.y$.next(refRect.top - ((tooltipRect.height - refRect.height) / 2))\r\n\r\n this.cdr.detectChanges()\r\n this.checkCount++\r\n }\r\n\r\n private isTooltipInViewport = () => {\r\n const { top, left, bottom, right } = this.tooltipRef.nativeElement.getBoundingClientRect()\r\n return top >= 0 && left >= 0 && bottom <= window.innerHeight && right <= window.innerWidth\r\n }\r\n\r\n public getContentStr = () => this.sanitizer.bypassSecurityTrustHtml(this.content as string)\r\n\r\n public isTemplate = () => this.content instanceof TemplateRef\r\n\r\n public getContentTemplate = () => this.content as TemplateRef<any>\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, InjectionToken, Input, OnInit, ViewChild } from \"@angular/core\"\r\nimport { BehaviorSubject, filter, fromEvent, race, zip } from \"rxjs\"\r\nimport { Subscriptable } from \"../../shared/classes\"\r\nimport { ITooltip, TooltipDirection } from \"../../shared/interfaces\"\r\n\r\nexport const TOOLTIP_DESTROY_TOKEN = new InjectionToken<() => void>(\"TOOLTIP_DESTROY_TOKEN\")\r\n\r\n@Component({\r\n selector: \"dolfo-tooltip\",\r\n standalone: false,\r\n template: `<div class=\"tooltip\" #tooltipRef [ngStyle]=\"{\r\n left: (x$ | async) + 'px',\r\n top: (y$ | async) + 'px'\r\n }\" [ngClass]=\"currentDirection$ | async\" [class.show]=\"completed$ | async\">\r\n {{ content }}\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TooltipComponent extends Subscriptable implements OnInit, AfterViewInit, Required<ITooltip> {\r\n @ViewChild(\"tooltipRef\") tooltipRef: ElementRef<HTMLDivElement>\r\n @Input({ required: true }) content: string\r\n @Input({ required: true }) elementRef: ElementRef<HTMLElement>\r\n @Input({ required: true }) direction: TooltipDirection\r\n \r\n private destroyFn = inject(TOOLTIP_DESTROY_TOKEN)\r\n private checkCount = 0\r\n\r\n public currentDirection$ = new BehaviorSubject<TooltipDirection>(null)\r\n public completed$ = new BehaviorSubject(false)\r\n public readonly x$ = new BehaviorSubject(0)\r\n public readonly y$ = new BehaviorSubject(0)\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n super()\r\n }\r\n\r\n ngOnInit() {\r\n this.currentDirection$.next(this.direction)\r\n\r\n this.addSubscription(race([\r\n fromEvent(window, \"resize\"),\r\n fromEvent(window, \"scroll\", { capture: true }),\r\n fromEvent(this.elementRef.nativeElement, \"mouseleave\")\r\n ]).subscribe(this.destroyFn))\r\n\r\n this.addSubscription(zip([this.x$, this.y$]).pipe(\r\n filter(([x, y]) => x != 0 && y != 0 && this.checkCount < 4)\r\n ).subscribe(() => {\r\n setTimeout(() => {\r\n if (this.isTooltipInViewport()) {\r\n this.completed$.next(true)\r\n this.calculatePosition()\r\n return\r\n }\r\n\r\n if (this.currentDirection$.getValue() === \"bottom\")\r\n this.currentDirection$.next(\"left\")\r\n else if (this.currentDirection$.getValue() === \"left\")\r\n this.currentDirection$.next(\"top\")\r\n else if (this.currentDirection$.getValue() === \"top\")\r\n this.currentDirection$.next(\"right\")\r\n else\r\n this.currentDirection$.next(\"bottom\")\r\n })\r\n }))\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.addSubscription(this.currentDirection$.asObservable().subscribe(() => setTimeout(() => this.calculatePosition())))\r\n }\r\n\r\n private calculatePosition = () => {\r\n const { elementRef, tooltipRef, currentDirection$ } = this,\r\n refRect = elementRef.nativeElement.getBoundingClientRect(),\r\n tooltipRect = tooltipRef.nativeElement.getBoundingClientRect(),\r\n currentDirection = currentDirection$.getValue()\r\n\r\n if (currentDirection === \"top\" || currentDirection === \"bottom\")\r\n this.x$.next(refRect.left - ((tooltipRect.width - refRect.width) / 2))\r\n else if (currentDirection === \"right\")\r\n this.x$.next(refRect.left + refRect.width)\r\n else\r\n this.x$.next(refRect.left - tooltipRect.width)\r\n\r\n if (currentDirection === \"top\")\r\n this.y$.next(refRect.top - tooltipRect.height)\r\n else if (currentDirection === \"bottom\")\r\n this.y$.next(refRect.top + refRect.height)\r\n else\r\n this.y$.next(refRect.top - ((tooltipRect.height - refRect.height) / 2))\r\n\r\n this.cdr.detectChanges()\r\n this.checkCount++\r\n }\r\n\r\n private isTooltipInViewport = () => {\r\n const { top, left, bottom, right } = this.tooltipRef.nativeElement.getBoundingClientRect()\r\n return top >= 0 && left >= 0 && bottom <= window.innerHeight && right <= window.innerWidth\r\n }\r\n}","import { ComponentRef, createComponent, EnvironmentInjector, Injector, ViewContainerRef } from \"@angular/core\"\r\nimport { distinctUntilChanged, filter, map, tap } from \"rxjs\"\r\nimport { CONTEXT_MENU_DESTROY_TOKEN, ContextMenuComponent } from \"../../components/layout/context-menu.component\"\r\nimport { DialogComponent } from \"../../components/layout/dialog-layout/dialog.component\"\r\nimport { NotificationComponent } from \"../../components/layout/notification.component\"\r\nimport { POPOVER_DESTROY_TOKEN, PopoverComponent } from \"../../components/layout/popover.component\"\r\nimport { TOOLTIP_DESTROY_TOKEN, TooltipComponent } from \"../../components/layout/tooltip.component\"\r\nimport { IDialogInput, isDeepEqual } from \"../interfaces\"\r\nimport { ContextMenuService, DialogService, NotificationService, PopoverService, TooltipService } from \"../services\"\r\n\r\nexport class OverlayManager{\r\n private dialog: [ComponentRef<IDialogInput>, number][] = []\r\n private notification: ComponentRef<NotificationComponent>\r\n private tooltip: ComponentRef<TooltipComponent>\r\n private popover: ComponentRef<PopoverComponent>\r\n private contextMenu: ComponentRef<ContextMenuComponent>\r\n \r\n constructor(private injector: Injector, private container: ViewContainerRef){}\r\n\r\n public init = () => {\r\n const ds = this.injector.get(DialogService),\r\n ns = this.injector.get(NotificationService),\r\n ts = this.injector.get(TooltipService),\r\n cs = this.injector.get(ContextMenuService),\r\n ps = this.injector.get(PopoverService),\r\n environmentInjector = this.injector.get(EnvironmentInjector)\r\n\r\n return [\r\n ds.getDialog$().pipe(\r\n tap(inputs => {\r\n const notFound = this.dialog.filter(d => !inputs.some(i => i._dialogId === d[1]))\r\n\r\n notFound.forEach(d => d[0].destroy())\r\n\r\n this.dialog = this.dialog.filter(d => !notFound.some(d2 => d2[1] === d[1]))\r\n }),\r\n map(inputs => inputs[inputs.length - 1]),\r\n distinctUntilChanged((a, b) => isDeepEqual(a, b)),\r\n filter(input => !!input && !this.dialog.some(d => d[1] === input._dialogId))\r\n ).subscribe(input => {\r\n const dialog = createComponent(input.component?.type || DialogComponent, { environmentInjector })\r\n this.dialog.push([dialog, input._dialogId])\r\n \r\n Object.entries(input).filter(k => k[0] !== \"_dialogId\").forEach(([k, v]) => dialog.setInput(k, v))\r\n \r\n if(input.component?.input)\r\n Object.entries(input.component.input).forEach(([k, v]) => dialog.setInput(k, v))\r\n \r\n this.container.insert(dialog.hostView)\r\n }),\r\n ns.getNotification$().pipe(\r\n distinctUntilChanged((a, b) => isDeepEqual(a, b)),\r\n tap(() => {\r\n if(this.notification)\r\n this.notification.destroy()\r\n }),\r\n filter(input => !!input)\r\n ).subscribe(input => {\r\n this.notification = createComponent(NotificationComponent, { environmentInjector })\r\n \r\n Object.entries(input).forEach(([k, v]) => this.notification.setInput(k, v))\r\n \r\n this.container.insert(this.notification.hostView)\r\n }),\r\n ts.getTooltip$().pipe(\r\n tap(() => {\r\n if(this.tooltip)\r\n this.tooltip.destroy()\r\n }),\r\n filter(input => !!input)\r\n ).subscribe(input => {\r\n this.tooltip = createComponent(TooltipComponent, {\r\n environmentInjector,\r\n elementInjector: Injector.create({\r\n providers: [{ provide: TOOLTIP_DESTROY_TOKEN, useValue: () => this.tooltip.destroy() }]\r\n })\r\n })\r\n \r\n Object.entries(input).forEach(([k, v]) => this.tooltip.setInput(k, v))\r\n \r\n this.container.insert(this.tooltip.hostView)\r\n }),\r\n ps.getPopover$().pipe(\r\n tap(() => {\r\n if(this.popover)\r\n this.popover.destroy()\r\n }),\r\n filter(input => !!input)\r\n ).subscribe(input => {\r\n this.popover = createComponent(PopoverComponent, {\r\n environmentInjector,\r\n elementInjector: Injector.create({\r\n providers: [{ provide: POPOVER_DESTROY_TOKEN, useValue: () => this.popover.destroy() }]\r\n })\r\n })\r\n \r\n Object.entries(input).forEach(([k, v]) => this.popover.setInput(k, v))\r\n \r\n this.container.insert(this.popover.hostView)\r\n }),\r\n cs.getContextMenu$().pipe(\r\n distinctUntilChanged((a, b) => isDeepEqual(a, b)),\r\n tap(() => {\r\n if(this.contextMenu)\r\n this.contextMenu.destroy()\r\n }),\r\n filter(input => !!input)\r\n ).subscribe(input => {\r\n this.contextMenu = createComponent(ContextMenuComponent, {\r\n environmentInjector,\r\n elementInjector: Injector.create({\r\n providers: [{ provide: CONTEXT_MENU_DESTROY_TOKEN, useValue: () => this.contextMenu.destroy() }]\r\n })\r\n })\r\n \r\n Object.entries(input).forEach(([k, v]) => this.contextMenu.setInput(k, v))\r\n \r\n this.container.insert(this.contextMenu.hostView)\r\n })\r\n ]\r\n }\r\n}","import { booleanAttribute, Directive, ElementRef, Input, OnInit } from \"@angular/core\"\r\nimport { fromEvent } from \"rxjs\"\r\nimport { Subscriptable } from \"../classes\"\r\nimport { ContextMenuItem } from \"../interfaces\"\r\nimport { ContextMenuService } from \"../services\"\r\n\r\n@Directive({\r\n selector: \"[dolfoContextMenu]\",\r\n standalone: false\r\n})\r\nexport class ContextMenuDirective extends Subscriptable implements OnInit{\r\n @Input({ required: true, alias: \"dolfoContextMenu\" }) contextMenu: ContextMenuItem[]\r\n @Input({ transform: booleanAttribute }) openOnClick: boolean\r\n @Input({ transform: booleanAttribute }) useElRef: boolean\r\n @Input() position?: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\" = \"bottom-left\"\r\n\r\n constructor(private contextMenuService: ContextMenuService, private elRef: ElementRef<HTMLElement>) {\r\n super()\r\n }\r\n\r\n ngOnInit(){\r\n this.addSubscription(fromEvent<MouseEvent>(this.elRef.nativeElement, this.openOnClick ? \"click\" : \"contextmenu\").subscribe(e => {\r\n e.preventDefault()\r\n\r\n const [left, top] = this.getElRefPosition()\r\n\r\n this.contextMenuService.openContextMenu({\r\n x: this.useElRef ? left : e.clientX,\r\n y: this.useElRef ? top : e.clientY,\r\n items: this.contextMenu,\r\n ref: this.elRef,\r\n position: this.position\r\n })\r\n }))\r\n }\r\n\r\n private getElRefPosition = () => {\r\n const diff = this.elRef.nativeElement.offsetLeft + this.elRef.nativeElement.offsetWidth\r\n\r\n if(this.position.startsWith(\"bottom-\")){\r\n const top = this.elRef.nativeElement.offsetTop + this.elRef.nativeElement.offsetHeight\r\n\r\n if(this.position === \"bottom-left\")\r\n return [this.elRef.nativeElement.offsetLeft, top]\r\n\r\n return [diff, top]\r\n }\r\n\r\n const top = this.elRef.nativeElement.offsetTop\r\n\r\n if(this.position === \"top-right\")\r\n return [diff, top]\r\n\r\n return [this.elRef.nativeElement.offsetLeft, top]\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, TemplateRef } from \"@angular/core\"\r\nimport { filter, fromEvent } from \"rxjs\"\r\nimport { Subscriptable } from \"../classes\"\r\nimport { TooltipDirection } from \"../interfaces\"\r\nimport { PopoverService } from \"../services\"\r\n\r\n@Directive({\r\n selector: \"[dolfoPopover]\",\r\n standalone: false\r\n})\r\nexport class PopoverDirective extends Subscriptable{\r\n @Input({ required: true, alias: \"dolfoPopover\" }) content: string | TemplateRef<any>\r\n @Input() direction: TooltipDirection = \"top\"\r\n\r\n constructor(private el: ElementRef<HTMLElement>, private ps: PopoverService) {\r\n super()\r\n }\r\n\r\n ngOnInit(){\r\n this.addSubscription(fromEvent(this.el.nativeElement, \"mousedown\").pipe(\r\n filter(() => !!this.ps.getPopover())\r\n ).subscribe(() => this.ps.hide()))\r\n\r\n this.addSubscription(\r\n fromEvent(this.el.nativeElement, \"click\").pipe(\r\n filter(() => !!this.content)\r\n ).subscribe(() => this.ps.showPopover({\r\n content: this.content,\r\n elementRef: this.el,\r\n direction: this.direction\r\n }))\r\n )\r\n }\r\n}\r\n","import { Directive, ElementRef } from \"@angular/core\"\r\nimport { filter, fromEvent } from \"rxjs\"\r\nimport { Subscriptable } from \"../classes\"\r\n\r\n@Directive({\r\n\tselector: \"[dolfoScrollDrag]\",\r\n standalone: false\r\n})\r\nexport class ScrollDragDirective extends Subscriptable {\r\n\tprivate mouseDownX: number\r\n\tprivate initialScrollX = 0\r\n\tprivate diffX = 0\r\n\tprivate mouseDownY: number\r\n\tprivate initialScrollY = 0\r\n\tprivate diffY = 0\r\n\r\n\tconstructor(elementRef: ElementRef<HTMLElement>) {\r\n\t\tsuper()\r\n\r\n\t\tthis.addSubscription(fromEvent<MouseEvent>(elementRef.nativeElement, \"mousedown\").pipe(\r\n filter(e => e.button === 0)\r\n ).subscribe(e => {\r\n\t\t\te.preventDefault()\r\n\t\t\te.stopPropagation()\r\n\t\t\tthis.mouseDownX = e.clientX\r\n\t\t\tthis.mouseDownY = e.clientY\r\n\t\t\tthis.initialScrollX = elementRef.nativeElement.scrollLeft\r\n\t\t\tthis.initialScrollY = elementRef.nativeElement.scrollTop\r\n\t\t\telementRef.nativeElement.classList.add(\"dragging\")\r\n\t\t}))\r\n\r\n\t\tthis.addSubscription(fromEvent(document, \"mouseup\", { capture: true }).subscribe(() => {\r\n\t\t\tthis.mouseDownX = null\r\n\t\t\tthis.mouseDownY = null\r\n\t\t\telementRef.nativeElement.classList.remove(\"dragging\")\r\n\t\t}))\r\n\r\n\t\tthis.addSubscription(fromEvent<Event>(elementRef.nativeElement, \"click\", { capture: true }).pipe(\r\n\t\t\tfilter(() => this.diffX != 0 || this.diffY != 0)\r\n\t\t).subscribe(e => {\r\n\t\t\te.stopPropagation()\r\n\t\t\tthis.diffX = 0\r\n\t\t\tthis.diffY = 0\r\n\t\t}))\r\n\r\n\t\tthis.addSubscription(fromEvent<MouseEvent>(document, \"mousemove\").pipe(\r\n\t\t\tfilter(() => this.mouseDownX != null || this.mouseDownY != null)\r\n\t\t).subscribe(e => {\r\n\t\t\te.stopPropagation()\r\n\r\n\t\t\tif (this.mouseDownX != null) {\r\n\t\t\t\tthis.diffX = this.initialScrollX + (this.mouseDownX - e.clientX)\r\n\t\t\t\telementRef.nativeElement.scrollLeft = this.diffX\r\n\t\t\t}\r\n\t\t\tif (this.mouseDownY != null) {\r\n\t\t\t\tthis.diffY = this.initialScrollY + (this.mouseDownY - e.clientY)\r\n\t\t\t\telementRef.nativeElement.scrollTop = this.diffY\r\n\t\t\t}\r\n\t\t}))\r\n\t}\r\n}\r\n","import { NgModule } from \"@angular/core\"\r\nimport { ContextMenuDirective } from \"./context-menu.directive\"\r\nimport { PopoverDirective } from \"./popover.directive\"\r\nimport { ScrollDragDirective } from \"./scroll-drag.directive\"\r\nimport { TooltipDirective } from \"./tooltip.directive\"\r\n\r\n@NgModule({\r\n declarations: [ContextMenuDirective, ScrollDragDirective, TooltipDirective, PopoverDirective],\r\n exports: [ContextMenuDirective, ScrollDragDirective, TooltipDirective, PopoverDirective]\r\n})\r\nexport class DirectivesModule{}","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\"\r\n\r\n@Component({\r\n\tselector: \"dolfo-loader\",\r\n\tstandalone: false,\r\n\ttemplate: `<div class=\"loading\">\r\n\t\t<dolfo-icon name=\"spinner5\"></dolfo-icon>\r\n\t\t{{ langKey | translate }}\r\n\t</div>`,\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LoaderComponent {\r\n\t@Input() langKey = \"loading\"\r\n}\r\n","import { CommonModule } from \"@angular/common\"\r\nimport { NgModule } from \"@angular/core\"\r\nimport { DirectivesModule } from \"../../shared/directives/directives.module\"\r\nimport { TranslatePipe } from \"../../shared/pipes/translate.pipe\"\r\nimport { ButtonComponent } from \"./button.component\"\r\nimport { ContextMenuComponent } from \"./context-menu.component\"\r\nimport { IconWrapperComponent } from \"./icon-wrapper.component\"\r\nimport { IconComponent } from \"./icon.component\"\r\nimport { LoaderComponent } from \"./loader.component\"\r\nimport { NotificationComponent } from \"./notification.component\"\r\nimport { PopoverComponent } from \"./popover.component\"\r\nimport { TooltipComponent } from \"./tooltip.component\"\r\n\r\n@NgModule({\r\n declarations: [ButtonComponent, ContextMenuComponent, IconWrapperComponent, LoaderComponent, NotificationComponent, TooltipComponent, IconComponent, PopoverComponent],\r\n imports: [CommonModule, DirectivesModule, TranslatePipe],\r\n exports: [ButtonComponent, ContextMenuComponent, IconWrapperComponent, LoaderComponent, NotificationComponent, TooltipComponent, IconComponent, PopoverComponent]\r\n})\r\nexport class LayoutModule {}","import { ChangeDetectionStrategy, Component, forwardRef } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-input-checkbox\",\r\n template: `<div class=\"input-checkbox\">\r\n <input type=\"checkbox\" [name]=\"formControlName\" [formControl]=\"input\" [checked]=\"input.value\" />\r\n @if(label){\r\n <label (click)=\"toggleCheck()\">{{ label }}</label>\r\n }\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputCheckboxComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => InputCheckboxComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: InputCheckboxComponent }\r\n ]\r\n})\r\nexport class InputCheckboxComponent extends BaseFormInput<boolean> {\r\n public toggleCheck = () => this.input.setValue(!this.input.value)\r\n}\r\n","import { CommonModule } from \"@angular/common\"\r\nimport { NgModule } from \"@angular/core\"\r\nimport { ReactiveFormsModule } from \"@angular/forms\"\r\nimport { DirectivesModule } from \"../../shared/directives/directives.module\"\r\nimport { TranslatePipe } from \"../../shared/pipes/translate.pipe\"\r\nimport { LayoutModule } from \"../layout/layout.module\"\r\nimport { AutocompleteComponent } from \"./autocomplete.component\"\r\nimport { ComboboxComponent } from \"./combobox.component\"\r\nimport { DatepickerComponent } from \"./datepicker.component\"\r\nimport { InputCheckboxComponent } from \"./input-checkbox.component\"\r\nimport { InputContainerComponent } from \"./input-container.component\"\r\nimport { InputRadioComponent } from \"./input-radio.component\"\r\nimport { InputTextComponent } from \"./input-text.component\"\r\n\r\n@NgModule({\r\n declarations: [InputTextComponent, InputContainerComponent, ComboboxComponent, DatepickerComponent, AutocompleteComponent, InputRadioComponent, InputCheckboxComponent],\r\n imports: [CommonModule, ReactiveFormsModule, TranslatePipe, DirectivesModule, LayoutModule],\r\n exports: [ReactiveFormsModule, InputTextComponent, InputContainerComponent, ComboboxComponent, DatepickerComponent, AutocompleteComponent, InputRadioComponent, InputCheckboxComponent]\r\n})\r\nexport class FormModule {}\r\n","import { CommonModule } from \"@angular/common\"\r\nimport { NgModule } from \"@angular/core\"\r\nimport { ReactiveFormsModule } from \"@angular/forms\"\r\nimport { DirectivesModule } from \"../../../shared/directives/directives.module\"\r\nimport { TranslatePipe } from \"../../../shared/pipes/translate.pipe\"\r\nimport { FormModule } from \"../../form/form.module\"\r\nimport { LayoutModule } from \"../layout.module\"\r\nimport { DialogContentComponent } from \"./dialog-content.component\"\r\nimport { DialogFooterComponent } from \"./dialog-footer.component\"\r\nimport { DialogHeaderComponent } from \"./dialog-header.component\"\r\nimport { DialogLayoutComponent } from \"./dialog-layout.component\"\r\nimport { DialogComponent } from \"./dialog.component\"\r\n\r\n@NgModule({\r\n declarations: [DialogComponent, DialogContentComponent, DialogHeaderComponent, DialogFooterComponent, DialogLayoutComponent],\r\n imports: [CommonModule, DirectivesModule, LayoutModule, ReactiveFormsModule, TranslatePipe, FormModule],\r\n exports: [DialogComponent, DialogContentComponent, DialogHeaderComponent, DialogFooterComponent, DialogLayoutComponent]\r\n})\r\nexport class DialogLayoutModule {}\r\n","import { Component, Input } from \"@angular/core\"\r\nimport { DomSanitizer } from \"@angular/platform-browser\"\r\nimport { ColumnDataType, GridColumn, GridConfig } from \"../../../shared/interfaces\"\r\nimport { TranslateService } from \"../../../shared/services\"\r\n\r\n@Component({\r\n selector: \"dolfo-grid\",\r\n templateUrl: \"./grid.component.html\",\r\n standalone: false\r\n})\r\nexport class GridComponent<T>{\r\n\t@Input({ required: true }) config: GridConfig<T>\r\n\r\n\tconstructor(private translateService: TranslateService, private sanitizer: DomSanitizer){}\r\n\r\n\tpublic resolveField = (item: T, { field, formatter, dataType }: GridColumn) => {\r\n let value = field\r\n .toString()\r\n .split(\".\")\r\n .reduce((prev, curr) => prev?.[curr as keyof T] as any, item) as string\r\n\r\n if(dataType === ColumnDataType.DATE)\r\n\t\t\tvalue = this.translateService.formatDate(value)\r\n else if(dataType === ColumnDataType.DATETIME)\r\n\t\t\tvalue = this.translateService.formatDateTime(value)\r\n\r\n const retValue = formatter ? formatter(value) : value\r\n \r\n return this.sanitizer.bypassSecurityTrustHtml(retValue)\r\n }\r\n}\r\n","@let loading = config.isLoading$() | async;\r\n\r\n<div class=\"grid-container\" [class.loading]=\"loading\">\r\n @if(loading){\r\n <div class=\"grid-loading\">\r\n <dolfo-icon name=\"spinner2\"></dolfo-icon>\r\n </div>\r\n }\r\n\r\n <table>\r\n @let columns = config.getColumns();\r\n @let showActions = config.hasActions;\r\n @let selection = config.getSelectionConfig();\r\n @let colSpan = columns.length + (showActions ? 1 : 0) + (selection ? 1 : 0);\r\n \r\n <thead>\r\n <tr>\r\n @if(selection){\r\n <th [style]=\"{ width: 0 }\">\r\n @if(selection.showSelectAll && selection.type === \"multiple\"){\r\n <input type=\"checkbox\" [checked]=\"config.isAllSelected()\" (change)=\"config.toggleSelectAll()\" />\r\n }\r\n </th>\r\n }\r\n\r\n @for(col of columns; track col.label){\r\n <th [ngStyle]=\"{ width: col.width + 'px', maxWidth: col.width + 'px' }\">{{ col.label | translate }}</th>\r\n }\r\n \r\n @if(showActions){\r\n <th>{{ \"grid.actions\" | translate }}</th>\r\n }\r\n </tr>\r\n </thead>\r\n \r\n <tbody>\r\n @let list = config.getList$() | async;\r\n \r\n @if(list.length > 0){\r\n @for(item of list; track config.getUniqueId(item)){\r\n @let itemActions = config.getActions(item);\r\n @let rowClass = config.getRowClass(item);\r\n \r\n <tr (click)=\"config.getEvents()?.onRowClick?.(item)\" [dolfoContextMenu]=\"itemActions\" position=\"bottom-right\">\r\n @if(selection){\r\n <td [ngClass]=\"rowClass\" class=\"align-center\">\r\n <input type=\"checkbox\" [checked]=\"config.isItemSelected(item)\" (change)=\"config.toggleSelection(item)\" />\r\n </td>\r\n }\r\n\r\n @for(col of columns; track col.label){\r\n <td [ngStyle]=\"{ width: col.width + 'px' }\" [ngClass]=\"rowClass\" [class.align-right]=\"col.align === 'right'\" [class.align-center]=\"col.align === 'center'\" [innerHTML]=\"resolveField(item, col)\"></td>\r\n }\r\n \r\n @if(showActions){\r\n <td class=\"align-center actions\" [ngClass]=\"rowClass\">\r\n @if(itemActions.length > 0){\r\n <dolfo-button color=\"secondary\" [dolfoTooltip]=\"'grid.showActions' | translate\" [dolfoContextMenu]=\"itemActions\" position=\"bottom-right\" openOnClick>\r\n <dolfo-icon name=\"flickr\"></dolfo-icon>\r\n </dolfo-button>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n }@else {\r\n <tr>\r\n <td [colSpan]=\"colSpan\" class=\"align-center\">{{ \"grid.noResults\" | translate }}</td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n</div>","import { CommonModule } from \"@angular/common\"\r\nimport { NgModule } from \"@angular/core\"\r\nimport { DirectivesModule } from \"../../../shared/directives/directives.module\"\r\nimport { TranslatePipe } from \"../../../shared/pipes/translate.pipe\"\r\nimport { LayoutModule } from \"../layout.module\"\r\nimport { GridComponent } from \"./grid.component\"\r\n\r\n@NgModule({\r\n declarations: [GridComponent],\r\n imports: [CommonModule, DirectivesModule, LayoutModule, TranslatePipe],\r\n exports: [GridComponent]\r\n})\r\nexport class GridModule{}","/*\r\n * Public API Surface of dolfo-angular\r\n */\r\n\r\n// Form\r\nexport * from \"./lib/components/form/autocomplete.component\"\r\nexport * from \"./lib/components/form/base-form-input\"\r\nexport * from \"./lib/components/form/combobox.component\"\r\nexport * from \"./lib/components/form/datepicker.component\"\r\nexport * from \"./lib/components/form/form.module\"\r\nexport * from \"./lib/components/form/input-checkbox.component\"\r\nexport * from \"./lib/components/form/input-container.component\"\r\nexport * from \"./lib/components/form/input-radio.component\"\r\nexport * from \"./lib/components/form/input-text.component\"\r\n\r\n// Layout\r\nexport * from \"./lib/components/layout/button.component\"\r\nexport * from \"./lib/components/layout/context-menu.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-content.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-footer.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-header.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-layout.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-layout.module\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog.component\"\r\nexport * from \"./lib/components/layout/grid/grid.component\"\r\nexport * from \"./lib/components/layout/grid/grid.module\"\r\nexport * from \"./lib/components/layout/icon-wrapper.component\"\r\nexport * from \"./lib/components/layout/icon.component\"\r\nexport * from \"./lib/components/layout/layout.module\"\r\nexport * from \"./lib/components/layout/loader.component\"\r\nexport * from \"./lib/components/layout/notification.component\"\r\nexport * from \"./lib/components/layout/popover.component\"\r\nexport * from \"./lib/components/layout/tooltip.component\"\r\n\r\n// Classes\r\nexport * from \"./lib/shared/classes\"\r\n\r\n// Interfaces\r\nexport * from \"./lib/shared/interfaces\"\r\n\r\n// Directives\r\nexport * from \"./lib/shared/directives/context-menu.directive\"\r\nexport * from \"./lib/shared/directives/directives.module\"\r\nexport * from \"./lib/shared/directives/popover.directive\"\r\nexport * from \"./lib/shared/directives/scroll-drag.directive\"\r\nexport * from \"./lib/shared/directives/tooltip.directive\"\r\n\r\n// Services\r\nexport * from \"./lib/shared/services\"\r\n\r\n// Pipes\r\nexport * from \"./lib/shared/pipes/translate.pipe\"\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslateService","i1.TooltipService","i1.BaseFormInput","i2.TranslateService","i3","i4.TooltipDirective","i5.TranslatePipe","i1.InputContainerComponent","i2.TranslatePipe","i1","i2.TooltipDirective","i3.IconWrapperComponent","i4.InputContainerComponent","i2.InputContainerComponent","i2.IconWrapperComponent","i1.IconWrapperComponent","i1.DialogService","i3.ButtonComponent","i4.TranslatePipe","i1.ButtonComponent","i2.InputTextComponent","i3.ComboboxComponent","i4.DatepickerComponent","i5.AutocompleteComponent","i6.InputRadioComponent","i7.DialogContentComponent","i8.DialogHeaderComponent","i9.DialogFooterComponent","i10.DialogLayoutComponent","i1.NotificationService","i2","i4.IconWrapperComponent","i1.ContextMenuService","i1.PopoverService","i4.ContextMenuDirective","i5.TooltipDirective","i6.ButtonComponent","i7.IconWrapperComponent","i8.TranslatePipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dolfo-angular.mjs","sources":["../../projects/dolfo-angular/src/lib/shared/classes/subscriptable.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/components/dialog.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/components/grid.ts","../../projects/dolfo-angular/src/lib/components/layout/icon.component.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/components/icon.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/translate.ts","../../projects/dolfo-angular/src/lib/shared/interfaces/utils.ts","../../projects/dolfo-angular/src/lib/shared/services/context-menu.service.ts","../../projects/dolfo-angular/src/lib/shared/services/translate.service.ts","../../projects/dolfo-angular/src/lib/shared/services/dialog.service.ts","../../projects/dolfo-angular/src/lib/shared/services/notification.service.ts","../../projects/dolfo-angular/src/lib/shared/services/popover.service.ts","../../projects/dolfo-angular/src/lib/shared/services/tooltip.service.ts","../../projects/dolfo-angular/src/lib/shared/directives/tooltip.directive.ts","../../projects/dolfo-angular/src/lib/shared/pipes/translate.pipe.ts","../../projects/dolfo-angular/src/lib/components/form/input-container.component.ts","../../projects/dolfo-angular/src/lib/components/form/base-form-input.ts","../../projects/dolfo-angular/src/lib/components/form/autocomplete.component.ts","../../projects/dolfo-angular/src/lib/components/layout/icon-wrapper.component.ts","../../projects/dolfo-angular/src/lib/components/form/combobox.component.ts","../../projects/dolfo-angular/src/lib/components/form/datepicker.component.ts","../../projects/dolfo-angular/src/lib/shared/classes/formable.ts","../../projects/dolfo-angular/src/lib/components/layout/context-menu.component.ts","../../projects/dolfo-angular/src/lib/components/form/input-text.component.ts","../../projects/dolfo-angular/src/lib/components/form/input-radio.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-content.component.ts","../../projects/dolfo-angular/src/lib/components/layout/button.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-header.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-footer.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-layout.component.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-layout.component.html","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog.component.ts","../../projects/dolfo-angular/src/lib/components/layout/notification.component.ts","../../projects/dolfo-angular/src/lib/components/layout/popover.component.ts","../../projects/dolfo-angular/src/lib/components/layout/tooltip.component.ts","../../projects/dolfo-angular/src/lib/shared/classes/overlay-manager.ts","../../projects/dolfo-angular/src/lib/shared/directives/context-menu.directive.ts","../../projects/dolfo-angular/src/lib/shared/directives/popover.directive.ts","../../projects/dolfo-angular/src/lib/shared/directives/scroll-drag.directive.ts","../../projects/dolfo-angular/src/lib/shared/directives/directives.module.ts","../../projects/dolfo-angular/src/lib/components/layout/loader.component.ts","../../projects/dolfo-angular/src/lib/components/layout/layout.module.ts","../../projects/dolfo-angular/src/lib/components/form/input-checkbox.component.ts","../../projects/dolfo-angular/src/lib/components/form/form.module.ts","../../projects/dolfo-angular/src/lib/components/layout/dialog-layout/dialog-layout.module.ts","../../projects/dolfo-angular/src/lib/components/layout/grid/grid.component.ts","../../projects/dolfo-angular/src/lib/components/layout/grid/grid.component.html","../../projects/dolfo-angular/src/lib/components/layout/grid/grid.module.ts","../../projects/dolfo-angular/src/public-api.ts","../../projects/dolfo-angular/src/dolfo-angular.ts"],"sourcesContent":["import { Directive, OnDestroy } from \"@angular/core\"\r\nimport { Subscription } from \"rxjs\"\r\n\r\n@Directive()\r\nexport abstract class Subscriptable implements OnDestroy{\r\n private subs: Subscription[] = []\r\n\r\n protected addSubscription = (sub: Subscription) => this.subs.push(sub)\r\n\r\n ngOnDestroy(){\r\n this.subs.forEach(s => s.unsubscribe())\r\n }\r\n}\r\n","import { FormControl } from \"@angular/forms\"\r\nimport { ButtonColor } from \"./button\"\r\nimport { AutocompleteConfig, ComboOption } from \"./combobox\"\r\nimport { InputType } from \"./form\"\r\nimport { IconName } from \"./icon\"\r\n\r\nexport enum DialogActionType{ OK, NO, CANCEL }\r\n\r\nexport type DialogOutput = {\r\n type: DialogActionType\r\n data: Record<string, any>\r\n}\r\n\r\nexport type DialogForm = {\r\n control: FormControl\r\n type: InputType | \"date\" | \"radio\" | \"autocomplete\" | \"combobox\"\r\n name: string\r\n label?: string\r\n // Used only if type = \"autocomplete\"\r\n autocompleteCfg?: AutocompleteConfig<any>\r\n // Used only if type = \"radio\" or \"combobox\"\r\n options?: ComboOption[]\r\n}[]\r\n\r\nexport type DialogType = \"info\" | \"confirm\" | \"loading\" | \"error\"\r\n\r\nexport type IDialogInput = {\r\n title?: string\r\n message: string\r\n type?: DialogType\r\n width?: number\r\n hideCloseX?: boolean\r\n form?: DialogForm\r\n component?: DialogComponentInput,\r\n buttons?: DialogFooterButton[]\r\n}\r\n\r\nexport interface DialogComponentInput{\r\n readonly type: new() => IDialogInput\r\n readonly input?: any\r\n}\r\n\r\nexport type DialogIcon = {\r\n icon: string\r\n color: ButtonColor\r\n}\r\n\r\nexport type DialogFooterButton = {\r\n label: string\r\n color: ButtonColor\r\n icon?: IconName\r\n disabled?: boolean\r\n loading?: boolean\r\n onClick: () => void\r\n}","import { BehaviorSubject, Observable } from \"rxjs\"\r\nimport { ButtonColor } from \"./button\"\r\nimport { ContextMenuItem } from \"./context-menu\"\r\n\r\nexport enum ColumnAlign{\r\n LEFT = \"left\",\r\n RIGHT = \"right\",\r\n CENTER = \"center\"\r\n}\r\n\r\nexport enum ColumnDataType{ TEXT, DATE, DATETIME }\r\n\r\nexport interface GridAction{\r\n readonly icon: string\r\n readonly title?: string\r\n readonly disabled?: boolean\r\n readonly color?: ButtonColor\r\n readonly onClick: () => void\r\n}\r\n\r\nexport interface GridColumn{\r\n readonly label: string\r\n readonly field: string\r\n readonly dataType: ColumnDataType\r\n readonly width?: number\r\n readonly align?: ColumnAlign\r\n readonly formatter?: (value: any) => string\r\n}\r\n\r\nexport interface IGridConfig<T>{\r\n readonly items: T[] | Observable<T[]>\r\n readonly columns: GridColumn[]\r\n readonly selection?: {\r\n readonly type?: \"single\" | \"multiple\"\r\n readonly showSelectAll?: boolean\r\n readonly defaultSelected?: (item: T) => boolean\r\n }\r\n readonly events?: {\r\n onRowClick?: (item: T) => void\r\n onSelectionChange?: (item: T[]) => void\r\n }\r\n readonly getItemKey: (item: T) => string | number\r\n readonly actions?: (item: T) => ContextMenuItem[]\r\n readonly rowClass?: (item: T) => string\r\n}\r\n\r\nexport class GridConfig<T>{\r\n private items$ = new BehaviorSubject<T[]>([])\r\n private loading$ = new BehaviorSubject(false)\r\n private selectedItems: T[]\r\n\r\n constructor(private config: IGridConfig<T>){\r\n this.refreshGrid()\r\n }\r\n\r\n public refreshGrid = () => {\r\n this.selectedItems = []\r\n\r\n if(Array.isArray(this.config.items))\r\n this.items$.next(this.config.items)\r\n else{\r\n this.toggleLoading()\r\n\r\n this.config.items.subscribe(it => {\r\n this.toggleLoading()\r\n this.items$.next(it)\r\n \r\n if(this.getSelectionConfig()?.defaultSelected)\r\n this.selectedItems = it.filter(i => this.getSelectionConfig().defaultSelected(i))\r\n })\r\n }\r\n }\r\n\r\n public getRowClass = (item: T) => this.config.rowClass?.(item)\r\n\r\n public updateList = (newList: T[]) => this.items$.next(newList)\r\n\r\n public getList = () => this.items$.getValue()\r\n\r\n public getList$ = () => this.items$.asObservable()\r\n\r\n public getActions = (item: T) => this.config.actions?.(item)\r\n\r\n public getColumns = () => this.config.columns\r\n\r\n public getEvents = () => this.config.events\r\n\r\n public getUniqueId = (item: T) => this.config.getItemKey(item)\r\n\r\n public isLoading$ = () => this.loading$.asObservable()\r\n\r\n public toggleLoading = () => this.loading$.next(!this.loading$.getValue())\r\n\r\n public getSelectedItems = () => this.items$.getValue().filter(it => this.selectedItems.some(d => this.getUniqueId(d) === this.getUniqueId(it)))\r\n\r\n public toggleSelection = (item: T) => {\r\n if(this.isItemSelected(item))\r\n this.selectedItems = this.selectedItems.filter(it => this.getUniqueId(it) !== this.getUniqueId(item))\r\n else if(this.config.selection?.type === \"single\")\r\n this.selectedItems = [item]\r\n else\r\n this.selectedItems.push(item)\r\n\r\n this.emitSelectionChange()\r\n }\r\n\r\n public isItemSelected = (item: T) => this.selectedItems.some(d => this.getUniqueId(d) === this.getUniqueId(item))\r\n\r\n public toggleSelectAll = () => {\r\n if(this.isAllSelected())\r\n this.selectedItems = []\r\n else\r\n this.selectedItems = this.items$.getValue()\r\n\r\n this.emitSelectionChange()\r\n }\r\n\r\n public getSelectionConfig = () => this.config.selection\r\n\r\n private emitSelectionChange = () => this.config.events?.onSelectionChange?.(this.getSelectedItems())\r\n\r\n public isAllSelected = () => this.selectedItems.length === this.items$.getValue().length\r\n\r\n public get hasActions(){\r\n return !!this.config.actions\r\n }\r\n}","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\"\r\nimport { IconName } from \"../../shared/interfaces\"\r\n\r\n@Component({\r\n selector: \"dolfo-icon-x\",\r\n standalone: false,\r\n template: `<i [class]=\"'icon-' + name\"></i>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IconComponent {\r\n @Input({ required: true }) name: IconName\r\n}\r\n","import { InjectionToken, Type } from \"@angular/core\"\r\nimport { IconComponent } from \"../../../components/layout/icon.component\"\r\n\r\nexport const ICON_COMPONENT = new InjectionToken<Type<any>>(\"ICON_COMPONENT\", {\r\n providedIn: \"root\",\r\n factory: () => IconComponent\r\n})\r\n\r\nexport type IconName = \"home\" | \"home2\" | \"home3\" | \"office\" | \"newspaper\" | \"pencil\" | \"pencil2\" | \"quill\" | \"pen\" | \"blog\" | \"eyedropper\" | \"droplet\" | \"paint-format\" | \"image\" | \"images\" | \"camera\" | \"headphones\" | \"music\" | \"play\" | \"film\" | \"video-camera\" | \"dice\" | \"pacman\" | \"spades\" | \"clubs\" | \"diamonds\" | \"bullhorn\" | \"connection\" | \"podcast\" | \"feed\" | \"mic\" | \"book\" | \"books\" | \"library\" | \"file-text\" | \"profile\" | \"file-empty\" | \"files-empty\" | \"file-text2\" | \"file-picture\" | \"file-music\" | \"file-play\" | \"file-video\" | \"file-zip\" | \"copy\" | \"paste\" | \"stack\" | \"folder\" | \"folder-open\" | \"folder-plus\" | \"folder-minus\" | \"folder-download\" | \"folder-upload\" | \"price-tag\" | \"price-tags\" | \"barcode\" | \"qrcode\" | \"ticket\" | \"cart\" | \"coin-dollar\" | \"coin-euro\" | \"coin-pound\" | \"coin-yen\" | \"credit-card\" | \"calculator\" | \"lifebuoy\" | \"phone\" | \"phone-hang-up\" | \"address-book\" | \"envelop\" | \"pushpin\" | \"location\" | \"location2\" | \"compass\" | \"compass2\" | \"map\" | \"map2\" | \"history\" | \"clock\" | \"clock2\" | \"alarm\" | \"bell\" | \"stopwatch\" | \"calendar\" | \"printer\" | \"keyboard\" | \"display\" | \"laptop\" | \"mobile\" | \"mobile2\" | \"tablet\" | \"tv\" | \"drawer\" | \"drawer2\" | \"box-add\" | \"box-remove\" | \"download\" | \"upload\" | \"floppy-disk\" | \"drive\" | \"database\" | \"undo\" | \"redo\" | \"undo2\" | \"redo2\" | \"forward\" | \"reply\" | \"bubble\" | \"bubbles\" | \"bubbles2\" | \"bubble2\" | \"bubbles3\" | \"bubbles4\" | \"user\" | \"users\" | \"user-plus\" | \"user-minus\" | \"user-check\" | \"user-tie\" | \"quotes-left\" | \"quotes-right\" | \"hour-glass\" | \"spinner\" | \"spinner2\" | \"spinner3\" | \"spinner4\" | \"spinner5\" | \"spinner6\" | \"spinner7\" | \"spinner8\" | \"spinner9\" | \"spinner10\" | \"spinner11\" | \"binoculars\" | \"search\" | \"zoom-in\" | \"zoom-out\" | \"enlarge\" | \"shrink\" | \"enlarge2\" | \"shrink2\" | \"key\" | \"key2\" | \"lock\" | \"unlocked\" | \"wrench\" | \"equalizer\" | \"equalizer2\" | \"cog\" | \"cogs\" | \"hammer\" | \"magic-wand\" | \"aid-kit\" | \"bug\" | \"pie-chart\" | \"stats-dots\" | \"stats-bars\" | \"stats-bars2\" | \"trophy\" | \"gift\" | \"glass\" | \"glass2\" | \"mug\" | \"spoon-knife\" | \"leaf\" | \"rocket\" | \"meter\" | \"meter2\" | \"hammer2\" | \"fire\" | \"lab\" | \"magnet\" | \"bin\" | \"bin2\" | \"briefcase\" | \"airplane\" | \"truck\" | \"road\" | \"accessibility\" | \"target\" | \"shield\" | \"power\" | \"switch\" | \"power-cord\" | \"clipboard\" | \"list-numbered\" | \"list\" | \"list2\" | \"tree\" | \"menu\" | \"menu2\" | \"menu3\" | \"menu4\" | \"cloud\" | \"cloud-download\" | \"cloud-upload\" | \"cloud-check\" | \"download2\" | \"upload2\" | \"download3\" | \"upload3\" | \"sphere\" | \"earth\" | \"link\" | \"flag\" | \"attachment\" | \"eye\" | \"eye-plus\" | \"eye-minus\" | \"eye-blocked\" | \"bookmark\" | \"bookmarks\" | \"sun\" | \"contrast\" | \"brightness-contrast\" | \"star-empty\" | \"star-half\" | \"star-full\" | \"heart\" | \"heart-broken\" | \"man\" | \"woman\" | \"man-woman\" | \"happy\" | \"happy2\" | \"smile\" | \"smile2\" | \"tongue\" | \"tongue2\" | \"sad\" | \"sad2\" | \"wink\" | \"wink2\" | \"grin\" | \"grin2\" | \"cool\" | \"cool2\" | \"angry\" | \"angry2\" | \"evil\" | \"evil2\" | \"shocked\" | \"shocked2\" | \"baffled\" | \"baffled2\" | \"confused\" | \"confused2\" | \"neutral\" | \"neutral2\" | \"hipster\" | \"hipster2\" | \"wondering\" | \"wondering2\" | \"sleepy\" | \"sleepy2\" | \"frustrated\" | \"frustrated2\" | \"crying\" | \"crying2\" | \"point-up\" | \"point-right\" | \"point-down\" | \"point-left\" | \"warning\" | \"notification\" | \"question\" | \"plus\" | \"minus\" | \"info\" | \"cancel-circle\" | \"blocked\" | \"cross\" | \"checkmark\" | \"checkmark2\" | \"spell-check\" | \"enter\" | \"exit\" | \"play2\" | \"pause\" | \"stop\" | \"previous\" | \"next\" | \"backward\" | \"forward2\" | \"play3\" | \"pause2\" | \"stop2\" | \"backward2\" | \"forward3\" | \"first\" | \"last\" | \"previous2\" | \"next2\" | \"eject\" | \"volume-high\" | \"volume-medium\" | \"volume-low\" | \"volume-mute\" | \"volume-mute2\" | \"volume-increase\" | \"volume-decrease\" | \"loop\" | \"loop2\" | \"infinite\" | \"shuffle\" | \"arrow-up-left\" | \"arrow-up\" | \"arrow-up-right\" | \"arrow-right\" | \"arrow-down-right\" | \"arrow-down\" | \"arrow-down-left\" | \"arrow-left\" | \"arrow-up-left2\" | \"arrow-up2\" | \"arrow-up-right2\" | \"arrow-right2\" | \"arrow-down-right2\" | \"arrow-down2\" | \"arrow-down-left2\" | \"arrow-left2\" | \"circle-up\" | \"circle-right\" | \"circle-down\" | \"circle-left\" | \"tab\" | \"move-up\" | \"move-down\" | \"sort-alpha-asc\" | \"sort-alpha-desc\" | \"sort-numeric-asc\" | \"sort-numberic-desc\" | \"sort-amount-asc\" | \"sort-amount-desc\" | \"command\" | \"shift\" | \"ctrl\" | \"opt\" | \"checkbox-checked\" | \"checkbox-unchecked\" | \"radio-checked\" | \"radio-checked2\" | \"radio-unchecked\" | \"crop\" | \"make-group\" | \"ungroup\" | \"scissors\" | \"filter\" | \"font\" | \"ligature\" | \"ligature2\" | \"text-height\" | \"text-width\" | \"font-size\" | \"bold\" | \"underline\" | \"italic\" | \"strikethrough\" | \"omega\" | \"sigma\" | \"page-break\" | \"superscript\" | \"subscript\" | \"superscript2\" | \"subscript2\" | \"text-color\" | \"pagebreak\" | \"clear-formatting\" | \"table\" | \"table2\" | \"insert-template\" | \"pilcrow\" | \"ltr\" | \"rtl\" | \"section\" | \"paragraph-left\" | \"paragraph-center\" | \"paragraph-right\" | \"paragraph-justify\" | \"indent-increase\" | \"indent-decrease\" | \"share\" | \"new-tab\" | \"embed\" | \"embed2\" | \"terminal\" | \"share2\" | \"mail\" | \"mail2\" | \"mail3\" | \"mail4\" | \"amazon\" | \"google\" | \"google2\" | \"google3\" | \"google-plus\" | \"google-plus2\" | \"google-plus3\" | \"hangouts\" | \"google-drive\" | \"facebook\" | \"facebook2\" | \"instagram\" | \"whatsapp\" | \"spotify\" | \"telegram\" | \"twitter\" | \"vine\" | \"vk\" | \"renren\" | \"sina-weibo\" | \"rss\" | \"rss2\" | \"youtube\" | \"youtube2\" | \"twitch\" | \"vimeo\" | \"vimeo2\" | \"lanyrd\" | \"flickr\" | \"flickr2\" | \"flickr3\" | \"flickr4\" | \"dribbble\" | \"behance\" | \"behance2\" | \"deviantart\" | \"500px\" | \"steam\" | \"steam2\" | \"dropbox\" | \"onedrive\" | \"github\" | \"npm\" | \"basecamp\" | \"trello\" | \"wordpress\" | \"joomla\" | \"ello\" | \"blogger\" | \"blogger2\" | \"tumblr\" | \"tumblr2\" | \"yahoo\" | \"yahoo2\" | \"tux\" | \"appleinc\" | \"finder\" | \"android\" | \"windows\" | \"windows8\" | \"soundcloud\" | \"soundcloud2\" | \"skype\" | \"reddit\" | \"hackernews\" | \"wikipedia\" | \"linkedin\" | \"linkedin2\" | \"lastfm\" | \"lastfm2\" | \"delicious\" | \"stumbleupon\" | \"stumbleupon2\" | \"stackoverflow\" | \"pinterest\" | \"pinterest2\" | \"xing\" | \"xing2\" | \"flattr\" | \"foursquare\" | \"yelp\" | \"paypal\" | \"chrome\" | \"firefox\" | \"IE\" | \"edge\" | \"safari\" | \"opera\" | \"file-pdf\" | \"file-openoffice\" | \"file-word\" | \"file-excel\" | \"libreoffice\" | \"html-five\" | \"html-five2\" | \"css3\" | \"git\" | \"codepen\" | \"svg\" | \"IcoMoon\"","import { InjectionToken, ValueProvider } from \"@angular/core\"\r\n\r\nexport interface ILanguage{\r\n readonly name: string\r\n readonly locale: string\r\n readonly altFileName?: string\r\n}\r\n\r\nexport interface ILanguageToken{\r\n readonly defaultLanguage: string\r\n readonly langs: ILanguage[]\r\n}\r\n\r\nexport const TRANSLATE_STORAGE_KEY = \"dolfo-lang-stored\"\r\n\r\nexport const LANGUAGE_TOKEN = new InjectionToken<ILanguageToken>(\"LANGUAGE_TOKEN\")\r\n\r\nexport const provideDolfoLanguages = (langs: ILanguage[], defaultLanguage: string): ValueProvider => ({\r\n provide: LANGUAGE_TOKEN,\r\n useValue: { defaultLanguage, langs } as ILanguageToken\r\n})","export const isDeepEqual = (objA: any, objB: any, map = new WeakMap()) => {\r\n if (Object.is(objA, objB))\r\n return true\r\n\r\n if (objA instanceof Date && objB instanceof Date)\r\n return objA.getTime() === objB.getTime()\r\n \r\n if (objA instanceof RegExp && objB instanceof RegExp)\r\n return objA.toString() === objB.toString()\r\n\r\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null)\r\n return false\r\n\r\n if (map.get(objA) === objB)\r\n return true\r\n\r\n map.set(objA, objB)\r\n\r\n const keysA = Reflect.ownKeys(objA)\r\n const keysB = Reflect.ownKeys(objB)\r\n\r\n if (keysA.length !== keysB.length)\r\n return false\r\n\r\n for (let i = 0; i < keysA.length; i++){\r\n if (!Reflect.has(objB, keysA[i]) || !isDeepEqual(objA[keysA[i]], objB[keysA[i]], map))\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject } from \"rxjs\"\r\nimport { IContextMenu } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ContextMenuService {\r\n private contextMenu$ = new BehaviorSubject<IContextMenu>(null)\r\n\r\n public getContextMenu$ = () => this.contextMenu$.asObservable()\r\n\r\n public openContextMenu = (input: IContextMenu) => this.contextMenu$.next(input)\r\n}\r\n","import { formatDate } from \"@angular/common\"\r\nimport { HttpClient } from \"@angular/common/http\"\r\nimport { Inject, Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject, distinctUntilChanged, tap } from \"rxjs\"\r\nimport { ILanguage, ILanguageToken, LANGUAGE_TOKEN, TRANSLATE_STORAGE_KEY } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class TranslateService {\r\n private lang$ = new BehaviorSubject<ILanguage>(null)\r\n private langContent: Record<string, string>\r\n private langs: ILanguage[]\r\n\r\n constructor(@Inject(LANGUAGE_TOKEN) langConfig: ILanguageToken, private httpClient: HttpClient) {\r\n if(!localStorage.getItem(TRANSLATE_STORAGE_KEY))\r\n localStorage.setItem(TRANSLATE_STORAGE_KEY, langConfig.defaultLanguage)\r\n \r\n const { langs } = langConfig,\r\n lang = localStorage.getItem(TRANSLATE_STORAGE_KEY) as string,\r\n foundLang = langConfig.langs.find(l => l.name === lang)\r\n\r\n this.langs = langs\r\n\r\n if(!foundLang)\r\n localStorage.removeItem(TRANSLATE_STORAGE_KEY)\r\n else\r\n this.lang$.next(foundLang)\r\n }\r\n\r\n public changeLanguage$ = (langName: string) => {\r\n const lang = this.langs.find(l => l.name === langName)\r\n\r\n if(lang)\r\n localStorage.setItem(TRANSLATE_STORAGE_KEY, langName)\r\n\r\n return this.load$(lang).pipe(\r\n tap(() => this.lang$.next(lang))\r\n )\r\n }\r\n\r\n public loadFromStorage$ = () => {\r\n const lang = localStorage.getItem(TRANSLATE_STORAGE_KEY)\r\n\r\n if(!lang)\r\n throw new Error(\"Language not set or not valid!!\")\r\n\r\n const foundLang = this.langs.find(l => l.name === lang)\r\n\r\n return this.load$(foundLang)\r\n }\r\n\r\n private load$ = ({ name, altFileName }: ILanguage) => this.httpClient.get<Record<string, string>>(`assets/langs/${altFileName || name}.json`).pipe(\r\n tap(content => this.langContent = content)\r\n )\r\n\r\n public translate = (key: string, params?: Record<string, string>): string => {\r\n const base = key.split(\".\").reduce((prev, curr) => prev?.[curr], this.langContent as any),\r\n ret = base || key\r\n\r\n if (params){\r\n return Object.keys(params).reduce(\r\n (curr, key) => curr.replace(`{${key}}`, params[key as keyof Object]),\r\n ret\r\n )\r\n }\r\n\r\n return ret\r\n }\r\n\r\n public getLang = () => this.lang$.getValue()\r\n\r\n public getLang$ = () => this.lang$.asObservable().pipe(distinctUntilChanged())\r\n\r\n private getLocale = () => this.getLang()?.locale || \"en-US\"\r\n\r\n public formatDate = (d: string) => formatDate(new Date(d), this.translate(\"dateFormat\"), this.getLocale())\r\n\r\n public formatDateTime = (d: string) => formatDate(new Date(d), this.translate(\"dateTimeFormat\"), this.getLocale())\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject, filter } from \"rxjs\"\r\nimport { DialogComponentInput, DialogOutput, IDialogInput } from \"../interfaces\"\r\nimport { TranslateService } from \"./translate.service\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class DialogService{\r\n private dialog$ = new BehaviorSubject<(IDialogInput & { _dialogId: number })[]>([])\r\n private waiters: BehaviorSubject<DialogOutput>[] = []\r\n\r\n constructor(private ts: TranslateService){}\r\n\r\n private getLastWaiter = () => this.waiters[this.waiters.length - 1]\r\n\r\n public getDialog = () => this.dialog$.getValue()\r\n\r\n public getDialog$ = () => this.dialog$.asObservable()\r\n\r\n public openDialog = (input: IDialogInput) => {\r\n const newWaiter$ = new BehaviorSubject<DialogOutput>(null)\r\n this.waiters.push(newWaiter$)\r\n this.dialog$.next(this.dialog$.getValue().concat({\r\n ...input,\r\n _dialogId: new Date().getTime()\r\n }))\r\n\r\n return this.getLastWaiter().pipe(\r\n filter(d => d != null)\r\n )\r\n }\r\n\r\n public openDialogComponent = (component: DialogComponentInput) => this.openDialog({\r\n message: null,\r\n component\r\n })\r\n\r\n public showLoading = (message = this.ts.translate(\"loading\")) => this.openDialog({\r\n type: \"loading\",\r\n message\r\n })\r\n\r\n public close = () => {\r\n const v = this.dialog$.getValue()\r\n this.dialog$.next(v.slice(0, v.length - 1))\r\n this.getLastWaiter()?.complete()\r\n this.waiters = this.waiters.slice(0, this.waiters.length - 1)\r\n }\r\n\r\n public action = (action: DialogOutput) => this.getLastWaiter().next(action)\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject } from \"rxjs\"\r\nimport { INotificationInput } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class NotificationService {\r\n private notification$ = new BehaviorSubject<INotificationInput>(null)\r\n private history$ = new BehaviorSubject<Array<INotificationInput & { date: Date }>>([])\r\n\r\n public getNotification$ = () => this.notification$.asObservable()\r\n\r\n public show = (input: INotificationInput) => {\r\n this.notification$.next(input)\r\n this.history$.next(this.history$.getValue().concat({ ...input, date: new Date() }))\r\n }\r\n\r\n public hide = () => this.notification$.next(null)\r\n\r\n public getHistory$ = () => this.history$.asObservable()\r\n}\r\n","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject } from \"rxjs\"\r\nimport { IPopover } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class PopoverService {\r\n private popover$ = new BehaviorSubject<IPopover>(null)\r\n\r\n public getPopover$ = () => this.popover$.asObservable()\r\n\r\n public getPopover = () => this.popover$.getValue()\r\n\r\n public showPopover = (input: IPopover) => this.popover$.next(input)\r\n\r\n public hide = () => this.popover$.next(null)\r\n}","import { Injectable } from \"@angular/core\"\r\nimport { BehaviorSubject } from \"rxjs\"\r\nimport { ITooltip } from \"../interfaces\"\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class TooltipService {\r\n private tooltip$ = new BehaviorSubject<ITooltip>(null)\r\n\r\n public showTooltip = (input: ITooltip) => this.tooltip$.next(input)\r\n \r\n public getTooltip$ = () => this.tooltip$.asObservable()\r\n \r\n public getTooltip = () => this.tooltip$.getValue()\r\n\r\n public hide = () => this.tooltip$.next(null)\r\n}\r\n","import { Directive, ElementRef, Input } from \"@angular/core\"\r\nimport { filter, fromEvent } from \"rxjs\"\r\nimport { Subscriptable } from \"../classes/subscriptable\"\r\nimport { ITooltip, TooltipDirection } from \"../interfaces\"\r\nimport { TooltipService } from \"../services\"\r\n\r\n@Directive({\r\n selector: \"[dolfoTooltip]\",\r\n standalone: false\r\n})\r\nexport class TooltipDirective extends Subscriptable implements Omit<ITooltip, \"elementRef\">{\r\n @Input({ required: true, alias: \"dolfoTooltip\" }) content: string\r\n @Input() direction: TooltipDirection = \"top\"\r\n\r\n constructor(el: ElementRef<HTMLElement>, private ts: TooltipService) {\r\n super()\r\n\r\n this.addSubscription(fromEvent(el.nativeElement, \"mousedown\").pipe(\r\n filter(() => !!this.ts.getTooltip())\r\n ).subscribe(() => this.ts.hide()))\r\n\r\n this.addSubscription(\r\n fromEvent(el.nativeElement, \"mouseenter\").pipe(\r\n filter(() => !!this.content)\r\n ).subscribe(() => this.ts.showTooltip({\r\n content: this.content,\r\n elementRef: el,\r\n direction: this.direction\r\n }))\r\n )\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\"\r\nimport { TranslateService } from \"../services\"\r\n\r\n@Pipe({\r\n name: \"translate\",\r\n standalone: true,\r\n pure: false\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n constructor(private ts: TranslateService){}\r\n\r\n transform = (value: string, args?: Record<string, string>) => this.ts.translate(value, args)\r\n}\r\n","import { DecimalPipe } from \"@angular/common\"\r\nimport { Component, ElementRef } from \"@angular/core\"\r\nimport { ValidationErrors } from \"@angular/forms\"\r\nimport { BehaviorSubject, distinctUntilChanged, map, Observable } from \"rxjs\"\r\nimport { isDeepEqual } from \"../../shared/interfaces\"\r\nimport { TranslateService } from \"../../shared/services\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-input-container\",\r\n template: `<div class=\"input-container\" [class.error]=\"decodedError$ | async\">\r\n @if(input.label){\r\n <label>\r\n {{ input.label }}\r\n @if(input.isRequired){\r\n <span [dolfoTooltip]=\"'form.required' | translate\">*</span>\r\n }\r\n </label>\r\n }\r\n\r\n <ng-content></ng-content>\r\n\r\n @let error = decodedError$ | async;\r\n\r\n @if(error){\r\n <div class=\"input-errors\">\r\n {{ error[0] | translate: error[1] }}\r\n </div>\r\n }\r\n </div>`,\r\n providers: [DecimalPipe],\r\n standalone: false\r\n})\r\nexport class InputContainerComponent{\r\n public errors$ = new BehaviorSubject<ValidationErrors>(null)\r\n public decodedError$: Observable<[string, Record<string, string>?]> = this.errors$.pipe(\r\n distinctUntilChanged((a, b) => isDeepEqual(a, b)),\r\n map(val => {\r\n if(val){\r\n if(val.required)\r\n return [\"form.requiredError\"]\r\n if(val.email)\r\n return [\"form.invalidEmail\"]\r\n if(val.maxlength)\r\n return [`form.maxChars`, { length: val.maxlength.requiredLength }]\r\n if(val.minlength)\r\n return [`form.minChars`, { length: val.minlength.requiredLength }]\r\n if(val.password)\r\n return [\"form.invalidPassword\"]\r\n if(val.max)\r\n return [\"form.maxValue\", { value: this.cp.transform(val.max.max, null, this.translateService.getLang().name) }]\r\n\r\n return [\"form.error.\" + Object.keys(val)[0]]\r\n }\r\n \r\n return null\r\n })\r\n )\r\n\r\n constructor(public input: BaseFormInput<unknown>, private elRef: ElementRef<HTMLDivElement>, private translateService: TranslateService, private cp: DecimalPipe){}\r\n\r\n public focus = () => {\r\n const input = this.elRef.nativeElement.querySelector(\"input\")\r\n\r\n if(input)\r\n input.focus()\r\n }\r\n}\r\n","import { AfterViewInit, Directive, EventEmitter, inject, Input, OnInit, Output, ViewChild } from \"@angular/core\"\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, FormControl, ValidationErrors, Validator, Validators } from \"@angular/forms\"\r\nimport { filter } from \"rxjs\"\r\nimport { Subscriptable } from \"../../shared/classes/subscriptable\"\r\nimport { isDeepEqual } from \"../../shared/interfaces\"\r\nimport { InputContainerComponent } from \"./input-container.component\"\r\n\r\n@Directive()\r\nexport abstract class BaseFormInput<T> extends Subscriptable implements ControlValueAccessor, Validator, AfterViewInit, OnInit {\r\n @ViewChild(InputContainerComponent) public container: InputContainerComponent\r\n @Input({ required: true }) formControlName: string\r\n @Input() label: string\r\n @Output() onChange: EventEmitter<T> = new EventEmitter<T>()\r\n\r\n private changeInternal: (obj: T) => void\r\n private cc = inject(ControlContainer)\r\n \r\n public input = new FormControl<T>(null)\r\n \r\n protected control: AbstractControl\r\n\r\n ngOnInit(){\r\n this.control = this.cc.control.get(this.formControlName)\r\n\r\n const initialValue = this.control.value\r\n\r\n this.addSubscription(this.input.valueChanges.pipe(\r\n filter(v => !this.control.touched && !isDeepEqual(initialValue, v) && this.input.dirty)\r\n ).subscribe(() => this.control.markAsTouched()))\r\n\r\n this.addSubscription(this.control.statusChanges.pipe(\r\n filter(s => (s === \"VALID\" || s === \"INVALID\") && this.control.touched && !!this.container)\r\n ).subscribe(() => this.container.errors$.next(this.control.errors)))\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.addSubscription(this.input.valueChanges.pipe(\r\n filter(() => !this.input.disabled)\r\n ).subscribe(v => {\r\n this.onChange.emit(v)\r\n this.changeInternal(v)\r\n }))\r\n }\r\n\r\n writeValue = (obj: T) => this.input.setValue(obj)\r\n\r\n registerOnChange = (fn: (obj: T) => void) => this.changeInternal = fn\r\n\r\n registerOnTouched = (_fn: (obj: any) => void) => {}\r\n\r\n setDisabledState = (isDisabled: boolean) => {\r\n if(isDisabled)\r\n setTimeout(() => this.input.disable())\r\n else\r\n this.input.enable()\r\n }\r\n\r\n validate = (_control: AbstractControl): ValidationErrors => null\r\n\r\n public get isRequired(){\r\n return this.control.hasValidator(Validators.required)\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, Input, Output, signal, ViewChild } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { delay, filter, fromEvent, map, mergeMap, tap } from \"rxjs\"\r\nimport { AutocompleteConfig, ComboOption } from \"../../shared/interfaces\"\r\nimport { OnBlur, OnFocus } from \"../../shared/interfaces/events\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-autocomplete\",\r\n template: `<dolfo-input-container>\r\n <div class=\"combobox autocomplete\" [class.opened]=\"opened()\" #autocomplete>\r\n <div class=\"combobox-label\">\r\n <input #autocompleteInput type=\"text\" [value]=\"currentOption()\" (focus)=\"focus($event)\" (blur)=\"onBlur.emit($event)\" />\r\n </div>\r\n\r\n <div class=\"combobox-options\" [class.opened]=\"opened()\">\r\n @if(loading()){\r\n <div class=\"loading\">\r\n {{ 'autocomplete.loading' | translate }}\r\n </div>\r\n }\r\n @if(options().length === 0 && !loading()){\r\n <div class=\"no-results\">\r\n {{ 'autocomplete.noResults' | translate }}\r\n </div>\r\n }\r\n\r\n @for(opt of options(); track opt.value; let idx = $index){\r\n <div class=\"combobox-option\" [class.selected]=\"isSelected(opt)\" [class.focused]=\"currentFocus() === idx\" (click)=\"$event.stopPropagation(); setOption(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </dolfo-input-container>`,\r\n standalone: false,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AutocompleteComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => AutocompleteComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: AutocompleteComponent }\r\n ]\r\n})\r\nexport class AutocompleteComponent extends BaseFormInput<any> implements AfterViewInit, OnFocus, OnBlur{\r\n @ViewChild(\"autocomplete\") autocomplete: ElementRef<HTMLDivElement>\r\n @ViewChild(\"autocompleteInput\") autocompleteInput: ElementRef<HTMLInputElement>\r\n @Input({ required: true }) config: AutocompleteConfig<any>\r\n @Input() minChars = 3\r\n @Output() onFocus = new EventEmitter<FocusEvent>()\r\n @Output() onBlur = new EventEmitter<FocusEvent>()\r\n\r\n public options = signal<ComboOption[]>([])\r\n public opened = signal(false)\r\n public currentOption = signal(\"\")\r\n public currentOptionLabel = signal(\"\")\r\n public loading = signal(false)\r\n public currentFocus = signal<number>(null)\r\n private keyDown = false\r\n private keyDownTimeout: NodeJS.Timeout\r\n\r\n constructor(){\r\n super()\r\n\r\n this.addSubscription(fromEvent(window, \"click\").pipe(\r\n filter(() => !!this.autocomplete && !this.input.disabled),\r\n map(ev => ev.target as HTMLElement),\r\n map(target => !this.autocomplete.nativeElement.contains(target) && !target.isEqualNode(this.autocomplete.nativeElement))\r\n ).subscribe(condition => {\r\n if(condition && this.opened()){\r\n this.currentFocus.set(null)\r\n this.opened.set(false)\r\n }else if(!this.opened() && !condition)\r\n this.opened.set(true)\r\n }))\r\n\r\n this.addSubscription(this.input.valueChanges.pipe(\r\n filter(v => v != null && !!this.autocompleteInput && (this.autocompleteInput.nativeElement.value !== this.currentOptionLabel() || !this.currentOptionLabel()))\r\n ).subscribe(value => this.setOption({ value, label: this.config.getLabel(value) }, true)))\r\n\r\n this.addSubscription(this.input.valueChanges.pipe(\r\n filter(v => v == null && !!this.autocompleteInput && this.autocompleteInput.nativeElement.value != null && this.autocompleteInput.nativeElement.value !== \"\")\r\n ).subscribe(() => this.setOption(null, true)))\r\n\r\n this.addSubscription(this.input.statusChanges.pipe(\r\n filter(() => !!this.autocompleteInput)\r\n ).subscribe(() => this.autocompleteInput.nativeElement.disabled = this.input.disabled))\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit()\r\n\r\n this.addSubscription(fromEvent(this.autocompleteInput.nativeElement, \"input\").pipe(\r\n map(ev => (ev.target as HTMLInputElement).value),\r\n tap(value => {\r\n if(!value){\r\n this.input.setValue(null)\r\n this.onChange.emit(null)\r\n this.options.set([])\r\n }\r\n }),\r\n delay(1000),\r\n filter(value => !this.keyDown && value.length >= this.minChars),\r\n tap(() => {\r\n this.options.set([])\r\n this.opened.set(true)\r\n this.loading.set(true)\r\n }),\r\n mergeMap(value => this.config.search$(value)),\r\n map(results => results.map(value => ({\r\n value,\r\n label: this.config.getLabel(value)\r\n })))\r\n ).subscribe(results => {\r\n this.loading.set(false)\r\n this.options.set(results)\r\n this.currentFocus.set(null)\r\n }))\r\n\r\n this.addSubscription(fromEvent<KeyboardEvent>(this.autocompleteInput.nativeElement, \"keydown\").subscribe(e => {\r\n if(e.key.length === 1){\r\n this.keyDown = true\r\n clearTimeout(this.keyDownTimeout)\r\n this.keyDownTimeout = setTimeout(() => this.keyDown = false, 1000)\r\n }else if(this.opened()){\r\n if(e.key === \"ArrowDown\"){\r\n e.preventDefault()\r\n this.currentFocus.update(v => v === this.options().length - 1 ? 0 : v === null ? 0 : v + 1)\r\n }else if(e.key === \"ArrowUp\"){\r\n e.preventDefault()\r\n this.currentFocus.update(v => v === 0 ? this.options().length - 1 : v === null ? 0 : v - 1)\r\n }else if(e.key === \"Enter\" && this.currentFocus() >= 0 && this.currentFocus() != null){\r\n e.preventDefault()\r\n this.setOption(this.options()[this.currentFocus()])\r\n }else if(e.key === \"Tab\"){\r\n this.currentFocus.set(null)\r\n this.opened.set(false)\r\n }\r\n }\r\n }))\r\n }\r\n\r\n\tpublic focus = (e: FocusEvent) => {\r\n\t\tif(this.input.disabled)\r\n\t\t\treturn\r\n\t\t\r\n\t\tthis.opened.set(true); \r\n\t\tthis.onFocus.emit(e)\r\n\t}\r\n\r\n\tpublic isSelected = (opt: ComboOption) => this.input.value === opt.value\r\n\r\n public setOption = (opt: ComboOption, noEmit = false) => {\r\n this.autocompleteInput.nativeElement.value = opt?.label ?? \"\"\r\n this.currentOptionLabel.set(opt?.label)\r\n this.input.setValue(opt?.value)\r\n this.opened.set(false)\r\n\r\n if(!noEmit)\r\n\t\t this.onChange.emit(this.input.value)\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, Input } from \"@angular/core\"\r\nimport { ICON_COMPONENT, IconName } from \"../../shared/interfaces\"\r\n\r\n@Component({\r\n selector: \"dolfo-icon\",\r\n standalone: false,\r\n template: `<ng-container [ngComponentOutlet]=\"iconComponent\" [ngComponentOutletInputs]=\"{ name }\"></ng-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IconWrapperComponent {\r\n @Input({ required: true }) name: IconName\r\n\r\n public iconComponent = inject(ICON_COMPONENT)\r\n}\r\n","import { AfterViewInit, booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, OnChanges, Output, signal, SimpleChanges, ViewChild } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { filter, fromEvent, map } from \"rxjs\"\r\nimport { ComboInput, ComboOption, isDeepEqual } from \"../../shared/interfaces\"\r\nimport { OnBlur, OnFocus } from \"../../shared/interfaces/events\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-combobox\",\r\n template: `<dolfo-input-container>\r\n\t\t<div class=\"combobox\" [class.opened]=\"opened()\" #combo tabindex=\"0\" (focus)=\"focus($event)\" (blur)=\"onBlur.emit($event); opened.set(false)\" [class.disabled]=\"input.disabled\">\r\n\t\t\t<div class=\"combobox-label\">\r\n @if(hasValue && !input.disabled){\r\n <dolfo-icon [dolfoTooltip]=\"'form.resetValue' | translate\" name=\"cross\" (click)=\"input.setValue(null); $event.stopPropagation()\"></dolfo-icon>\r\n }@else {\r\n <dolfo-icon name=\"circle-down\" class=\"combo-icon\"></dolfo-icon>\r\n }\r\n\t\t\t\t<span>{{ comboLabel() | translate }}</span>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"combobox-options\" [class.opened]=\"opened()\">\r\n\t\t\t\t@for(opt of options; track opt.value; let idx = $index){\r\n\t\t\t\t\t<div class=\"combobox-option\" [class.selected]=\"isSelected(opt)\" [class.focused]=\"currentFocus() === idx\" (click)=\"$event.stopPropagation(); setOption(opt)\">\r\n\t\t\t\t\t\t<span>{{ opt.label }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\r\n <input type=\"hidden\" [formControl]=\"input\" />\r\n\t\t</div>\r\n\t</dolfo-input-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ComboboxComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => ComboboxComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: ComboboxComponent }\r\n ],\r\n standalone: false\r\n})\r\nexport class ComboboxComponent extends BaseFormInput<any | any[]> implements AfterViewInit, Required<ComboInput>, OnBlur, OnFocus, OnChanges{\r\n\t@ViewChild(\"combo\") combo: ElementRef<HTMLDivElement>\r\n\t@Input({ required: true }) options: ComboOption[]\r\n\t@Input() placeHolder: string\r\n\t@Input({ transform: booleanAttribute }) multiple = false\r\n\t@Output() onFocus = new EventEmitter<FocusEvent>()\r\n\t@Output() onBlur = new EventEmitter<FocusEvent>()\r\n\r\n\tpublic opened = signal(false)\r\n public currentFocus = signal<number>(null)\r\n public comboLabel = signal(\"\")\r\n\r\n\tconstructor(private cdr: ChangeDetectorRef){\r\n\t\tsuper()\r\n\r\n\t\tthis.addSubscription(fromEvent(window, \"click\").pipe(\r\n filter(() => !!this.combo && !this.input.disabled),\r\n\t\t\tmap(ev => ev.target as HTMLElement),\r\n\t\t\tmap(target => !this.combo.nativeElement.contains(target) && !target.isEqualNode(this.combo.nativeElement))\r\n\t\t).subscribe(condition => {\r\n\t\t\tif(condition && this.opened())\r\n\t\t\t\tthis.opened.set(false)\r\n\t\t\telse if(!this.opened() && !condition)\r\n\t\t\t\tthis.opened.set(true)\r\n\t\t}))\r\n\r\n this.addSubscription(this.input.valueChanges.subscribe(value => this.comboLabel.set(this.extractLabel(value))))\r\n\t}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if(changes.options && !isDeepEqual(changes.options.previousValue, changes.options.currentValue))\r\n this.input.setValue(null)\r\n }\r\n\r\n\toverride ngAfterViewInit() {\r\n\t\tsuper.ngAfterViewInit()\r\n\r\n\t\tthis.addSubscription(fromEvent<KeyboardEvent>(this.combo.nativeElement, \"keydown\").subscribe(e => {\r\n if(this.opened()){\r\n if(e.key === \"ArrowDown\"){\r\n e.preventDefault()\r\n this.currentFocus.update(v => v === this.options.length - 1 ? 0 : v === null ? 0 : v + 1)\r\n }else if(e.key === \"ArrowUp\"){\r\n e.preventDefault()\r\n this.currentFocus.update(v => v === 0 ? this.options.length - 1 : v === null ? 0 : v - 1)\r\n }else if(e.key === \"Enter\" && this.currentFocus() >= 0 && this.currentFocus() != null){\r\n e.preventDefault()\r\n this.setOption(this.options[this.currentFocus()])\r\n\r\n\t\t\t\t\tif(!this.multiple)\r\n\t\t\t\t\t\tthis.opened.set(false)\r\n\r\n\t\t\t\t\tthis.cdr.detectChanges()\r\n }else if(e.key === \"Tab\"){\r\n this.currentFocus.set(null)\r\n this.opened.set(false)\r\n }\r\n }\r\n }))\r\n\t}\r\n\r\n\tprivate extractLabel = (value: any | any[]) => {\r\n\t\tif(value == null || (value as number[])?.length === 0)\r\n\t\t\treturn this.placeHolder || \" \"\r\n\r\n\t\tif(!this.multiple)\r\n\t\t\treturn this.options.find(opt => isDeepEqual(opt.value, value))?.label\r\n\r\n\t\treturn this.options.filter(opt => (value as number[]).some(o => isDeepEqual(opt.value, o))).map(opt => opt.label).join(\", \")\r\n\t}\r\n\r\n\tpublic focus = (e: FocusEvent) => {\r\n\t\tif(this.input.disabled)\r\n\t\t\treturn\r\n\t\t\r\n\t\tthis.opened.set(true); \r\n\t\tthis.onFocus.emit(e)\r\n\t}\r\n\r\n\tpublic setOption = (opt: ComboOption) => {\r\n\t\tconst { value } = this.input\r\n\r\n\t\tif(!this.multiple){\r\n\t\t\tif(isDeepEqual(value, opt.value))\r\n\t\t\t\tthis.input.setValue(null)\r\n\t\t\telse\r\n\t\t\t\tthis.input.setValue(opt.value)\r\n\r\n this.opened.set(false)\r\n\t\t}else{\r\n\t\t\tconst castValue = value as Array<any>\r\n\r\n\t\t\tif(castValue.some(o => isDeepEqual(opt.value, o)))\r\n\t\t\t\tthis.input.setValue(castValue.filter(v => isDeepEqual(opt.value, v)))\r\n\t\t\telse\r\n\t\t\t\tthis.input.setValue(castValue.concat(opt.value))\r\n\t\t}\r\n\r\n\t\tthis.onChange.emit(this.input.value)\r\n\t}\r\n\r\n\tpublic isSelected = (opt: ComboOption) => {\r\n\t\tconst { value } = this.input\r\n\r\n\t\tif(!this.multiple)\r\n\t\t\treturn isDeepEqual(value, opt.value)\r\n\r\n\t\treturn (value as Array<any>).some(o => isDeepEqual(opt.value, o))\r\n\t}\r\n\r\n public get hasValue(){\r\n return this.multiple ? this.input.value != null && this.input.value.length > 0 : this.input.value != null\r\n }\r\n}\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { OnBlur, OnFocus } from \"../../shared/interfaces/events\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n\tselector: \"dolfo-datepicker\",\r\n\ttemplate: `<dolfo-input-container>\r\n\t\t<input #formInput [type]=\"selectTime ? 'datetime-local' : 'date'\" [formControl]=\"input\" (focus)=\"openPicker(); onFocus.emit($event)\" (blur)=\"onBlur.emit($event)\" />\r\n\t</dolfo-input-container>`,\r\n\tstandalone: false,\r\n\tproviders: [\r\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DatepickerComponent), multi: true },\r\n\t\t{ provide: NG_VALIDATORS, useExisting: forwardRef(() => DatepickerComponent), multi: true },\r\n\t\t{ provide: BaseFormInput, useExisting: DatepickerComponent }\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DatepickerComponent extends BaseFormInput<Date> implements OnFocus, OnBlur{\r\n @ViewChild(\"formInput\") formInput: ElementRef<HTMLInputElement>\r\n @Input({ transform: booleanAttribute }) selectTime = false\r\n\t@Output() onFocus = new EventEmitter<FocusEvent>()\r\n\t@Output() onBlur = new EventEmitter<FocusEvent>()\r\n\r\n public openPicker = () => this.formInput.nativeElement.showPicker()\r\n}\r\n","import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Directive, inject, OnDestroy, QueryList, ViewChild, ViewChildren } from \"@angular/core\"\r\nimport { FormGroupDirective } from \"@angular/forms\"\r\nimport { BehaviorSubject, catchError, distinctUntilChanged, mergeMap, Observable, of, Subscription, tap } from \"rxjs\"\r\nimport { BaseFormInput } from \"../../components/form/base-form-input\"\r\nimport { NotificationService, TranslateService } from \"../services\"\r\nimport { Subscriptable } from \"./subscriptable\"\r\n\r\n@Directive()\r\nexport abstract class Formable<T = object> extends Subscriptable implements OnDestroy, AfterViewInit, AfterViewChecked{\r\n @ViewChild(FormGroupDirective) formRef: FormGroupDirective\r\n @ViewChildren(BaseFormInput) inputs: QueryList<BaseFormInput<unknown>>\r\n\r\n public loading$ = new BehaviorSubject(false)\r\n protected notificationService = inject(NotificationService)\r\n protected translateService = inject(TranslateService)\r\n private cdr = inject(ChangeDetectorRef)\r\n private subForm: Subscription\r\n \r\n protected abstract submit: (_formValue: T) => Observable<unknown>\r\n\r\n ngAfterViewInit() {\r\n if(!this.formRef)\r\n return\r\n \r\n this.addSubscription(this.loading$.pipe(\r\n distinctUntilChanged()\r\n ).subscribe(loading => {\r\n if(loading)\r\n this.formRef.form.disable()\r\n else\r\n this.formRef.form.enable()\r\n }))\r\n\r\n this.subForm = this.formRef.ngSubmit.pipe(\r\n tap(() => {\r\n let focused = false\r\n \r\n Object.entries(this.formRef.form.controls).forEach(([key, control]) => {\r\n control.markAsTouched()\r\n control.updateValueAndValidity()\r\n\r\n if(control.invalid && !focused){\r\n this.inputs.toArray().find(i => i.formControlName === key).container.focus()\r\n focused = true\r\n }\r\n })\r\n }),\r\n mergeMap(() => {\r\n if(!this.formRef.invalid && !this.loading$.getValue()){\r\n this.loading$.next(true)\r\n return this.submit(this.formRef.form.getRawValue()).pipe(\r\n catchError(err => {\r\n this.loading$.next(false)\r\n return of(err)\r\n }),\r\n tap(() => this.loading$.next(false))\r\n )\r\n }\r\n \r\n return of(null)\r\n })\r\n ).subscribe()\r\n\r\n this.addSubscription(this.subForm)\r\n\r\n this.addSubscription(this.translateService.getLang$().subscribe(() => this.cdr.detectChanges()))\r\n }\r\n \r\n ngAfterViewChecked() {\r\n if(!this.formRef && this.subForm){\r\n this.subForm.unsubscribe()\r\n this.subForm = null\r\n }else if(this.formRef && !this.subForm)\r\n this.ngAfterViewInit()\r\n }\r\n\r\n protected manualSubmit = () => this.formRef.ngSubmit.emit()\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, InjectionToken, Input, OnInit } from \"@angular/core\"\r\nimport { fromEvent, race } from \"rxjs\"\r\nimport { Subscriptable } from \"../../shared/classes\"\r\nimport { ContextMenuItem, IContextMenu } from \"../../shared/interfaces\"\r\n\r\nexport const CONTEXT_MENU_DESTROY_TOKEN = new InjectionToken<() => void>(\"CONTEXT_MENU_DESTROY_TOKEN\")\r\n\r\n@Component({\r\n selector: \"dolfo-context-menu\",\r\n standalone: false,\r\n template: `<div class=\"context-menu\" [ngStyle]=\"{\r\n top: y + 'px',\r\n left: x + 'px'\r\n }\" (click)=\"$event.stopPropagation()\" [ngClass]=\"'position-' + position\">\r\n @for(item of items; track item.label){\r\n <div [ngClass]=\"item.className\" [class.disabled]=\"item.disabled\" (click)=\"clickItem(item)\">\r\n @if(item.icon){\r\n <dolfo-icon [name]=\"item.icon\"></dolfo-icon>\r\n }\r\n {{ item.label }}\r\n </div>\r\n }\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ContextMenuComponent extends Subscriptable implements IContextMenu, OnInit {\r\n @Input({ required: true }) x: number\r\n @Input({ required: true }) y: number\r\n @Input({ required: true }) items: ContextMenuItem[]\r\n @Input({ required: true }) ref: ElementRef<HTMLElement>\r\n @Input() position?: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\"\r\n \r\n private destroyFn = inject(CONTEXT_MENU_DESTROY_TOKEN)\r\n\r\n ngOnInit() {\r\n this.addSubscription(race([\r\n fromEvent(this.ref.nativeElement, \"contextmenu\"),\r\n fromEvent(window, \"click\"),\r\n fromEvent(window, \"resize\"),\r\n fromEvent(window, \"scroll\", { capture: true })\r\n ]).subscribe(this.destroyFn))\r\n }\r\n\r\n public clickItem = (item: ContextMenuItem) => {\r\n if(item.onClick && !item.disabled){\r\n item.onClick()\r\n this.destroyFn()\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { InputType } from \"../../shared/interfaces\"\r\nimport { OnBlur, OnFocus } from \"../../shared/interfaces/events\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-input-text\",\r\n template: `<dolfo-input-container>\r\n @if(type === \"textarea\"){\r\n <textarea #formInput [name]=\"formControlName\" [formControl]=\"input\" (focus)=\"onFocus.emit($event)\" (blur)=\"onBlur.emit($event)\" [placeholder]=\"placeHolder\"></textarea>\r\n }@else{\r\n <input #formInput [name]=\"formControlName\" [type]=\"type\" [formControl]=\"input\" (focus)=\"onFocus.emit($event)\" (blur)=\"onBlur.emit($event)\" [placeholder]=\"placeHolder\" />\r\n }\r\n </dolfo-input-container>`,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputTextComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => InputTextComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: InputTextComponent }\r\n ],\r\n standalone: false\r\n})\r\nexport class InputTextComponent extends BaseFormInput<string> implements OnFocus, OnBlur{\r\n @Input() type: InputType = \"text\"\r\n @Input() placeHolder = \"\"\r\n @Output() onFocus = new EventEmitter<FocusEvent>()\r\n @Output() onBlur = new EventEmitter<FocusEvent>()\r\n @ViewChild(\"formInput\") formInput: ElementRef<HTMLInputElement | HTMLTextAreaElement>\r\n\r\n public focus = () => this.formInput.nativeElement.focus()\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, Input } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { ComboOption, isDeepEqual } from \"../../shared/interfaces\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-input-radio\",\r\n template: `<dolfo-input-container>\r\n @for(option of options; track option){\r\n <div class=\"radio-item\">\r\n <input type=\"radio\" [name]=\"formControlName\" [formControl]=\"input\" [checked]=\"isSelectedOption(option)\" [value]=\"option.value\" />\r\n <label (click)=\"setOption(option)\">{{ option.label }}</label>\r\n </div>\r\n }\r\n </dolfo-input-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputRadioComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => InputRadioComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: InputRadioComponent }\r\n ]\r\n})\r\nexport class InputRadioComponent extends BaseFormInput<any> {\r\n @Input({ required: true }) options: ComboOption[]\r\n\r\n public isSelectedOption = (opt: ComboOption) => isDeepEqual(this.input.value, opt.value)\r\n\r\n public setOption = (opt: ComboOption) => {\r\n if(this.input.disabled)\r\n return\r\n \r\n this.input.setValue(opt.value)\r\n this.onChange.emit(this.input.value)\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, TemplateRef, ViewChild } from \"@angular/core\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog-content\",\r\n template: `<ng-template><ng-content></ng-content></ng-template>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DialogContentComponent implements OnInit{\r\n @ViewChild(TemplateRef) template: TemplateRef<unknown>\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges()\r\n }\r\n}\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from \"@angular/core\"\r\nimport { ButtonColor, ButtonSize } from \"../../shared/interfaces\"\r\nimport { OnBlur, OnClick, OnFocus } from \"../../shared/interfaces/events\"\r\n\r\n@Component({\r\n selector: \"dolfo-button\",\r\n template: `<button #btn [type]=\"type\" [disabled]=\"disabled || loading\" (click)=\"doClick($event)\" [class]=\"'color-' + (color || 'primary')\" (focus)=\"onFocus.emit($event)\" (blur)=\"onFocus.emit($event)\" [class.size-sm]=\"size === 'small'\" [class.size-lg]=\"size === 'large'\">\r\n @if(loading){\r\n <dolfo-icon name=\"spinner8\"></dolfo-icon>\r\n }\r\n <ng-content></ng-content>\r\n </button>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class ButtonComponent implements OnClick, OnBlur, OnFocus{\r\n @ViewChild(\"btn\") btn: ElementRef<HTMLButtonElement>\r\n @Input() type: \"button\" | \"submit\" = \"button\"\r\n @Input({ transform: booleanAttribute }) disabled = false\r\n @Input() color: ButtonColor\r\n @Input() loading = false\r\n @Input() size: ButtonSize\r\n\r\n @Output() onClick = new EventEmitter<MouseEvent>()\r\n @Output() onBlur = new EventEmitter<FocusEvent>()\r\n @Output() onFocus = new EventEmitter<FocusEvent>()\r\n\r\n public doClick = (e: MouseEvent) => {\r\n if (!this.disabled && !this.loading)\r\n this.onClick.emit(e)\r\n }\r\n\r\n public focus = () => {\r\n if(!this.disabled && !this.loading)\r\n this.btn.nativeElement.focus()\r\n }\r\n}\r\n","import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, TemplateRef, ViewChild } from \"@angular/core\"\r\nimport { DialogActionType, DialogIcon } from \"../../../shared/interfaces\"\r\nimport { DialogService } from \"../../../shared/services\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog-header\",\r\n template: `<ng-template>\r\n <h5>\r\n @if(icon){\r\n <i [class]=\"'icon-' + icon.icon + ' fg-' + icon.color\"></i>\r\n }\r\n {{ title }}\r\n </h5>\r\n @if(showCloseX){\r\n <dolfo-button (click)=\"close()\" color=\"secondary\" [dolfoTooltip]=\"'dialog.close' | translate\">\r\n <i class=\"icon-cross\"></i>\r\n </dolfo-button>\r\n }\r\n </ng-template>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DialogHeaderComponent implements OnInit{\r\n @ViewChild(TemplateRef) template: TemplateRef<unknown>\r\n @Input({ required: true }) title: string\r\n @Input() icon: DialogIcon\r\n @Input({ transform: booleanAttribute }) showCloseX = true\r\n\r\n constructor(private cdr: ChangeDetectorRef, private dialogService: DialogService) {}\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges()\r\n }\r\n\r\n public close = () => {\r\n this.dialogService.action({ type: DialogActionType.CANCEL, data: null })\r\n this.dialogService.close()\r\n }\r\n}\r\n","import { AfterViewChecked, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from \"@angular/core\"\r\nimport { DialogFooterButton } from \"../../../shared/interfaces\"\r\nimport { ButtonComponent } from \"../button.component\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog-footer\",\r\n template: `<ng-template>\r\n @for(btn of buttons; track btn.label){\r\n <dolfo-button (onClick)=\"btn.onClick()\" [color]=\"btn.color\" [disabled]=\"btn.disabled\" [loading]=\"btn.loading\">\r\n @if(btn.icon && !btn.loading){\r\n <dolfo-icon [name]=\"btn.icon\"></dolfo-icon>\r\n }\r\n {{ btn.label }}\r\n </dolfo-button>\r\n }\r\n </ng-template>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DialogFooterComponent implements OnInit, AfterViewChecked{\r\n @ViewChild(TemplateRef) template: TemplateRef<unknown>\r\n @ViewChildren(ButtonComponent) childrenButtons: QueryList<ButtonComponent>\r\n @Input({ required: true }) buttons: DialogFooterButton[]\r\n\r\n private focused = false\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges()\r\n setTimeout(() => this.cdr.markForCheck())\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if(!this.focused){\r\n const firstBtn = this.childrenButtons.find(btn => !btn.disabled && !btn.loading)\r\n\r\n if(firstBtn)\r\n firstBtn.focus()\r\n \r\n this.focused = true\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Input } from \"@angular/core\"\r\nimport { DialogContentComponent } from \"./dialog-content.component\"\r\nimport { DialogFooterComponent } from \"./dialog-footer.component\"\r\nimport { DialogHeaderComponent } from \"./dialog-header.component\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog-layout\",\r\n templateUrl: \"./dialog-layout.component.html\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DialogLayoutComponent {\r\n @ContentChild(DialogHeaderComponent) header: DialogHeaderComponent\r\n @ContentChild(DialogContentComponent) content: DialogContentComponent\r\n @ContentChild(DialogFooterComponent) footer: DialogFooterComponent\r\n @Input() width: number\r\n}\r\n","<div class=\"dialog\">\r\n <div class=\"dialog-inner\" [ngStyle]=\"{ width: width + 'px' }\">\r\n @if(header){\r\n <div class=\"dialog-header\">\r\n <ng-content *ngTemplateOutlet=\"header.template\"></ng-content>\r\n </div>\r\n }\r\n @if(content){\r\n <div class=\"dialog-content\">\r\n <ng-content *ngTemplateOutlet=\"content.template\"></ng-content>\r\n </div>\r\n }\r\n @if(footer){\r\n <div class=\"dialog-footer\">\r\n <ng-content *ngTemplateOutlet=\"footer.template\"></ng-content>\r\n </div>\r\n }\r\n </div>\r\n</div>","import { ChangeDetectionStrategy, Component, inject, Input, OnInit } from \"@angular/core\"\r\nimport { FormGroup } from \"@angular/forms\"\r\nimport { DomSanitizer } from \"@angular/platform-browser\"\r\nimport { Observable, of } from \"rxjs\"\r\nimport { Formable } from \"../../../shared/classes\"\r\nimport { DialogActionType, DialogComponentInput, DialogFooterButton, DialogForm, DialogIcon, DialogType, IDialogInput } from \"../../../shared/interfaces\"\r\nimport { DialogService } from \"../../../shared/services\"\r\n\r\n@Component({\r\n selector: \"dolfo-dialog\",\r\n standalone: false,\r\n template: `<dolfo-dialog-layout [width]=\"width\">\r\n @if(title){\r\n <dolfo-dialog-header [title]=\"title\" [showCloseX]=\"showCloseX()\" [icon]=\"getIcon()\"></dolfo-dialog-header>\r\n }\r\n\r\n <dolfo-dialog-content>\r\n <div [class.loading]=\"type === 'loading'\">\r\n @if(message){\r\n <span [innerHTML]=\"sanitizeMsg()\"></span>\r\n }\r\n\r\n @if(form && formGroup){\r\n <form [formGroup]=\"formGroup\">\r\n @for(f of form; track f.name){\r\n @switch(f.type){\r\n @case(\"date\"){\r\n <dolfo-datepicker [formControlName]=\"f.name\" [label]=\"f.label\"></dolfo-datepicker>\r\n }\r\n @case(\"autocomplete\"){\r\n <dolfo-autocomplete [formControlName]=\"f.name\" [label]=\"f.label\" [config]=\"f.autocompleteCfg\"></dolfo-autocomplete>\r\n }\r\n @case(\"radio\"){\r\n <dolfo-input-radio [formControlName]=\"f.name\" [label]=\"f.label\" [options]=\"f.options\"></dolfo-input-radio>\r\n }\r\n @case(\"combobox\"){\r\n <dolfo-combobox [formControlName]=\"f.name\" [label]=\"f.label\" [options]=\"f.options\"></dolfo-combobox>\r\n }\r\n @default{\r\n <dolfo-input-text [formControlName]=\"f.name\" [type]=\"f.type\" [label]=\"f.label\"></dolfo-input-text>\r\n }\r\n }\r\n }\r\n </form>\r\n }\r\n </div>\r\n </dolfo-dialog-content>\r\n\r\n @let footer = buttons || getFooter();\r\n\r\n @if(footer){\r\n <dolfo-dialog-footer [buttons]=\"footer\"></dolfo-dialog-footer>\r\n }\r\n </dolfo-dialog-layout>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DialogComponent extends Formable implements Required<IDialogInput>, OnInit {\r\n @Input() title: string\r\n @Input({ required: true }) message: string\r\n @Input() type: DialogType = \"info\"\r\n @Input() width: number\r\n @Input() hideCloseX = false\r\n @Input() form: DialogForm\r\n @Input() component: DialogComponentInput\r\n @Input() buttons: DialogFooterButton[]\r\n public formGroup: FormGroup\r\n \r\n protected dialogService = inject(DialogService)\r\n private sanitizer = inject(DomSanitizer)\r\n\r\n ngOnInit() {\r\n if(this.form){\r\n this.formGroup = new FormGroup({})\r\n this.form.forEach(f => this.formGroup.addControl(f.name, f.control))\r\n }\r\n }\r\n\r\n protected submit = (): Observable<unknown> => of(null)\r\n\r\n public getIcon = (): DialogIcon => {\r\n if(this.type === \"info\")\r\n return { icon: \"info\", color: \"info\" }\r\n if(this.type === \"error\")\r\n return { icon: \"notification\", color: \"error\" }\r\n if(this.type === \"confirm\")\r\n return { icon: \"question\", color: \"warning\" }\r\n\r\n return null\r\n }\r\n\r\n protected close = (type: DialogActionType, data?: Record<string, any>) => {\r\n if(type === DialogActionType.OK && this.formGroup && this.formRef){\r\n this.formRef.ngSubmit.emit()\r\n\r\n if(this.formGroup.invalid)\r\n return\r\n }\r\n\r\n this.dialogService.action({ type, data: data != null ? data : this.formGroup?.getRawValue() })\r\n this.dialogService.close()\r\n }\r\n\r\n public showCloseX = () => this.type !== \"loading\" && !this.hideCloseX\r\n\r\n public getFooter = (): DialogFooterButton[] => {\r\n if(this.type === \"loading\")\r\n return null\r\n\r\n if(this.type === \"info\" || this.type === \"error\"){\r\n return [{\r\n label: this.translateService.translate(\"dialog.ok\"),\r\n onClick: () => this.close(DialogActionType.OK),\r\n color: this.type\r\n }]\r\n }\r\n\r\n return [{\r\n label: this.translateService.translate(\"dialog.confirm\"),\r\n onClick: () => this.close(DialogActionType.OK),\r\n color: \"primary\"\r\n },\r\n {\r\n label: this.translateService.translate(\"dialog.no\"),\r\n onClick: () => this.close(DialogActionType.NO),\r\n color: \"secondary\"\r\n }]\r\n }\r\n\r\n public sanitizeMsg = () => this.sanitizer.bypassSecurityTrustHtml(this.message)\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from \"@angular/core\"\r\nimport { INotificationInput, NotificationAction, NotificationType } from \"../../shared/interfaces\"\r\nimport { NotificationService, TranslateService } from \"../../shared/services\"\r\n\r\n@Component({\r\n selector: \"dolfo-notification\",\r\n standalone: false,\r\n template: `<div class=\"notification\" [ngClass]=\"{\r\n success: type === 'success',\r\n error: type === 'error',\r\n warning: type === 'warning',\r\n info: type === 'info'\r\n }\" (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (click)=\"click()\">\r\n <div class=\"notification-header\">\r\n <h6>{{ title || getTitleByType() }}</h6>\r\n </div>\r\n <div class=\"notification-content\">\r\n {{ message }}\r\n </div>\r\n @if(action){\r\n <div class=\"notification-action\">\r\n <dolfo-button [color]=\"type\" (onClick)=\"action.click()\">\r\n <dolfo-icon name=\"new-tab\"></dolfo-icon>\r\n {{ action.label }}\r\n </dolfo-button>\r\n </div>\r\n }\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NotificationComponent implements OnInit, Required<INotificationInput>{\r\n @Input({ required: true }) title: string\r\n @Input({ required: true }) message: string\r\n @Input() type: NotificationType = \"info\"\r\n @Input() action: NotificationAction\r\n\r\n private timeout: any\r\n\r\n constructor(private ns: NotificationService, private ts: TranslateService){}\r\n\r\n ngOnInit(){\r\n this.mouseLeave()\r\n }\r\n\r\n public mouseEnter = () => clearTimeout(this.timeout)\r\n\r\n public mouseLeave = () => this.timeout = setTimeout(() => this.ns.hide(), 3000)\r\n\r\n public click = () => {\r\n this.mouseEnter()\r\n this.ns.hide()\r\n }\r\n\r\n public getTitleByType = () => this.ts.translate(\"notification.\" + this.type)\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, InjectionToken, Input, OnInit, TemplateRef, ViewChild } from \"@angular/core\"\r\nimport { DomSanitizer } from \"@angular/platform-browser\"\r\nimport { BehaviorSubject, filter, fromEvent, map, race, zip } from \"rxjs\"\r\nimport { Subscriptable } from \"../../shared/classes\"\r\nimport { IPopover, TooltipDirection } from \"../../shared/interfaces\"\r\n\r\nexport const POPOVER_DESTROY_TOKEN = new InjectionToken<() => void>(\"POPOVER_DESTROY_TOKEN\")\r\n\r\n@Component({\r\n selector: \"dolfo-popover\",\r\n standalone: false,\r\n template: `<div class=\"tooltip popover\" #tooltipRef [ngStyle]=\"{\r\n left: (x$ | async) + 'px',\r\n top: (y$ | async) + 'px'\r\n }\" [ngClass]=\"currentDirection$ | async\" [class.show]=\"completed$ | async\">\r\n @if(isTemplate()){\r\n <ng-container [ngTemplateOutlet]=\"getContentTemplate()\"></ng-container>\r\n }@else{\r\n <div [innerHTML]=\"getContentStr()\"></div>\r\n }\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PopoverComponent extends Subscriptable implements OnInit, AfterViewInit, Required<IPopover> {\r\n @ViewChild(\"tooltipRef\") tooltipRef: ElementRef<HTMLDivElement>\r\n @Input({ required: true }) content: string | TemplateRef<any>\r\n @Input({ required: true }) elementRef: ElementRef<HTMLElement>\r\n @Input({ required: true }) direction: TooltipDirection\r\n\r\n private destroyFn = inject(POPOVER_DESTROY_TOKEN)\r\n private checkCount = 0\r\n\r\n public currentDirection$ = new BehaviorSubject<TooltipDirection>(null)\r\n public completed$ = new BehaviorSubject(false)\r\n public readonly x$ = new BehaviorSubject(0)\r\n public readonly y$ = new BehaviorSubject(0)\r\n\r\n constructor(private cdr: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n super()\r\n }\r\n\r\n ngOnInit() {\r\n this.currentDirection$.next(this.direction)\r\n\r\n this.addSubscription(race([\r\n fromEvent(window, \"resize\"),\r\n fromEvent(window, \"scroll\", { capture: true }),\r\n fromEvent<MouseEvent>(window, \"click\").pipe(\r\n map(e => e.target as HTMLElement),\r\n filter(el => !el.isEqualNode(this.tooltipRef.nativeElement) && !this.tooltipRef.nativeElement.contains(el))\r\n )\r\n ]).subscribe(this.destroyFn))\r\n\r\n this.addSubscription(zip([this.x$, this.y$]).pipe(\r\n filter(([x, y]) => x != 0 && y != 0 && this.checkCount < 4)\r\n ).subscribe(() => {\r\n setTimeout(() => {\r\n if (this.isTooltipInViewport()) {\r\n this.completed$.next(true)\r\n this.calculatePosition()\r\n return\r\n }\r\n\r\n if (this.currentDirection$.getValue() === \"bottom\")\r\n this.currentDirection$.next(\"left\")\r\n else if (this.currentDirection$.getValue() === \"left\")\r\n this.currentDirection$.next(\"top\")\r\n else if (this.currentDirection$.getValue() === \"top\")\r\n this.currentDirection$.next(\"right\")\r\n else\r\n this.currentDirection$.next(\"bottom\")\r\n })\r\n }))\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.addSubscription(this.currentDirection$.asObservable().subscribe(() => setTimeout(() => this.calculatePosition())))\r\n }\r\n\r\n private calculatePosition = () => {\r\n const { elementRef, tooltipRef, currentDirection$ } = this,\r\n refRect = elementRef.nativeElement.getBoundingClientRect(),\r\n tooltipRect = tooltipRef.nativeElement.getBoundingClientRect(),\r\n currentDirection = currentDirection$.getValue()\r\n\r\n if (currentDirection === \"top\" || currentDirection === \"bottom\")\r\n this.x$.next(refRect.left - ((tooltipRect.width - refRect.width) / 2))\r\n else if (currentDirection === \"right\")\r\n this.x$.next(refRect.left + refRect.width)\r\n else\r\n this.x$.next(refRect.left - tooltipRect.width)\r\n\r\n if (currentDirection === \"top\")\r\n this.y$.next(refRect.top - tooltipRect.height)\r\n else if (currentDirection === \"bottom\")\r\n this.y$.next(refRect.top + refRect.height)\r\n else\r\n this.y$.next(refRect.top - ((tooltipRect.height - refRect.height) / 2))\r\n\r\n this.cdr.detectChanges()\r\n this.checkCount++\r\n }\r\n\r\n private isTooltipInViewport = () => {\r\n const { top, left, bottom, right } = this.tooltipRef.nativeElement.getBoundingClientRect()\r\n return top >= 0 && left >= 0 && bottom <= window.innerHeight && right <= window.innerWidth\r\n }\r\n\r\n public getContentStr = () => this.sanitizer.bypassSecurityTrustHtml(this.content as string)\r\n\r\n public isTemplate = () => this.content instanceof TemplateRef\r\n\r\n public getContentTemplate = () => this.content as TemplateRef<any>\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, InjectionToken, Input, OnInit, ViewChild } from \"@angular/core\"\r\nimport { BehaviorSubject, filter, fromEvent, race, zip } from \"rxjs\"\r\nimport { Subscriptable } from \"../../shared/classes\"\r\nimport { ITooltip, TooltipDirection } from \"../../shared/interfaces\"\r\n\r\nexport const TOOLTIP_DESTROY_TOKEN = new InjectionToken<() => void>(\"TOOLTIP_DESTROY_TOKEN\")\r\n\r\n@Component({\r\n selector: \"dolfo-tooltip\",\r\n standalone: false,\r\n template: `<div class=\"tooltip\" #tooltipRef [ngStyle]=\"{\r\n left: (x$ | async) + 'px',\r\n top: (y$ | async) + 'px'\r\n }\" [ngClass]=\"currentDirection$ | async\" [class.show]=\"completed$ | async\">\r\n {{ content }}\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TooltipComponent extends Subscriptable implements OnInit, AfterViewInit, Required<ITooltip> {\r\n @ViewChild(\"tooltipRef\") tooltipRef: ElementRef<HTMLDivElement>\r\n @Input({ required: true }) content: string\r\n @Input({ required: true }) elementRef: ElementRef<HTMLElement>\r\n @Input({ required: true }) direction: TooltipDirection\r\n \r\n private destroyFn = inject(TOOLTIP_DESTROY_TOKEN)\r\n private checkCount = 0\r\n\r\n public currentDirection$ = new BehaviorSubject<TooltipDirection>(null)\r\n public completed$ = new BehaviorSubject(false)\r\n public readonly x$ = new BehaviorSubject(0)\r\n public readonly y$ = new BehaviorSubject(0)\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n super()\r\n }\r\n\r\n ngOnInit() {\r\n this.currentDirection$.next(this.direction)\r\n\r\n this.addSubscription(race([\r\n fromEvent(window, \"resize\"),\r\n fromEvent(window, \"scroll\", { capture: true }),\r\n fromEvent(this.elementRef.nativeElement, \"mouseleave\")\r\n ]).subscribe(this.destroyFn))\r\n\r\n this.addSubscription(zip([this.x$, this.y$]).pipe(\r\n filter(([x, y]) => x != 0 && y != 0 && this.checkCount < 4)\r\n ).subscribe(() => {\r\n setTimeout(() => {\r\n if (this.isTooltipInViewport()) {\r\n this.completed$.next(true)\r\n this.calculatePosition()\r\n return\r\n }\r\n\r\n if (this.currentDirection$.getValue() === \"bottom\")\r\n this.currentDirection$.next(\"left\")\r\n else if (this.currentDirection$.getValue() === \"left\")\r\n this.currentDirection$.next(\"top\")\r\n else if (this.currentDirection$.getValue() === \"top\")\r\n this.currentDirection$.next(\"right\")\r\n else\r\n this.currentDirection$.next(\"bottom\")\r\n })\r\n }))\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.addSubscription(this.currentDirection$.asObservable().subscribe(() => setTimeout(() => this.calculatePosition())))\r\n }\r\n\r\n private calculatePosition = () => {\r\n const { elementRef, tooltipRef, currentDirection$ } = this,\r\n refRect = elementRef.nativeElement.getBoundingClientRect(),\r\n tooltipRect = tooltipRef.nativeElement.getBoundingClientRect(),\r\n currentDirection = currentDirection$.getValue()\r\n\r\n if (currentDirection === \"top\" || currentDirection === \"bottom\")\r\n this.x$.next(refRect.left - ((tooltipRect.width - refRect.width) / 2))\r\n else if (currentDirection === \"right\")\r\n this.x$.next(refRect.left + refRect.width)\r\n else\r\n this.x$.next(refRect.left - tooltipRect.width)\r\n\r\n if (currentDirection === \"top\")\r\n this.y$.next(refRect.top - tooltipRect.height)\r\n else if (currentDirection === \"bottom\")\r\n this.y$.next(refRect.top + refRect.height)\r\n else\r\n this.y$.next(refRect.top - ((tooltipRect.height - refRect.height) / 2))\r\n\r\n this.cdr.detectChanges()\r\n this.checkCount++\r\n }\r\n\r\n private isTooltipInViewport = () => {\r\n const { top, left, bottom, right } = this.tooltipRef.nativeElement.getBoundingClientRect()\r\n return top >= 0 && left >= 0 && bottom <= window.innerHeight && right <= window.innerWidth\r\n }\r\n}","import { ComponentRef, createComponent, EnvironmentInjector, Injector, ViewContainerRef } from \"@angular/core\"\r\nimport { distinctUntilChanged, filter, map, tap } from \"rxjs\"\r\nimport { CONTEXT_MENU_DESTROY_TOKEN, ContextMenuComponent } from \"../../components/layout/context-menu.component\"\r\nimport { DialogComponent } from \"../../components/layout/dialog-layout/dialog.component\"\r\nimport { NotificationComponent } from \"../../components/layout/notification.component\"\r\nimport { POPOVER_DESTROY_TOKEN, PopoverComponent } from \"../../components/layout/popover.component\"\r\nimport { TOOLTIP_DESTROY_TOKEN, TooltipComponent } from \"../../components/layout/tooltip.component\"\r\nimport { IDialogInput, isDeepEqual } from \"../interfaces\"\r\nimport { ContextMenuService, DialogService, NotificationService, PopoverService, TooltipService } from \"../services\"\r\n\r\nexport class OverlayManager{\r\n private dialog: [ComponentRef<IDialogInput>, number][] = []\r\n private notification: ComponentRef<NotificationComponent>\r\n private tooltip: ComponentRef<TooltipComponent>\r\n private popover: ComponentRef<PopoverComponent>\r\n private contextMenu: ComponentRef<ContextMenuComponent>\r\n \r\n constructor(private injector: Injector, private container: ViewContainerRef){}\r\n\r\n public init = () => {\r\n const ds = this.injector.get(DialogService),\r\n ns = this.injector.get(NotificationService),\r\n ts = this.injector.get(TooltipService),\r\n cs = this.injector.get(ContextMenuService),\r\n ps = this.injector.get(PopoverService),\r\n environmentInjector = this.injector.get(EnvironmentInjector)\r\n\r\n return [\r\n ds.getDialog$().pipe(\r\n tap(inputs => {\r\n const notFound = this.dialog.filter(d => !inputs.some(i => i._dialogId === d[1]))\r\n\r\n notFound.forEach(d => d[0].destroy())\r\n\r\n this.dialog = this.dialog.filter(d => !notFound.some(d2 => d2[1] === d[1]))\r\n }),\r\n map(inputs => inputs[inputs.length - 1]),\r\n distinctUntilChanged((a, b) => isDeepEqual(a, b)),\r\n filter(input => !!input && !this.dialog.some(d => d[1] === input._dialogId))\r\n ).subscribe(input => {\r\n const dialog = createComponent(input.component?.type || DialogComponent, { environmentInjector })\r\n this.dialog.push([dialog, input._dialogId])\r\n \r\n Object.entries(input).filter(k => k[0] !== \"_dialogId\").forEach(([k, v]) => dialog.setInput(k, v))\r\n \r\n if(input.component?.input)\r\n Object.entries(input.component.input).forEach(([k, v]) => dialog.setInput(k, v))\r\n \r\n this.container.insert(dialog.hostView)\r\n }),\r\n ns.getNotification$().pipe(\r\n distinctUntilChanged((a, b) => isDeepEqual(a, b)),\r\n tap(() => {\r\n if(this.notification)\r\n this.notification.destroy()\r\n }),\r\n filter(input => !!input)\r\n ).subscribe(input => {\r\n this.notification = createComponent(NotificationComponent, { environmentInjector })\r\n \r\n Object.entries(input).forEach(([k, v]) => this.notification.setInput(k, v))\r\n \r\n this.container.insert(this.notification.hostView)\r\n }),\r\n ts.getTooltip$().pipe(\r\n tap(() => {\r\n if(this.tooltip)\r\n this.tooltip.destroy()\r\n }),\r\n filter(input => !!input)\r\n ).subscribe(input => {\r\n this.tooltip = createComponent(TooltipComponent, {\r\n environmentInjector,\r\n elementInjector: Injector.create({\r\n providers: [{ provide: TOOLTIP_DESTROY_TOKEN, useValue: () => this.tooltip.destroy() }]\r\n })\r\n })\r\n \r\n Object.entries(input).forEach(([k, v]) => this.tooltip.setInput(k, v))\r\n \r\n this.container.insert(this.tooltip.hostView)\r\n }),\r\n ps.getPopover$().pipe(\r\n tap(() => {\r\n if(this.popover)\r\n this.popover.destroy()\r\n }),\r\n filter(input => !!input)\r\n ).subscribe(input => {\r\n this.popover = createComponent(PopoverComponent, {\r\n environmentInjector,\r\n elementInjector: Injector.create({\r\n providers: [{ provide: POPOVER_DESTROY_TOKEN, useValue: () => this.popover.destroy() }]\r\n })\r\n })\r\n \r\n Object.entries(input).forEach(([k, v]) => this.popover.setInput(k, v))\r\n \r\n this.container.insert(this.popover.hostView)\r\n }),\r\n cs.getContextMenu$().pipe(\r\n distinctUntilChanged((a, b) => isDeepEqual(a, b)),\r\n tap(() => {\r\n if(this.contextMenu)\r\n this.contextMenu.destroy()\r\n }),\r\n filter(input => !!input)\r\n ).subscribe(input => {\r\n this.contextMenu = createComponent(ContextMenuComponent, {\r\n environmentInjector,\r\n elementInjector: Injector.create({\r\n providers: [{ provide: CONTEXT_MENU_DESTROY_TOKEN, useValue: () => this.contextMenu.destroy() }]\r\n })\r\n })\r\n \r\n Object.entries(input).forEach(([k, v]) => this.contextMenu.setInput(k, v))\r\n \r\n this.container.insert(this.contextMenu.hostView)\r\n })\r\n ]\r\n }\r\n}","import { booleanAttribute, Directive, ElementRef, Input, OnInit } from \"@angular/core\"\r\nimport { fromEvent } from \"rxjs\"\r\nimport { Subscriptable } from \"../classes\"\r\nimport { ContextMenuItem } from \"../interfaces\"\r\nimport { ContextMenuService } from \"../services\"\r\n\r\n@Directive({\r\n selector: \"[dolfoContextMenu]\",\r\n standalone: false\r\n})\r\nexport class ContextMenuDirective extends Subscriptable implements OnInit{\r\n @Input({ required: true, alias: \"dolfoContextMenu\" }) contextMenu: ContextMenuItem[]\r\n @Input({ transform: booleanAttribute }) openOnClick: boolean\r\n @Input({ transform: booleanAttribute }) useElRef: boolean\r\n @Input() position?: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\" = \"bottom-left\"\r\n\r\n constructor(private contextMenuService: ContextMenuService, private elRef: ElementRef<HTMLElement>) {\r\n super()\r\n }\r\n\r\n ngOnInit(){\r\n this.addSubscription(fromEvent<MouseEvent>(this.elRef.nativeElement, this.openOnClick ? \"click\" : \"contextmenu\").subscribe(e => {\r\n e.preventDefault()\r\n\r\n const [left, top] = this.getElRefPosition()\r\n\r\n this.contextMenuService.openContextMenu({\r\n x: this.useElRef ? left : e.clientX,\r\n y: this.useElRef ? top : e.clientY,\r\n items: this.contextMenu,\r\n ref: this.elRef,\r\n position: this.position\r\n })\r\n }))\r\n }\r\n\r\n private getElRefPosition = () => {\r\n const diff = this.elRef.nativeElement.offsetLeft + this.elRef.nativeElement.offsetWidth\r\n\r\n if(this.position.startsWith(\"bottom-\")){\r\n const top = this.elRef.nativeElement.offsetTop + this.elRef.nativeElement.offsetHeight\r\n\r\n if(this.position === \"bottom-left\")\r\n return [this.elRef.nativeElement.offsetLeft, top]\r\n\r\n return [diff, top]\r\n }\r\n\r\n const top = this.elRef.nativeElement.offsetTop\r\n\r\n if(this.position === \"top-right\")\r\n return [diff, top]\r\n\r\n return [this.elRef.nativeElement.offsetLeft, top]\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, TemplateRef } from \"@angular/core\"\r\nimport { filter, fromEvent } from \"rxjs\"\r\nimport { Subscriptable } from \"../classes\"\r\nimport { TooltipDirection } from \"../interfaces\"\r\nimport { PopoverService } from \"../services\"\r\n\r\n@Directive({\r\n selector: \"[dolfoPopover]\",\r\n standalone: false\r\n})\r\nexport class PopoverDirective extends Subscriptable{\r\n @Input({ required: true, alias: \"dolfoPopover\" }) content: string | TemplateRef<any>\r\n @Input() direction: TooltipDirection = \"top\"\r\n\r\n constructor(private el: ElementRef<HTMLElement>, private ps: PopoverService) {\r\n super()\r\n }\r\n\r\n ngOnInit(){\r\n this.addSubscription(fromEvent(this.el.nativeElement, \"mousedown\").pipe(\r\n filter(() => !!this.ps.getPopover())\r\n ).subscribe(() => this.ps.hide()))\r\n\r\n this.addSubscription(\r\n fromEvent(this.el.nativeElement, \"click\").pipe(\r\n filter(() => !!this.content)\r\n ).subscribe(() => this.ps.showPopover({\r\n content: this.content,\r\n elementRef: this.el,\r\n direction: this.direction\r\n }))\r\n )\r\n }\r\n}\r\n","import { Directive, ElementRef } from \"@angular/core\"\r\nimport { filter, fromEvent } from \"rxjs\"\r\nimport { Subscriptable } from \"../classes\"\r\n\r\n@Directive({\r\n\tselector: \"[dolfoScrollDrag]\",\r\n standalone: false\r\n})\r\nexport class ScrollDragDirective extends Subscriptable {\r\n\tprivate mouseDownX: number\r\n\tprivate initialScrollX = 0\r\n\tprivate diffX = 0\r\n\tprivate mouseDownY: number\r\n\tprivate initialScrollY = 0\r\n\tprivate diffY = 0\r\n\r\n\tconstructor(elementRef: ElementRef<HTMLElement>) {\r\n\t\tsuper()\r\n\r\n\t\tthis.addSubscription(fromEvent<MouseEvent>(elementRef.nativeElement, \"mousedown\").pipe(\r\n filter(e => e.button === 0)\r\n ).subscribe(e => {\r\n\t\t\te.preventDefault()\r\n\t\t\te.stopPropagation()\r\n\t\t\tthis.mouseDownX = e.clientX\r\n\t\t\tthis.mouseDownY = e.clientY\r\n\t\t\tthis.initialScrollX = elementRef.nativeElement.scrollLeft\r\n\t\t\tthis.initialScrollY = elementRef.nativeElement.scrollTop\r\n\t\t\telementRef.nativeElement.classList.add(\"dragging\")\r\n\t\t}))\r\n\r\n\t\tthis.addSubscription(fromEvent(document, \"mouseup\", { capture: true }).subscribe(() => {\r\n\t\t\tthis.mouseDownX = null\r\n\t\t\tthis.mouseDownY = null\r\n\t\t\telementRef.nativeElement.classList.remove(\"dragging\")\r\n\t\t}))\r\n\r\n\t\tthis.addSubscription(fromEvent<Event>(elementRef.nativeElement, \"click\", { capture: true }).pipe(\r\n\t\t\tfilter(() => this.diffX != 0 || this.diffY != 0)\r\n\t\t).subscribe(e => {\r\n\t\t\te.stopPropagation()\r\n\t\t\tthis.diffX = 0\r\n\t\t\tthis.diffY = 0\r\n\t\t}))\r\n\r\n\t\tthis.addSubscription(fromEvent<MouseEvent>(document, \"mousemove\").pipe(\r\n\t\t\tfilter(() => this.mouseDownX != null || this.mouseDownY != null)\r\n\t\t).subscribe(e => {\r\n\t\t\te.stopPropagation()\r\n\r\n\t\t\tif (this.mouseDownX != null) {\r\n\t\t\t\tthis.diffX = this.initialScrollX + (this.mouseDownX - e.clientX)\r\n\t\t\t\telementRef.nativeElement.scrollLeft = this.diffX\r\n\t\t\t}\r\n\t\t\tif (this.mouseDownY != null) {\r\n\t\t\t\tthis.diffY = this.initialScrollY + (this.mouseDownY - e.clientY)\r\n\t\t\t\telementRef.nativeElement.scrollTop = this.diffY\r\n\t\t\t}\r\n\t\t}))\r\n\t}\r\n}\r\n","import { NgModule } from \"@angular/core\"\r\nimport { ContextMenuDirective } from \"./context-menu.directive\"\r\nimport { PopoverDirective } from \"./popover.directive\"\r\nimport { ScrollDragDirective } from \"./scroll-drag.directive\"\r\nimport { TooltipDirective } from \"./tooltip.directive\"\r\n\r\n@NgModule({\r\n declarations: [ContextMenuDirective, ScrollDragDirective, TooltipDirective, PopoverDirective],\r\n exports: [ContextMenuDirective, ScrollDragDirective, TooltipDirective, PopoverDirective]\r\n})\r\nexport class DirectivesModule{}","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\"\r\n\r\n@Component({\r\n\tselector: \"dolfo-loader\",\r\n\tstandalone: false,\r\n\ttemplate: `<div class=\"loading\">\r\n\t\t<dolfo-icon name=\"spinner5\"></dolfo-icon>\r\n\t\t{{ langKey | translate }}\r\n\t</div>`,\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LoaderComponent {\r\n\t@Input() langKey = \"loading\"\r\n}\r\n","import { CommonModule } from \"@angular/common\"\r\nimport { NgModule } from \"@angular/core\"\r\nimport { DirectivesModule } from \"../../shared/directives/directives.module\"\r\nimport { TranslatePipe } from \"../../shared/pipes/translate.pipe\"\r\nimport { ButtonComponent } from \"./button.component\"\r\nimport { ContextMenuComponent } from \"./context-menu.component\"\r\nimport { IconWrapperComponent } from \"./icon-wrapper.component\"\r\nimport { IconComponent } from \"./icon.component\"\r\nimport { LoaderComponent } from \"./loader.component\"\r\nimport { NotificationComponent } from \"./notification.component\"\r\nimport { PopoverComponent } from \"./popover.component\"\r\nimport { TooltipComponent } from \"./tooltip.component\"\r\n\r\n@NgModule({\r\n declarations: [ButtonComponent, ContextMenuComponent, IconWrapperComponent, LoaderComponent, NotificationComponent, TooltipComponent, IconComponent, PopoverComponent],\r\n imports: [CommonModule, DirectivesModule, TranslatePipe],\r\n exports: [ButtonComponent, ContextMenuComponent, IconWrapperComponent, LoaderComponent, NotificationComponent, TooltipComponent, IconComponent, PopoverComponent]\r\n})\r\nexport class LayoutModule {}","import { ChangeDetectionStrategy, Component, forwardRef } from \"@angular/core\"\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\"\r\nimport { BaseFormInput } from \"./base-form-input\"\r\n\r\n@Component({\r\n selector: \"dolfo-input-checkbox\",\r\n template: `<div class=\"input-checkbox\">\r\n <input type=\"checkbox\" [name]=\"formControlName\" [formControl]=\"input\" [checked]=\"input.value\" />\r\n @if(label){\r\n <label (click)=\"toggleCheck()\">{{ label }}</label>\r\n }\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputCheckboxComponent), multi: true },\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => InputCheckboxComponent), multi: true },\r\n { provide: BaseFormInput, useExisting: InputCheckboxComponent }\r\n ]\r\n})\r\nexport class InputCheckboxComponent extends BaseFormInput<boolean> {\r\n public toggleCheck = () => this.input.setValue(!this.input.value)\r\n}\r\n","import { CommonModule } from \"@angular/common\"\r\nimport { NgModule } from \"@angular/core\"\r\nimport { ReactiveFormsModule } from \"@angular/forms\"\r\nimport { DirectivesModule } from \"../../shared/directives/directives.module\"\r\nimport { TranslatePipe } from \"../../shared/pipes/translate.pipe\"\r\nimport { LayoutModule } from \"../layout/layout.module\"\r\nimport { AutocompleteComponent } from \"./autocomplete.component\"\r\nimport { ComboboxComponent } from \"./combobox.component\"\r\nimport { DatepickerComponent } from \"./datepicker.component\"\r\nimport { InputCheckboxComponent } from \"./input-checkbox.component\"\r\nimport { InputContainerComponent } from \"./input-container.component\"\r\nimport { InputRadioComponent } from \"./input-radio.component\"\r\nimport { InputTextComponent } from \"./input-text.component\"\r\n\r\n@NgModule({\r\n declarations: [InputTextComponent, InputContainerComponent, ComboboxComponent, DatepickerComponent, AutocompleteComponent, InputRadioComponent, InputCheckboxComponent],\r\n imports: [CommonModule, ReactiveFormsModule, TranslatePipe, DirectivesModule, LayoutModule],\r\n exports: [ReactiveFormsModule, InputTextComponent, InputContainerComponent, ComboboxComponent, DatepickerComponent, AutocompleteComponent, InputRadioComponent, InputCheckboxComponent]\r\n})\r\nexport class FormModule {}\r\n","import { CommonModule } from \"@angular/common\"\r\nimport { NgModule } from \"@angular/core\"\r\nimport { ReactiveFormsModule } from \"@angular/forms\"\r\nimport { DirectivesModule } from \"../../../shared/directives/directives.module\"\r\nimport { TranslatePipe } from \"../../../shared/pipes/translate.pipe\"\r\nimport { FormModule } from \"../../form/form.module\"\r\nimport { LayoutModule } from \"../layout.module\"\r\nimport { DialogContentComponent } from \"./dialog-content.component\"\r\nimport { DialogFooterComponent } from \"./dialog-footer.component\"\r\nimport { DialogHeaderComponent } from \"./dialog-header.component\"\r\nimport { DialogLayoutComponent } from \"./dialog-layout.component\"\r\nimport { DialogComponent } from \"./dialog.component\"\r\n\r\n@NgModule({\r\n declarations: [DialogComponent, DialogContentComponent, DialogHeaderComponent, DialogFooterComponent, DialogLayoutComponent],\r\n imports: [CommonModule, DirectivesModule, LayoutModule, ReactiveFormsModule, TranslatePipe, FormModule],\r\n exports: [DialogComponent, DialogContentComponent, DialogHeaderComponent, DialogFooterComponent, DialogLayoutComponent]\r\n})\r\nexport class DialogLayoutModule {}\r\n","import { Component, Input } from \"@angular/core\"\r\nimport { DomSanitizer } from \"@angular/platform-browser\"\r\nimport { ColumnDataType, GridColumn, GridConfig } from \"../../../shared/interfaces\"\r\nimport { TranslateService } from \"../../../shared/services\"\r\n\r\n@Component({\r\n selector: \"dolfo-grid\",\r\n templateUrl: \"./grid.component.html\",\r\n standalone: false\r\n})\r\nexport class GridComponent<T>{\r\n\t@Input({ required: true }) config: GridConfig<T>\r\n\r\n\tconstructor(private translateService: TranslateService, private sanitizer: DomSanitizer){}\r\n\r\n\tpublic resolveField = (item: T, { field, formatter, dataType }: GridColumn) => {\r\n let value = field\r\n .toString()\r\n .split(\".\")\r\n .reduce((prev, curr) => prev?.[curr as keyof T] as any, item) as string\r\n\r\n if(dataType === ColumnDataType.DATE)\r\n\t\t\tvalue = this.translateService.formatDate(value)\r\n else if(dataType === ColumnDataType.DATETIME)\r\n\t\t\tvalue = this.translateService.formatDateTime(value)\r\n\r\n const retValue = formatter ? formatter(value) : value\r\n \r\n return this.sanitizer.bypassSecurityTrustHtml(retValue)\r\n }\r\n}\r\n","@let loading = config.isLoading$() | async;\r\n\r\n<div class=\"grid-container\" [class.loading]=\"loading\">\r\n @if(loading){\r\n <div class=\"grid-loading\">\r\n <dolfo-icon name=\"spinner2\"></dolfo-icon>\r\n </div>\r\n }\r\n\r\n <table>\r\n @let columns = config.getColumns();\r\n @let showActions = config.hasActions;\r\n @let selection = config.getSelectionConfig();\r\n @let colSpan = columns.length + (showActions ? 1 : 0) + (selection ? 1 : 0);\r\n \r\n <thead>\r\n <tr>\r\n @if(selection){\r\n <th [style]=\"{ width: 0 }\">\r\n @if(selection.showSelectAll && selection.type === \"multiple\"){\r\n <input type=\"checkbox\" [checked]=\"config.isAllSelected()\" (change)=\"config.toggleSelectAll()\" />\r\n }\r\n </th>\r\n }\r\n\r\n @for(col of columns; track col.label){\r\n <th [ngStyle]=\"{ width: col.width + 'px', maxWidth: col.width + 'px' }\">{{ col.label | translate }}</th>\r\n }\r\n \r\n @if(showActions){\r\n <th>{{ \"grid.actions\" | translate }}</th>\r\n }\r\n </tr>\r\n </thead>\r\n \r\n <tbody>\r\n @let list = config.getList$() | async;\r\n \r\n @if(list.length > 0){\r\n @for(item of list; track config.getUniqueId(item)){\r\n @let itemActions = config.getActions(item);\r\n @let rowClass = config.getRowClass(item);\r\n \r\n <tr (click)=\"config.getEvents()?.onRowClick?.(item)\" [dolfoContextMenu]=\"itemActions\" position=\"bottom-right\">\r\n @if(selection){\r\n <td [ngClass]=\"rowClass\" class=\"align-center\">\r\n <input type=\"checkbox\" [checked]=\"config.isItemSelected(item)\" (change)=\"config.toggleSelection(item)\" />\r\n </td>\r\n }\r\n\r\n @for(col of columns; track col.label){\r\n <td [ngStyle]=\"{ width: col.width + 'px' }\" [ngClass]=\"rowClass\" [class.align-right]=\"col.align === 'right'\" [class.align-center]=\"col.align === 'center'\" [innerHTML]=\"resolveField(item, col)\"></td>\r\n }\r\n \r\n @if(showActions){\r\n <td class=\"align-center actions\" [ngClass]=\"rowClass\">\r\n @if(itemActions.length > 0){\r\n <dolfo-button color=\"secondary\" [dolfoTooltip]=\"'grid.showActions' | translate\" [dolfoContextMenu]=\"itemActions\" position=\"bottom-right\" openOnClick>\r\n <dolfo-icon name=\"flickr\"></dolfo-icon>\r\n </dolfo-button>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n }@else {\r\n <tr>\r\n <td [colSpan]=\"colSpan\" class=\"align-center\">{{ \"grid.noResults\" | translate }}</td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n</div>","import { CommonModule } from \"@angular/common\"\r\nimport { NgModule } from \"@angular/core\"\r\nimport { DirectivesModule } from \"../../../shared/directives/directives.module\"\r\nimport { TranslatePipe } from \"../../../shared/pipes/translate.pipe\"\r\nimport { LayoutModule } from \"../layout.module\"\r\nimport { GridComponent } from \"./grid.component\"\r\n\r\n@NgModule({\r\n declarations: [GridComponent],\r\n imports: [CommonModule, DirectivesModule, LayoutModule, TranslatePipe],\r\n exports: [GridComponent]\r\n})\r\nexport class GridModule{}","/*\r\n * Public API Surface of dolfo-angular\r\n */\r\n\r\n// Form\r\nexport * from \"./lib/components/form/autocomplete.component\"\r\nexport * from \"./lib/components/form/base-form-input\"\r\nexport * from \"./lib/components/form/combobox.component\"\r\nexport * from \"./lib/components/form/datepicker.component\"\r\nexport * from \"./lib/components/form/form.module\"\r\nexport * from \"./lib/components/form/input-checkbox.component\"\r\nexport * from \"./lib/components/form/input-container.component\"\r\nexport * from \"./lib/components/form/input-radio.component\"\r\nexport * from \"./lib/components/form/input-text.component\"\r\n\r\n// Layout\r\nexport * from \"./lib/components/layout/button.component\"\r\nexport * from \"./lib/components/layout/context-menu.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-content.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-footer.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-header.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-layout.component\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog-layout.module\"\r\nexport * from \"./lib/components/layout/dialog-layout/dialog.component\"\r\nexport * from \"./lib/components/layout/grid/grid.component\"\r\nexport * from \"./lib/components/layout/grid/grid.module\"\r\nexport * from \"./lib/components/layout/icon-wrapper.component\"\r\nexport * from \"./lib/components/layout/icon.component\"\r\nexport * from \"./lib/components/layout/layout.module\"\r\nexport * from \"./lib/components/layout/loader.component\"\r\nexport * from \"./lib/components/layout/notification.component\"\r\nexport * from \"./lib/components/layout/popover.component\"\r\nexport * from \"./lib/components/layout/tooltip.component\"\r\n\r\n// Classes\r\nexport * from \"./lib/shared/classes\"\r\n\r\n// Interfaces\r\nexport * from \"./lib/shared/interfaces\"\r\n\r\n// Directives\r\nexport * from \"./lib/shared/directives/context-menu.directive\"\r\nexport * from \"./lib/shared/directives/directives.module\"\r\nexport * from \"./lib/shared/directives/popover.directive\"\r\nexport * from \"./lib/shared/directives/scroll-drag.directive\"\r\nexport * from \"./lib/shared/directives/tooltip.directive\"\r\n\r\n// Services\r\nexport * from \"./lib/shared/services\"\r\n\r\n// Pipes\r\nexport * from \"./lib/shared/pipes/translate.pipe\"\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslateService","i1.TooltipService","i1.BaseFormInput","i2.TranslateService","i3","i4.TooltipDirective","i5.TranslatePipe","i1.InputContainerComponent","i2.TranslatePipe","i1","i2.TooltipDirective","i3.IconWrapperComponent","i4.InputContainerComponent","i2.InputContainerComponent","i2.IconWrapperComponent","i1.IconWrapperComponent","i1.DialogService","i3.ButtonComponent","i4.TranslatePipe","i1.ButtonComponent","i2.InputTextComponent","i3.ComboboxComponent","i4.DatepickerComponent","i5.AutocompleteComponent","i6.InputRadioComponent","i7.DialogContentComponent","i8.DialogHeaderComponent","i9.DialogFooterComponent","i10.DialogLayoutComponent","i1.NotificationService","i2","i4.IconWrapperComponent","i1.ContextMenuService","i1.PopoverService","i4.ContextMenuDirective","i5.TooltipDirective","i6.ButtonComponent","i7.IconWrapperComponent","i8.TranslatePipe"],"mappings":"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"}
|
package/package.json
CHANGED