@esfaenza/core 20.3.63 → 20.3.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/directives/index.d.ts +26 -0
- package/fesm2022/esfaenza-core-components.mjs +2 -2
- package/fesm2022/esfaenza-core-components.mjs.map +1 -1
- package/fesm2022/esfaenza-core-directives.mjs +106 -2
- package/fesm2022/esfaenza-core-directives.mjs.map +1 -1
- package/fesm2022/esfaenza-core.mjs +2 -2
- package/fesm2022/esfaenza-core.mjs.map +1 -1
- package/package.json +27 -27
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Input, Directive, HostListener, Attribute, inject, NgModule } from '@angular/core';
|
|
2
|
+
import { Input, Directive, HostListener, Attribute, inject, NgZone, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@esfaenza/extensions';
|
|
4
4
|
import { AppEmbeddingExtensions } from '@esfaenza/extensions';
|
|
5
5
|
import 'jquery-slimscroll';
|
|
@@ -246,26 +246,130 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
|
|
|
246
246
|
}] } });
|
|
247
247
|
|
|
248
248
|
// Angular
|
|
249
|
+
/** Distanza minima (px) fra l'inizio dell'iframe e il top del dialog quando l'applicativo è embeddato */
|
|
250
|
+
const EMBEDDED_DIALOG_MIN_TOP = 0;
|
|
249
251
|
class EsModalDirective extends ModalDirective {
|
|
250
252
|
constructor() {
|
|
251
253
|
super(...arguments);
|
|
252
254
|
this.emb = inject(AppEmbeddingExtensions);
|
|
255
|
+
this.zone = inject(NgZone);
|
|
256
|
+
this.embeddedNaturalMarginTop = null;
|
|
257
|
+
this.embeddedCorrection = 0;
|
|
258
|
+
this.embeddedOriginalMarginTop = "";
|
|
259
|
+
this.embeddedScrollEnabled = false;
|
|
260
|
+
this.onEmbeddedWindowResize = () => this.constrainEmbeddedTop();
|
|
253
261
|
}
|
|
254
262
|
ngOnInit() {
|
|
255
263
|
this.elementRef = this._element;
|
|
256
264
|
this.rendererRef = this._renderer;
|
|
257
265
|
super.ngOnInit();
|
|
258
266
|
}
|
|
267
|
+
ngOnDestroy() {
|
|
268
|
+
this.stopEmbeddedTopConstraint();
|
|
269
|
+
super.ngOnDestroy();
|
|
270
|
+
}
|
|
259
271
|
show() {
|
|
272
|
+
const wasShown = this.isShown;
|
|
260
273
|
super.show();
|
|
261
|
-
if (this.emb.Embedded)
|
|
274
|
+
if (this.emb.Embedded) {
|
|
262
275
|
this.emb.onEmbeddedDialogShow(this);
|
|
276
|
+
if (!wasShown)
|
|
277
|
+
this.startEmbeddedTopConstraint();
|
|
278
|
+
}
|
|
263
279
|
}
|
|
264
280
|
hide() {
|
|
265
281
|
super.hide();
|
|
266
282
|
if (this.emb.Embedded)
|
|
267
283
|
this.emb.onEmbeddedDialogHide(this);
|
|
268
284
|
}
|
|
285
|
+
startEmbeddedTopConstraint() {
|
|
286
|
+
this.stopEmbeddedTopConstraint();
|
|
287
|
+
this.embeddedNaturalMarginTop = null;
|
|
288
|
+
this.embeddedScrollEnabled = false;
|
|
289
|
+
// Il dialog è nella posizione definitiva solo a fine transizione di apertura (onShown).
|
|
290
|
+
// Senza animazione ngx-bootstrap emette onShown in modo sincrono dentro super.show(),
|
|
291
|
+
// quindi a questo punto è già passato e si può misurare subito
|
|
292
|
+
if (!this.config.animated)
|
|
293
|
+
this.onEmbeddedDialogShown();
|
|
294
|
+
else
|
|
295
|
+
this.embeddedShownSub = this.onShown.pipe(take(1)).subscribe(() => this.onEmbeddedDialogShown());
|
|
296
|
+
this.embeddedHideSub = this.onHide.pipe(take(1)).subscribe(() => this.stopEmbeddedTopConstraint());
|
|
297
|
+
}
|
|
298
|
+
onEmbeddedDialogShown() {
|
|
299
|
+
this.constrainEmbeddedTop(true);
|
|
300
|
+
let dialog = this.elementRef?.nativeElement?.querySelector(".modal-dialog");
|
|
301
|
+
if (!dialog)
|
|
302
|
+
return;
|
|
303
|
+
// Il contenuto può cambiare dimensione dopo l'apertura (dati caricati in asincrono, max-height del
|
|
304
|
+
// body impostata in differita da AppEmbeddingExtensions.doFixBody, ...): il vincolo va mantenuto
|
|
305
|
+
this.zone.runOutsideAngular(() => {
|
|
306
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
307
|
+
this.embeddedResizeObserver = new ResizeObserver(() => this.constrainEmbeddedTop());
|
|
308
|
+
this.embeddedResizeObserver.observe(dialog);
|
|
309
|
+
}
|
|
310
|
+
window.addEventListener("resize", this.onEmbeddedWindowResize);
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
stopEmbeddedTopConstraint() {
|
|
314
|
+
this.embeddedShownSub?.unsubscribe();
|
|
315
|
+
this.embeddedHideSub?.unsubscribe();
|
|
316
|
+
this.embeddedResizeObserver?.disconnect();
|
|
317
|
+
this.embeddedResizeObserver = null;
|
|
318
|
+
window.removeEventListener("resize", this.onEmbeddedWindowResize);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* In modalità embedded vincola il top del dialog all'inizio dell'iframe.
|
|
322
|
+
*
|
|
323
|
+
* Su schermi piccoli l'iframe (alto quanto la finestra padre meno l'header) è più basso del dialog e
|
|
324
|
+
* il posizionamento impostato da AppEmbeddingExtensions.onEmbeddedDialogShow (overflow:hidden sul .modal)
|
|
325
|
+
* poteva lasciarlo tagliato in alto già all'apertura, senza modo di recuperarlo. Il controllo non dipende
|
|
326
|
+
* dalla causa: si misura il top effettivo e, se è sopra l'iframe, si riporta giù il dialog della differenza.
|
|
327
|
+
*
|
|
328
|
+
* @param atOpen true alla prima misura dopo l'apertura: riporta il .modal nella posizione di riposo
|
|
329
|
+
*/
|
|
330
|
+
constrainEmbeddedTop(atOpen = false) {
|
|
331
|
+
let modal = this.elementRef?.nativeElement;
|
|
332
|
+
let dialog = modal?.querySelector(".modal-dialog");
|
|
333
|
+
if (!modal || !dialog || !this.isShown)
|
|
334
|
+
return;
|
|
335
|
+
if (atOpen) {
|
|
336
|
+
// Il focus fatto da ngx-bootstrap a fine transizione può aver scrollato il .modal per mostrare
|
|
337
|
+
// la parte bassa del dialog: overflow:hidden impedisce lo scroll dell'utente, non quello programmatico
|
|
338
|
+
modal.scrollTop = 0;
|
|
339
|
+
// Eventuale correzione rimasta dall'apertura precedente: si riparte dal posizionamento naturale
|
|
340
|
+
this.setEmbeddedCorrection(dialog, 0);
|
|
341
|
+
this.embeddedNaturalMarginTop = parseFloat(getComputedStyle(dialog).marginTop) || 0;
|
|
342
|
+
}
|
|
343
|
+
if (this.embeddedNaturalMarginTop == null)
|
|
344
|
+
return;
|
|
345
|
+
// Top che il dialog avrebbe senza correzione e a scroll azzerato: così le misure successive non
|
|
346
|
+
// dipendono da quanto l'utente ha eventualmente scrollato il .modal
|
|
347
|
+
let uncorrectedTop = dialog.getBoundingClientRect().top + modal.scrollTop - this.embeddedCorrection;
|
|
348
|
+
// Arrotondato al pixel intero: evita riscritture continue dello stile per differenze sub-pixel nelle misure
|
|
349
|
+
this.setEmbeddedCorrection(dialog, Math.max(0, Math.ceil(EMBEDDED_DIALOG_MIN_TOP - uncorrectedTop)));
|
|
350
|
+
// Con il top vincolato un dialog più alto dell'iframe esce dal fondo, e con l'overflow:hidden del .modal
|
|
351
|
+
// il footer (pulsanti di conferma) sarebbe irraggiungibile: si abilita lo scroll verticale. Una volta
|
|
352
|
+
// attivato resta fino alla prossima apertura, per non far oscillare il layout (la scrollbar riduce la
|
|
353
|
+
// larghezza disponibile e può cambiare l'altezza del dialog)
|
|
354
|
+
if (!this.embeddedScrollEnabled && dialog.getBoundingClientRect().bottom + modal.scrollTop > window.innerHeight) {
|
|
355
|
+
this.rendererRef.setStyle(modal, "overflow-y", "auto");
|
|
356
|
+
this.embeddedScrollEnabled = true;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/** Sposta in basso il dialog di `correction` px agendo sul margin-top, preservando l'eventuale valore inline originale */
|
|
360
|
+
setEmbeddedCorrection(dialog, correction) {
|
|
361
|
+
if (correction == this.embeddedCorrection)
|
|
362
|
+
return;
|
|
363
|
+
if (this.embeddedCorrection == 0)
|
|
364
|
+
this.embeddedOriginalMarginTop = dialog.style.marginTop;
|
|
365
|
+
if (correction > 0)
|
|
366
|
+
this.rendererRef.setStyle(dialog, "margin-top", `${this.embeddedNaturalMarginTop + correction}px`);
|
|
367
|
+
else if (this.embeddedOriginalMarginTop)
|
|
368
|
+
this.rendererRef.setStyle(dialog, "margin-top", this.embeddedOriginalMarginTop);
|
|
369
|
+
else
|
|
370
|
+
this.rendererRef.removeStyle(dialog, "margin-top");
|
|
371
|
+
this.embeddedCorrection = correction;
|
|
372
|
+
}
|
|
269
373
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: EsModalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
270
374
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.33", type: EsModalDirective, isStandalone: true, selector: "[esModal]", exportAs: ["es-modal"], usesInheritance: true, ngImport: i0 }); }
|
|
271
375
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esfaenza-core-directives.mjs","sources":["../../../projects/core/directives/src/draggable/draggable.directive.ts","../../../projects/core/directives/src/slim-scroll/slim-scroll.directive.ts","../../../projects/core/directives/src/es-routerLink/es-routerLink.directive.ts","../../../projects/core/directives/src/widget/widget.directive.ts","../../../projects/core/directives/src/componentHost/componentHost.directive.ts","../../../projects/core/directives/src/es-modal/es-modal.directive.ts","../../../projects/core/directives/src/directives.module.ts","../../../projects/core/directives/src/esfaenza-core-directives.ts"],"sourcesContent":["// Angular\r\nimport { Directive, ElementRef, Input, NgZone } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { AppEmbeddingExtensions } from \"@esfaenza/extensions\";\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Directive({\r\n selector: \"[emaDraggable]\",\r\n standalone: true\r\n})\r\nexport class Draggable {\r\n @Input('emaDraggable') handlerSelector: string;\r\n\r\n private $draggable: any;\r\n\r\n constructor(private _elementRef: ElementRef, private zone: NgZone, private emb: AppEmbeddingExtensions) { }\r\n\r\n ngOnInit() {\r\n this.zone.runOutsideAngular(() => {\r\n var handle = this.handlerSelector || '.modal-header';\r\n this.$draggable = jQuery(this._elementRef.nativeElement).children(':first-child');\r\n this.$draggable.draggable({\r\n handle,\r\n helper: function (_: any, __: any) {\r\n var oBody = jQuery(document).find('body');\r\n var containmentDiv = jQuery('<div id=\"div_containment\"></div>');\r\n containmentDiv\r\n .css('z-index', \"-99999\")\r\n .css('top', \"0\")\r\n .css('left', \"0\")\r\n .css('width', \"100%\")\r\n .css('height', \"100%\")\r\n .css('position', 'absolute');\r\n containmentDiv.appendTo(oBody);\r\n return this;\r\n },\r\n stop: function (_: any, __: any) {\r\n jQuery(document).filter('body').find('#div_containment').remove();\r\n },\r\n containment: this.emb.Embedded ? \"#div_containment\" : null\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.zone.runOutsideAngular(() => {\r\n // Distruzione di jQuery-UI draggable e rimozione di un eventuale containment div\r\n // rimasto appeso al body se la direttiva viene distrutta durante il drag.\r\n try {\r\n if (this.$draggable && this.$draggable.draggable(\"instance\"))\r\n this.$draggable.draggable(\"destroy\");\r\n } catch { }\r\n jQuery(document).find(\"body\").find(\"#div_containment\").remove();\r\n });\r\n }\r\n}","// Angular\r\nimport { Directive, ElementRef, Input, NgZone } from \"@angular/core\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport \"jquery-slimscroll\";\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Directive({\r\n selector: \"[slim-scroll]\",\r\n standalone: true\r\n})\r\nexport class SlimScroll {\r\n @Input() public slimScrollOptions: Object;\r\n\r\n constructor(private _elementRef: ElementRef, private zone: NgZone) {\r\n }\r\n\r\n ngOnChanges(changes: any) {\r\n this._scroll();\r\n }\r\n\r\n // slimScroll registra listener e crea un wrapper nel DOM: senza destroy alla distruzione\r\n // della direttiva restavano orfani (leak).\r\n ngOnDestroy() {\r\n this._destroy();\r\n }\r\n\r\n private _scroll() {\r\n this._destroy();\r\n this._init();\r\n }\r\n\r\n //Stacco slimscroll da Angular dato che registra dei listener sull'oggetto in cui viene creato che spammerebbero la change detection\r\n private _init() {\r\n this.zone.runOutsideAngular(() => {\r\n jQuery(this._elementRef.nativeElement).slimScroll(this.slimScrollOptions);\r\n });\r\n }\r\n\r\n private _destroy() {\r\n this.zone.runOutsideAngular(() => {\r\n jQuery(this._elementRef.nativeElement).slimScroll({ destroy: true });\r\n });\r\n }\r\n}","// Angular\r\nimport { LocationStrategy } from \"@angular/common\";\r\nimport { Attribute, Directive, ElementRef, HostListener, Input, Renderer2 } from \"@angular/core\";\r\nimport { ActivatedRoute, Router, RouterLinkWithHref, UrlTree } from \"@angular/router\";\r\nimport { EMBEDDED_ROUTE, EnvOptions, ROUTE } from \"@esfaenza/core/domain\";\r\nimport { AppEmbeddingExtensions } from \"@esfaenza/extensions\";\r\nimport { take } from \"rxjs\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Directive({\r\n selector: 'a[esRouterLink],area[esRouterLink]',\r\n standalone: true\r\n})\r\nexport class esRouterLinkWithHref extends RouterLinkWithHref {\r\n\r\n private EmbeddingSource: string;\r\n\r\n constructor(\r\n private emb: AppEmbeddingExtensions,\r\n router: Router, route: ActivatedRoute,\r\n @Attribute('tabindex') tabIndexAttribute: string | null | undefined,\r\n renderer: Renderer2, el: ElementRef,\r\n locationStrategy?: LocationStrategy) {\r\n\r\n super(router, route, tabIndexAttribute, renderer, el, locationStrategy)\r\n }\r\n\r\n @Input()\r\n set esRouterLink(commandsOrUrlTree: readonly any[] | string | UrlTree | null | undefined) {\r\n // UrlTree non è supportato because fuck you\r\n this.emb.EmbeddingSource.pipe(take(1)).subscribe(s => {\r\n this.EmbeddingSource = s;\r\n\r\n if(this.emb.Embedded && !s)\r\n console.error(\"Link creato in contesto di embedding ma senza embedding source!!\");\r\n\r\n let BasePath = \"/\" + (this.emb.Embedded ? EMBEDDED_ROUTE + (!!s? \"/\" + s : \"\") : ROUTE);\r\n\r\n if (commandsOrUrlTree != null) {\r\n (this as any).routerLinkInput = Array.isArray(commandsOrUrlTree) ? commandsOrUrlTree : [commandsOrUrlTree];\r\n let route = ((this as any).routerLinkInput[0] as string);\r\n if (!route.startsWith(\"/\" + EMBEDDED_ROUTE) && !route.startsWith(\"/\" + ROUTE))\r\n (this as any).routerLinkInput[0] = BasePath + (this as any).routerLinkInput[0];\r\n\r\n (this as any).setTabIndexIfNotOnNativeEl('0');\r\n } else {\r\n (this as any).routerLinkInput = null;\r\n (this as any).setTabIndexIfNotOnNativeEl(null);\r\n }\r\n });\r\n }\r\n\r\n @HostListener('click', ['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey'])\r\n override onClick(button: number, ctrlKey: boolean, shiftKey: boolean, altKey: boolean, metaKey: boolean): boolean {\r\n \r\n if (this.emb.Embedded) {\r\n if(this.urlTree){\r\n let url = this.urlTree.toString().replace(EMBEDDED_ROUTE + (!!this.EmbeddingSource? \"/\" + this.EmbeddingSource : \"\"), ROUTE + \"/embed/\" + myconfig.AppData.ModuleId);\r\n this.emb.MainWindow.postMessage({ type: \"navigate\", url, newTab: ctrlKey, replaceState: !ctrlKey, current: (this as any as { router: Router }).router.url }, \"*\");\r\n }\r\n\r\n if (!ctrlKey)\r\n return super.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n else\r\n return false;\r\n }\r\n else\r\n return super.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}","// Angular\nimport { Directive, ElementRef, OnDestroy, OnInit } from \"@angular/core\";\n\ndeclare var jQuery: any;\n\n@Directive({\n selector: \"[widget]\",\n standalone: true\n})\nexport class Widget implements OnInit, OnDestroy {\n $el: any;\n\n // Handler mantenuti come riferimenti così da poterli rimuovere in ngOnDestroy: registrati\n // inline non erano rimovibili, e ogni istanza aggiungeva listener a document a vita\n // (leak + handler duplicati che scattavano N volte).\n private onClose = (e: any) => {\n let $colWrap = jQuery(e.target).closest(' [class*=\"col-\"]:not(.widget-container)');\n\n // remove colWrap only if there are no more widgets inside\n if (!$colWrap.find(\".widget\").not(e.target).length) {\n $colWrap.remove();\n }\n };\n\n private onFullscreened = (e: any) => {\n jQuery(e.target).find(\"div.widget-body\").addClass(\"scrolling\");\n };\n\n private onRestored = (e: any) => {\n jQuery(e.target).find(\"div.widget-body\").removeClass(\"scrolling\");\n };\n\n constructor(el: ElementRef) {\n this.$el = jQuery(el.nativeElement);\n jQuery.fn.widgster.Constructor.DEFAULTS.bodySelector = \".widget-body\";\n\n /*\n When widget is closed remove its parent if it is .col-*\n */\n jQuery(document)\n .on(\"close.widgster\", this.onClose)\n .on(\"fullscreened.widgster\", this.onFullscreened)\n .on(\"restored.widgster\", this.onRestored);\n }\n\n ngOnInit(): void {\n this.$el.widgster();\n }\n\n ngOnDestroy(): void {\n jQuery(document)\n .off(\"close.widgster\", this.onClose)\n .off(\"fullscreened.widgster\", this.onFullscreened)\n .off(\"restored.widgster\", this.onRestored);\n }\n}\n","import { Directive, Input, Type, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[componentHost]',\r\n standalone: true\r\n})\r\nexport class ComponentHostDirective {\r\n\r\n @Input() componentHost: Type<any>;\r\n @Input() Inputs: Record<string, any> = null;\r\n\r\n // Eventuali accessi esterni... non si sa mai\r\n public CreatedComponent: any;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit(){\r\n this.CreatedComponent = this.viewContainerRef.createComponent<any>(this.componentHost);\r\n\r\n if (!this.Inputs)\r\n return;\r\n\r\n for (const key in this.Inputs)\r\n this.CreatedComponent.instance[key] = this.Inputs[key];\r\n }\r\n}","// Angular\r\nimport { Directive, ElementRef, inject, Renderer2 } from \"@angular/core\";\r\n\r\n// Core\r\nimport { AppEmbeddingExtensions } from \"@esfaenza/extensions\";\r\n\r\n// Bootrstrap\r\nimport { ModalDirective } from \"ngx-bootstrap/modal\";\r\n\r\n// Rxjs\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[esModal]',\r\n exportAs: 'es-modal',\r\n standalone: true\r\n})\r\nexport class EsModalDirective extends ModalDirective {\r\n\r\n elementRef: ElementRef;\r\n rendererRef: Renderer2;\r\n\r\n HideSubscription: Subscription;\r\n\r\n private emb: AppEmbeddingExtensions = inject(AppEmbeddingExtensions);\r\n\r\n override ngOnInit(){\r\n this.elementRef = (this as any)._element;\r\n this.rendererRef = (this as any)._renderer;\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n override show(): void {\r\n\r\n super.show();\r\n\r\n if (this.emb.Embedded) \r\n this.emb.onEmbeddedDialogShow(this as any)\r\n }\r\n\r\n override hide(): void {\r\n super.hide();\r\n\r\n if (this.emb.Embedded) \r\n this.emb.onEmbeddedDialogHide(this as any)\r\n }\r\n}","// Angular\r\nimport { NgModule } from \"@angular/core\";\r\n\r\n// Direttive\r\nimport { Draggable } from \"./draggable/draggable.directive\";\r\nimport { SlimScroll } from \"./slim-scroll/slim-scroll.directive\";\r\nimport { Widget } from \"./widget/widget.directive\";\r\nimport { esRouterLinkWithHref } from \"./es-routerLink/es-routerLink.directive\";\r\nimport { ComponentHostDirective } from \"./componentHost/componentHost.directive\";\r\nimport { EsModalDirective } from \"./es-modal/es-modal.directive\";\r\n\r\nconst DIRECTIVES = [Draggable, SlimScroll, Widget, esRouterLinkWithHref, ComponentHostDirective, EsModalDirective];\r\n\r\n@NgModule({ imports: [...DIRECTIVES], exports: [...DIRECTIVES] })\r\nexport class DirectivesModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"esfaenza-core-directives.mjs","sources":["../../../projects/core/directives/src/draggable/draggable.directive.ts","../../../projects/core/directives/src/slim-scroll/slim-scroll.directive.ts","../../../projects/core/directives/src/es-routerLink/es-routerLink.directive.ts","../../../projects/core/directives/src/widget/widget.directive.ts","../../../projects/core/directives/src/componentHost/componentHost.directive.ts","../../../projects/core/directives/src/es-modal/es-modal.directive.ts","../../../projects/core/directives/src/directives.module.ts","../../../projects/core/directives/src/esfaenza-core-directives.ts"],"sourcesContent":["// Angular\r\nimport { Directive, ElementRef, Input, NgZone } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { AppEmbeddingExtensions } from \"@esfaenza/extensions\";\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Directive({\r\n selector: \"[emaDraggable]\",\r\n standalone: true\r\n})\r\nexport class Draggable {\r\n @Input('emaDraggable') handlerSelector: string;\r\n\r\n private $draggable: any;\r\n\r\n constructor(private _elementRef: ElementRef, private zone: NgZone, private emb: AppEmbeddingExtensions) { }\r\n\r\n ngOnInit() {\r\n this.zone.runOutsideAngular(() => {\r\n var handle = this.handlerSelector || '.modal-header';\r\n this.$draggable = jQuery(this._elementRef.nativeElement).children(':first-child');\r\n this.$draggable.draggable({\r\n handle,\r\n helper: function (_: any, __: any) {\r\n var oBody = jQuery(document).find('body');\r\n var containmentDiv = jQuery('<div id=\"div_containment\"></div>');\r\n containmentDiv\r\n .css('z-index', \"-99999\")\r\n .css('top', \"0\")\r\n .css('left', \"0\")\r\n .css('width', \"100%\")\r\n .css('height', \"100%\")\r\n .css('position', 'absolute');\r\n containmentDiv.appendTo(oBody);\r\n return this;\r\n },\r\n stop: function (_: any, __: any) {\r\n jQuery(document).filter('body').find('#div_containment').remove();\r\n },\r\n containment: this.emb.Embedded ? \"#div_containment\" : null\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.zone.runOutsideAngular(() => {\r\n // Distruzione di jQuery-UI draggable e rimozione di un eventuale containment div\r\n // rimasto appeso al body se la direttiva viene distrutta durante il drag.\r\n try {\r\n if (this.$draggable && this.$draggable.draggable(\"instance\"))\r\n this.$draggable.draggable(\"destroy\");\r\n } catch { }\r\n jQuery(document).find(\"body\").find(\"#div_containment\").remove();\r\n });\r\n }\r\n}","// Angular\r\nimport { Directive, ElementRef, Input, NgZone } from \"@angular/core\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport \"jquery-slimscroll\";\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Directive({\r\n selector: \"[slim-scroll]\",\r\n standalone: true\r\n})\r\nexport class SlimScroll {\r\n @Input() public slimScrollOptions: Object;\r\n\r\n constructor(private _elementRef: ElementRef, private zone: NgZone) {\r\n }\r\n\r\n ngOnChanges(changes: any) {\r\n this._scroll();\r\n }\r\n\r\n // slimScroll registra listener e crea un wrapper nel DOM: senza destroy alla distruzione\r\n // della direttiva restavano orfani (leak).\r\n ngOnDestroy() {\r\n this._destroy();\r\n }\r\n\r\n private _scroll() {\r\n this._destroy();\r\n this._init();\r\n }\r\n\r\n //Stacco slimscroll da Angular dato che registra dei listener sull'oggetto in cui viene creato che spammerebbero la change detection\r\n private _init() {\r\n this.zone.runOutsideAngular(() => {\r\n jQuery(this._elementRef.nativeElement).slimScroll(this.slimScrollOptions);\r\n });\r\n }\r\n\r\n private _destroy() {\r\n this.zone.runOutsideAngular(() => {\r\n jQuery(this._elementRef.nativeElement).slimScroll({ destroy: true });\r\n });\r\n }\r\n}","// Angular\r\nimport { LocationStrategy } from \"@angular/common\";\r\nimport { Attribute, Directive, ElementRef, HostListener, Input, Renderer2 } from \"@angular/core\";\r\nimport { ActivatedRoute, Router, RouterLinkWithHref, UrlTree } from \"@angular/router\";\r\nimport { EMBEDDED_ROUTE, EnvOptions, ROUTE } from \"@esfaenza/core/domain\";\r\nimport { AppEmbeddingExtensions } from \"@esfaenza/extensions\";\r\nimport { take } from \"rxjs\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Directive({\r\n selector: 'a[esRouterLink],area[esRouterLink]',\r\n standalone: true\r\n})\r\nexport class esRouterLinkWithHref extends RouterLinkWithHref {\r\n\r\n private EmbeddingSource: string;\r\n\r\n constructor(\r\n private emb: AppEmbeddingExtensions,\r\n router: Router, route: ActivatedRoute,\r\n @Attribute('tabindex') tabIndexAttribute: string | null | undefined,\r\n renderer: Renderer2, el: ElementRef,\r\n locationStrategy?: LocationStrategy) {\r\n\r\n super(router, route, tabIndexAttribute, renderer, el, locationStrategy)\r\n }\r\n\r\n @Input()\r\n set esRouterLink(commandsOrUrlTree: readonly any[] | string | UrlTree | null | undefined) {\r\n // UrlTree non è supportato because fuck you\r\n this.emb.EmbeddingSource.pipe(take(1)).subscribe(s => {\r\n this.EmbeddingSource = s;\r\n\r\n if(this.emb.Embedded && !s)\r\n console.error(\"Link creato in contesto di embedding ma senza embedding source!!\");\r\n\r\n let BasePath = \"/\" + (this.emb.Embedded ? EMBEDDED_ROUTE + (!!s? \"/\" + s : \"\") : ROUTE);\r\n\r\n if (commandsOrUrlTree != null) {\r\n (this as any).routerLinkInput = Array.isArray(commandsOrUrlTree) ? commandsOrUrlTree : [commandsOrUrlTree];\r\n let route = ((this as any).routerLinkInput[0] as string);\r\n if (!route.startsWith(\"/\" + EMBEDDED_ROUTE) && !route.startsWith(\"/\" + ROUTE))\r\n (this as any).routerLinkInput[0] = BasePath + (this as any).routerLinkInput[0];\r\n\r\n (this as any).setTabIndexIfNotOnNativeEl('0');\r\n } else {\r\n (this as any).routerLinkInput = null;\r\n (this as any).setTabIndexIfNotOnNativeEl(null);\r\n }\r\n });\r\n }\r\n\r\n @HostListener('click', ['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey'])\r\n override onClick(button: number, ctrlKey: boolean, shiftKey: boolean, altKey: boolean, metaKey: boolean): boolean {\r\n \r\n if (this.emb.Embedded) {\r\n if(this.urlTree){\r\n let url = this.urlTree.toString().replace(EMBEDDED_ROUTE + (!!this.EmbeddingSource? \"/\" + this.EmbeddingSource : \"\"), ROUTE + \"/embed/\" + myconfig.AppData.ModuleId);\r\n this.emb.MainWindow.postMessage({ type: \"navigate\", url, newTab: ctrlKey, replaceState: !ctrlKey, current: (this as any as { router: Router }).router.url }, \"*\");\r\n }\r\n\r\n if (!ctrlKey)\r\n return super.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n else\r\n return false;\r\n }\r\n else\r\n return super.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}","// Angular\nimport { Directive, ElementRef, OnDestroy, OnInit } from \"@angular/core\";\n\ndeclare var jQuery: any;\n\n@Directive({\n selector: \"[widget]\",\n standalone: true\n})\nexport class Widget implements OnInit, OnDestroy {\n $el: any;\n\n // Handler mantenuti come riferimenti così da poterli rimuovere in ngOnDestroy: registrati\n // inline non erano rimovibili, e ogni istanza aggiungeva listener a document a vita\n // (leak + handler duplicati che scattavano N volte).\n private onClose = (e: any) => {\n let $colWrap = jQuery(e.target).closest(' [class*=\"col-\"]:not(.widget-container)');\n\n // remove colWrap only if there are no more widgets inside\n if (!$colWrap.find(\".widget\").not(e.target).length) {\n $colWrap.remove();\n }\n };\n\n private onFullscreened = (e: any) => {\n jQuery(e.target).find(\"div.widget-body\").addClass(\"scrolling\");\n };\n\n private onRestored = (e: any) => {\n jQuery(e.target).find(\"div.widget-body\").removeClass(\"scrolling\");\n };\n\n constructor(el: ElementRef) {\n this.$el = jQuery(el.nativeElement);\n jQuery.fn.widgster.Constructor.DEFAULTS.bodySelector = \".widget-body\";\n\n /*\n When widget is closed remove its parent if it is .col-*\n */\n jQuery(document)\n .on(\"close.widgster\", this.onClose)\n .on(\"fullscreened.widgster\", this.onFullscreened)\n .on(\"restored.widgster\", this.onRestored);\n }\n\n ngOnInit(): void {\n this.$el.widgster();\n }\n\n ngOnDestroy(): void {\n jQuery(document)\n .off(\"close.widgster\", this.onClose)\n .off(\"fullscreened.widgster\", this.onFullscreened)\n .off(\"restored.widgster\", this.onRestored);\n }\n}\n","import { Directive, Input, Type, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[componentHost]',\r\n standalone: true\r\n})\r\nexport class ComponentHostDirective {\r\n\r\n @Input() componentHost: Type<any>;\r\n @Input() Inputs: Record<string, any> = null;\r\n\r\n // Eventuali accessi esterni... non si sa mai\r\n public CreatedComponent: any;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n\r\n ngOnInit(){\r\n this.CreatedComponent = this.viewContainerRef.createComponent<any>(this.componentHost);\r\n\r\n if (!this.Inputs)\r\n return;\r\n\r\n for (const key in this.Inputs)\r\n this.CreatedComponent.instance[key] = this.Inputs[key];\r\n }\r\n}","// Angular\nimport { Directive, ElementRef, inject, NgZone, Renderer2 } from \"@angular/core\";\n\n// Core\nimport { AppEmbeddingExtensions } from \"@esfaenza/extensions\";\n\n// Bootrstrap\nimport { ModalDirective } from \"ngx-bootstrap/modal\";\n\n// Rxjs\nimport { Subscription, take } from \"rxjs\";\n\n/** Distanza minima (px) fra l'inizio dell'iframe e il top del dialog quando l'applicativo è embeddato */\nconst EMBEDDED_DIALOG_MIN_TOP = 0;\n\n@Directive({\n selector: '[esModal]',\n exportAs: 'es-modal',\n standalone: true\n})\nexport class EsModalDirective extends ModalDirective {\n\n elementRef: ElementRef;\n rendererRef: Renderer2;\n\n HideSubscription: Subscription;\n\n private emb: AppEmbeddingExtensions = inject(AppEmbeddingExtensions);\n private zone: NgZone = inject(NgZone);\n\n // Vincolo sul top del dialog in modalità embedded (vedi constrainEmbeddedTop)\n private embeddedShownSub: Subscription;\n private embeddedHideSub: Subscription;\n private embeddedResizeObserver: ResizeObserver;\n private embeddedNaturalMarginTop: number = null;\n private embeddedCorrection = 0;\n private embeddedOriginalMarginTop = \"\";\n private embeddedScrollEnabled = false;\n private onEmbeddedWindowResize = () => this.constrainEmbeddedTop();\n\n override ngOnInit(){\n this.elementRef = (this as any)._element;\n this.rendererRef = (this as any)._renderer;\n\n super.ngOnInit();\n }\n\n override ngOnDestroy() {\n this.stopEmbeddedTopConstraint();\n super.ngOnDestroy();\n }\n\n override show(): void {\n const wasShown = this.isShown;\n\n super.show();\n\n if (this.emb.Embedded) {\n this.emb.onEmbeddedDialogShow(this as any);\n if (!wasShown)\n this.startEmbeddedTopConstraint();\n }\n }\n\n override hide(): void {\n super.hide();\n\n if (this.emb.Embedded)\n this.emb.onEmbeddedDialogHide(this as any)\n }\n\n private startEmbeddedTopConstraint() {\n this.stopEmbeddedTopConstraint();\n this.embeddedNaturalMarginTop = null;\n this.embeddedScrollEnabled = false;\n\n // Il dialog è nella posizione definitiva solo a fine transizione di apertura (onShown).\n // Senza animazione ngx-bootstrap emette onShown in modo sincrono dentro super.show(),\n // quindi a questo punto è già passato e si può misurare subito\n if (!this.config.animated)\n this.onEmbeddedDialogShown();\n else\n this.embeddedShownSub = this.onShown.pipe(take(1)).subscribe(() => this.onEmbeddedDialogShown());\n\n this.embeddedHideSub = this.onHide.pipe(take(1)).subscribe(() => this.stopEmbeddedTopConstraint());\n }\n\n private onEmbeddedDialogShown() {\n this.constrainEmbeddedTop(true);\n\n let dialog: HTMLElement = this.elementRef?.nativeElement?.querySelector(\".modal-dialog\");\n if (!dialog)\n return;\n\n // Il contenuto può cambiare dimensione dopo l'apertura (dati caricati in asincrono, max-height del\n // body impostata in differita da AppEmbeddingExtensions.doFixBody, ...): il vincolo va mantenuto\n this.zone.runOutsideAngular(() => {\n if (typeof ResizeObserver !== \"undefined\") {\n this.embeddedResizeObserver = new ResizeObserver(() => this.constrainEmbeddedTop());\n this.embeddedResizeObserver.observe(dialog);\n }\n window.addEventListener(\"resize\", this.onEmbeddedWindowResize);\n });\n }\n\n private stopEmbeddedTopConstraint() {\n this.embeddedShownSub?.unsubscribe();\n this.embeddedHideSub?.unsubscribe();\n this.embeddedResizeObserver?.disconnect();\n this.embeddedResizeObserver = null;\n window.removeEventListener(\"resize\", this.onEmbeddedWindowResize);\n }\n\n /**\n * In modalità embedded vincola il top del dialog all'inizio dell'iframe.\n *\n * Su schermi piccoli l'iframe (alto quanto la finestra padre meno l'header) è più basso del dialog e\n * il posizionamento impostato da AppEmbeddingExtensions.onEmbeddedDialogShow (overflow:hidden sul .modal)\n * poteva lasciarlo tagliato in alto già all'apertura, senza modo di recuperarlo. Il controllo non dipende\n * dalla causa: si misura il top effettivo e, se è sopra l'iframe, si riporta giù il dialog della differenza.\n *\n * @param atOpen true alla prima misura dopo l'apertura: riporta il .modal nella posizione di riposo\n */\n private constrainEmbeddedTop(atOpen: boolean = false) {\n let modal: HTMLElement = this.elementRef?.nativeElement;\n let dialog: HTMLElement = modal?.querySelector(\".modal-dialog\");\n if (!modal || !dialog || !this.isShown)\n return;\n\n if (atOpen) {\n // Il focus fatto da ngx-bootstrap a fine transizione può aver scrollato il .modal per mostrare\n // la parte bassa del dialog: overflow:hidden impedisce lo scroll dell'utente, non quello programmatico\n modal.scrollTop = 0;\n // Eventuale correzione rimasta dall'apertura precedente: si riparte dal posizionamento naturale\n this.setEmbeddedCorrection(dialog, 0);\n this.embeddedNaturalMarginTop = parseFloat(getComputedStyle(dialog).marginTop) || 0;\n }\n\n if (this.embeddedNaturalMarginTop == null)\n return;\n\n // Top che il dialog avrebbe senza correzione e a scroll azzerato: così le misure successive non\n // dipendono da quanto l'utente ha eventualmente scrollato il .modal\n let uncorrectedTop = dialog.getBoundingClientRect().top + modal.scrollTop - this.embeddedCorrection;\n // Arrotondato al pixel intero: evita riscritture continue dello stile per differenze sub-pixel nelle misure\n this.setEmbeddedCorrection(dialog, Math.max(0, Math.ceil(EMBEDDED_DIALOG_MIN_TOP - uncorrectedTop)));\n\n // Con il top vincolato un dialog più alto dell'iframe esce dal fondo, e con l'overflow:hidden del .modal\n // il footer (pulsanti di conferma) sarebbe irraggiungibile: si abilita lo scroll verticale. Una volta\n // attivato resta fino alla prossima apertura, per non far oscillare il layout (la scrollbar riduce la\n // larghezza disponibile e può cambiare l'altezza del dialog)\n if (!this.embeddedScrollEnabled && dialog.getBoundingClientRect().bottom + modal.scrollTop > window.innerHeight) {\n this.rendererRef.setStyle(modal, \"overflow-y\", \"auto\");\n this.embeddedScrollEnabled = true;\n }\n }\n\n /** Sposta in basso il dialog di `correction` px agendo sul margin-top, preservando l'eventuale valore inline originale */\n private setEmbeddedCorrection(dialog: HTMLElement, correction: number) {\n if (correction == this.embeddedCorrection)\n return;\n\n if (this.embeddedCorrection == 0)\n this.embeddedOriginalMarginTop = dialog.style.marginTop;\n\n if (correction > 0)\n this.rendererRef.setStyle(dialog, \"margin-top\", `${this.embeddedNaturalMarginTop + correction}px`);\n else if (this.embeddedOriginalMarginTop)\n this.rendererRef.setStyle(dialog, \"margin-top\", this.embeddedOriginalMarginTop);\n else\n this.rendererRef.removeStyle(dialog, \"margin-top\");\n\n this.embeddedCorrection = correction;\n }\n}\n","// Angular\r\nimport { NgModule } from \"@angular/core\";\r\n\r\n// Direttive\r\nimport { Draggable } from \"./draggable/draggable.directive\";\r\nimport { SlimScroll } from \"./slim-scroll/slim-scroll.directive\";\r\nimport { Widget } from \"./widget/widget.directive\";\r\nimport { esRouterLinkWithHref } from \"./es-routerLink/es-routerLink.directive\";\r\nimport { ComponentHostDirective } from \"./componentHost/componentHost.directive\";\r\nimport { EsModalDirective } from \"./es-modal/es-modal.directive\";\r\n\r\nconst DIRECTIVES = [Draggable, SlimScroll, Widget, esRouterLinkWithHref, ComponentHostDirective, EsModalDirective];\r\n\r\n@NgModule({ imports: [...DIRECTIVES], exports: [...DIRECTIVES] })\r\nexport class DirectivesModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|