ngx-histaff-alpha 5.9.8 → 6.0.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.
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-LwKSHyKk.mjs → ngx-histaff-alpha-ai-hint-for-table.component-Bssq-0A9.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-LwKSHyKk.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-Bssq-0A9.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-CLP9z8SX.mjs → ngx-histaff-alpha-core-form-design.component-a1ho0-oS.mjs} +6 -6
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-CLP9z8SX.mjs.map → ngx-histaff-alpha-core-form-design.component-a1ho0-oS.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-sticker-collection.component-DspubYpO.mjs → ngx-histaff-alpha-core-sticker-collection.component-B8ll_qSG.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-core-sticker-collection.component-DspubYpO.mjs.map → ngx-histaff-alpha-core-sticker-collection.component-B8ll_qSG.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha-core-template-editor.component-DH2hr-WQ.mjs +165 -0
- package/fesm2022/ngx-histaff-alpha-core-template-editor.component-DH2hr-WQ.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-CZ76vY5V.mjs → ngx-histaff-alpha-core-toast-loading.component-b0bLEV46.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-CZ76vY5V.mjs.map → ngx-histaff-alpha-core-toast-loading.component-b0bLEV46.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-DO3Nzaoi.mjs → ngx-histaff-alpha-core-workflow-consume.component-BkQU1iCl.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-DO3Nzaoi.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-BkQU1iCl.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-DgK0rSP7.mjs → ngx-histaff-alpha-db-settings.component-DvZpSoNS.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-DgK0rSP7.mjs.map → ngx-histaff-alpha-db-settings.component-DvZpSoNS.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-D024hCoP.mjs → ngx-histaff-alpha-design-wrapper.component-Dujs4qzo.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-D024hCoP.mjs.map → ngx-histaff-alpha-design-wrapper.component-Dujs4qzo.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-DsVoPNPs.mjs → ngx-histaff-alpha-design-wrapper.route-CJ1qavG9.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-DsVoPNPs.mjs.map → ngx-histaff-alpha-design-wrapper.route-CJ1qavG9.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-form-array-props.component-DqAm4dkR.mjs → ngx-histaff-alpha-form-array-props.component-6RzRJCFb.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-form-array-props.component-DqAm4dkR.mjs.map → ngx-histaff-alpha-form-array-props.component-6RzRJCFb.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-live-form.component-R7pHFYgi.mjs → ngx-histaff-alpha-live-form.component-BJVtjmhk.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-live-form.component-R7pHFYgi.mjs.map → ngx-histaff-alpha-live-form.component-BJVtjmhk.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-5kn-eYSE.mjs → ngx-histaff-alpha-ngx-histaff-alpha-OX-fPVM-.mjs} +733 -57
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-OX-fPVM-.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-sotxt4dM.mjs → ngx-histaff-alpha-simple-chat.component-Du2PDR-u.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-sotxt4dM.mjs.map → ngx-histaff-alpha-simple-chat.component-Du2PDR-u.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha-template-list.component-Bd_34R-U.mjs +96 -0
- package/fesm2022/ngx-histaff-alpha-template-list.component-Bd_34R-U.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CGOfOF7w.mjs → ngx-histaff-alpha-tracker-studio.component-E3A09674.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-CGOfOF7w.mjs.map → ngx-histaff-alpha-tracker-studio.component-E3A09674.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-Br1oyTKL.mjs → ngx-histaff-alpha-wf-form-assign.component-CUgB6Y-o.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-Br1oyTKL.mjs.map → ngx-histaff-alpha-wf-form-assign.component-CUgB6Y-o.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-Cni9RLzU.mjs → ngx-histaff-alpha-wf-instance-status.component-C4UGaTAu.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-Cni9RLzU.mjs.map → ngx-histaff-alpha-wf-instance-status.component-C4UGaTAu.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DdBuf8x6.mjs → ngx-histaff-alpha-wf-instance-step-react.component-C99XgtbF.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DdBuf8x6.mjs.map → ngx-histaff-alpha-wf-instance-step-react.component-C99XgtbF.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha.mjs +1 -1
- package/lib/app/enum/EnumFormBaseContolType.d.ts +2 -1
- package/lib/app/libraries/core-doc-gen/core-template-editor/core-template-editor.component.d.ts +24 -0
- package/lib/app/libraries/core-doc-gen/doc-gen.routes.d.ts +2 -0
- package/lib/app/libraries/core-doc-gen/template-list/template-list.component.d.ts +13 -0
- package/lib/app/libraries/core-docgen-toolbar/core-docgen-toolbar.component.d.ts +56 -0
- package/lib/app/libraries/core-form/core-form/enum-interfaces.d.ts +5 -1
- package/lib/app/libraries/core-form-design/core-form-design.component.d.ts +1 -1
- package/lib/app/libraries/core-form-design/core-form-group-editor.component.d.ts +1 -1
- package/lib/app/libraries/core-liquid-wysiwyg/core-liquid-wysiwyg.component.d.ts +57 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-5kn-eYSE.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Injectable, Pipe, Directive, ViewChild, forwardRef, HostListener, inject, Input, isDevMode, Inject, signal, InjectionToken, computed, effect, EventEmitter, Output, ViewEncapsulation, ChangeDetectorRef, input, ChangeDetectionStrategy, ViewChildren, ViewContainerRef, viewChild, viewChildren, TemplateRef, NgModule,
|
|
2
|
+
import { Component, Injectable, Pipe, Directive, ViewChild, forwardRef, HostListener, inject, Input, isDevMode, Inject, signal, InjectionToken, computed, effect, EventEmitter, Output, ViewEncapsulation, ChangeDetectorRef, input, ChangeDetectionStrategy, ViewChildren, ViewContainerRef, viewChild, viewChildren, output, TemplateRef, NgModule, DestroyRef, ElementRef, Renderer2 } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/platform-browser';
|
|
4
4
|
import { BehaviorSubject, Subject, filter, of, Observable, zip, catchError, tap as tap$1, throwError, take, switchMap, finalize as finalize$1, map as map$1, interval, concat, buffer, debounceTime, fromEvent, skip, distinctUntilChanged, Subscription, takeUntil } from 'rxjs';
|
|
5
5
|
import { api, EnumTranslateKey } from 'alpha-global-constants';
|
|
@@ -1782,6 +1782,7 @@ var EnumFormBaseContolType;
|
|
|
1782
1782
|
EnumFormBaseContolType["ORG_PARAM_DROPDOWN"] = "ORG_PARAM_DROPDOWN";
|
|
1783
1783
|
EnumFormBaseContolType["REPORT_FORMAT"] = "REPORT_FORMAT";
|
|
1784
1784
|
EnumFormBaseContolType["TOPICPICKER"] = "TOPICPICKER";
|
|
1785
|
+
EnumFormBaseContolType["LIQUID_WYSIWYG"] = "LIQUID_WYSIWYG";
|
|
1785
1786
|
})(EnumFormBaseContolType || (EnumFormBaseContolType = {}));
|
|
1786
1787
|
|
|
1787
1788
|
class HubConnectionService {
|
|
@@ -9815,7 +9816,7 @@ class CoreFormControlBaseComponent {
|
|
|
9815
9816
|
{
|
|
9816
9817
|
provide: NG_VALUE_ACCESSOR,
|
|
9817
9818
|
multi: true,
|
|
9818
|
-
useExisting: CoreFormControlBaseComponent
|
|
9819
|
+
useExisting: forwardRef(() => CoreFormControlBaseComponent),
|
|
9819
9820
|
}
|
|
9820
9821
|
], ngImport: i0, template: "<p>core-form-control-base works!</p>\r\n", styles: [""] }); }
|
|
9821
9822
|
}
|
|
@@ -9825,7 +9826,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
9825
9826
|
{
|
|
9826
9827
|
provide: NG_VALUE_ACCESSOR,
|
|
9827
9828
|
multi: true,
|
|
9828
|
-
useExisting: CoreFormControlBaseComponent
|
|
9829
|
+
useExisting: forwardRef(() => CoreFormControlBaseComponent),
|
|
9829
9830
|
}
|
|
9830
9831
|
], standalone: false, template: "<p>core-form-control-base works!</p>\r\n" }]
|
|
9831
9832
|
}], ctorParameters: () => [] });
|
|
@@ -9988,7 +9989,9 @@ class TooltipDirective {
|
|
|
9988
9989
|
onMouseEnter(e) {
|
|
9989
9990
|
this.cdr.detectChanges();
|
|
9990
9991
|
//const condition = () => this.showAnyway || (!e.currentTarget.innerText && !e.currentTarget.innerText?.length) || (!!e.currentTarget.innerText && !!e.currentTarget.innerText?.length && (e.currentTarget.offsetWidth < e.currentTarget.scrollWidth))
|
|
9991
|
-
const condition = () => this.showAnyway ||
|
|
9992
|
+
const condition = () => this.showAnyway ||
|
|
9993
|
+
(!!e.currentTarget.innerText && !!e.currentTarget.innerText?.length && (e.currentTarget.offsetWidth < e.currentTarget.scrollWidth)) ||
|
|
9994
|
+
(!e.currentTarget.innerText && !e.currentTarget.innerText?.length); // auto for text-less dom nodes
|
|
9992
9995
|
const check = condition();
|
|
9993
9996
|
if (!check)
|
|
9994
9997
|
return;
|
|
@@ -10097,13 +10100,17 @@ class TooltipDirective {
|
|
|
10097
10100
|
}
|
|
10098
10101
|
}
|
|
10099
10102
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i1$2.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10100
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.5", type: TooltipDirective, isStandalone: true, selector: "[appTooltip]", inputs: { color: "color", backgroundColor: "backgroundColor", appTooltip: "appTooltip", showAnyway: "showAnyway", position: "position" }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave()", "click": "onClick()" } }, ngImport: i0 }); }
|
|
10103
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.5", type: TooltipDirective, isStandalone: true, selector: "[appTooltip]", inputs: { color: "color", backgroundColor: "backgroundColor", appTooltip: "appTooltip", showAnyway: "showAnyway", position: "position" }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)", "window:click": "onClick()" } }, ngImport: i0 }); }
|
|
10101
10104
|
}
|
|
10102
10105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
10103
10106
|
type: Directive,
|
|
10104
10107
|
args: [{
|
|
10105
10108
|
selector: '[appTooltip]',
|
|
10106
|
-
|
|
10109
|
+
host: {
|
|
10110
|
+
'(mouseenter)': 'onMouseEnter($event)',
|
|
10111
|
+
'(mouseleave)': 'onMouseLeave($event)',
|
|
10112
|
+
'(window:click)': 'onClick()'
|
|
10113
|
+
}
|
|
10107
10114
|
}]
|
|
10108
10115
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ApplicationRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i1$2.Router }, { type: i0.ChangeDetectorRef }], propDecorators: { color: [{
|
|
10109
10116
|
type: Input
|
|
@@ -10115,15 +10122,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
10115
10122
|
type: Input
|
|
10116
10123
|
}], position: [{
|
|
10117
10124
|
type: Input
|
|
10118
|
-
}], onMouseEnter: [{
|
|
10119
|
-
type: HostListener,
|
|
10120
|
-
args: ['mouseenter', ['$event']]
|
|
10121
|
-
}], onMouseLeave: [{
|
|
10122
|
-
type: HostListener,
|
|
10123
|
-
args: ['mouseleave']
|
|
10124
|
-
}], onClick: [{
|
|
10125
|
-
type: HostListener,
|
|
10126
|
-
args: ['click']
|
|
10127
10125
|
}] } });
|
|
10128
10126
|
|
|
10129
10127
|
var tooltip_directive = /*#__PURE__*/Object.freeze({
|
|
@@ -10353,7 +10351,7 @@ class ItemComponent {
|
|
|
10353
10351
|
this.subscriptions.map(x => x.unsubscribe());
|
|
10354
10352
|
}
|
|
10355
10353
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ItemComponent, deps: [{ token: i1$2.Router }, { token: NavigatorService }, { token: MultiLanguageService }, { token: LayoutService }, { token: MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10356
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: ItemComponent, isStandalone: true, selector: "app-item", inputs: { item: "item", level: "level" }, viewQueries: [{ propertyName: "me", first: true, predicate: ["me"], descendants: true }, { propertyName: "children", first: true, predicate: ["children"], descendants: true }, { propertyName: "link", first: true, predicate: ["link"], descendants: true }, { propertyName: "subArrow", first: true, predicate: ["subArrow"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<li #me [id]=\"'main-menu-' + item.id\" class=\"parent\" [attr.data-path]=\"item.tree$Path\" [attr.data-level]=\"level\" [class.reduced]=\"leftbarReduced\"\r\n [class.active]=\"!wideMode && active\" [class.expanded]=\"item.tree$Expanded\"\r\n [class.highlighted]=\"item.tree$Highlighted\" [class.li-thin-mode]=\"!wideMode\" [class.menu-item]=\"!wideMode\"\r\n [appTooltip]=\"caption\" [position]=\"'right'\" [ngStyle]=\"{\r\n marginTop: (level===1 && !wideMode) ? navigatorService.iconGutterY + 'px' : '',\r\n marginBottom: (level===1 && !wideMode) ? navigatorService.iconGutterY + 'px' : ''\r\n }\">\r\n <div class=\"menu-item-wrapper\" [attr.data-level]=\"level\" (click)=\"onClick($event, item)\" [class.active]=\"active\"\r\n [class.module-thin-mode]=\"!wideMode && level===1\" [class.thin-branch]=\"!wideMode && level > 1\">\r\n\r\n @if (wideMode) {\r\n @if (!!!leftbarReduced) {\r\n @if (!!hasChildren) {\r\n <span [innerHtml]=\"subMenuSvgIconRight | stringHtml\" class=\"sub-icon-right\"></span>\r\n }\r\n }\r\n }\r\n\r\n @if (!!item.iconSvg) {\r\n <!-- <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"item.iconSvg | stringHtml\"></span></i> -->\r\n <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"item.iconSvg | stringHtml\"></span></i>\r\n } @else if (!!item.iconClass) {\r\n <!-- <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\"\r\n [appTooltip]=\"wideMode ? caption : undefined\" (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n left: wideMode ? '13px' : 'unset'\r\n }\"></i> -->\r\n <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\"\r\n [appTooltip]=\"wideMode ? caption : undefined\" [ngStyle]=\"{\r\n left: wideMode ? '13px' : 'unset'\r\n }\"></i>\r\n } @else if (!item.parent) {\r\n <!-- <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"defaultSvg | stringHtml\"></span></i> -->\r\n <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"defaultSvg | stringHtml\"></span></i>\r\n }\r\n\r\n @if (!wideMode || (!leftbarReduced && hasChildren)) {\r\n <a #link [attr.data-level]=\"level\" class=\"has-submenu\" [appTooltip]=\"level > 1 ? caption : undefined\"\r\n [class.thin-mode]=\"!wideMode\">\r\n\r\n \r\n <!-- <ng-container (click)=\"subArrowClicked($event, item);false\">\r\n <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\"\r\n [class]=\"'img-span plus level' + level\">\r\n <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n </span>\r\n <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\"\r\n [class]=\"'plus level' + level\"></span>\r\n </ng-container> -->\r\n\r\n <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n\r\n {{ caption }}\r\n\r\n </a>\r\n } @else {\r\n <!-- <a [attr.data-level]=\"level\" [routerLink]=\"item.url\" (click)=\"onClick($event, item)\"\r\n [class.thin-mode]=\"!wideMode\" [appTooltip]=\"wideMode ? caption : undefined\">\r\n {{ caption }}\r\n </a> -->\r\n <a [attr.data-level]=\"level\" [routerLink]=\"item.url\"\r\n [class.thin-mode]=\"!wideMode\" [appTooltip]=\"wideMode ? caption : undefined\">\r\n {{ caption }}\r\n </a>\r\n }\r\n\r\n </div>\r\n\r\n @if (!!wideMode && !!hasChildren && !!item.tree$Children!.length && !!!leftbarReduced) {\r\n <ul #children class=\"d-none\" [class.ul-thin-mode]=\"!wideMode\" [ngStyle]=\"{\r\n padding: 0,\r\n }\" [class.submenu]=\"!wideMode\">\r\n <div>\r\n @for (child of item.tree$Children; track $index) {\r\n <app-item [item]=\"child\" [level]=\"level+1\" (clicked)=\"onClick($event, child)\"></app-item>\r\n }\r\n </div>\r\n </ul>\r\n }\r\n\r\n</li>", styles: [".navigator-container{--active-item-color: #DD5F2A;--active-item-background-color: white;--active-item-border-color: white;--line-height: 16px;--level-gap: 10px;--thin-mode-padding: 8px;--thin-mode-width: 66px;--wide-mode-width: 280px;--left-bar-current-width: 280px;--bg-color: #F1F1F1;--color: black;--hover-bg-color: #E1E3E5;--hover-color: black;--icon-border-radius: 0px;--icon-gutter-y: 8px;font-size:13px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.navigator-container .d-none{display:none}.navigator-container svg{width:24px;height:24px}.navigator-container .module-thin-mode{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin-bottom:5px!important;height:50px!important}.navigator-container .module-thin-mode svg{color:var(--color)}.navigator-container .module-thin-mode i{color:var(--color)!important}.navigator-container .li-thin-mode[data-level=\"1\"]{height:50px!important;margin-left:0!important;margin-right:0!important}.navigator-container .li-thin-mode .thin-branch{overflow:hidden}.navigator-container .li-thin-mode .thin-branch a{padding-left:15px;padding-right:15px;overflow:hidden;max-width:calc(100% - var(--size-layout-block-cell-spacing) * 2);text-overflow:ellipsis}.navigator-container .li-thin-mode .thin-branch:hover{background:#e1e3e5!important}.navigator-container .li-thin-mode:hover[data-level=\"1\"]>ul.ul-thin-mode{transform:translate(calc(var(--thin-mode-width)))}.navigator-container .li-thin-mode:hover:not([data-level=\"1\"])>ul.ul-thin-mode{transform:translate(calc(var(--wide-mode-width) - var(--size-layout-block-cell-spacing)))}.navigator-container .li-thin-mode.active .module-thin-mode{width:50px!important;transform:translate(var(--thin-mode-padding))}.navigator-container .li-thin-mode.active .module-thin-mode i{color:var(--active-item-color)!important}.navigator-container .li-thin-mode.active .module-thin-mode svg{color:var(--active-item-color)!important}.navigator-container .li-thin-mode.active>ul.ul-thin-mode{background-color:#fff;opacity:1;height:unset;overflow-y:auto;box-shadow:.4rem 0 2rem #0000002e}.navigator-container .li-thin-mode.active>ul.ul-thin-mode>div>app-item>li>div>a{display:block!important}.navigator-container .li-thin-mode.active[data-level=\"1\"]>ul.ul-thin-mode{display:block;transform:translate(calc(var(--thin-mode-width)))}.navigator-container .li-thin-mode.active:not([data-level=\"1\"])>ul.ul-thin-mode{display:block;transform:translate(calc(var(--wide-mode-width) - var(--size-layout-block-cell-spacing)))}.navigator-container ul.ul-thin-mode{display:none}.navigator-container .parent{color:var(--color);background-color:var(--bg-color);--children-height: 0px;box-sizing:border-box;width:100%;transition:width 1s ease-out}.navigator-container .parent ul{animation:fadeIn .25s linear}.navigator-container .parent i.module-icon{position:absolute;display:inline-block;font-size:var(--size-left-bar-icon-font-size)!important;width:var(--size-left-bar-icon-font-size)!important;height:var(--size-left-bar-icon-font-size)!important}.navigator-container .parent .menu-item-wrapper{position:relative!important;margin-left:0!important;padding-left:0;border:none!important;cursor:pointer}.navigator-container .parent .menu-item-wrapper .sub-icon-right{display:block;position:absolute;right:0;top:5px;transform:rotate(0);transition:transform .5s ease-out}.navigator-container .parent .menu-item-wrapper .rotate90{transform:rotate(90deg)}.navigator-container .parent .menu-item-wrapper[data-level=\"1\"].module-thin-mode:hover{background-color:var(--hover-bg-color);width:50px;transform:translate(8px);color:var(--hover-color)!important}.navigator-container .parent a.thin-mode{left:0!important;display:none;padding-left:15px;padding-right:15px;overflow:hidden;text-overflow:ellipsis}.navigator-container .parent a{color:inherit;position:absolute!important;margin-left:0!important;padding-left:0;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;-webkit-user-select:none}.navigator-container .parent a:hover{color:var(--color)!important}.navigator-container .parent a[data-level=\"1\"]:not(.thin-mode){left:var(--size-header-logo-left);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"2\"]:not(.thin-mode){left:calc(var(--size-header-logo-left));max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"3\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 1);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 1)}.navigator-container .parent a[data-level=\"4\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 2);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 2)}.navigator-container .parent a[data-level=\"5\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 3);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 3)}.navigator-container .parent a[data-level=\"6\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 4);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 4)}.navigator-container .parent[data-level=\"1\"]{margin:10px 0}.navigator-container .parent[data-level=\"1\"] a{margin-left:0}.navigator-container .parent[data-level=\"2\"]:not(.ul-thin-mode) a{margin-left:10px}.navigator-container .parent[data-level=\"3\"]:not(.ul-thin-mode) a{margin-left:20px}.navigator-container .parent[data-level=\"4\"]:not(.ul-thin-mode) a{margin-left:30px}.navigator-container .parent[data-level=\"5\"]:not(.ul-thin-mode) a{margin-left:40px}.navigator-container .parent[data-level=\"6\"]:not(.ul-thin-mode) a{margin-left:50px}.navigator-container .parent .menu-item-wrapper{height:35px;display:flex;align-items:center;margin:0}.navigator-container .parent .menu-item-wrapper>i{display:inline-block;cursor:pointer}.navigator-container .parent .menu-item-wrapper:not(.module-thin-mode){margin-left:var(--thin-mode-padding)!important;margin-right:var(--thin-mode-padding)!important}.navigator-container .parent>ul:not(.ul-thin-mode){position:relative;overflow:hidden;transition:opacity .5s ease-out}.navigator-container .parent>ul.ul-thin-mode{overflow-x:hidden;display:none;margin-left:0!important;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent>ul.ul-thin-mode{overflow-y:auto}.navigator-container .parent.active[data-level=\"2\"]>.menu-item-wrapper>a{transition:.5s ease-out}.navigator-container .parent.highlighted>.menu-item-wrapper>a{color:var(--color-core-org-tree-highlighted)!important;font-weight:700!important}.navigator-container .parent.expanded>ul:not(.submenu){display:block;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent:not(.li-thin-mode) a{margin-left:0}.navigator-container .parent.reduced .menu-item-wrapper{padding:0}.navigator-container .expanded:not(.li-thin-mode)>.menu-item-wrapper{background-color:var(--active-item-background-color);display:flex;justify-content:flex-start}.navigator-container .expanded>ul:not(.submenu){overflow:visible!important}.navigator-container .expanded.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-top-left-radius:50px;border-bottom-left-radius:50px;width:37px}.navigator-container .parent.reduced>.menu-item-wrapper{justify-content:flex-start!important;width:37px}.navigator-container .parent.expanded.reduced>.menu-item-wrapper{background-color:#fff;left:10px!important}.navigator-container .parent.expanded.reduced>.menu-item-wrapper>i{left:9px!important;top:8px!important}.navigator-container .parent.reduced>.menu-item-wrapper{left:10px!important}.navigator-container .parent.reduced>.menu-item-wrapper>i{left:9px!important}.navigator-container li.parent:not(.li-thin-mode) .menu-item-wrapper:hover{background-color:var(--hover-bg-color);box-shadow:inset 10px 0 var(--hover-bg-color),inset -10px 0 var(--hover-bg-color)}\n"], dependencies: [{ kind: "component", type: ItemComponent, selector: "app-item", inputs: ["item", "level"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10354
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: ItemComponent, isStandalone: true, selector: "app-item", inputs: { item: "item", level: "level" }, viewQueries: [{ propertyName: "me", first: true, predicate: ["me"], descendants: true }, { propertyName: "children", first: true, predicate: ["children"], descendants: true }, { propertyName: "link", first: true, predicate: ["link"], descendants: true }, { propertyName: "subArrow", first: true, predicate: ["subArrow"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<li #me [id]=\"'main-menu-' + item.id\" class=\"parent\" [attr.data-path]=\"item.tree$Path\" [attr.data-level]=\"level\" [class.reduced]=\"leftbarReduced\"\r\n [class.active]=\"!wideMode && active\" [class.expanded]=\"item.tree$Expanded\"\r\n [class.highlighted]=\"item.tree$Highlighted\" [class.li-thin-mode]=\"!wideMode\" [class.menu-item]=\"!wideMode\"\r\n [appTooltip]=\"caption\" [position]=\"'right'\" [ngStyle]=\"{\r\n marginTop: (level===1 && !wideMode) ? navigatorService.iconGutterY + 'px' : '',\r\n marginBottom: (level===1 && !wideMode) ? navigatorService.iconGutterY + 'px' : ''\r\n }\">\r\n <div class=\"menu-item-wrapper\" [attr.data-level]=\"level\" (click)=\"onClick($event, item)\" [class.active]=\"active\"\r\n [class.module-thin-mode]=\"!wideMode && level===1\" [class.thin-branch]=\"!wideMode && level > 1\" [appTooltip]=\"!wideMode && level===1 ? caption : ''\" [position]=\"'right'\" [showAnyway]=\"!wideMode && level===1\">\r\n\r\n @if (wideMode) {\r\n @if (!!!leftbarReduced) {\r\n @if (!!hasChildren) {\r\n <span [innerHtml]=\"subMenuSvgIconRight | stringHtml\" class=\"sub-icon-right\"></span>\r\n }\r\n }\r\n }\r\n\r\n @if (!!item.iconSvg) {\r\n <!-- <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"item.iconSvg | stringHtml\"></span></i> -->\r\n <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"item.iconSvg | stringHtml\"></span></i>\r\n } @else if (!!item.iconClass) {\r\n <!-- <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\"\r\n [appTooltip]=\"wideMode ? caption : undefined\" (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n left: wideMode ? '13px' : 'unset'\r\n }\"></i> -->\r\n <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\"\r\n [appTooltip]=\"wideMode ? caption : undefined\" [ngStyle]=\"{\r\n left: wideMode ? '13px' : 'unset'\r\n }\"></i>\r\n } @else if (!item.parent) {\r\n <!-- <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"defaultSvg | stringHtml\"></span></i> -->\r\n <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"defaultSvg | stringHtml\"></span></i>\r\n }\r\n\r\n @if (!wideMode || (!leftbarReduced && hasChildren)) {\r\n <a #link [attr.data-level]=\"level\" class=\"has-submenu\" [appTooltip]=\"level > 1 ? caption : undefined\"\r\n [class.thin-mode]=\"!wideMode\">\r\n\r\n \r\n <!-- <ng-container (click)=\"subArrowClicked($event, item);false\">\r\n <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\"\r\n [class]=\"'img-span plus level' + level\">\r\n <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n </span>\r\n <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\"\r\n [class]=\"'plus level' + level\"></span>\r\n </ng-container> -->\r\n\r\n <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n\r\n {{ caption }}\r\n\r\n </a>\r\n } @else {\r\n <!-- <a [attr.data-level]=\"level\" [routerLink]=\"item.url\" (click)=\"onClick($event, item)\"\r\n [class.thin-mode]=\"!wideMode\" [appTooltip]=\"wideMode ? caption : undefined\">\r\n {{ caption }}\r\n </a> -->\r\n <a [attr.data-level]=\"level\" [routerLink]=\"item.url\"\r\n [class.thin-mode]=\"!wideMode\" [appTooltip]=\"wideMode ? caption : undefined\">\r\n {{ caption }}\r\n </a>\r\n }\r\n\r\n </div>\r\n\r\n @if (!!wideMode && !!hasChildren && !!item.tree$Children!.length && !!!leftbarReduced) {\r\n <ul #children class=\"d-none\" [class.ul-thin-mode]=\"!wideMode\" [ngStyle]=\"{\r\n padding: 0,\r\n }\" [class.submenu]=\"!wideMode\">\r\n <div>\r\n @for (child of item.tree$Children; track $index) {\r\n <app-item [item]=\"child\" [level]=\"level+1\" (clicked)=\"onClick($event, child)\"></app-item>\r\n }\r\n </div>\r\n </ul>\r\n }\r\n\r\n</li>", styles: [".navigator-container{--active-item-color: #DD5F2A;--active-item-background-color: white;--active-item-border-color: white;--line-height: 16px;--level-gap: 10px;--thin-mode-padding: 8px;--thin-mode-width: 66px;--wide-mode-width: 280px;--left-bar-current-width: 280px;--bg-color: #F1F1F1;--color: black;--hover-bg-color: #E1E3E5;--hover-color: black;--icon-border-radius: 0px;--icon-gutter-y: 8px;font-size:13px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.navigator-container .d-none{display:none}.navigator-container svg{width:24px;height:24px}.navigator-container .module-thin-mode{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin-bottom:5px!important;height:50px!important}.navigator-container .module-thin-mode svg{color:var(--color)}.navigator-container .module-thin-mode i{color:var(--color)!important}.navigator-container .li-thin-mode[data-level=\"1\"]{height:50px!important;margin-left:0!important;margin-right:0!important}.navigator-container .li-thin-mode .thin-branch{overflow:hidden}.navigator-container .li-thin-mode .thin-branch a{padding-left:15px;padding-right:15px;overflow:hidden;max-width:calc(100% - var(--size-layout-block-cell-spacing) * 2);text-overflow:ellipsis}.navigator-container .li-thin-mode .thin-branch:hover{background:#e1e3e5!important}.navigator-container .li-thin-mode:hover[data-level=\"1\"]>ul.ul-thin-mode{transform:translate(calc(var(--thin-mode-width)))}.navigator-container .li-thin-mode:hover:not([data-level=\"1\"])>ul.ul-thin-mode{transform:translate(calc(var(--wide-mode-width) - var(--size-layout-block-cell-spacing)))}.navigator-container .li-thin-mode.active .module-thin-mode{width:50px!important;transform:translate(var(--thin-mode-padding))}.navigator-container .li-thin-mode.active .module-thin-mode i{color:var(--active-item-color)!important}.navigator-container .li-thin-mode.active .module-thin-mode svg{color:var(--active-item-color)!important}.navigator-container .li-thin-mode.active>ul.ul-thin-mode{background-color:#fff;opacity:1;height:unset;overflow-y:auto;box-shadow:.4rem 0 2rem #0000002e}.navigator-container .li-thin-mode.active>ul.ul-thin-mode>div>app-item>li>div>a{display:block!important}.navigator-container .li-thin-mode.active[data-level=\"1\"]>ul.ul-thin-mode{display:block;transform:translate(calc(var(--thin-mode-width)))}.navigator-container .li-thin-mode.active:not([data-level=\"1\"])>ul.ul-thin-mode{display:block;transform:translate(calc(var(--wide-mode-width) - var(--size-layout-block-cell-spacing)))}.navigator-container ul.ul-thin-mode{display:none}.navigator-container .parent{color:var(--color);background-color:var(--bg-color);--children-height: 0px;box-sizing:border-box;width:100%;transition:width 1s ease-out}.navigator-container .parent ul{animation:fadeIn .25s linear}.navigator-container .parent i.module-icon{position:absolute;display:inline-block;font-size:var(--size-left-bar-icon-font-size)!important;width:var(--size-left-bar-icon-font-size)!important;height:var(--size-left-bar-icon-font-size)!important}.navigator-container .parent .menu-item-wrapper{position:relative!important;margin-left:0!important;padding-left:0;border:none!important;cursor:pointer}.navigator-container .parent .menu-item-wrapper .sub-icon-right{display:block;position:absolute;right:0;top:5px;transform:rotate(0);transition:transform .5s ease-out}.navigator-container .parent .menu-item-wrapper .rotate90{transform:rotate(90deg)}.navigator-container .parent .menu-item-wrapper[data-level=\"1\"].module-thin-mode:hover{background-color:var(--hover-bg-color);width:50px;transform:translate(8px);color:var(--hover-color)!important}.navigator-container .parent a.thin-mode{left:0!important;display:none;padding-left:15px;padding-right:15px;overflow:hidden;text-overflow:ellipsis}.navigator-container .parent a{color:inherit;position:absolute!important;margin-left:0!important;padding-left:0;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;-webkit-user-select:none}.navigator-container .parent a:hover{color:var(--color)!important}.navigator-container .parent a[data-level=\"1\"]:not(.thin-mode){left:var(--size-header-logo-left);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"2\"]:not(.thin-mode){left:calc(var(--size-header-logo-left));max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"3\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 1);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 1)}.navigator-container .parent a[data-level=\"4\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 2);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 2)}.navigator-container .parent a[data-level=\"5\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 3);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 3)}.navigator-container .parent a[data-level=\"6\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 4);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 4)}.navigator-container .parent[data-level=\"1\"]{margin:10px 0}.navigator-container .parent[data-level=\"1\"] a{margin-left:0}.navigator-container .parent[data-level=\"2\"]:not(.ul-thin-mode) a{margin-left:10px}.navigator-container .parent[data-level=\"3\"]:not(.ul-thin-mode) a{margin-left:20px}.navigator-container .parent[data-level=\"4\"]:not(.ul-thin-mode) a{margin-left:30px}.navigator-container .parent[data-level=\"5\"]:not(.ul-thin-mode) a{margin-left:40px}.navigator-container .parent[data-level=\"6\"]:not(.ul-thin-mode) a{margin-left:50px}.navigator-container .parent .menu-item-wrapper{height:35px;display:flex;align-items:center;margin:0}.navigator-container .parent .menu-item-wrapper>i{display:inline-block;cursor:pointer}.navigator-container .parent .menu-item-wrapper:not(.module-thin-mode){margin-left:var(--thin-mode-padding)!important;margin-right:var(--thin-mode-padding)!important}.navigator-container .parent>ul:not(.ul-thin-mode){position:relative;overflow:hidden;transition:opacity .5s ease-out}.navigator-container .parent>ul.ul-thin-mode{overflow-x:hidden;display:none;margin-left:0!important;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent>ul.ul-thin-mode{overflow-y:auto}.navigator-container .parent.active[data-level=\"2\"]>.menu-item-wrapper>a{transition:.5s ease-out}.navigator-container .parent.highlighted>.menu-item-wrapper>a{color:var(--color-core-org-tree-highlighted)!important;font-weight:700!important}.navigator-container .parent.expanded>ul:not(.submenu){display:block;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent:not(.li-thin-mode) a{margin-left:0}.navigator-container .parent.reduced .menu-item-wrapper{padding:0}.navigator-container .expanded:not(.li-thin-mode)>.menu-item-wrapper{background-color:var(--active-item-background-color);display:flex;justify-content:flex-start}.navigator-container .expanded>ul:not(.submenu){overflow:visible!important}.navigator-container .expanded.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-top-left-radius:50px;border-bottom-left-radius:50px;width:37px}.navigator-container .parent.reduced>.menu-item-wrapper{justify-content:flex-start!important;width:37px}.navigator-container .parent.expanded.reduced>.menu-item-wrapper{background-color:#fff;left:10px!important}.navigator-container .parent.expanded.reduced>.menu-item-wrapper>i{left:9px!important;top:8px!important}.navigator-container .parent.reduced>.menu-item-wrapper{left:10px!important}.navigator-container .parent.reduced>.menu-item-wrapper>i{left:9px!important}.navigator-container li.parent:not(.li-thin-mode) .menu-item-wrapper:hover{background-color:var(--hover-bg-color);box-shadow:inset 10px 0 var(--hover-bg-color),inset -10px 0 var(--hover-bg-color)}\n"], dependencies: [{ kind: "component", type: ItemComponent, selector: "app-item", inputs: ["item", "level"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10357
10355
|
}
|
|
10358
10356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ItemComponent, decorators: [{
|
|
10359
10357
|
type: Component,
|
|
@@ -10362,7 +10360,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
10362
10360
|
RouterModule,
|
|
10363
10361
|
TooltipDirective,
|
|
10364
10362
|
StringHtmlPipe,
|
|
10365
|
-
], encapsulation: ViewEncapsulation.None, template: "<li #me [id]=\"'main-menu-' + item.id\" class=\"parent\" [attr.data-path]=\"item.tree$Path\" [attr.data-level]=\"level\" [class.reduced]=\"leftbarReduced\"\r\n [class.active]=\"!wideMode && active\" [class.expanded]=\"item.tree$Expanded\"\r\n [class.highlighted]=\"item.tree$Highlighted\" [class.li-thin-mode]=\"!wideMode\" [class.menu-item]=\"!wideMode\"\r\n [appTooltip]=\"caption\" [position]=\"'right'\" [ngStyle]=\"{\r\n marginTop: (level===1 && !wideMode) ? navigatorService.iconGutterY + 'px' : '',\r\n marginBottom: (level===1 && !wideMode) ? navigatorService.iconGutterY + 'px' : ''\r\n }\">\r\n <div class=\"menu-item-wrapper\" [attr.data-level]=\"level\" (click)=\"onClick($event, item)\" [class.active]=\"active\"\r\n [class.module-thin-mode]=\"!wideMode && level===1\" [class.thin-branch]=\"!wideMode && level > 1\">\r\n\r\n @if (wideMode) {\r\n @if (!!!leftbarReduced) {\r\n @if (!!hasChildren) {\r\n <span [innerHtml]=\"subMenuSvgIconRight | stringHtml\" class=\"sub-icon-right\"></span>\r\n }\r\n }\r\n }\r\n\r\n @if (!!item.iconSvg) {\r\n <!-- <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"item.iconSvg | stringHtml\"></span></i> -->\r\n <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"item.iconSvg | stringHtml\"></span></i>\r\n } @else if (!!item.iconClass) {\r\n <!-- <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\"\r\n [appTooltip]=\"wideMode ? caption : undefined\" (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n left: wideMode ? '13px' : 'unset'\r\n }\"></i> -->\r\n <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\"\r\n [appTooltip]=\"wideMode ? caption : undefined\" [ngStyle]=\"{\r\n left: wideMode ? '13px' : 'unset'\r\n }\"></i>\r\n } @else if (!item.parent) {\r\n <!-- <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"defaultSvg | stringHtml\"></span></i> -->\r\n <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"defaultSvg | stringHtml\"></span></i>\r\n }\r\n\r\n @if (!wideMode || (!leftbarReduced && hasChildren)) {\r\n <a #link [attr.data-level]=\"level\" class=\"has-submenu\" [appTooltip]=\"level > 1 ? caption : undefined\"\r\n [class.thin-mode]=\"!wideMode\">\r\n\r\n \r\n <!-- <ng-container (click)=\"subArrowClicked($event, item);false\">\r\n <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\"\r\n [class]=\"'img-span plus level' + level\">\r\n <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n </span>\r\n <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\"\r\n [class]=\"'plus level' + level\"></span>\r\n </ng-container> -->\r\n\r\n <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n\r\n {{ caption }}\r\n\r\n </a>\r\n } @else {\r\n <!-- <a [attr.data-level]=\"level\" [routerLink]=\"item.url\" (click)=\"onClick($event, item)\"\r\n [class.thin-mode]=\"!wideMode\" [appTooltip]=\"wideMode ? caption : undefined\">\r\n {{ caption }}\r\n </a> -->\r\n <a [attr.data-level]=\"level\" [routerLink]=\"item.url\"\r\n [class.thin-mode]=\"!wideMode\" [appTooltip]=\"wideMode ? caption : undefined\">\r\n {{ caption }}\r\n </a>\r\n }\r\n\r\n </div>\r\n\r\n @if (!!wideMode && !!hasChildren && !!item.tree$Children!.length && !!!leftbarReduced) {\r\n <ul #children class=\"d-none\" [class.ul-thin-mode]=\"!wideMode\" [ngStyle]=\"{\r\n padding: 0,\r\n }\" [class.submenu]=\"!wideMode\">\r\n <div>\r\n @for (child of item.tree$Children; track $index) {\r\n <app-item [item]=\"child\" [level]=\"level+1\" (clicked)=\"onClick($event, child)\"></app-item>\r\n }\r\n </div>\r\n </ul>\r\n }\r\n\r\n</li>", styles: [".navigator-container{--active-item-color: #DD5F2A;--active-item-background-color: white;--active-item-border-color: white;--line-height: 16px;--level-gap: 10px;--thin-mode-padding: 8px;--thin-mode-width: 66px;--wide-mode-width: 280px;--left-bar-current-width: 280px;--bg-color: #F1F1F1;--color: black;--hover-bg-color: #E1E3E5;--hover-color: black;--icon-border-radius: 0px;--icon-gutter-y: 8px;font-size:13px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.navigator-container .d-none{display:none}.navigator-container svg{width:24px;height:24px}.navigator-container .module-thin-mode{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin-bottom:5px!important;height:50px!important}.navigator-container .module-thin-mode svg{color:var(--color)}.navigator-container .module-thin-mode i{color:var(--color)!important}.navigator-container .li-thin-mode[data-level=\"1\"]{height:50px!important;margin-left:0!important;margin-right:0!important}.navigator-container .li-thin-mode .thin-branch{overflow:hidden}.navigator-container .li-thin-mode .thin-branch a{padding-left:15px;padding-right:15px;overflow:hidden;max-width:calc(100% - var(--size-layout-block-cell-spacing) * 2);text-overflow:ellipsis}.navigator-container .li-thin-mode .thin-branch:hover{background:#e1e3e5!important}.navigator-container .li-thin-mode:hover[data-level=\"1\"]>ul.ul-thin-mode{transform:translate(calc(var(--thin-mode-width)))}.navigator-container .li-thin-mode:hover:not([data-level=\"1\"])>ul.ul-thin-mode{transform:translate(calc(var(--wide-mode-width) - var(--size-layout-block-cell-spacing)))}.navigator-container .li-thin-mode.active .module-thin-mode{width:50px!important;transform:translate(var(--thin-mode-padding))}.navigator-container .li-thin-mode.active .module-thin-mode i{color:var(--active-item-color)!important}.navigator-container .li-thin-mode.active .module-thin-mode svg{color:var(--active-item-color)!important}.navigator-container .li-thin-mode.active>ul.ul-thin-mode{background-color:#fff;opacity:1;height:unset;overflow-y:auto;box-shadow:.4rem 0 2rem #0000002e}.navigator-container .li-thin-mode.active>ul.ul-thin-mode>div>app-item>li>div>a{display:block!important}.navigator-container .li-thin-mode.active[data-level=\"1\"]>ul.ul-thin-mode{display:block;transform:translate(calc(var(--thin-mode-width)))}.navigator-container .li-thin-mode.active:not([data-level=\"1\"])>ul.ul-thin-mode{display:block;transform:translate(calc(var(--wide-mode-width) - var(--size-layout-block-cell-spacing)))}.navigator-container ul.ul-thin-mode{display:none}.navigator-container .parent{color:var(--color);background-color:var(--bg-color);--children-height: 0px;box-sizing:border-box;width:100%;transition:width 1s ease-out}.navigator-container .parent ul{animation:fadeIn .25s linear}.navigator-container .parent i.module-icon{position:absolute;display:inline-block;font-size:var(--size-left-bar-icon-font-size)!important;width:var(--size-left-bar-icon-font-size)!important;height:var(--size-left-bar-icon-font-size)!important}.navigator-container .parent .menu-item-wrapper{position:relative!important;margin-left:0!important;padding-left:0;border:none!important;cursor:pointer}.navigator-container .parent .menu-item-wrapper .sub-icon-right{display:block;position:absolute;right:0;top:5px;transform:rotate(0);transition:transform .5s ease-out}.navigator-container .parent .menu-item-wrapper .rotate90{transform:rotate(90deg)}.navigator-container .parent .menu-item-wrapper[data-level=\"1\"].module-thin-mode:hover{background-color:var(--hover-bg-color);width:50px;transform:translate(8px);color:var(--hover-color)!important}.navigator-container .parent a.thin-mode{left:0!important;display:none;padding-left:15px;padding-right:15px;overflow:hidden;text-overflow:ellipsis}.navigator-container .parent a{color:inherit;position:absolute!important;margin-left:0!important;padding-left:0;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;-webkit-user-select:none}.navigator-container .parent a:hover{color:var(--color)!important}.navigator-container .parent a[data-level=\"1\"]:not(.thin-mode){left:var(--size-header-logo-left);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"2\"]:not(.thin-mode){left:calc(var(--size-header-logo-left));max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"3\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 1);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 1)}.navigator-container .parent a[data-level=\"4\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 2);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 2)}.navigator-container .parent a[data-level=\"5\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 3);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 3)}.navigator-container .parent a[data-level=\"6\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 4);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 4)}.navigator-container .parent[data-level=\"1\"]{margin:10px 0}.navigator-container .parent[data-level=\"1\"] a{margin-left:0}.navigator-container .parent[data-level=\"2\"]:not(.ul-thin-mode) a{margin-left:10px}.navigator-container .parent[data-level=\"3\"]:not(.ul-thin-mode) a{margin-left:20px}.navigator-container .parent[data-level=\"4\"]:not(.ul-thin-mode) a{margin-left:30px}.navigator-container .parent[data-level=\"5\"]:not(.ul-thin-mode) a{margin-left:40px}.navigator-container .parent[data-level=\"6\"]:not(.ul-thin-mode) a{margin-left:50px}.navigator-container .parent .menu-item-wrapper{height:35px;display:flex;align-items:center;margin:0}.navigator-container .parent .menu-item-wrapper>i{display:inline-block;cursor:pointer}.navigator-container .parent .menu-item-wrapper:not(.module-thin-mode){margin-left:var(--thin-mode-padding)!important;margin-right:var(--thin-mode-padding)!important}.navigator-container .parent>ul:not(.ul-thin-mode){position:relative;overflow:hidden;transition:opacity .5s ease-out}.navigator-container .parent>ul.ul-thin-mode{overflow-x:hidden;display:none;margin-left:0!important;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent>ul.ul-thin-mode{overflow-y:auto}.navigator-container .parent.active[data-level=\"2\"]>.menu-item-wrapper>a{transition:.5s ease-out}.navigator-container .parent.highlighted>.menu-item-wrapper>a{color:var(--color-core-org-tree-highlighted)!important;font-weight:700!important}.navigator-container .parent.expanded>ul:not(.submenu){display:block;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent:not(.li-thin-mode) a{margin-left:0}.navigator-container .parent.reduced .menu-item-wrapper{padding:0}.navigator-container .expanded:not(.li-thin-mode)>.menu-item-wrapper{background-color:var(--active-item-background-color);display:flex;justify-content:flex-start}.navigator-container .expanded>ul:not(.submenu){overflow:visible!important}.navigator-container .expanded.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-top-left-radius:50px;border-bottom-left-radius:50px;width:37px}.navigator-container .parent.reduced>.menu-item-wrapper{justify-content:flex-start!important;width:37px}.navigator-container .parent.expanded.reduced>.menu-item-wrapper{background-color:#fff;left:10px!important}.navigator-container .parent.expanded.reduced>.menu-item-wrapper>i{left:9px!important;top:8px!important}.navigator-container .parent.reduced>.menu-item-wrapper{left:10px!important}.navigator-container .parent.reduced>.menu-item-wrapper>i{left:9px!important}.navigator-container li.parent:not(.li-thin-mode) .menu-item-wrapper:hover{background-color:var(--hover-bg-color);box-shadow:inset 10px 0 var(--hover-bg-color),inset -10px 0 var(--hover-bg-color)}\n"] }]
|
|
10363
|
+
], encapsulation: ViewEncapsulation.None, template: "<li #me [id]=\"'main-menu-' + item.id\" class=\"parent\" [attr.data-path]=\"item.tree$Path\" [attr.data-level]=\"level\" [class.reduced]=\"leftbarReduced\"\r\n [class.active]=\"!wideMode && active\" [class.expanded]=\"item.tree$Expanded\"\r\n [class.highlighted]=\"item.tree$Highlighted\" [class.li-thin-mode]=\"!wideMode\" [class.menu-item]=\"!wideMode\"\r\n [appTooltip]=\"caption\" [position]=\"'right'\" [ngStyle]=\"{\r\n marginTop: (level===1 && !wideMode) ? navigatorService.iconGutterY + 'px' : '',\r\n marginBottom: (level===1 && !wideMode) ? navigatorService.iconGutterY + 'px' : ''\r\n }\">\r\n <div class=\"menu-item-wrapper\" [attr.data-level]=\"level\" (click)=\"onClick($event, item)\" [class.active]=\"active\"\r\n [class.module-thin-mode]=\"!wideMode && level===1\" [class.thin-branch]=\"!wideMode && level > 1\" [appTooltip]=\"!wideMode && level===1 ? caption : ''\" [position]=\"'right'\" [showAnyway]=\"!wideMode && level===1\">\r\n\r\n @if (wideMode) {\r\n @if (!!!leftbarReduced) {\r\n @if (!!hasChildren) {\r\n <span [innerHtml]=\"subMenuSvgIconRight | stringHtml\" class=\"sub-icon-right\"></span>\r\n }\r\n }\r\n }\r\n\r\n @if (!!item.iconSvg) {\r\n <!-- <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"item.iconSvg | stringHtml\"></span></i> -->\r\n <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"item.iconSvg | stringHtml\"></span></i>\r\n } @else if (!!item.iconClass) {\r\n <!-- <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\"\r\n [appTooltip]=\"wideMode ? caption : undefined\" (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n left: wideMode ? '13px' : 'unset'\r\n }\"></i> -->\r\n <i [attr.data-level]=\"level\" [class]=\"item.iconClass + ' module-icon'\"\r\n [appTooltip]=\"wideMode ? caption : undefined\" [ngStyle]=\"{\r\n left: wideMode ? '13px' : 'unset'\r\n }\"></i>\r\n } @else if (!item.parent) {\r\n <!-- <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n (click)=\"onModuleIconClick($event, item);false\" [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"defaultSvg | stringHtml\"></span></i> -->\r\n <i [attr.data-level]=\"level\" class=\"'module-icon'\" [appTooltip]=\"wideMode ? caption : undefined\"\r\n [ngStyle]=\"{\r\n position: 'absolute',\r\n left: wideMode ? '13px' : 'unset'\r\n }\"><span [innerHtml]=\"defaultSvg | stringHtml\"></span></i>\r\n }\r\n\r\n @if (!wideMode || (!leftbarReduced && hasChildren)) {\r\n <a #link [attr.data-level]=\"level\" class=\"has-submenu\" [appTooltip]=\"level > 1 ? caption : undefined\"\r\n [class.thin-mode]=\"!wideMode\">\r\n\r\n \r\n <!-- <ng-container (click)=\"subArrowClicked($event, item);false\">\r\n <span #subArrow *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\"\r\n [class]=\"'img-span plus level' + level\">\r\n <img [src]=\"item.pictureBase64 || item.pictureUri\" *ngIf=\"!!item.pictureBase64\">\r\n </span>\r\n <span #subArrow *ngIf=\"!!!item.pictureBase64 && !!!item.pictureUri\"\r\n [class]=\"'plus level' + level\"></span>\r\n </ng-container> -->\r\n\r\n <img *ngIf=\"(!!item.pictureBase64 || !!item.pictureUri)\" [src]=\"item.pictureBase64 || item.pictureUri\">\r\n\r\n {{ caption }}\r\n\r\n </a>\r\n } @else {\r\n <!-- <a [attr.data-level]=\"level\" [routerLink]=\"item.url\" (click)=\"onClick($event, item)\"\r\n [class.thin-mode]=\"!wideMode\" [appTooltip]=\"wideMode ? caption : undefined\">\r\n {{ caption }}\r\n </a> -->\r\n <a [attr.data-level]=\"level\" [routerLink]=\"item.url\"\r\n [class.thin-mode]=\"!wideMode\" [appTooltip]=\"wideMode ? caption : undefined\">\r\n {{ caption }}\r\n </a>\r\n }\r\n\r\n </div>\r\n\r\n @if (!!wideMode && !!hasChildren && !!item.tree$Children!.length && !!!leftbarReduced) {\r\n <ul #children class=\"d-none\" [class.ul-thin-mode]=\"!wideMode\" [ngStyle]=\"{\r\n padding: 0,\r\n }\" [class.submenu]=\"!wideMode\">\r\n <div>\r\n @for (child of item.tree$Children; track $index) {\r\n <app-item [item]=\"child\" [level]=\"level+1\" (clicked)=\"onClick($event, child)\"></app-item>\r\n }\r\n </div>\r\n </ul>\r\n }\r\n\r\n</li>", styles: [".navigator-container{--active-item-color: #DD5F2A;--active-item-background-color: white;--active-item-border-color: white;--line-height: 16px;--level-gap: 10px;--thin-mode-padding: 8px;--thin-mode-width: 66px;--wide-mode-width: 280px;--left-bar-current-width: 280px;--bg-color: #F1F1F1;--color: black;--hover-bg-color: #E1E3E5;--hover-color: black;--icon-border-radius: 0px;--icon-gutter-y: 8px;font-size:13px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.navigator-container .d-none{display:none}.navigator-container svg{width:24px;height:24px}.navigator-container .module-thin-mode{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin-bottom:5px!important;height:50px!important}.navigator-container .module-thin-mode svg{color:var(--color)}.navigator-container .module-thin-mode i{color:var(--color)!important}.navigator-container .li-thin-mode[data-level=\"1\"]{height:50px!important;margin-left:0!important;margin-right:0!important}.navigator-container .li-thin-mode .thin-branch{overflow:hidden}.navigator-container .li-thin-mode .thin-branch a{padding-left:15px;padding-right:15px;overflow:hidden;max-width:calc(100% - var(--size-layout-block-cell-spacing) * 2);text-overflow:ellipsis}.navigator-container .li-thin-mode .thin-branch:hover{background:#e1e3e5!important}.navigator-container .li-thin-mode:hover[data-level=\"1\"]>ul.ul-thin-mode{transform:translate(calc(var(--thin-mode-width)))}.navigator-container .li-thin-mode:hover:not([data-level=\"1\"])>ul.ul-thin-mode{transform:translate(calc(var(--wide-mode-width) - var(--size-layout-block-cell-spacing)))}.navigator-container .li-thin-mode.active .module-thin-mode{width:50px!important;transform:translate(var(--thin-mode-padding))}.navigator-container .li-thin-mode.active .module-thin-mode i{color:var(--active-item-color)!important}.navigator-container .li-thin-mode.active .module-thin-mode svg{color:var(--active-item-color)!important}.navigator-container .li-thin-mode.active>ul.ul-thin-mode{background-color:#fff;opacity:1;height:unset;overflow-y:auto;box-shadow:.4rem 0 2rem #0000002e}.navigator-container .li-thin-mode.active>ul.ul-thin-mode>div>app-item>li>div>a{display:block!important}.navigator-container .li-thin-mode.active[data-level=\"1\"]>ul.ul-thin-mode{display:block;transform:translate(calc(var(--thin-mode-width)))}.navigator-container .li-thin-mode.active:not([data-level=\"1\"])>ul.ul-thin-mode{display:block;transform:translate(calc(var(--wide-mode-width) - var(--size-layout-block-cell-spacing)))}.navigator-container ul.ul-thin-mode{display:none}.navigator-container .parent{color:var(--color);background-color:var(--bg-color);--children-height: 0px;box-sizing:border-box;width:100%;transition:width 1s ease-out}.navigator-container .parent ul{animation:fadeIn .25s linear}.navigator-container .parent i.module-icon{position:absolute;display:inline-block;font-size:var(--size-left-bar-icon-font-size)!important;width:var(--size-left-bar-icon-font-size)!important;height:var(--size-left-bar-icon-font-size)!important}.navigator-container .parent .menu-item-wrapper{position:relative!important;margin-left:0!important;padding-left:0;border:none!important;cursor:pointer}.navigator-container .parent .menu-item-wrapper .sub-icon-right{display:block;position:absolute;right:0;top:5px;transform:rotate(0);transition:transform .5s ease-out}.navigator-container .parent .menu-item-wrapper .rotate90{transform:rotate(90deg)}.navigator-container .parent .menu-item-wrapper[data-level=\"1\"].module-thin-mode:hover{background-color:var(--hover-bg-color);width:50px;transform:translate(8px);color:var(--hover-color)!important}.navigator-container .parent a.thin-mode{left:0!important;display:none;padding-left:15px;padding-right:15px;overflow:hidden;text-overflow:ellipsis}.navigator-container .parent a{color:inherit;position:absolute!important;margin-left:0!important;padding-left:0;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;-webkit-user-select:none}.navigator-container .parent a:hover{color:var(--color)!important}.navigator-container .parent a[data-level=\"1\"]:not(.thin-mode){left:var(--size-header-logo-left);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"2\"]:not(.thin-mode){left:calc(var(--size-header-logo-left));max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2)}.navigator-container .parent a[data-level=\"3\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 1);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 1)}.navigator-container .parent a[data-level=\"4\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 2);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 2)}.navigator-container .parent a[data-level=\"5\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 3);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 3)}.navigator-container .parent a[data-level=\"6\"]:not(.thin-mode){left:calc(var(--size-header-logo-left) + var(--level-gap) * 4);max-width:calc(var(--left-bar-current-width) - var(--size-header-logo-left) - var(--size-scrollbar-width) - var(--size-layout-block-cell-spacing) * 2 - var(--level-gap) * 4)}.navigator-container .parent[data-level=\"1\"]{margin:10px 0}.navigator-container .parent[data-level=\"1\"] a{margin-left:0}.navigator-container .parent[data-level=\"2\"]:not(.ul-thin-mode) a{margin-left:10px}.navigator-container .parent[data-level=\"3\"]:not(.ul-thin-mode) a{margin-left:20px}.navigator-container .parent[data-level=\"4\"]:not(.ul-thin-mode) a{margin-left:30px}.navigator-container .parent[data-level=\"5\"]:not(.ul-thin-mode) a{margin-left:40px}.navigator-container .parent[data-level=\"6\"]:not(.ul-thin-mode) a{margin-left:50px}.navigator-container .parent .menu-item-wrapper{height:35px;display:flex;align-items:center;margin:0}.navigator-container .parent .menu-item-wrapper>i{display:inline-block;cursor:pointer}.navigator-container .parent .menu-item-wrapper:not(.module-thin-mode){margin-left:var(--thin-mode-padding)!important;margin-right:var(--thin-mode-padding)!important}.navigator-container .parent>ul:not(.ul-thin-mode){position:relative;overflow:hidden;transition:opacity .5s ease-out}.navigator-container .parent>ul.ul-thin-mode{overflow-x:hidden;display:none;margin-left:0!important;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent>ul.ul-thin-mode{overflow-y:auto}.navigator-container .parent.active[data-level=\"2\"]>.menu-item-wrapper>a{transition:.5s ease-out}.navigator-container .parent.highlighted>.menu-item-wrapper>a{color:var(--color-core-org-tree-highlighted)!important;font-weight:700!important}.navigator-container .parent.expanded>ul:not(.submenu){display:block;opacity:1;transition:opacity .5s ease-out}.navigator-container .parent:not(.li-thin-mode) a{margin-left:0}.navigator-container .parent.reduced .menu-item-wrapper{padding:0}.navigator-container .expanded:not(.li-thin-mode)>.menu-item-wrapper{background-color:var(--active-item-background-color);display:flex;justify-content:flex-start}.navigator-container .expanded>ul:not(.submenu){overflow:visible!important}.navigator-container .expanded.reduced>.menu-item-wrapper{justify-content:flex-start!important;border-top-left-radius:50px;border-bottom-left-radius:50px;width:37px}.navigator-container .parent.reduced>.menu-item-wrapper{justify-content:flex-start!important;width:37px}.navigator-container .parent.expanded.reduced>.menu-item-wrapper{background-color:#fff;left:10px!important}.navigator-container .parent.expanded.reduced>.menu-item-wrapper>i{left:9px!important;top:8px!important}.navigator-container .parent.reduced>.menu-item-wrapper{left:10px!important}.navigator-container .parent.reduced>.menu-item-wrapper>i{left:9px!important}.navigator-container li.parent:not(.li-thin-mode) .menu-item-wrapper:hover{background-color:var(--hover-bg-color);box-shadow:inset 10px 0 var(--hover-bg-color),inset -10px 0 var(--hover-bg-color)}\n"] }]
|
|
10366
10364
|
}], ctorParameters: () => [{ type: i1$2.Router }, { type: NavigatorService }, { type: MultiLanguageService }, { type: LayoutService }, { type: MenuService }], propDecorators: { item: [{
|
|
10367
10365
|
type: Input
|
|
10368
10366
|
}], level: [{
|
|
@@ -11233,6 +11231,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
11233
11231
|
type: Directive,
|
|
11234
11232
|
args: [{
|
|
11235
11233
|
selector: '[htmlTooltip]',
|
|
11234
|
+
host: {
|
|
11235
|
+
'(mouseenter)': 'onMouseEnter()',
|
|
11236
|
+
'(mouseleave)': 'onMouseLeave()',
|
|
11237
|
+
'(window:scroll)': 'onWindowEvent()',
|
|
11238
|
+
'(window:resize)': 'onWindowEvent()',
|
|
11239
|
+
}
|
|
11236
11240
|
}]
|
|
11237
11241
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: DomService }], propDecorators: { htmlTooltip: [{
|
|
11238
11242
|
type: Input
|
|
@@ -11244,18 +11248,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
11244
11248
|
type: Input
|
|
11245
11249
|
}], hold$: [{
|
|
11246
11250
|
type: Input
|
|
11247
|
-
}], onMouseEnter: [{
|
|
11248
|
-
type: HostListener,
|
|
11249
|
-
args: ['mouseenter']
|
|
11250
|
-
}], onMouseLeave: [{
|
|
11251
|
-
type: HostListener,
|
|
11252
|
-
args: ['mouseleave']
|
|
11253
|
-
}], onWindowEvent: [{
|
|
11254
|
-
type: HostListener,
|
|
11255
|
-
args: ['window:scroll']
|
|
11256
|
-
}, {
|
|
11257
|
-
type: HostListener,
|
|
11258
|
-
args: ['window:resize']
|
|
11259
11251
|
}] } });
|
|
11260
11252
|
|
|
11261
11253
|
class CoreOrgBranchComponent extends BaseComponent {
|
|
@@ -11917,6 +11909,9 @@ class CoreTableComponent extends CoreFormControlBaseComponent {
|
|
|
11917
11909
|
}
|
|
11918
11910
|
});
|
|
11919
11911
|
this.columnCaptions.toArray().map((ref, index) => {
|
|
11912
|
+
if (index >= this.visibleColumns.length) {
|
|
11913
|
+
return;
|
|
11914
|
+
}
|
|
11920
11915
|
const field = this.visibleColumns[index].field;
|
|
11921
11916
|
const filter = this.dragoverSubscriptions.filter(x => x.field === field);
|
|
11922
11917
|
if (filter.length === 0) {
|
|
@@ -21913,7 +21908,7 @@ class HotKeysDirective {
|
|
|
21913
21908
|
this.applicationHelpService = applicationHelpService;
|
|
21914
21909
|
}
|
|
21915
21910
|
handleKeyboardEvent(event) {
|
|
21916
|
-
if (this.hotKeys.includes(event.key)) {
|
|
21911
|
+
if ((this.hotKeys ?? []).includes(event.key)) {
|
|
21917
21912
|
event.preventDefault();
|
|
21918
21913
|
this.applicationHelpService.activeKey$.next(event.key);
|
|
21919
21914
|
}
|
|
@@ -25024,7 +25019,7 @@ class CoreFormArrayComponent {
|
|
|
25024
25019
|
multi: true,
|
|
25025
25020
|
useExisting: CoreFormArrayComponent
|
|
25026
25021
|
}
|
|
25027
|
-
], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-form-array-container\">\r\n\r\n\r\n @for (group of controlGroups(); track $index; let i = $index) {\r\n <div class=\"form-array-item\">\r\n\r\n <div class=\"form-array-content\">\r\n @for (section of config; track $index) {\r\n @if (!section.hidden) {\r\n <div class=\"section\">\r\n <!-- @if (section.caption) {\r\n <div class=\"section-caption\">{{ section.caption }}</div>\r\n } -->\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\">\r\n <core-control-no-form-array [control]=\"col\" [form]=\"group\"\r\n [checkError$]=\"checkError$\"></core-control-no-form-array>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"form-array-toolbar\">\r\n <button type=\"button\" class=\"btn btn-danger btn-sm feather-trash-2\" (click)=\"removeItem(i)\"\r\n [appTooltip]=\"'Remove group'\" [showAnyway]=\"true\"></button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"form-array-footer\">\r\n <button type=\"button\" class=\"btn btn-success btn-sm feather-file-plus\" (click)=\"addItem()\"\r\n [appTooltip]=\"'Add group'\" [showAnyway]=\"true\"></button>\r\n </div>\r\n</div>", styles: [".core-form-array-container{padding:15px;border:
|
|
25022
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-form-array-container\">\r\n\r\n\r\n @for (group of controlGroups(); track $index; let i = $index) {\r\n <div class=\"form-array-item\">\r\n\r\n <div class=\"form-array-content\">\r\n @for (section of config; track $index) {\r\n @if (!section.hidden) {\r\n <div class=\"section\">\r\n <!-- @if (section.caption) {\r\n <div class=\"section-caption\">{{ section.caption }}</div>\r\n } -->\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\">\r\n <core-control-no-form-array [control]=\"col\" [form]=\"group\"\r\n [checkError$]=\"checkError$\"></core-control-no-form-array>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"form-array-toolbar\">\r\n <button type=\"button\" class=\"btn btn-danger btn-sm feather-trash-2\" (click)=\"removeItem(i)\"\r\n [appTooltip]=\"'Remove group'\" [showAnyway]=\"true\"></button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"form-array-footer\">\r\n <button type=\"button\" class=\"btn btn-success btn-sm feather-file-plus\" (click)=\"addItem()\"\r\n [appTooltip]=\"'Add group'\" [showAnyway]=\"true\"></button>\r\n </div>\r\n</div>", styles: [".core-form-array-container{padding:15px;border:1px solid #ced4da}.core-form-array-container .form-array-item{display:flex;align-items:flex-start}.core-form-array-container .form-array-item>*{display:inline-block!important}.core-form-array-container .form-array-item .form-array-content{width:calc(100% - 46px)}.core-form-array-container .form-array-item .form-array-toolbar{width:14px;padding-left:12px;transform:translateY(25px)}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreControlNoFormArrayComponent, selector: "core-control-no-form-array", inputs: ["control", "form", "checkError$", "rangeLimit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25028
25023
|
}
|
|
25029
25024
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreFormArrayComponent, decorators: [{
|
|
25030
25025
|
type: Component,
|
|
@@ -25039,7 +25034,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
25039
25034
|
JsonSafePipe,
|
|
25040
25035
|
TooltipDirective,
|
|
25041
25036
|
CoreControlNoFormArrayComponent
|
|
25042
|
-
], template: "<div class=\"core-form-array-container\">\r\n\r\n\r\n @for (group of controlGroups(); track $index; let i = $index) {\r\n <div class=\"form-array-item\">\r\n\r\n <div class=\"form-array-content\">\r\n @for (section of config; track $index) {\r\n @if (!section.hidden) {\r\n <div class=\"section\">\r\n <!-- @if (section.caption) {\r\n <div class=\"section-caption\">{{ section.caption }}</div>\r\n } -->\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\">\r\n <core-control-no-form-array [control]=\"col\" [form]=\"group\"\r\n [checkError$]=\"checkError$\"></core-control-no-form-array>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"form-array-toolbar\">\r\n <button type=\"button\" class=\"btn btn-danger btn-sm feather-trash-2\" (click)=\"removeItem(i)\"\r\n [appTooltip]=\"'Remove group'\" [showAnyway]=\"true\"></button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"form-array-footer\">\r\n <button type=\"button\" class=\"btn btn-success btn-sm feather-file-plus\" (click)=\"addItem()\"\r\n [appTooltip]=\"'Add group'\" [showAnyway]=\"true\"></button>\r\n </div>\r\n</div>", styles: [".core-form-array-container{padding:15px;border:
|
|
25037
|
+
], template: "<div class=\"core-form-array-container\">\r\n\r\n\r\n @for (group of controlGroups(); track $index; let i = $index) {\r\n <div class=\"form-array-item\">\r\n\r\n <div class=\"form-array-content\">\r\n @for (section of config; track $index) {\r\n @if (!section.hidden) {\r\n <div class=\"section\">\r\n <!-- @if (section.caption) {\r\n <div class=\"section-caption\">{{ section.caption }}</div>\r\n } -->\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\">\r\n <core-control-no-form-array [control]=\"col\" [form]=\"group\"\r\n [checkError$]=\"checkError$\"></core-control-no-form-array>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"form-array-toolbar\">\r\n <button type=\"button\" class=\"btn btn-danger btn-sm feather-trash-2\" (click)=\"removeItem(i)\"\r\n [appTooltip]=\"'Remove group'\" [showAnyway]=\"true\"></button>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"form-array-footer\">\r\n <button type=\"button\" class=\"btn btn-success btn-sm feather-file-plus\" (click)=\"addItem()\"\r\n [appTooltip]=\"'Add group'\" [showAnyway]=\"true\"></button>\r\n </div>\r\n</div>", styles: [".core-form-array-container{padding:15px;border:1px solid #ced4da}.core-form-array-container .form-array-item{display:flex;align-items:flex-start}.core-form-array-container .form-array-item>*{display:inline-block!important}.core-form-array-container .form-array-item .form-array-content{width:calc(100% - 46px)}.core-form-array-container .form-array-item .form-array-toolbar{width:14px;padding-left:12px;transform:translateY(25px)}\n"] }]
|
|
25043
25038
|
}], ctorParameters: () => [], propDecorators: { formArray: [{
|
|
25044
25039
|
type: Input,
|
|
25045
25040
|
args: [{ required: true }]
|
|
@@ -25051,6 +25046,667 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
25051
25046
|
args: [{ required: true }]
|
|
25052
25047
|
}] } });
|
|
25053
25048
|
|
|
25049
|
+
class CoreDocgenToolbarComponent {
|
|
25050
|
+
constructor() {
|
|
25051
|
+
// ===== Inputs =====
|
|
25052
|
+
this.$fields = input([]);
|
|
25053
|
+
this.$disabled = input(false);
|
|
25054
|
+
this.$mode = input('design');
|
|
25055
|
+
this.$canUndo = input(false);
|
|
25056
|
+
this.$canRedo = input(false);
|
|
25057
|
+
// ===== Outputs =====
|
|
25058
|
+
this.undo = output();
|
|
25059
|
+
this.redo = output();
|
|
25060
|
+
this.formatBlock = output();
|
|
25061
|
+
this.bold = output();
|
|
25062
|
+
this.italic = output();
|
|
25063
|
+
this.code = output();
|
|
25064
|
+
this.clear = output();
|
|
25065
|
+
this.link = output();
|
|
25066
|
+
this.imageUpload = output();
|
|
25067
|
+
this.imageFromUrl = output();
|
|
25068
|
+
this.insertTable = output();
|
|
25069
|
+
this.listToggle = output();
|
|
25070
|
+
this.align = output();
|
|
25071
|
+
this.quote = output();
|
|
25072
|
+
this.hr = output();
|
|
25073
|
+
this.pageBreak = output();
|
|
25074
|
+
this.insertField = output();
|
|
25075
|
+
this.insertLoop = output();
|
|
25076
|
+
this.insertCondition = output();
|
|
25077
|
+
this.toggleMode = output();
|
|
25078
|
+
this.preview = output();
|
|
25079
|
+
// NEW: colors & indent
|
|
25080
|
+
this.fgColor = output(); // '#rrggbb' or null to clear
|
|
25081
|
+
this.bgColor = output(); // '#rrggbb' or null to clear
|
|
25082
|
+
this.indent = output(); // 'increase' | 'decrease'
|
|
25083
|
+
// ===== Local UI state =====
|
|
25084
|
+
this.$openFormat = signal(false);
|
|
25085
|
+
this.$openImage = signal(false);
|
|
25086
|
+
this.$openTable = signal(false);
|
|
25087
|
+
this.$openFg = signal(false);
|
|
25088
|
+
this.$openBg = signal(false);
|
|
25089
|
+
this.canInteract = computed(() => !this.$disabled());
|
|
25090
|
+
// Palettes (tweak to your design system)
|
|
25091
|
+
this.fgPalette = ['#111827', '#1f2937', '#ef4444', '#10b981', '#3b82f6', '#8b5cf6', '#111111', '#6b7280', '#fb923c'];
|
|
25092
|
+
this.bgPalette = ['#fff7ed', '#fef3c7', '#dcfce7', '#dbeafe', '#ede9fe', '#fee2e2', '#f3f4f6', '#ffffff', '#fff'];
|
|
25093
|
+
}
|
|
25094
|
+
onToggleMode() {
|
|
25095
|
+
const next = this.$mode() === 'design' ? 'source' : 'design';
|
|
25096
|
+
this.toggleMode.emit(next);
|
|
25097
|
+
}
|
|
25098
|
+
onPickTable(r, c) {
|
|
25099
|
+
if (!this.canInteract())
|
|
25100
|
+
return;
|
|
25101
|
+
this.$openTable.set(false);
|
|
25102
|
+
this.insertTable.emit({ rows: r, cols: c });
|
|
25103
|
+
}
|
|
25104
|
+
onPickBlock(tag) {
|
|
25105
|
+
if (!this.canInteract())
|
|
25106
|
+
return;
|
|
25107
|
+
this.$openFormat.set(false);
|
|
25108
|
+
this.formatBlock.emit(tag);
|
|
25109
|
+
}
|
|
25110
|
+
onPickField(f) {
|
|
25111
|
+
if (!f || !this.canInteract())
|
|
25112
|
+
return;
|
|
25113
|
+
this.insertField.emit(f);
|
|
25114
|
+
}
|
|
25115
|
+
onPickFg(c) {
|
|
25116
|
+
this.$openFg.set(false);
|
|
25117
|
+
this.fgColor.emit(c ?? null);
|
|
25118
|
+
}
|
|
25119
|
+
onPickBg(c) {
|
|
25120
|
+
this.$openBg.set(false);
|
|
25121
|
+
this.bgColor.emit(c ?? null);
|
|
25122
|
+
}
|
|
25123
|
+
onIndent(dir) {
|
|
25124
|
+
this.indent.emit(dir);
|
|
25125
|
+
}
|
|
25126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDocgenToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreDocgenToolbarComponent, isStandalone: true, selector: "core-docgen-toolbar", inputs: { $fields: { classPropertyName: "$fields", publicName: "$fields", isSignal: true, isRequired: false, transformFunction: null }, $disabled: { classPropertyName: "$disabled", publicName: "$disabled", isSignal: true, isRequired: false, transformFunction: null }, $mode: { classPropertyName: "$mode", publicName: "$mode", isSignal: true, isRequired: false, transformFunction: null }, $canUndo: { classPropertyName: "$canUndo", publicName: "$canUndo", isSignal: true, isRequired: false, transformFunction: null }, $canRedo: { classPropertyName: "$canRedo", publicName: "$canRedo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { undo: "undo", redo: "redo", formatBlock: "formatBlock", bold: "bold", italic: "italic", code: "code", clear: "clear", link: "link", imageUpload: "imageUpload", imageFromUrl: "imageFromUrl", insertTable: "insertTable", listToggle: "listToggle", align: "align", quote: "quote", hr: "hr", pageBreak: "pageBreak", insertField: "insertField", insertLoop: "insertLoop", insertCondition: "insertCondition", toggleMode: "toggleMode", preview: "preview", fgColor: "fgColor", bgColor: "bgColor", indent: "indent" }, ngImport: i0, template: "<div class=\"core-docgen-toolbar-container\" role=\"toolbar\" aria-label=\"DocGen toolbar\">\r\n <!-- RIBBON: History -->\r\n <div class=\"ribbon\" aria-label=\"History\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"!$canUndo() || $disabled()\" [appTooltip]=\"'Undo (Ctrl/Cmd+Z)'\" (click)=\"undo.emit()\" aria-label=\"Undo\"><i class=\"bi bi-arrow-counterclockwise\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"!$canRedo() || $disabled()\" [appTooltip]=\"'Redo (Shift+Ctrl/Cmd+Z)'\" (click)=\"redo.emit()\" aria-label=\"Redo\"><i class=\"bi bi-arrow-clockwise\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Block -->\r\n <div class=\"ribbon\" aria-label=\"Block format\">\r\n <div class=\"split\" [class.open]=\"$openFormat()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"$openFormat.set(!$openFormat())\" aria-label=\"Block format\"><i [appTooltip]=\"'Block format'\" class=\"bi bi-paragraph\"></i></button>\r\n @if ($openFormat()) {\r\n <div class=\"menu\">\r\n <button type=\"button\" class=\"mi\" (click)=\"onPickBlock('p')\"><i class=\"bi bi-paragraph\"></i> Paragraph</button>\r\n <button type=\"button\" class=\"mi h\" (click)=\"onPickBlock('h1')\">H1</button>\r\n <button type=\"button\" class=\"mi h\" (click)=\"onPickBlock('h2')\">H2</button>\r\n <button type=\"button\" class=\"mi h\" (click)=\"onPickBlock('h3')\">H3</button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Indent (block) -->\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"onIndent('increase')\" aria-label=\"Increase indent\"><i [appTooltip]=\"'Increase indent (block)'\" class=\"bi bi-indent\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"onIndent('decrease')\" aria-label=\"Decrease indent\"><i [appTooltip]=\"'Decrease indent (block)'\" class=\"bi bi-unindent\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Inline -->\r\n <div class=\"ribbon\" aria-label=\"Inline\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"bold.emit()\" aria-pressed=\"false\" aria-label=\"Bold\"><i [appTooltip]=\"'Bold (Ctrl/Cmd+B)'\" class=\"bi bi-type-bold\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"italic.emit()\" aria-pressed=\"false\" aria-label=\"Italic\"><i [appTooltip]=\"'Italic (Ctrl/Cmd+I)'\" class=\"bi bi-type-italic\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"code.emit()\" aria-label=\"Code\"><i [appTooltip]=\"'Code'\" class=\"bi bi-code-slash\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"clear.emit()\" aria-label=\"Clear formatting\"><i [appTooltip]=\"'Clear inline formatting'\" class=\"bi bi-x\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Colors -->\r\n <div class=\"ribbon\" aria-label=\"Colors\">\r\n <div class=\"split\" [class.open]=\"$openFg()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"$openFg.set(!$openFg())\" aria-label=\"Text color\"><i [appTooltip]=\"'Text color'\" class=\"bi bi-palette\"></i></button>\r\n @if ($openFg()) {\r\n <div class=\"menu palette\">\r\n <div class=\"swatch-grid\">\r\n @for (c of fgPalette; track c) {\r\n <button type=\"button\" class=\"swatch\" [style.background]=c (click)=\"onPickFg(c)\" [title]=\"c\"></button>\r\n }\r\n <div class=\"row\">\r\n <input #fgci type=\"color\" class=\"color-input\" (input)=\"onPickFg(fgci.value)\" />\r\n <button class=\"mi\" (click)=\"onPickFg(null)\">Clear color</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"split\" [class.open]=\"$openBg()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"$openBg.set(!$openBg())\" aria-label=\"Highlight color\"><i [appTooltip]=\"'Highlight color'\" class=\"bi bi-palette-fill\"></i></button>\r\n @if ($openBg()) {\r\n <div class=\"menu palette\">\r\n <div class=\"swatch-grid\">\r\n @for (c of bgPalette; track c) {\r\n <button type=\"button\" class=\"swatch\" [style.background]=c (click)=\"onPickBg(c)\" [title]=\"c\"></button>\r\n }\r\n <div class=\"row\">\r\n <input #bgci type=\"color\" class=\"color-input\" (input)=\"onPickBg(bgci.value)\" />\r\n <button class=\"mi\" (click)=\"onPickBg(null)\">Clear highlight</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- RIBBON: Link & Media -->\r\n <div class=\"ribbon\" aria-label=\"Link & media\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"link.emit()\" aria-label=\"Insert link\"><i [appTooltip]=\"'Insert link'\" class=\"bi bi-link\"></i></button>\r\n\r\n <div class=\"split\" [class.open]=\"$openImage()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"imageUpload.emit()\" aria-label=\"Upload image\"><i [appTooltip]=\"'Upload image'\" class=\"bi bi-image\"></i></button>\r\n <button type=\"button\" class=\"btn caret\" [disabled]=\"$disabled()\" (click)=\"$openImage.set(!$openImage())\" aria-label=\"More image options\"><i [appTooltip]=\"'More image options'\" class=\"bi bi-caret-down-fill\"></i></button>\r\n @if ($openImage()) {\r\n <div class=\"menu\">\r\n <button type=\"button\" class=\"mi\" (click)=\"imageUpload.emit()\">Upload from computer</button>\r\n <button type=\"button\" class=\"mi\" (click)=\"imageFromUrl.emit()\">Insert via URL</button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- RIBBON: Table -->\r\n <div class=\"ribbon\" aria-label=\"Table\">\r\n <div class=\"split\" [class.open]=\"$openTable()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"$openTable.set(!$openTable())\" aria-label=\"Insert table\"><i [appTooltip]=\"'Insert table'\" class=\"bi bi-table\"></i></button>\r\n @if ($openTable()) {\r\n <div class=\"menu table\">\r\n <div class=\"grid\">\r\n @for (r of [1,2,3,4,5,6,7,8]; track r) {\r\n <div class=\"row\">\r\n @for (c of [1,2,3,4,5,6,7,8]; track c) {\r\n <button type=\"button\" class=\"cell\" title=\"{{r}}\u00D7{{c}}\" (click)=\"onPickTable(r,c)\"></button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- RIBBON: Lists & Align -->\r\n <div class=\"ribbon\" aria-label=\"Lists & alignment\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" [appTooltip]=\"'Bulleted list'\" (click)=\"listToggle.emit('ul')\" aria-label=\"Bulleted list\">\u2022</button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" [appTooltip]=\"'Numbered list'\" (click)=\"listToggle.emit('ol')\" aria-label=\"Numbered list\">1.</button>\r\n <span class=\"sep\" aria-hidden=\"true\"></span>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"align.emit('left')\" aria-label=\"Align left\"><i [appTooltip]=\"'Align left'\" class=\"bi bi-text-left\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"align.emit('center')\" aria-label=\"Align center\"><i [appTooltip]=\"'Align center'\" class=\"bi bi-text-center\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"align.emit('right')\" aria-label=\"Align right\"><i [appTooltip]=\"'Align right'\" class=\"bi bi-text-right\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Structure -->\r\n <div class=\"ribbon\" aria-label=\"Structure\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"quote.emit()\" aria-label=\"Block quote\"><i [appTooltip]=\"'Block quote'\" class=\"bi bi-quote\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"hr.emit()\" aria-label=\"Horizontal rule\"><i [appTooltip]=\"'Horizontal rule'\" class=\"bi bi-sign-turn-right\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"pageBreak.emit()\" aria-label=\"Page break\"><i [appTooltip]=\"'Page break'\" class=\"bi bi-file-break\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Liquid -->\r\n <div class=\"ribbon\" aria-label=\"Liquid\">\r\n <select #fld class=\"select\" [disabled]=\"$disabled()\" (change)=\"onPickField(fld.value); fld.selectedIndex = 0\" aria-label=\"Insert field\">\r\n <option value=\"\">Insert field\u2026</option>\r\n @for (f of $fields(); track f) {\r\n <option [value]=\"f\">{{'{{ ' + f + ' }}'}}</option>\r\n }\r\n </select>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"insertLoop.emit()\" aria-label=\"Insert loop\"><i [appTooltip]=\"'Insert loop'\" class=\"bi bi-arrow-repeat\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"insertCondition.emit()\" aria-label=\"Insert condition\"><i [appTooltip]=\"'Insert condition'\" class=\"bi bi-signpost-split\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Mode -->\r\n <div class=\"ribbon\" aria-label=\"Mode & preview\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" [appTooltip]=\"'Toggle Design/Source'\" (click)=\"onToggleMode()\" aria-label=\"Toggle mode\">\r\n @if ($mode() === 'design') {\r\n <i class=\"bi bi-pencil\"></i>\r\n } @else {\r\n <i class=\"bi bi-code-slash\"></i>\r\n }\r\n </button>\r\n <button type=\"button\" class=\"btn ghost\" [disabled]=\"$disabled()\" (click)=\"preview.emit()\" aria-label=\"Preview\"><i [appTooltip]=\"'Preview'\" class=\"bi bi-eye\"></i></button>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.core-docgen-toolbar-container{--ring: #e5e7eb;--muted: #f9fafb;--ink: #111827;--btn: #fff;--btn-b: #d1d5db;--btn-b-hover: #9ca3af;--shadow: 0 10px 24px rgba(0, 0, 0, .08);display:flex;flex-wrap:wrap;gap:8px 10px;align-items:stretch;padding:8px;border:1px solid var(--ring);background:#fff}.core-docgen-toolbar-container .ribbon{display:inline-flex;align-items:center;gap:6px;padding:6px;border:1px solid var(--ring);border-radius:10px;background:var(--muted)}.core-docgen-toolbar-container .sep{width:1px;height:18px;background:var(--ring);margin:0 2px}.core-docgen-toolbar-container .btn,.core-docgen-toolbar-container .select{font:600 13px/1 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;border:1px solid var(--btn-b);background:var(--btn);color:var(--ink);border-radius:10px;padding:8px 10px;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none}.core-docgen-toolbar-container .btn[disabled],.core-docgen-toolbar-container .select[disabled]{opacity:.5;cursor:not-allowed}.core-docgen-toolbar-container .btn:hover:not([disabled]){border-color:var(--btn-b-hover)}.core-docgen-toolbar-container .btn.ghost{background:#f3f4f6}.core-docgen-toolbar-container .split{position:relative;display:inline-flex}.core-docgen-toolbar-container .split .btn.caret{width:30px;padding:0}.core-docgen-toolbar-container .menu{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--ring);border-radius:10px;box-shadow:var(--shadow);padding:8px;z-index:20;min-width:180px}.core-docgen-toolbar-container .menu .mi{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;cursor:pointer}.core-docgen-toolbar-container .menu .mi:hover{background:#f3f4f6}.core-docgen-toolbar-container .menu .mi.h{font-weight:700}.core-docgen-toolbar-container .menu.table{padding:10px;min-width:unset}.core-docgen-toolbar-container .menu.table .grid{display:grid;gap:4px}.core-docgen-toolbar-container .menu.table .row{display:grid;grid-template-columns:repeat(8,18px);gap:4px}.core-docgen-toolbar-container .menu.table .cell{width:18px;height:18px;border:1px solid #d1d5db;background:#fff;border-radius:4px}.core-docgen-toolbar-container .menu.table .cell:hover{background:#e0e7ff;border-color:#a5b4fc}.core-docgen-toolbar-container .menu.palette{min-width:220px}.core-docgen-toolbar-container .swatch-grid{display:grid;grid-template-columns:repeat(9,20px);gap:6px;align-items:center}.core-docgen-toolbar-container .swatch{width:20px;height:20px;border-radius:4px;border:1px solid #d1d5db;cursor:pointer}.core-docgen-toolbar-container .swatch:hover{outline:2px solid #a5b4fc}.core-docgen-toolbar-container .color-input{width:100%;height:28px;border:1px solid #d1d5db;border-radius:6px}.core-docgen-toolbar-container .row{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.core-docgen-toolbar-container .select{padding-right:28px;min-height:36px}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25128
|
+
}
|
|
25129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreDocgenToolbarComponent, decorators: [{
|
|
25130
|
+
type: Component,
|
|
25131
|
+
args: [{ selector: 'core-docgen-toolbar', imports: [
|
|
25132
|
+
TooltipDirective
|
|
25133
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"core-docgen-toolbar-container\" role=\"toolbar\" aria-label=\"DocGen toolbar\">\r\n <!-- RIBBON: History -->\r\n <div class=\"ribbon\" aria-label=\"History\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"!$canUndo() || $disabled()\" [appTooltip]=\"'Undo (Ctrl/Cmd+Z)'\" (click)=\"undo.emit()\" aria-label=\"Undo\"><i class=\"bi bi-arrow-counterclockwise\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"!$canRedo() || $disabled()\" [appTooltip]=\"'Redo (Shift+Ctrl/Cmd+Z)'\" (click)=\"redo.emit()\" aria-label=\"Redo\"><i class=\"bi bi-arrow-clockwise\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Block -->\r\n <div class=\"ribbon\" aria-label=\"Block format\">\r\n <div class=\"split\" [class.open]=\"$openFormat()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"$openFormat.set(!$openFormat())\" aria-label=\"Block format\"><i [appTooltip]=\"'Block format'\" class=\"bi bi-paragraph\"></i></button>\r\n @if ($openFormat()) {\r\n <div class=\"menu\">\r\n <button type=\"button\" class=\"mi\" (click)=\"onPickBlock('p')\"><i class=\"bi bi-paragraph\"></i> Paragraph</button>\r\n <button type=\"button\" class=\"mi h\" (click)=\"onPickBlock('h1')\">H1</button>\r\n <button type=\"button\" class=\"mi h\" (click)=\"onPickBlock('h2')\">H2</button>\r\n <button type=\"button\" class=\"mi h\" (click)=\"onPickBlock('h3')\">H3</button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Indent (block) -->\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"onIndent('increase')\" aria-label=\"Increase indent\"><i [appTooltip]=\"'Increase indent (block)'\" class=\"bi bi-indent\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"onIndent('decrease')\" aria-label=\"Decrease indent\"><i [appTooltip]=\"'Decrease indent (block)'\" class=\"bi bi-unindent\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Inline -->\r\n <div class=\"ribbon\" aria-label=\"Inline\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"bold.emit()\" aria-pressed=\"false\" aria-label=\"Bold\"><i [appTooltip]=\"'Bold (Ctrl/Cmd+B)'\" class=\"bi bi-type-bold\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"italic.emit()\" aria-pressed=\"false\" aria-label=\"Italic\"><i [appTooltip]=\"'Italic (Ctrl/Cmd+I)'\" class=\"bi bi-type-italic\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"code.emit()\" aria-label=\"Code\"><i [appTooltip]=\"'Code'\" class=\"bi bi-code-slash\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"clear.emit()\" aria-label=\"Clear formatting\"><i [appTooltip]=\"'Clear inline formatting'\" class=\"bi bi-x\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Colors -->\r\n <div class=\"ribbon\" aria-label=\"Colors\">\r\n <div class=\"split\" [class.open]=\"$openFg()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"$openFg.set(!$openFg())\" aria-label=\"Text color\"><i [appTooltip]=\"'Text color'\" class=\"bi bi-palette\"></i></button>\r\n @if ($openFg()) {\r\n <div class=\"menu palette\">\r\n <div class=\"swatch-grid\">\r\n @for (c of fgPalette; track c) {\r\n <button type=\"button\" class=\"swatch\" [style.background]=c (click)=\"onPickFg(c)\" [title]=\"c\"></button>\r\n }\r\n <div class=\"row\">\r\n <input #fgci type=\"color\" class=\"color-input\" (input)=\"onPickFg(fgci.value)\" />\r\n <button class=\"mi\" (click)=\"onPickFg(null)\">Clear color</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"split\" [class.open]=\"$openBg()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"$openBg.set(!$openBg())\" aria-label=\"Highlight color\"><i [appTooltip]=\"'Highlight color'\" class=\"bi bi-palette-fill\"></i></button>\r\n @if ($openBg()) {\r\n <div class=\"menu palette\">\r\n <div class=\"swatch-grid\">\r\n @for (c of bgPalette; track c) {\r\n <button type=\"button\" class=\"swatch\" [style.background]=c (click)=\"onPickBg(c)\" [title]=\"c\"></button>\r\n }\r\n <div class=\"row\">\r\n <input #bgci type=\"color\" class=\"color-input\" (input)=\"onPickBg(bgci.value)\" />\r\n <button class=\"mi\" (click)=\"onPickBg(null)\">Clear highlight</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- RIBBON: Link & Media -->\r\n <div class=\"ribbon\" aria-label=\"Link & media\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"link.emit()\" aria-label=\"Insert link\"><i [appTooltip]=\"'Insert link'\" class=\"bi bi-link\"></i></button>\r\n\r\n <div class=\"split\" [class.open]=\"$openImage()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"imageUpload.emit()\" aria-label=\"Upload image\"><i [appTooltip]=\"'Upload image'\" class=\"bi bi-image\"></i></button>\r\n <button type=\"button\" class=\"btn caret\" [disabled]=\"$disabled()\" (click)=\"$openImage.set(!$openImage())\" aria-label=\"More image options\"><i [appTooltip]=\"'More image options'\" class=\"bi bi-caret-down-fill\"></i></button>\r\n @if ($openImage()) {\r\n <div class=\"menu\">\r\n <button type=\"button\" class=\"mi\" (click)=\"imageUpload.emit()\">Upload from computer</button>\r\n <button type=\"button\" class=\"mi\" (click)=\"imageFromUrl.emit()\">Insert via URL</button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- RIBBON: Table -->\r\n <div class=\"ribbon\" aria-label=\"Table\">\r\n <div class=\"split\" [class.open]=\"$openTable()\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"$openTable.set(!$openTable())\" aria-label=\"Insert table\"><i [appTooltip]=\"'Insert table'\" class=\"bi bi-table\"></i></button>\r\n @if ($openTable()) {\r\n <div class=\"menu table\">\r\n <div class=\"grid\">\r\n @for (r of [1,2,3,4,5,6,7,8]; track r) {\r\n <div class=\"row\">\r\n @for (c of [1,2,3,4,5,6,7,8]; track c) {\r\n <button type=\"button\" class=\"cell\" title=\"{{r}}\u00D7{{c}}\" (click)=\"onPickTable(r,c)\"></button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- RIBBON: Lists & Align -->\r\n <div class=\"ribbon\" aria-label=\"Lists & alignment\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" [appTooltip]=\"'Bulleted list'\" (click)=\"listToggle.emit('ul')\" aria-label=\"Bulleted list\">\u2022</button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" [appTooltip]=\"'Numbered list'\" (click)=\"listToggle.emit('ol')\" aria-label=\"Numbered list\">1.</button>\r\n <span class=\"sep\" aria-hidden=\"true\"></span>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"align.emit('left')\" aria-label=\"Align left\"><i [appTooltip]=\"'Align left'\" class=\"bi bi-text-left\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"align.emit('center')\" aria-label=\"Align center\"><i [appTooltip]=\"'Align center'\" class=\"bi bi-text-center\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"align.emit('right')\" aria-label=\"Align right\"><i [appTooltip]=\"'Align right'\" class=\"bi bi-text-right\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Structure -->\r\n <div class=\"ribbon\" aria-label=\"Structure\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"quote.emit()\" aria-label=\"Block quote\"><i [appTooltip]=\"'Block quote'\" class=\"bi bi-quote\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"hr.emit()\" aria-label=\"Horizontal rule\"><i [appTooltip]=\"'Horizontal rule'\" class=\"bi bi-sign-turn-right\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"pageBreak.emit()\" aria-label=\"Page break\"><i [appTooltip]=\"'Page break'\" class=\"bi bi-file-break\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Liquid -->\r\n <div class=\"ribbon\" aria-label=\"Liquid\">\r\n <select #fld class=\"select\" [disabled]=\"$disabled()\" (change)=\"onPickField(fld.value); fld.selectedIndex = 0\" aria-label=\"Insert field\">\r\n <option value=\"\">Insert field\u2026</option>\r\n @for (f of $fields(); track f) {\r\n <option [value]=\"f\">{{'{{ ' + f + ' }}'}}</option>\r\n }\r\n </select>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"insertLoop.emit()\" aria-label=\"Insert loop\"><i [appTooltip]=\"'Insert loop'\" class=\"bi bi-arrow-repeat\"></i></button>\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" (click)=\"insertCondition.emit()\" aria-label=\"Insert condition\"><i [appTooltip]=\"'Insert condition'\" class=\"bi bi-signpost-split\"></i></button>\r\n </div>\r\n\r\n <!-- RIBBON: Mode -->\r\n <div class=\"ribbon\" aria-label=\"Mode & preview\">\r\n <button type=\"button\" class=\"btn\" [disabled]=\"$disabled()\" [appTooltip]=\"'Toggle Design/Source'\" (click)=\"onToggleMode()\" aria-label=\"Toggle mode\">\r\n @if ($mode() === 'design') {\r\n <i class=\"bi bi-pencil\"></i>\r\n } @else {\r\n <i class=\"bi bi-code-slash\"></i>\r\n }\r\n </button>\r\n <button type=\"button\" class=\"btn ghost\" [disabled]=\"$disabled()\" (click)=\"preview.emit()\" aria-label=\"Preview\"><i [appTooltip]=\"'Preview'\" class=\"bi bi-eye\"></i></button>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.core-docgen-toolbar-container{--ring: #e5e7eb;--muted: #f9fafb;--ink: #111827;--btn: #fff;--btn-b: #d1d5db;--btn-b-hover: #9ca3af;--shadow: 0 10px 24px rgba(0, 0, 0, .08);display:flex;flex-wrap:wrap;gap:8px 10px;align-items:stretch;padding:8px;border:1px solid var(--ring);background:#fff}.core-docgen-toolbar-container .ribbon{display:inline-flex;align-items:center;gap:6px;padding:6px;border:1px solid var(--ring);border-radius:10px;background:var(--muted)}.core-docgen-toolbar-container .sep{width:1px;height:18px;background:var(--ring);margin:0 2px}.core-docgen-toolbar-container .btn,.core-docgen-toolbar-container .select{font:600 13px/1 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;border:1px solid var(--btn-b);background:var(--btn);color:var(--ink);border-radius:10px;padding:8px 10px;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none}.core-docgen-toolbar-container .btn[disabled],.core-docgen-toolbar-container .select[disabled]{opacity:.5;cursor:not-allowed}.core-docgen-toolbar-container .btn:hover:not([disabled]){border-color:var(--btn-b-hover)}.core-docgen-toolbar-container .btn.ghost{background:#f3f4f6}.core-docgen-toolbar-container .split{position:relative;display:inline-flex}.core-docgen-toolbar-container .split .btn.caret{width:30px;padding:0}.core-docgen-toolbar-container .menu{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--ring);border-radius:10px;box-shadow:var(--shadow);padding:8px;z-index:20;min-width:180px}.core-docgen-toolbar-container .menu .mi{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;cursor:pointer}.core-docgen-toolbar-container .menu .mi:hover{background:#f3f4f6}.core-docgen-toolbar-container .menu .mi.h{font-weight:700}.core-docgen-toolbar-container .menu.table{padding:10px;min-width:unset}.core-docgen-toolbar-container .menu.table .grid{display:grid;gap:4px}.core-docgen-toolbar-container .menu.table .row{display:grid;grid-template-columns:repeat(8,18px);gap:4px}.core-docgen-toolbar-container .menu.table .cell{width:18px;height:18px;border:1px solid #d1d5db;background:#fff;border-radius:4px}.core-docgen-toolbar-container .menu.table .cell:hover{background:#e0e7ff;border-color:#a5b4fc}.core-docgen-toolbar-container .menu.palette{min-width:220px}.core-docgen-toolbar-container .swatch-grid{display:grid;grid-template-columns:repeat(9,20px);gap:6px;align-items:center}.core-docgen-toolbar-container .swatch{width:20px;height:20px;border-radius:4px;border:1px solid #d1d5db;cursor:pointer}.core-docgen-toolbar-container .swatch:hover{outline:2px solid #a5b4fc}.core-docgen-toolbar-container .color-input{width:100%;height:28px;border:1px solid #d1d5db;border-radius:6px}.core-docgen-toolbar-container .row{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.core-docgen-toolbar-container .select{padding-right:28px;min-height:36px}\n"] }]
|
|
25134
|
+
}] });
|
|
25135
|
+
|
|
25136
|
+
;
|
|
25137
|
+
class CoreLiquidWysiwygComponent extends CoreFormControlBaseComponent {
|
|
25138
|
+
// History (simple HTML snapshots with caret offsets)
|
|
25139
|
+
#history;
|
|
25140
|
+
#future;
|
|
25141
|
+
#historyTimer;
|
|
25142
|
+
// Hidden file input for image uploads
|
|
25143
|
+
#fileInput;
|
|
25144
|
+
// ===== Toolbar handlers =====
|
|
25145
|
+
onUndo() {
|
|
25146
|
+
if (!this.$canUndo())
|
|
25147
|
+
return;
|
|
25148
|
+
const host = this.$designRef().nativeElement;
|
|
25149
|
+
const caretNow = this.#saveCaretOffset(host);
|
|
25150
|
+
const current = { html: host.innerHTML, caret: caretNow };
|
|
25151
|
+
const prev = this.#history.pop();
|
|
25152
|
+
this.#future.unshift(current);
|
|
25153
|
+
host.innerHTML = prev.html;
|
|
25154
|
+
this.#restoreCaret(host, prev.caret);
|
|
25155
|
+
this.#afterHistoryChange();
|
|
25156
|
+
this.#syncValueFromDom(); // keep value consistent
|
|
25157
|
+
}
|
|
25158
|
+
onRedo() {
|
|
25159
|
+
if (!this.$canRedo())
|
|
25160
|
+
return;
|
|
25161
|
+
const host = this.$designRef().nativeElement;
|
|
25162
|
+
const caretNow = this.#saveCaretOffset(host);
|
|
25163
|
+
const current = { html: host.innerHTML, caret: caretNow };
|
|
25164
|
+
const next = this.#future.shift();
|
|
25165
|
+
this.#history.push(current);
|
|
25166
|
+
host.innerHTML = next.html;
|
|
25167
|
+
this.#restoreCaret(host, next.caret);
|
|
25168
|
+
this.#afterHistoryChange();
|
|
25169
|
+
this.#syncValueFromDom();
|
|
25170
|
+
}
|
|
25171
|
+
applyBlock(tag) {
|
|
25172
|
+
const block = this.#closestBlock();
|
|
25173
|
+
if (!block)
|
|
25174
|
+
return;
|
|
25175
|
+
const replacement = document.createElement(tag);
|
|
25176
|
+
replacement.innerHTML = block.innerHTML;
|
|
25177
|
+
const host = this.$designRef().nativeElement;
|
|
25178
|
+
const caret = this.#saveCaretOffset(host);
|
|
25179
|
+
block.replaceWith(replacement);
|
|
25180
|
+
this.#restoreCaret(host, caret);
|
|
25181
|
+
this.#pushHistorySoon();
|
|
25182
|
+
this.#syncValueFromDom();
|
|
25183
|
+
}
|
|
25184
|
+
wrapInline(tag) {
|
|
25185
|
+
const sel = getSelection();
|
|
25186
|
+
if (!sel || sel.rangeCount === 0 || sel.isCollapsed)
|
|
25187
|
+
return;
|
|
25188
|
+
const r = sel.getRangeAt(0);
|
|
25189
|
+
const el = document.createElement(tag);
|
|
25190
|
+
try {
|
|
25191
|
+
r.surroundContents(el);
|
|
25192
|
+
}
|
|
25193
|
+
catch {
|
|
25194
|
+
// fallback: wrap with extracted contents
|
|
25195
|
+
const frag = r.extractContents();
|
|
25196
|
+
el.appendChild(frag);
|
|
25197
|
+
r.insertNode(el);
|
|
25198
|
+
}
|
|
25199
|
+
const host = this.$designRef().nativeElement;
|
|
25200
|
+
const caret = this.#saveCaretOffset(host);
|
|
25201
|
+
this.#restoreCaret(host, caret);
|
|
25202
|
+
this.#pushHistorySoon();
|
|
25203
|
+
this.#syncValueFromDom();
|
|
25204
|
+
}
|
|
25205
|
+
clearFormatting() {
|
|
25206
|
+
const sel = getSelection();
|
|
25207
|
+
if (!sel || sel.rangeCount === 0)
|
|
25208
|
+
return;
|
|
25209
|
+
const r = sel.getRangeAt(0);
|
|
25210
|
+
const text = r.toString();
|
|
25211
|
+
r.deleteContents();
|
|
25212
|
+
r.insertNode(document.createTextNode(text));
|
|
25213
|
+
this.#pushHistorySoon();
|
|
25214
|
+
this.#syncValueFromDom();
|
|
25215
|
+
}
|
|
25216
|
+
openLinkDialog() {
|
|
25217
|
+
const url = prompt('Enter URL');
|
|
25218
|
+
if (!url)
|
|
25219
|
+
return;
|
|
25220
|
+
const sel = getSelection();
|
|
25221
|
+
if (!sel || sel.rangeCount === 0)
|
|
25222
|
+
return;
|
|
25223
|
+
const r = sel.getRangeAt(0);
|
|
25224
|
+
const a = document.createElement('a');
|
|
25225
|
+
a.href = url;
|
|
25226
|
+
a.target = '_blank';
|
|
25227
|
+
if (r.collapsed) {
|
|
25228
|
+
a.textContent = url;
|
|
25229
|
+
r.insertNode(a);
|
|
25230
|
+
}
|
|
25231
|
+
else {
|
|
25232
|
+
try {
|
|
25233
|
+
r.surroundContents(a);
|
|
25234
|
+
}
|
|
25235
|
+
catch {
|
|
25236
|
+
const frag = r.extractContents();
|
|
25237
|
+
a.appendChild(frag);
|
|
25238
|
+
r.insertNode(a);
|
|
25239
|
+
}
|
|
25240
|
+
}
|
|
25241
|
+
this.#pushHistorySoon();
|
|
25242
|
+
this.#syncValueFromDom();
|
|
25243
|
+
}
|
|
25244
|
+
triggerImageUpload() {
|
|
25245
|
+
if (!this.#fileInput) {
|
|
25246
|
+
const inp = document.createElement('input');
|
|
25247
|
+
inp.type = 'file';
|
|
25248
|
+
inp.accept = 'image/*';
|
|
25249
|
+
inp.style.display = 'none';
|
|
25250
|
+
inp.addEventListener('change', (e) => this.#insertImageFile(e));
|
|
25251
|
+
document.body.appendChild(inp);
|
|
25252
|
+
this.#fileInput = inp;
|
|
25253
|
+
}
|
|
25254
|
+
this.#fileInput.value = '';
|
|
25255
|
+
this.#fileInput.click();
|
|
25256
|
+
}
|
|
25257
|
+
openImageUrlDialog() {
|
|
25258
|
+
const url = prompt('Image URL');
|
|
25259
|
+
if (!url)
|
|
25260
|
+
return;
|
|
25261
|
+
const img = new Image();
|
|
25262
|
+
img.src = url;
|
|
25263
|
+
img.alt = '';
|
|
25264
|
+
img.style.maxWidth = '100%';
|
|
25265
|
+
this.#insertNode(img);
|
|
25266
|
+
this.#pushHistorySoon();
|
|
25267
|
+
this.#syncValueFromDom();
|
|
25268
|
+
}
|
|
25269
|
+
insertTable(ev) {
|
|
25270
|
+
const table = document.createElement('table');
|
|
25271
|
+
table.className = 'dg-table';
|
|
25272
|
+
const tbody = document.createElement('tbody');
|
|
25273
|
+
for (let r = 0; r < ev.rows; r++) {
|
|
25274
|
+
const tr = document.createElement('tr');
|
|
25275
|
+
for (let c = 0; c < ev.cols; c++) {
|
|
25276
|
+
const td = document.createElement('td');
|
|
25277
|
+
td.innerHTML = '<br>';
|
|
25278
|
+
tr.appendChild(td);
|
|
25279
|
+
}
|
|
25280
|
+
tbody.appendChild(tr);
|
|
25281
|
+
}
|
|
25282
|
+
table.appendChild(tbody);
|
|
25283
|
+
this.#insertNode(table);
|
|
25284
|
+
this.#pushHistorySoon();
|
|
25285
|
+
this.#syncValueFromDom();
|
|
25286
|
+
}
|
|
25287
|
+
#closestBlock() {
|
|
25288
|
+
const sel = getSelection();
|
|
25289
|
+
if (!sel || sel.rangeCount === 0)
|
|
25290
|
+
return null;
|
|
25291
|
+
let el = sel.getRangeAt(0).commonAncestorContainer;
|
|
25292
|
+
if (el.nodeType === 3)
|
|
25293
|
+
el = el.parentElement;
|
|
25294
|
+
return el.closest('p,h1,h2,h3,div,blockquote,li,td,th');
|
|
25295
|
+
}
|
|
25296
|
+
toggleList(kind) {
|
|
25297
|
+
const block = this.#closestBlock();
|
|
25298
|
+
if (!block)
|
|
25299
|
+
return;
|
|
25300
|
+
// If already inside same list, unwrap; otherwise wrap
|
|
25301
|
+
const existing = block.closest('ul,ol');
|
|
25302
|
+
if (existing && existing.tagName.toLowerCase() === kind) {
|
|
25303
|
+
// unwrap list item
|
|
25304
|
+
const li = block.closest('li');
|
|
25305
|
+
if (li) {
|
|
25306
|
+
const p = document.createElement('p');
|
|
25307
|
+
p.innerHTML = li.innerHTML;
|
|
25308
|
+
existing.replaceWith(p);
|
|
25309
|
+
}
|
|
25310
|
+
}
|
|
25311
|
+
else {
|
|
25312
|
+
const list = document.createElement(kind);
|
|
25313
|
+
const li = document.createElement('li');
|
|
25314
|
+
li.innerHTML = block.innerHTML;
|
|
25315
|
+
list.appendChild(li);
|
|
25316
|
+
block.replaceWith(list);
|
|
25317
|
+
}
|
|
25318
|
+
this.#pushHistorySoon();
|
|
25319
|
+
this.#syncValueFromDom();
|
|
25320
|
+
}
|
|
25321
|
+
setAlign(a) {
|
|
25322
|
+
const block = this.#closestBlock();
|
|
25323
|
+
if (!block)
|
|
25324
|
+
return;
|
|
25325
|
+
block.style.textAlign = a;
|
|
25326
|
+
this.#pushHistorySoon();
|
|
25327
|
+
this.#syncValueFromDom();
|
|
25328
|
+
}
|
|
25329
|
+
insertQuote() {
|
|
25330
|
+
const block = this.#closestBlock();
|
|
25331
|
+
if (!block)
|
|
25332
|
+
return;
|
|
25333
|
+
const q = document.createElement('blockquote');
|
|
25334
|
+
q.innerHTML = block.innerHTML;
|
|
25335
|
+
block.replaceWith(q);
|
|
25336
|
+
this.#pushHistorySoon();
|
|
25337
|
+
this.#syncValueFromDom();
|
|
25338
|
+
}
|
|
25339
|
+
insertHr() {
|
|
25340
|
+
const hr = document.createElement('hr');
|
|
25341
|
+
this.#insertNode(hr);
|
|
25342
|
+
this.#pushHistorySoon();
|
|
25343
|
+
this.#syncValueFromDom();
|
|
25344
|
+
}
|
|
25345
|
+
constructor() {
|
|
25346
|
+
super();
|
|
25347
|
+
// ✅ Angular 19 inputs
|
|
25348
|
+
this.$liquidOptions = input({ fields: [] });
|
|
25349
|
+
this.$height = input();
|
|
25350
|
+
this.$readonly = input(false);
|
|
25351
|
+
this.placeholder = '';
|
|
25352
|
+
// ✅ Angular 19 viewChild
|
|
25353
|
+
this.$designRef = viewChild.required('design');
|
|
25354
|
+
this.$sourceRef = viewChild('source');
|
|
25355
|
+
// ✅ internal state as signals (prefix `$`)
|
|
25356
|
+
this.$showSource = signal(false); // can also be toggled externally if you want
|
|
25357
|
+
this.$heightPx = computed(() => `${this.$height() ?? 220}px`);
|
|
25358
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
25359
|
+
// History (simple HTML snapshots with caret offsets)
|
|
25360
|
+
this.#history = [];
|
|
25361
|
+
this.#future = [];
|
|
25362
|
+
this.$canUndo = signal(false);
|
|
25363
|
+
this.$canRedo = signal(false);
|
|
25364
|
+
// keep design surface in sync when external value is written
|
|
25365
|
+
effect(() => {
|
|
25366
|
+
// whenever parent writes a new value, reflect into DOM (design)
|
|
25367
|
+
const host = this.$designRef()?.nativeElement;
|
|
25368
|
+
if (host)
|
|
25369
|
+
host.innerHTML = (this.value ?? '');
|
|
25370
|
+
});
|
|
25371
|
+
}
|
|
25372
|
+
ngAfterViewInit() {
|
|
25373
|
+
setTimeout(() => this.cdr.markForCheck());
|
|
25374
|
+
}
|
|
25375
|
+
insertChip(token) {
|
|
25376
|
+
const chip = document.createElement('span');
|
|
25377
|
+
chip.className = 'dg-chip';
|
|
25378
|
+
chip.contentEditable = 'false';
|
|
25379
|
+
chip.dataset['token'] = token;
|
|
25380
|
+
chip.textContent = token; // <- only name
|
|
25381
|
+
chip.setAttribute('role', 'mark');
|
|
25382
|
+
chip.setAttribute('aria-label', `Variable: ${token}`);
|
|
25383
|
+
this.#insertNode(chip);
|
|
25384
|
+
this.markUnknownChips(this.$liquidOptions().fields ?? []);
|
|
25385
|
+
}
|
|
25386
|
+
markUnknownChips(allowed) {
|
|
25387
|
+
const host = this.$designRef()?.nativeElement;
|
|
25388
|
+
if (!host)
|
|
25389
|
+
return;
|
|
25390
|
+
host.querySelectorAll('.dg-chip').forEach(chip => {
|
|
25391
|
+
const key = chip.dataset['token'] ?? '';
|
|
25392
|
+
chip.classList.toggle('dg-chip--unknown', !allowed.includes(key));
|
|
25393
|
+
chip.setAttribute('aria-invalid', (!allowed.includes(key)).toString());
|
|
25394
|
+
});
|
|
25395
|
+
}
|
|
25396
|
+
onInsertLoop() {
|
|
25397
|
+
const { source, v } = { source: 'dayDetails', v: 'd' };
|
|
25398
|
+
const wrap = document.createElement('div');
|
|
25399
|
+
wrap.className = 'dg-loop';
|
|
25400
|
+
wrap.dataset['source'] = source;
|
|
25401
|
+
wrap.dataset['var'] = v;
|
|
25402
|
+
wrap.innerHTML = `
|
|
25403
|
+
<div class="dg-loop__label">Repeat: ${source} as ${v}</div>
|
|
25404
|
+
<div class="dg-loop__body" contenteditable="true"> {{ ${v} }} </div>`;
|
|
25405
|
+
this.#insertNode(wrap);
|
|
25406
|
+
this.#syncValueFromDom();
|
|
25407
|
+
}
|
|
25408
|
+
onInsertIf() {
|
|
25409
|
+
const expr = 'totalHours > 8';
|
|
25410
|
+
const wrap = document.createElement('div');
|
|
25411
|
+
wrap.className = 'dg-if';
|
|
25412
|
+
wrap.dataset['expr'] = expr;
|
|
25413
|
+
wrap.innerHTML = `
|
|
25414
|
+
<div class="dg-if__label">If: ${expr}</div>
|
|
25415
|
+
<div class="dg-if__then" contenteditable="true"></div>`;
|
|
25416
|
+
this.#insertNode(wrap);
|
|
25417
|
+
this.#syncValueFromDom();
|
|
25418
|
+
}
|
|
25419
|
+
onInsertPageBreak() {
|
|
25420
|
+
const br = document.createElement('div');
|
|
25421
|
+
br.className = 'dg-pagebreak';
|
|
25422
|
+
br.textContent = '— Page Break —';
|
|
25423
|
+
this.#insertNode(br);
|
|
25424
|
+
this.#syncValueFromDom();
|
|
25425
|
+
}
|
|
25426
|
+
previewNow() {
|
|
25427
|
+
// Placeholder: in FE you can render via liquidjs; or call BE /preview
|
|
25428
|
+
alert('Preview hook: send `this.value` to preview renderer.');
|
|
25429
|
+
}
|
|
25430
|
+
onToggleSource() {
|
|
25431
|
+
const next = !this.$showSource();
|
|
25432
|
+
this.$showSource.set(next);
|
|
25433
|
+
if (next) {
|
|
25434
|
+
// Design → Source
|
|
25435
|
+
this.#syncValueFromDom(); // serialize design → Liquid string (this.value)
|
|
25436
|
+
// lock design
|
|
25437
|
+
const host = this.$designRef()?.nativeElement;
|
|
25438
|
+
if (host)
|
|
25439
|
+
host.setAttribute('contenteditable', 'false');
|
|
25440
|
+
}
|
|
25441
|
+
else {
|
|
25442
|
+
// Source → Design
|
|
25443
|
+
const host = this.$designRef()?.nativeElement;
|
|
25444
|
+
if (host) {
|
|
25445
|
+
host.innerHTML = this.#inflateFromLiquid(this.value ?? '');
|
|
25446
|
+
this.#normalizeChips(host);
|
|
25447
|
+
host.setAttribute('contenteditable', (!this.disabled && !this.readonly && !this.$readonly()).toString());
|
|
25448
|
+
this.markUnknownChips(this.$liquidOptions().fields ?? []);
|
|
25449
|
+
}
|
|
25450
|
+
}
|
|
25451
|
+
this.cdr.markForCheck();
|
|
25452
|
+
}
|
|
25453
|
+
// ===== contenteditable hooks =====
|
|
25454
|
+
// DESIGN writes -> serializes DOM to Liquid and updates this.value
|
|
25455
|
+
onDesignInput() {
|
|
25456
|
+
// optional: auto-chip {{ token }} then restore caret
|
|
25457
|
+
const host = this.$designRef()?.nativeElement;
|
|
25458
|
+
if (!host)
|
|
25459
|
+
return;
|
|
25460
|
+
const caret = this.#saveCaretOffset(host);
|
|
25461
|
+
host.innerHTML = host.innerHTML.replace(/\{\{\s*([\w.[\]]+)\s*\}\}/g, (_m, g1) => `<span class="dg-chip" contenteditable="false" data-token="${g1}">${g1}</span>`);
|
|
25462
|
+
this.#restoreCaret(host, caret);
|
|
25463
|
+
this.#syncValueFromDom();
|
|
25464
|
+
}
|
|
25465
|
+
// SOURCE writes -> updates this.value only (don’t touch design now)
|
|
25466
|
+
onSourceInput(e) {
|
|
25467
|
+
const v = e.target.value ?? '';
|
|
25468
|
+
this.value = v;
|
|
25469
|
+
this.onChange(v); // let the form know
|
|
25470
|
+
}
|
|
25471
|
+
onDesignKeydown(e) {
|
|
25472
|
+
const blockKeys = ['{', '%', '}'];
|
|
25473
|
+
if (blockKeys.includes(e.key)) {
|
|
25474
|
+
e.preventDefault();
|
|
25475
|
+
// optionally flash a tooltip: "Use the Insert menu to add variables or loops"
|
|
25476
|
+
}
|
|
25477
|
+
}
|
|
25478
|
+
onDesignBlur() { this.markAsTouched(); }
|
|
25479
|
+
onDesignPaste(e) {
|
|
25480
|
+
e.preventDefault();
|
|
25481
|
+
const text = (e.clipboardData?.getData('text/plain') ?? '')
|
|
25482
|
+
.replace(/\r\n/g, '\n')
|
|
25483
|
+
.replace(/\n{3,}/g, '\n\n'); // collapse
|
|
25484
|
+
document.execCommand('insertText', false, text);
|
|
25485
|
+
}
|
|
25486
|
+
// ===== CVA overrides =====
|
|
25487
|
+
writeValue(v) {
|
|
25488
|
+
this.value = v ?? '';
|
|
25489
|
+
const host = this.$designRef()?.nativeElement;
|
|
25490
|
+
if (host)
|
|
25491
|
+
host.innerHTML = this.#inflateFromLiquid(this.value);
|
|
25492
|
+
}
|
|
25493
|
+
setDisabledState(disabled) {
|
|
25494
|
+
super.setDisabledState(disabled);
|
|
25495
|
+
const host = this.$designRef()?.nativeElement;
|
|
25496
|
+
if (host)
|
|
25497
|
+
host.contentEditable = (!disabled && !this.readonly && !this.$readonly()).toString();
|
|
25498
|
+
}
|
|
25499
|
+
// ===== internals =====
|
|
25500
|
+
#insertNode(node) {
|
|
25501
|
+
const host = this.$designRef()?.nativeElement;
|
|
25502
|
+
if (!host)
|
|
25503
|
+
return;
|
|
25504
|
+
const sel = getSelection();
|
|
25505
|
+
if (!sel || !sel.rangeCount) {
|
|
25506
|
+
host.append(node);
|
|
25507
|
+
return;
|
|
25508
|
+
}
|
|
25509
|
+
const range = sel.getRangeAt(0);
|
|
25510
|
+
range.deleteContents();
|
|
25511
|
+
range.insertNode(node);
|
|
25512
|
+
range.setStartAfter(node);
|
|
25513
|
+
range.collapse(true);
|
|
25514
|
+
sel.removeAllRanges();
|
|
25515
|
+
sel.addRange(range);
|
|
25516
|
+
}
|
|
25517
|
+
// Simple, safe-ish inflater. Extend as you add features.
|
|
25518
|
+
#inflateFromLiquid(liquid) {
|
|
25519
|
+
if (!liquid)
|
|
25520
|
+
return '';
|
|
25521
|
+
// 1) Variables → chips (name only; braces via CSS ::before/::after)
|
|
25522
|
+
let html = liquid.replace(/\{\{\s*([a-zA-Z0-9_.\[\]]+)\s*\}\}/g, (_m, name) => `<span class="dg-chip" contenteditable="false" data-token="${name}">${name}</span>`);
|
|
25523
|
+
// 2) Loops → blocks (single-level, non-greedy body)
|
|
25524
|
+
html = html.replace(/\{%\s*for\s+(\w+)\s+in\s+([\w.]+)\s*%\}([\s\S]*?)\{%\s*endfor\s*%\}/g, (_m, v, src, body) => `<div class="dg-loop" data-source="${src}" data-var="${v}">
|
|
25525
|
+
<div class="dg-loop__label">Repeat: ${src} as ${v}</div>
|
|
25526
|
+
<div class="dg-loop__body" contenteditable="true">${body}</div>
|
|
25527
|
+
</div>`);
|
|
25528
|
+
// 3) If → block
|
|
25529
|
+
html = html.replace(/\{%\s*if\s+(.+?)\s*%\}([\s\S]*?)\{%\s*endif\s*%\}/g, (_m, expr, thenBody) => `<div class="dg-if" data-expr="${expr}">
|
|
25530
|
+
<div class="dg-if__label">If: ${expr}</div>
|
|
25531
|
+
<div class="dg-if__then" contenteditable="true">${thenBody}</div>
|
|
25532
|
+
</div>`);
|
|
25533
|
+
return html;
|
|
25534
|
+
}
|
|
25535
|
+
// Optional: unify chip internals if you ever had mixed structures
|
|
25536
|
+
#normalizeChips(host) {
|
|
25537
|
+
host.querySelectorAll('.dg-chip').forEach(chip => {
|
|
25538
|
+
const name = chip.dataset['token'] ?? chip.textContent?.trim() ?? '';
|
|
25539
|
+
chip.textContent = name; // name only; braces via CSS
|
|
25540
|
+
});
|
|
25541
|
+
}
|
|
25542
|
+
#normalizeDesignDom(root) {
|
|
25543
|
+
// turn empty editor lines into a single <p><br></p>
|
|
25544
|
+
root.querySelectorAll('div').forEach(d => {
|
|
25545
|
+
// unwrap single-line divs to <p>
|
|
25546
|
+
if (d.childNodes.length === 1 && d.firstChild?.nodeName === 'BR') {
|
|
25547
|
+
const p = document.createElement('p');
|
|
25548
|
+
d.replaceWith(p);
|
|
25549
|
+
p.appendChild(document.createElement('br'));
|
|
25550
|
+
}
|
|
25551
|
+
});
|
|
25552
|
+
// optional: collapse consecutive <br> pairs, trim leading/trailing breaks
|
|
25553
|
+
}
|
|
25554
|
+
// Save current caret offset (relative to the root element's textContent)
|
|
25555
|
+
#saveCaretOffset(root) {
|
|
25556
|
+
const sel = getSelection();
|
|
25557
|
+
if (!sel || sel.rangeCount === 0)
|
|
25558
|
+
return 0;
|
|
25559
|
+
const range = sel.getRangeAt(0);
|
|
25560
|
+
const preRange = range.cloneRange();
|
|
25561
|
+
preRange.selectNodeContents(root);
|
|
25562
|
+
preRange.setEnd(range.endContainer, range.endOffset);
|
|
25563
|
+
return preRange.toString().length; // character count to caret
|
|
25564
|
+
}
|
|
25565
|
+
// Restore caret to a character offset within root
|
|
25566
|
+
#restoreCaret(root, offset) {
|
|
25567
|
+
// Clamp offset
|
|
25568
|
+
const target = Math.max(0, Math.min(offset, root.textContent?.length ?? 0));
|
|
25569
|
+
// Walk text nodes to find the position
|
|
25570
|
+
const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null);
|
|
25571
|
+
let remaining = target;
|
|
25572
|
+
let node = walker.nextNode();
|
|
25573
|
+
while (node) {
|
|
25574
|
+
const len = node.nodeValue?.length ?? 0;
|
|
25575
|
+
if (remaining <= len) {
|
|
25576
|
+
// Place caret here
|
|
25577
|
+
const range = document.createRange();
|
|
25578
|
+
range.setStart(node, remaining);
|
|
25579
|
+
range.collapse(true);
|
|
25580
|
+
const sel = getSelection();
|
|
25581
|
+
if (sel) {
|
|
25582
|
+
sel.removeAllRanges();
|
|
25583
|
+
sel.addRange(range);
|
|
25584
|
+
}
|
|
25585
|
+
return;
|
|
25586
|
+
}
|
|
25587
|
+
remaining -= len;
|
|
25588
|
+
node = walker.nextNode();
|
|
25589
|
+
}
|
|
25590
|
+
// Fallback: place at end if we didn't find an exact spot
|
|
25591
|
+
const range = document.createRange();
|
|
25592
|
+
range.selectNodeContents(root);
|
|
25593
|
+
range.collapse(false);
|
|
25594
|
+
const sel = getSelection();
|
|
25595
|
+
if (sel) {
|
|
25596
|
+
sel.removeAllRanges();
|
|
25597
|
+
sel.addRange(range);
|
|
25598
|
+
}
|
|
25599
|
+
}
|
|
25600
|
+
// ===== History helpers =====
|
|
25601
|
+
#pushHistorySoon() {
|
|
25602
|
+
clearTimeout(this.#historyTimer);
|
|
25603
|
+
this.#historyTimer = setTimeout(() => {
|
|
25604
|
+
const host = this.$designRef().nativeElement;
|
|
25605
|
+
this.#history.push({ html: host.innerHTML, caret: this.#saveCaretOffset(host) });
|
|
25606
|
+
// cap history
|
|
25607
|
+
if (this.#history.length > 100)
|
|
25608
|
+
this.#history.shift();
|
|
25609
|
+
// new action invalidates redo
|
|
25610
|
+
this.#future = [];
|
|
25611
|
+
this.#afterHistoryChange();
|
|
25612
|
+
}, 150);
|
|
25613
|
+
}
|
|
25614
|
+
#afterHistoryChange() {
|
|
25615
|
+
this.$canUndo.set(this.#history.length > 0);
|
|
25616
|
+
this.$canRedo.set(this.#future.length > 0);
|
|
25617
|
+
this.cdr.markForCheck();
|
|
25618
|
+
}
|
|
25619
|
+
// ===== Images =====
|
|
25620
|
+
#insertImageFile(e) {
|
|
25621
|
+
const file = e.target.files?.[0];
|
|
25622
|
+
if (!file)
|
|
25623
|
+
return;
|
|
25624
|
+
const url = URL.createObjectURL(file);
|
|
25625
|
+
const img = new Image();
|
|
25626
|
+
img.src = url;
|
|
25627
|
+
img.alt = file.name;
|
|
25628
|
+
img.style.maxWidth = '100%';
|
|
25629
|
+
this.#insertNode(img);
|
|
25630
|
+
this.#pushHistorySoon();
|
|
25631
|
+
this.#syncValueFromDom();
|
|
25632
|
+
}
|
|
25633
|
+
#syncValueFromDom() {
|
|
25634
|
+
const host = this.$designRef()?.nativeElement;
|
|
25635
|
+
if (!host)
|
|
25636
|
+
return;
|
|
25637
|
+
this.#normalizeDesignDom(host);
|
|
25638
|
+
const liquid = this.#serialize(host);
|
|
25639
|
+
this.value = liquid;
|
|
25640
|
+
this.onChange(liquid);
|
|
25641
|
+
}
|
|
25642
|
+
#serialize(root) {
|
|
25643
|
+
let out = '';
|
|
25644
|
+
const visit = (node) => {
|
|
25645
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
25646
|
+
out += node.textContent ?? '';
|
|
25647
|
+
return;
|
|
25648
|
+
}
|
|
25649
|
+
const el = node;
|
|
25650
|
+
if (el.matches('.dg-chip')) {
|
|
25651
|
+
out += `{{ ${el.dataset['token']} }}`;
|
|
25652
|
+
return;
|
|
25653
|
+
}
|
|
25654
|
+
if (el.matches('.dg-loop')) {
|
|
25655
|
+
const src = el.dataset['source'] ?? 'items';
|
|
25656
|
+
const v = el.dataset['var'] ?? 'it';
|
|
25657
|
+
out += `{% for ${v} in ${src} %}`;
|
|
25658
|
+
el.querySelector('.dg-loop__body')?.childNodes.forEach(visit);
|
|
25659
|
+
out += `{% endfor %}`;
|
|
25660
|
+
return;
|
|
25661
|
+
}
|
|
25662
|
+
if (el.matches('.dg-if')) {
|
|
25663
|
+
const expr = el.dataset['expr'] ?? 'true';
|
|
25664
|
+
out += `{% if ${expr} %}`;
|
|
25665
|
+
el.querySelector('.dg-if__then')?.childNodes.forEach(visit);
|
|
25666
|
+
out += `{% endif %}`;
|
|
25667
|
+
return;
|
|
25668
|
+
}
|
|
25669
|
+
if (el.matches('.dg-pagebreak')) {
|
|
25670
|
+
out += `<div style="page-break-before: always;"></div>`;
|
|
25671
|
+
return;
|
|
25672
|
+
}
|
|
25673
|
+
const tag = el.tagName.toLowerCase();
|
|
25674
|
+
const attrs = ['class', 'style']
|
|
25675
|
+
.map(a => el.getAttribute(a) ? ` ${a}="${el.getAttribute(a)}"` : '')
|
|
25676
|
+
.join('');
|
|
25677
|
+
out += `<${tag}${attrs}>`;
|
|
25678
|
+
el.childNodes.forEach(visit);
|
|
25679
|
+
out += `</${tag}>`;
|
|
25680
|
+
};
|
|
25681
|
+
root.childNodes.forEach(visit);
|
|
25682
|
+
return out;
|
|
25683
|
+
}
|
|
25684
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreLiquidWysiwygComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25685
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreLiquidWysiwygComponent, isStandalone: true, selector: "core-liquid-wysiwyg", inputs: { $liquidOptions: { classPropertyName: "$liquidOptions", publicName: "$liquidOptions", isSignal: true, isRequired: false, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: false, transformFunction: null }, $readonly: { classPropertyName: "$readonly", publicName: "$readonly", isSignal: true, isRequired: false, transformFunction: null }, getByIdObject$: { classPropertyName: "getByIdObject$", publicName: "getByIdObject$", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null } }, providers: [
|
|
25686
|
+
{
|
|
25687
|
+
provide: NG_VALUE_ACCESSOR,
|
|
25688
|
+
multi: true,
|
|
25689
|
+
useExisting: forwardRef(() => CoreLiquidWysiwygComponent),
|
|
25690
|
+
}
|
|
25691
|
+
], viewQueries: [{ propertyName: "$designRef", first: true, predicate: ["design"], descendants: true, isSignal: true }, { propertyName: "$sourceRef", first: true, predicate: ["source"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"core-liquid-wysiwyg-container\">\r\n\r\n <!-- <div class=\"dg-toolbar\" role=\"toolbar\" aria-label=\"DocGen tools\">\r\n <select #fld class=\"form-control dg-select\"\r\n (change)=\"insertChip(fld.value); fld.selectedIndex = 0\">\r\n <option value=\"\">Insert field\u2026</option>\r\n @for (f of ($liquidOptions().fields ?? []); track $index) {\r\n <option [value]=\"f\">{{'{{ ' + f + ' }}'}}</option>\r\n }\r\n </select>\r\n\r\n <button type=\"button\" class=\"dg-btn\" (click)=\"onInsertLoop()\">+ Loop\u2026</button>\r\n <button type=\"button\" class=\"dg-btn\" (click)=\"onInsertIf()\">+ Condition\u2026</button>\r\n <button type=\"button\" class=\"dg-btn\" (click)=\"onInsertPageBreak()\">Page Break</button>\r\n\r\n <span class=\"dg-spacer\"></span>\r\n\r\n <button type=\"button\" class=\"dg-btn ghost\" (click)=\"onToggleSource()\">\r\n {{ $showSource() ? 'Design' : 'Source' }}\r\n </button>\r\n </div> -->\r\n\r\n <core-docgen-toolbar\r\n [$fields]=\"$liquidOptions().fields!\"\r\n [$disabled]=\"disabled\"\r\n [$mode]=\"$showSource() ? 'source' : 'design'\"\r\n [$canUndo]=\"$canUndo()\"\r\n [$canRedo]=\"$canRedo()\"\r\n\r\n (undo)=\"onUndo()\"\r\n (redo)=\"onRedo()\"\r\n (formatBlock)=\"applyBlock($event)\"\r\n (bold)=\"wrapInline('strong')\"\r\n (italic)=\"wrapInline('em')\"\r\n (code)=\"wrapInline('code')\"\r\n (clear)=\"clearFormatting()\"\r\n\r\n (link)=\"openLinkDialog()\"\r\n (imageUpload)=\"triggerImageUpload()\"\r\n (imageFromUrl)=\"openImageUrlDialog()\"\r\n\r\n (insertTable)=\"insertTable($event)\"\r\n (listToggle)=\"toggleList($event)\"\r\n (align)=\"setAlign($event)\"\r\n (quote)=\"insertQuote()\"\r\n (hr)=\"insertHr()\"\r\n (pageBreak)=\"onInsertPageBreak()\"\r\n\r\n (insertField)=\"insertChip($event)\"\r\n (insertLoop)=\"onInsertLoop()\"\r\n (insertCondition)=\"onInsertIf()\"\r\n\r\n (toggleMode)=\"onToggleSource()\"\r\n (preview)=\"previewNow()\"\r\n />\r\n\r\n <!-- Design surface (active only when !$showSource()) -->\r\n <div #design\r\n class=\"dg-design\"\r\n [style.minHeight]=\"$heightPx()\"\r\n [attr.contenteditable]=\"(!$showSource() && !disabled && !readonly && !$readonly()) ? 'true' : 'false'\"\r\n [class.dg-locked]=\"$showSource()\"\r\n [attr.aria-hidden]=\"$showSource()\"\r\n (input)=\"!$showSource() && onDesignInput()\"\r\n (blur)=\"!$showSource() && onDesignBlur()\"\r\n (paste)=\"!$showSource() && onDesignPaste($event)\"\r\n aria-label=\"Template editor\">\r\n </div>\r\n\r\n <!-- Source view (active only when $showSource()) -->\r\n @if ($showSource()) {\r\n <textarea #source\r\n class=\"dg-source\"\r\n [style.minHeight]=\"$heightPx()\"\r\n [readOnly]=\"!$showSource() || disabled || readonly || $readonly()\"\r\n [value]=\"value\"\r\n (input)=\"onSourceInput($event)\"></textarea>\r\n }\r\n\r\n</div>", styles: [".core-liquid-wysiwyg-container .dg-toolbar{display:flex;gap:8px;align-items:center;padding:6px 0;overflow-x:auto}.core-liquid-wysiwyg-container .dg-select,.core-liquid-wysiwyg-container .dg-btn{border:1px solid #ccc;background:#fff;padding:6px 10px}.core-liquid-wysiwyg-container .dg-select{max-width:220px;min-width:0}.core-liquid-wysiwyg-container .dg-btn.ghost{background:#fff}.core-liquid-wysiwyg-container .dg-spacer{flex:1}.core-liquid-wysiwyg-container .dg-design{border:1px solid #ddd;padding:10px;background:#fff;white-space:pre-wrap;word-break:break-word}.core-liquid-wysiwyg-container .dg-source{width:100%;border:1px solid #ddd;padding:10px;background:#fff}.core-liquid-wysiwyg-container .dg-chip{display:inline-flex;align-items:center;white-space:nowrap;padding:2px 10px;border-radius:999px;border:1px solid #cfe0ff;background:#eef4ff;color:#0b3d91;font:600 12px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0 2px;vertical-align:baseline;-webkit-user-select:none;user-select:none;cursor:default}.core-liquid-wysiwyg-container .dg-chip:before,.core-liquid-wysiwyg-container .dg-chip:after{opacity:.75;color:#6b7da6;font-weight:700;letter-spacing:.4px}.core-liquid-wysiwyg-container .dg-chip:before{content:\"{{\";margin-right:6px}.core-liquid-wysiwyg-container .dg-chip:after{content:\"}}\";margin-left:6px}.core-liquid-wysiwyg-container .dg-chip:focus-visible{outline:2px solid #2b6cb0;outline-offset:2px}.core-liquid-wysiwyg-container .dg-chip:hover{border-color:#a9c6ff}.core-liquid-wysiwyg-container .dg-chip[aria-disabled=true]{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}.core-liquid-wysiwyg-container .dg-chip--unknown{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}@media (prefers-color-scheme: dark){.core-liquid-wysiwyg-container .dg-chip{background:#20324f;border-color:#2b3e62;color:#cfe3ff}.core-liquid-wysiwyg-container .dg-chip__braces{color:#8ea8d8}.core-liquid-wysiwyg-container .dg-chip:focus-visible{outline-color:#7aa2ff}.core-liquid-wysiwyg-container .dg-chip--unknown{background:#3a1f22;border-color:#5b2b31;color:#ffb4b9}}.core-liquid-wysiwyg-container .dg-chip:first-child{margin-left:0}.core-liquid-wysiwyg-container .dg-loop,.core-liquid-wysiwyg-container .dg-if{border:1px solid #cfd8dc;border-radius:8px;padding:6px;margin:8px 0;background:#f8fafc}.core-liquid-wysiwyg-container .dg-loop__label,.core-liquid-wysiwyg-container .dg-if__label{font:700 12px/1 system-ui;color:#37474f;margin-bottom:4px}.core-liquid-wysiwyg-container .dg-pagebreak{border:1px dashed #bbb;color:#777;text-align:center;padding:6px;margin:8px 0}\n"], dependencies: [{ kind: "component", type: CoreDocgenToolbarComponent, selector: "core-docgen-toolbar", inputs: ["$fields", "$disabled", "$mode", "$canUndo", "$canRedo"], outputs: ["undo", "redo", "formatBlock", "bold", "italic", "code", "clear", "link", "imageUpload", "imageFromUrl", "insertTable", "listToggle", "align", "quote", "hr", "pageBreak", "insertField", "insertLoop", "insertCondition", "toggleMode", "preview", "fgColor", "bgColor", "indent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
25692
|
+
}
|
|
25693
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreLiquidWysiwygComponent, decorators: [{
|
|
25694
|
+
type: Component,
|
|
25695
|
+
args: [{ selector: 'core-liquid-wysiwyg', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
25696
|
+
CoreDocgenToolbarComponent,
|
|
25697
|
+
], encapsulation: ViewEncapsulation.None, providers: [
|
|
25698
|
+
{
|
|
25699
|
+
provide: NG_VALUE_ACCESSOR,
|
|
25700
|
+
multi: true,
|
|
25701
|
+
useExisting: forwardRef(() => CoreLiquidWysiwygComponent),
|
|
25702
|
+
}
|
|
25703
|
+
], template: "<div class=\"core-liquid-wysiwyg-container\">\r\n\r\n <!-- <div class=\"dg-toolbar\" role=\"toolbar\" aria-label=\"DocGen tools\">\r\n <select #fld class=\"form-control dg-select\"\r\n (change)=\"insertChip(fld.value); fld.selectedIndex = 0\">\r\n <option value=\"\">Insert field\u2026</option>\r\n @for (f of ($liquidOptions().fields ?? []); track $index) {\r\n <option [value]=\"f\">{{'{{ ' + f + ' }}'}}</option>\r\n }\r\n </select>\r\n\r\n <button type=\"button\" class=\"dg-btn\" (click)=\"onInsertLoop()\">+ Loop\u2026</button>\r\n <button type=\"button\" class=\"dg-btn\" (click)=\"onInsertIf()\">+ Condition\u2026</button>\r\n <button type=\"button\" class=\"dg-btn\" (click)=\"onInsertPageBreak()\">Page Break</button>\r\n\r\n <span class=\"dg-spacer\"></span>\r\n\r\n <button type=\"button\" class=\"dg-btn ghost\" (click)=\"onToggleSource()\">\r\n {{ $showSource() ? 'Design' : 'Source' }}\r\n </button>\r\n </div> -->\r\n\r\n <core-docgen-toolbar\r\n [$fields]=\"$liquidOptions().fields!\"\r\n [$disabled]=\"disabled\"\r\n [$mode]=\"$showSource() ? 'source' : 'design'\"\r\n [$canUndo]=\"$canUndo()\"\r\n [$canRedo]=\"$canRedo()\"\r\n\r\n (undo)=\"onUndo()\"\r\n (redo)=\"onRedo()\"\r\n (formatBlock)=\"applyBlock($event)\"\r\n (bold)=\"wrapInline('strong')\"\r\n (italic)=\"wrapInline('em')\"\r\n (code)=\"wrapInline('code')\"\r\n (clear)=\"clearFormatting()\"\r\n\r\n (link)=\"openLinkDialog()\"\r\n (imageUpload)=\"triggerImageUpload()\"\r\n (imageFromUrl)=\"openImageUrlDialog()\"\r\n\r\n (insertTable)=\"insertTable($event)\"\r\n (listToggle)=\"toggleList($event)\"\r\n (align)=\"setAlign($event)\"\r\n (quote)=\"insertQuote()\"\r\n (hr)=\"insertHr()\"\r\n (pageBreak)=\"onInsertPageBreak()\"\r\n\r\n (insertField)=\"insertChip($event)\"\r\n (insertLoop)=\"onInsertLoop()\"\r\n (insertCondition)=\"onInsertIf()\"\r\n\r\n (toggleMode)=\"onToggleSource()\"\r\n (preview)=\"previewNow()\"\r\n />\r\n\r\n <!-- Design surface (active only when !$showSource()) -->\r\n <div #design\r\n class=\"dg-design\"\r\n [style.minHeight]=\"$heightPx()\"\r\n [attr.contenteditable]=\"(!$showSource() && !disabled && !readonly && !$readonly()) ? 'true' : 'false'\"\r\n [class.dg-locked]=\"$showSource()\"\r\n [attr.aria-hidden]=\"$showSource()\"\r\n (input)=\"!$showSource() && onDesignInput()\"\r\n (blur)=\"!$showSource() && onDesignBlur()\"\r\n (paste)=\"!$showSource() && onDesignPaste($event)\"\r\n aria-label=\"Template editor\">\r\n </div>\r\n\r\n <!-- Source view (active only when $showSource()) -->\r\n @if ($showSource()) {\r\n <textarea #source\r\n class=\"dg-source\"\r\n [style.minHeight]=\"$heightPx()\"\r\n [readOnly]=\"!$showSource() || disabled || readonly || $readonly()\"\r\n [value]=\"value\"\r\n (input)=\"onSourceInput($event)\"></textarea>\r\n }\r\n\r\n</div>", styles: [".core-liquid-wysiwyg-container .dg-toolbar{display:flex;gap:8px;align-items:center;padding:6px 0;overflow-x:auto}.core-liquid-wysiwyg-container .dg-select,.core-liquid-wysiwyg-container .dg-btn{border:1px solid #ccc;background:#fff;padding:6px 10px}.core-liquid-wysiwyg-container .dg-select{max-width:220px;min-width:0}.core-liquid-wysiwyg-container .dg-btn.ghost{background:#fff}.core-liquid-wysiwyg-container .dg-spacer{flex:1}.core-liquid-wysiwyg-container .dg-design{border:1px solid #ddd;padding:10px;background:#fff;white-space:pre-wrap;word-break:break-word}.core-liquid-wysiwyg-container .dg-source{width:100%;border:1px solid #ddd;padding:10px;background:#fff}.core-liquid-wysiwyg-container .dg-chip{display:inline-flex;align-items:center;white-space:nowrap;padding:2px 10px;border-radius:999px;border:1px solid #cfe0ff;background:#eef4ff;color:#0b3d91;font:600 12px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0 2px;vertical-align:baseline;-webkit-user-select:none;user-select:none;cursor:default}.core-liquid-wysiwyg-container .dg-chip:before,.core-liquid-wysiwyg-container .dg-chip:after{opacity:.75;color:#6b7da6;font-weight:700;letter-spacing:.4px}.core-liquid-wysiwyg-container .dg-chip:before{content:\"{{\";margin-right:6px}.core-liquid-wysiwyg-container .dg-chip:after{content:\"}}\";margin-left:6px}.core-liquid-wysiwyg-container .dg-chip:focus-visible{outline:2px solid #2b6cb0;outline-offset:2px}.core-liquid-wysiwyg-container .dg-chip:hover{border-color:#a9c6ff}.core-liquid-wysiwyg-container .dg-chip[aria-disabled=true]{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}.core-liquid-wysiwyg-container .dg-chip--unknown{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}@media (prefers-color-scheme: dark){.core-liquid-wysiwyg-container .dg-chip{background:#20324f;border-color:#2b3e62;color:#cfe3ff}.core-liquid-wysiwyg-container .dg-chip__braces{color:#8ea8d8}.core-liquid-wysiwyg-container .dg-chip:focus-visible{outline-color:#7aa2ff}.core-liquid-wysiwyg-container .dg-chip--unknown{background:#3a1f22;border-color:#5b2b31;color:#ffb4b9}}.core-liquid-wysiwyg-container .dg-chip:first-child{margin-left:0}.core-liquid-wysiwyg-container .dg-loop,.core-liquid-wysiwyg-container .dg-if{border:1px solid #cfd8dc;border-radius:8px;padding:6px;margin:8px 0;background:#f8fafc}.core-liquid-wysiwyg-container .dg-loop__label,.core-liquid-wysiwyg-container .dg-if__label{font:700 12px/1 system-ui;color:#37474f;margin-bottom:4px}.core-liquid-wysiwyg-container .dg-pagebreak{border:1px dashed #bbb;color:#777;text-align:center;padding:6px;margin:8px 0}\n"] }]
|
|
25704
|
+
}], ctorParameters: () => [], propDecorators: { getByIdObject$: [{
|
|
25705
|
+
type: Input
|
|
25706
|
+
}], placeholder: [{
|
|
25707
|
+
type: Input
|
|
25708
|
+
}] } });
|
|
25709
|
+
|
|
25054
25710
|
class CoreControlComponent extends BaseComponent {
|
|
25055
25711
|
constructor(mls, alertService) {
|
|
25056
25712
|
super(mls);
|
|
@@ -25188,7 +25844,7 @@ class CoreControlComponent extends BaseComponent {
|
|
|
25188
25844
|
}
|
|
25189
25845
|
}
|
|
25190
25846
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlComponent, deps: [{ token: MultiLanguageService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25191
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlComponent, isStandalone: true, selector: "core-control", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, host: { listeners: { "window:click": "onWindowClick()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"FORM_ARRAY\") {\r\n <core-form-array\r\n [formArray]=\"formArray\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [checkError$]=\"checkError$\">\r\n </core-form-array>\r\n }\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n\r\n <!-- <input *ngIf=\"control.type==='calculated'\"\r\n [formControlName]=\"control.field\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [readonly]=\"true\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"true\" /> -->\r\n\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [tableHeight]=\"control.tableHeight ?? 300\"\r\n [liteMode]=\"control.liteMode ?? false\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreFormArrayComponent, selector: "core-form-array", inputs: ["formArray", "config", "checkError$"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow", "placeholder", "upFlag$", "downFlag$"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["padding", "placeholder", "tableHeight", "liteMode", "formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical", "columnCount", "gapY", "defaultValue"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators", "placeholder"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "relativeMode"] }, { kind: "component", type: CoreTopicPickerComponent, selector: "core-topic-picker", inputs: ["popupHeight", "getByIdApi"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "backgroundColor", "hold$"] }] }); }
|
|
25847
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlComponent, isStandalone: true, selector: "core-control", inputs: { control: "control", form: "form", checkError$: "checkError$", rangeLimit: "rangeLimit" }, host: { listeners: { "window:click": "onWindowClick()" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"FORM_ARRAY\") {\r\n <core-form-array\r\n [formArray]=\"formArray\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [checkError$]=\"checkError$\">\r\n </core-form-array>\r\n }\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n\r\n <!-- <input *ngIf=\"control.type==='calculated'\"\r\n [formControlName]=\"control.field\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [readonly]=\"true\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"true\" /> -->\r\n\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [tableHeight]=\"control.tableHeight ?? 300\"\r\n [liteMode]=\"control.liteMode ?? false\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n @case (\"LIQUID_WYSIWYG\") {\r\n <core-liquid-wysiwyg\r\n [formControlName]=\"control.field\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [$liquidOptions]=\"control.liquidOptions!\"\r\n />\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreFormArrayComponent, selector: "core-form-array", inputs: ["formArray", "config", "checkError$"] }, { kind: "component", type: CoreDropdownComponent, selector: "core-dropdown", inputs: ["getByIdObject$", "paramMode", "shownFrom", "options$", "height", "placeholder", "loading", "warningDisable", "clearDisable", "fitHeightWithItemCount", "itemHeight", "optionApiDriven", "optionApi", "optionHttpVerb", "optionHttpPayload", "optionValueFrom", "optionTextFrom"] }, { kind: "component", type: CoreListComponent, selector: "core-list", inputs: ["title", "height", "options", "placeholder"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreFormControlSeekerComponent, selector: "core-form-control-seeker", inputs: ["title", "showPageHeader", "preDefinedOuterParam$", "preDefinedOuterFilter$", "click$", "getByIdObject$", "getByIdApi", "paramMode", "multiMode", "objectList$", "useTheseColumns", "hideOrgTree", "excludedColumns", "excludeExistingList", "placeholder", "sourceSpaceHeight", "indirectBinding", "bindGridIdTo", "multiModeExtendedColumns", "multiModeExtendedSections", "editBufferData$", "multiModeTableHeight", "multiModeRowHeight", "seekerSourceType", "boundFrom", "shownFrom", "alsoBindTo", "seekerVerifyIgnore", "disabledDoubleClick"], outputs: ["onDoubleClick", "selectedDataChange", "fullValueRowChange"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreFileUploaderComponent, selector: "core-file-uploader", inputs: ["uploadFileType", "fileDataControlName", "fileNameControlName", "fileTypeControlName", "avatarSize", "defaultAvatar", "hidePreview", "verticalMode"] }, { kind: "component", type: CoreAttachmentComponent, selector: "core-attachment", inputs: ["assignTo", "readonly", "valueToShow", "placeholder", "upFlag$", "downFlag$"] }, { kind: "component", type: CoreGridBufferComponent, selector: "core-grid-buffer", inputs: ["padding", "placeholder", "tableHeight", "liteMode", "formSections", "gridColumns"], outputs: ["onBufferFormCreated"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "placeholder", "readonly", "disabled"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreRadioGroupComponent, selector: "core-radio-group", inputs: ["options$", "vertical", "columnCount", "gapY", "defaultValue"] }, { kind: "component", type: CoreMccComponent, selector: "core-mcc", inputs: ["height", "columns", "shownFrom", "apiDefinition", "getByIdApi", "outerParam$", "selectedRow$", "outerFilterOperators", "outerInOperators", "placeholder"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreCurrencyInputComponent, selector: "core-currency-input", inputs: ["currencySign", "placeholder"], outputs: ["onLeftFocus"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "relativeMode"] }, { kind: "component", type: CoreTopicPickerComponent, selector: "core-topic-picker", inputs: ["popupHeight", "getByIdApi"] }, { kind: "component", type: CoreIosSwitcherComponent, selector: "core-ios-switcher", inputs: ["bgColor", "showOnOffText", "width", "height", "readonly"] }, { kind: "component", type: CoreLiquidWysiwygComponent, selector: "core-liquid-wysiwyg", inputs: ["$liquidOptions", "$height", "$readonly", "getByIdObject$", "placeholder"] }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "backgroundColor", "hold$"] }] }); }
|
|
25192
25848
|
}
|
|
25193
25849
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlComponent, decorators: [{
|
|
25194
25850
|
type: Component,
|
|
@@ -25219,8 +25875,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
25219
25875
|
CoreShiftCollectionComponent,
|
|
25220
25876
|
CoreTopicPickerComponent,
|
|
25221
25877
|
CoreIosSwitcherComponent,
|
|
25878
|
+
CoreLiquidWysiwygComponent,
|
|
25222
25879
|
HtmlTooltipDirective
|
|
25223
|
-
], template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"FORM_ARRAY\") {\r\n <core-form-array\r\n [formArray]=\"formArray\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [checkError$]=\"checkError$\">\r\n </core-form-array>\r\n }\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n\r\n <!-- <input *ngIf=\"control.type==='calculated'\"\r\n [formControlName]=\"control.field\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [readonly]=\"true\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"true\" /> -->\r\n\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [tableHeight]=\"control.tableHeight ?? 300\"\r\n [liteMode]=\"control.liteMode ?? false\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}\n"] }]
|
|
25880
|
+
], template: "<div class=\"core-control-container\">\r\n\r\n <div [formGroup]=\"form\" [class.hidden]=\"!!control.hidden\">\r\n\r\n @if (!control.headless!) {\r\n <label [class]=\"'control-label' + (required ? ' required' : '')\" [attr.for]=\"control.field\"\r\n [class.d-none]=\"!!control.hidden\"\r\n [class.avatar-label]=\"control.uploadFileType==='IMAGE_AVATAR'\" [appTooltip]=\"control.tooltip! | translate: lang\" \r\n [htmlTooltip]=\"control.htmlTooltip!\"\r\n [backgroundColor]=\"'white'\"\r\n [ngStyle]=\"{\r\n display: 'inline-block'\r\n }\">\r\n {{(control.controlType!=='CHECKBOX' && control.controlType!=='BUTTON') ? (control.label | translate: lang) : ''}}\r\n </label>\r\n\r\n @if (!!control.hint! && control.controlType !== 'CHECKBOX') {\r\n <i class=\"feather-help-circle\" [appTooltip]=\"control.hint!\" [showAnyway]=\"true\" [ngStyle]=\"{\r\n display: 'inline-block',\r\n marginLeft: '2px'\r\n }\" [class.d-none]=\"!!control.hidden\"></i>\r\n }\r\n }\r\n\r\n <!-- START: FORM-CONTROL SESSION-->\r\n\r\n <ng-container>\r\n @switch (control.controlType) {\r\n @case (\"FORM_ARRAY\") {\r\n <core-form-array\r\n [formArray]=\"formArray\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [checkError$]=\"checkError$\">\r\n </core-form-array>\r\n }\r\n @case (\"CALCULATED\") {\r\n <div class=\"calculated-view\" [htmlTooltip]=\"calculatedControlInfo\" [tooltipContext]=\"{control: control}\" [backgroundColor]=\"'#fff'\">\r\n <i class=\"feather-box\"></i><span>{{ control.field! }}</span>\r\n </div>\r\n }\r\n @case (\"TEXTBOX\") {\r\n\r\n <input *ngIf=\"control.type === 'date'\"\r\n [formControlName]=\"control.field\"\r\n type=\"date\"\r\n useValueAsDate\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'time'\"\r\n [formControlName]=\"control.field\"\r\n type=\"time\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"control.type === 'number'\"\r\n [formControlName]=\"control.field\"\r\n type=\"number\"\r\n step=\"{{ control.step || 1 }}\"\r\n class=\"form-control\"\r\n style=\"text-align: right;\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n \r\n <input *ngIf=\"['string', 'text', 'email', 'url', 'password'].includes(control.type || 'text')\"\r\n [formControlName]=\"control.field\"\r\n [type]=\"control.type\"\r\n class=\"form-control\"\r\n [readonly]=\"control.readonly\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n\r\n <!-- <input *ngIf=\"control.type==='calculated'\"\r\n [formControlName]=\"control.field\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n [readonly]=\"true\"\r\n [placeholder]=\"control.placeholder || ''\"\r\n [value]=\"form.get(control.field)?.value | tableCell: control.pipe : lang\"\r\n [attr.pattern]=\"getPattern(control) || null\"\r\n [appTooltip]=\"form.get(control.field)?.value\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [class.form-control-disabled]=\"true\" /> -->\r\n\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [formControlName]=\"control.field\" class=\"form-control\" [readonly]=\"control.readonly\" [placeholder]=\"control.placeholder! || ''\"></textarea>\r\n }\r\n @case (\"CHECKBOX\") {\r\n <core-checkbox [formControlName]=\"control.field\" [text]=\"control.label\"\r\n [inputValue]=\"control.value\" [tooltip]=\"control.hint!\"></core-checkbox>\r\n }\r\n @case (\"IOS_SWITCHER\") {\r\n <div class=\"gap-for-ios-switcher\"></div>\r\n <core-ios-switcher [formControlName]=\"control.field\" />\r\n }\r\n @case (\"MCC\") {\r\n <core-mcc [formControlName]=\"control.field\" [columns]=\"control.columns!\" [shownFrom]=\"control.shownFrom!\" \r\n [apiDefinition]=\"control.apiDefinition!\" [getByIdApi]=\"control.getByIdApi!\" [selectedRow$]=\"control.selectedRow$!\"\r\n [outerParam$]=\"control.outerParam$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker [formControlName]=\"control.field\" [showPlaceholder]=\"control.showPlaceholder!\" [rangeLimit]=\"control.rangeLimit!\" [popupAlign]=\"control.popupAlign!\" [placeholder]=\"control.placeholder! || ''\"></core-date-picker>\r\n }\r\n\r\n @case (\"DROPDOWN\") {\r\n @if (!!control.dropdownOptions$) {\r\n <core-dropdown \r\n [formControlName]=\"control.field\" \r\n [options$]=\"control.dropdownOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" \r\n [shownFrom]=\"control.shownFrom!\" \r\n [placeholder]=\"control.placeholder! || ''\"\r\n\r\n [optionApiDriven]=\"control.optionApiDriven!\"\r\n [optionApi]=\"control.optionApi!\"\r\n [optionHttpVerb]=\"control.optionHttpVerb!\"\r\n [optionHttpPayload]=\"control.optionHttpPayload!\"\r\n [optionValueFrom]=\"control.optionValueFrom!\"\r\n [optionTextFrom]=\"control.optionTextFrom!\"\r\n ></core-dropdown>\r\n } @else {\r\n No dropdownOptions$ detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [formControlName]=\"control.field\" [options]=\"control.listOptions!\" [placeholder]=\"control.placeholder! || ''\"></core-list>\r\n }\r\n @case (\"CHECKLIST\") {\r\n @if (!!control.checklistOptions$) {\r\n <core-checklist [formControlName]=\"control.field\" [options$]=\"control.checklistOptions$!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\" [shownFrom]=\"control.shownFrom!\" [placeholder]=\"control.placeholder! || ''\"></core-checklist>\r\n }\r\n }\r\n @case (\"FILEUPLOADER\") {\r\n @if (!!control.uploadFileType) {\r\n <core-file-uploader [formControlName]=\"control.field\" [uploadFileType]=\"control.uploadFileType\"\r\n [fileDataControlName]=\"control.fileDataControlName!\"\r\n [fileNameControlName]=\"control.fileNameControlName!\"\r\n [fileTypeControlName]=\"control.fileTypeControlName!\"\r\n [verticalMode]=\"control.verticalMode!\"></core-file-uploader>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [formControlName]=\"control.field\" [assignTo]=\"control.assignTo!\"\r\n [valueToShow]=\"control.valueToShow!\" [placeholder]=\"control.placeholder! || ''\"></core-attachment>\r\n }\r\n @case (\"GRIDBUFFER\") {\r\n @if (!!control.gridBufferFormSections && !!control.gridBufferTableColumns) {\r\n <core-grid-buffer [formControlName]=\"control.field\" [formSections]=\"control.gridBufferFormSections\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [tableHeight]=\"control.tableHeight ?? 300\"\r\n [liteMode]=\"control.liteMode ?? false\"\r\n (onBufferFormCreated)=\"!!control.onBufferFormCreated ? control.onBufferFormCreated($event) : null\"></core-grid-buffer>\r\n }\r\n }\r\n @case (\"ORGTREECHECK\") {\r\n <core-org-tree [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [formControlName]=\"control.field\"\r\n [options$]=\"control.radioGroupOptions$!\"\r\n [vertical]=\"control.verticalMode!\"\r\n ></core-radio-group>\r\n }\r\n @case (\"MONTHSELECTOR\") {\r\n <core-month-selector [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"EMPLOYEE_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [editBufferData$]=\"control.editBufferData$!\"\r\n [indirectBinding]=\"control.indirectBinding!\"\r\n [bindGridIdTo]=\"control.bindGridIdTo!\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"CONTRACT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" [boundFrom]=\"control.boundFrom!\"\r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\" \r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [shownFrom]=\"control.shownFrom!\"\r\n [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WORKING_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\" [formControlName]=\"control.field\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"WAGE_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [formControlName]=\"control.field\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_SEEK\") {\r\n <core-form-control-seeker \r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [objectList$]=\"control.objectList$!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [seekerVerifyIgnore]=\"control.seekerVerifyIgnore!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"POSITION_CONCURRENT_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"FORM_SEEK\") {\r\n <core-form-control-seeker\r\n [excludeExistingList]=\"control.excludeExistingList!\"\r\n [multiMode]=\"control.multiMode!\" [multiModeTableHeight]=\"control.multiModeTableHeight!\" [multiModeRowHeight]=\"control.multiModeRowHeight!\"\r\n [formControlName]=\"control.field\" [alsoBindTo]=\"control.alsoBindTo!\"\r\n [seekerSourceType]=\"control.seekerSourceType!\" \r\n [preDefinedOuterParam$]=\"control.preDefinedOuterParam$!\"\r\n [preDefinedOuterFilter$]=\"control.preDefinedOuterFilter$!\"\r\n [boundFrom]=\"control.boundFrom!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [multiModeExtendedColumns]=\"control.multiModeExtendedColumns!\"\r\n [multiModeExtendedSections]=\"control.multiModeExtendedSections!\"\r\n [multiModeTableHeight]=\"control.multiModeTableHeight!\"\r\n [click$]=\"control.click$\"\r\n [useTheseColumns]=\"control.useTheseColumns!\"\r\n [hideOrgTree]=\"control.hideOrgTree!\"\r\n [sourceSpaceHeight]=\"control.sourceSpaceHeight!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n (selectedDataChange)=\"selectedDataChange($event)\"\r\n (fullValueRowChange)=\"fullValueRowChange($event)\"\r\n ></core-form-control-seeker>\r\n }\r\n @case(\"ORGANIZATION_UNIT_SEEK\") {\r\n <core-form-control-seeker\r\n [formControlName]=\"control.field\" [seekerSourceType]=\"control.seekerSourceType!\"\r\n [boundFrom]=\"control.boundFrom!\" [alsoBindTo]=\"control.alsoBindTo!\" [shownFrom]=\"control.shownFrom!\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [click$]=\"control.click$\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-form-control-seeker>\r\n }\r\n }\r\n }\r\n @case (\"LIQUID_WYSIWYG\") {\r\n <core-liquid-wysiwyg\r\n [formControlName]=\"control.field\"\r\n [getByIdObject$]=\"control.getByIdObject$!\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n [$liquidOptions]=\"control.liquidOptions!\"\r\n />\r\n }\r\n }\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"control.controlType==='BUTTON'\">\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n <div *ngIf=\"!!errors!.length\">\r\n <div class=\"form-control-error\" *ngFor=\"let error of errors\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!!!errors!.length && !!checkError$.value\">\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n <!-- END: ERROR SESSION-->\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<ng-template #calculatedControlInfo let-control=\"control\">\r\n <div class=\"calculated-tooltip-container\">\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Name:</span>\r\n <span class=\"value\">{{ control?.field || 'N/A' }}</span>\r\n </div> \r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Evaluation Mode:</span>\r\n <span class=\"value\">{{ control?.evaluationMode || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Return Type:</span>\r\n <span class=\"value\">{{ control?.returnType || 'N/A' }}</span>\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Depends On:</span>\r\n <span class=\"value\" *ngIf=\"control?.dependsOn?.length > 0; else noDepends\">\r\n <code *ngFor=\"let dep of control?.dependsOn; let last = last\">{{ dep }}<span *ngIf=\"!last\">, </span></code>\r\n </span>\r\n <ng-template #noDepends><em class=\"no-depends\">None</em></ng-template>\r\n </div>\r\n <div *ngIf=\"!!control?.isUnsafe\" class=\"warning\">\r\n \u26A0\uFE0F This script is marked as <strong>unsafe</strong> and will not be executed.\r\n </div>\r\n <div class=\"calculated-field-row\">\r\n <span class=\"label\">Script:</span>\r\n <pre class=\"code-block\">{{ control?.script || 'No script provided.' }}</pre>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".core-control-container{font-size:var(--typo-basic-font-size)!important}.core-control-container .control-label{color:#848484}.core-control-container>div.hidden{display:none}.core-control-container label{color:#464646}.core-control-container label.required:after{content:\"*\";color:#ff040b}.core-control-container label.avatar-label{width:var(--size-file-uploader);display:flex;align-items:center;justify-content:center}.core-control-container input[type=number]{padding-right:12px;position:relative}.core-control-container input[type=number]::-webkit-inner-spin-button{position:absolute;right:.3em;margin-left:.5em}.core-control-container input[type=number]{-moz-appearance:textfield}.core-control-container i.feather-help-circle{color:#848484}.core-control-container .gap-for-ios-switcher{height:5px}.core-control-container .calculated-view{-webkit-user-select:none;user-select:none;cursor:pointer;height:35px;width:160px;background-color:#d8f3dc;color:#1b4332;border:1px solid #95d5b2;border-radius:50px;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:flex-start;font-family:Segoe UI,sans-serif;letter-spacing:.5px;padding:8px}.core-control-container .calculated-view i{font-size:18px;width:18px;height:18px;margin-right:8px}.core-control-container .calculated-view span{width:calc(100% - 26px);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.calculated-tooltip-container{background-color:#fff;border:1px solid #ddd;padding:1rem;border-radius:6px;font-size:14px;color:#333;box-shadow:0 4px 10px #0000000d;max-width:360px}.calculated-tooltip-container .calculated-field-row{margin-bottom:.75rem}.calculated-tooltip-container .label{font-weight:500;color:#555!important;display:inline-block;min-width:140px}.calculated-tooltip-container .value{color:#222!important}.calculated-tooltip-container .warning{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:13px}.calculated-tooltip-container .code-block{background:#f8f9fa;border:1px solid #ddd;padding:.75rem;font-family:monospace;font-size:12px;white-space:pre-wrap;color:#111!important;border-radius:4px;overflow-x:auto}.calculated-tooltip-container .no-depends{color:#888;font-style:italic}.calculated-tooltip-container pre{overflow:hidden}\n"] }]
|
|
25224
25881
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: AlertService }], propDecorators: { control: [{
|
|
25225
25882
|
type: Input
|
|
25226
25883
|
}], form: [{
|
|
@@ -25459,7 +26116,7 @@ class CoreFormComponent {
|
|
|
25459
26116
|
this.buttonClick.emit(e);
|
|
25460
26117
|
}
|
|
25461
26118
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreFormComponent, deps: [{ token: CoreControlService }, { token: MultiLanguageService }, { token: AlertService }, { token: CoreFormService }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25462
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreFormComponent, isStandalone: true, selector: "core-form", inputs: { formName: "formName", width: "width", submitText: "submitText", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", inputSections: "inputSections", mode$: "mode$", bottomTemplateRef: "bottomTemplateRef", customFormButtonItems: "customFormButtonItems", showCaptionButton: "showCaptionButton", disableSaveButton: "disableSaveButton", disableCancelButton: "disableCancelButton", checkError$: "checkError$", hideButtons: "hideButtons", forceCreateNewForm: "forceCreateNewForm", secondBottomTemplateRef: "secondBottomTemplateRef", hideDevSector: "hideDevSector", hideCalculatedSection: "hideCalculatedSection", buttonGroupTemplateRef: "buttonGroupTemplateRef" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (!!form) {\r\n<div class=\"core-form-container\" [ngStyle]=\"{\r\n width: !!width ? width + 'px' : 'auto'\r\n}\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || (!!hideCalculatedSection && !!section.forCalculatedFields ) || !!section.hidden\" [ngStyle]=\"{\r\n maxWidth: !!section.maxWidth ? section.maxWidth + 'px' : 'none'\r\n }\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n @if (!section.forCalculatedFields) {\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n } @else {\r\n <div class=\"section-calc-wrapper\">\r\n <i class=\"feather-box\"></i>\r\n </div>\r\n }\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n @if (!!bottomTemplateRef) {\r\n <div class=\"col-md-12\">\r\n <div class=\"bottom-template-wrapper\">\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!secondBottomTemplateRef) {\r\n <div class=\"col-md-12\">\r\n\r\n <ng-container *ngTemplateOutlet=\"secondBottomTemplateRef\"></ng-container>\r\n \r\n </div> \r\n }\r\n\r\n </div>\r\n\r\n @if (!hideButtons) {\r\n <div class=\"h10\"></div>\r\n\r\n @if (!buttonGroupTemplateRef) {\r\n <div class=\"form-row\">\r\n <div class=\"d-flex d-flex-end w-100 pr18\">\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"buttonGroupTemplateRef\"></ng-container>\r\n }\r\n }\r\n\r\n @if (!hideDevSector && isDevMode) {\r\n <div class=\"form-row d-flex d-flex-center\">\r\n <div class=\"dev-button\" (click)=\"updatePayload()\">Show\r\n values</div>\r\n <div class=\"dev-button\" (click)=\"showFormInConsole()\">Form object</div>\r\n <div class=\"dev-button\" (click)=\"updateValidorOverview()\">Show\r\n validators</div>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!hideDevSector && isDevMode) {\r\n @if (!!payLoad) {\r\n <pre class=\"form-row payload-preview\">\r\n <strong>Current values</strong><br>{{payLoad | tableCell: 'TRIM' : lang}}\r\n </pre>\r\n }\r\n\r\n @if (!!validatorOverview) {\r\n <pre class=\"form-row payload-preview validator-preview\">\r\n <strong>Current errors</strong><br>{{validatorOverview | tableCell: 'TRIM' : lang}}\r\n </pre>\r\n }\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container{overflow-x:visible}.core-form-container>form .section{margin-top:var(--size-layout-block-cell-spacing)}.core-form-container>form .section:not(:first-child){margin-top:calc(var(--size-layout-block-cell-spacing) * 2)}.core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img.calculated{background-image:url(/assets/images/sql-icon.svg);border-radius:0;background-color:transparent}.core-form-container>form .section .section-header-label .section-calc-wrapper{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background-color:#d3d3d3;border-radius:50%}.core-form-container>form .section .section-header-label .section-calc-wrapper i{width:24px;height:24px;font-size:24px;color:#1b4332}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer;border-radius:0}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .dev-button{cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;padding:8px;width:120px;border-radius:18px;box-shadow:.4rem 0 2rem #0000002e}.core-form-container .dev-button:not(:last-child){margin-right:15px}.core-form-container .dev-button:first-child{background-color:#dff6dd;border:1px #9fdc9d solid}.core-form-container .dev-button:last-child{background-color:#fff4ce;border:1px #ffda6a solid}.core-form-container .payload-preview{display:block;width:calc(100% - 48px);height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto;background-color:#dff6dd;padding:24px;margin:24px;text-indent:-58px;color:#333!important;font-family:Fira Code,monospace;font-size:.85rem;word-break:keep-all;line-height:1.5}.core-form-container .payload-preview.validator-preview{background-color:#fff4ce}.core-form-container .bottom-template-wrapper{padding-left:12px;padding-right:12px}.core-form-container .w-100{width:100%}.core-form-container .pr18{padding-right:18px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }] }); }
|
|
26119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreFormComponent, isStandalone: true, selector: "core-form", inputs: { formName: "formName", width: "width", submitText: "submitText", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", inputSections: "inputSections", mode$: "mode$", bottomTemplateRef: "bottomTemplateRef", customFormButtonItems: "customFormButtonItems", showCaptionButton: "showCaptionButton", disableSaveButton: "disableSaveButton", disableCancelButton: "disableCancelButton", checkError$: "checkError$", hideButtons: "hideButtons", forceCreateNewForm: "forceCreateNewForm", secondBottomTemplateRef: "secondBottomTemplateRef", hideDevSector: "hideDevSector", hideCalculatedSection: "hideCalculatedSection", buttonGroupTemplateRef: "buttonGroupTemplateRef" }, outputs: { onFormCreated: "onFormCreated", onFormRefCreated: "onFormRefCreated", onSubmit: "onSubmit", onSave: "onSave", onCancal: "onCancal", buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "formRef", first: true, predicate: ["formRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (!!form) {\r\n<div class=\"core-form-container\" [ngStyle]=\"{\r\n width: !!width ? width + 'px' : 'auto'\r\n}\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || (!!hideCalculatedSection && !!section.forCalculatedFields ) || !!section.hidden\" [ngStyle]=\"{\r\n maxWidth: !!section.maxWidth ? section.maxWidth + 'px' : 'none'\r\n }\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n @if (!section.forCalculatedFields) {\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n } @else {\r\n <div class=\"section-calc-wrapper\">\r\n <i class=\"feather-box\"></i>\r\n </div>\r\n }\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n @if (!!bottomTemplateRef) {\r\n <div class=\"col-md-12\">\r\n <div class=\"bottom-template-wrapper\">\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!secondBottomTemplateRef) {\r\n <div class=\"col-md-12\">\r\n\r\n <ng-container *ngTemplateOutlet=\"secondBottomTemplateRef\"></ng-container>\r\n \r\n </div> \r\n }\r\n\r\n </div>\r\n\r\n @if (!hideButtons) {\r\n <div class=\"h10\"></div>\r\n\r\n @if (!buttonGroupTemplateRef) {\r\n <div class=\"form-row\">\r\n <div class=\"d-flex d-flex-end w-100 pr18\">\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"buttonGroupTemplateRef\"></ng-container>\r\n }\r\n }\r\n\r\n @if (!hideDevSector && isDevMode) {\r\n <div class=\"form-row d-flex d-flex-center\">\r\n <div class=\"dev-button\" (click)=\"updatePayload()\">Show\r\n values</div>\r\n <div class=\"dev-button\" (click)=\"showFormInConsole()\">Form object</div>\r\n <div class=\"dev-button\" (click)=\"updateValidorOverview()\">Show\r\n validators</div>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!hideDevSector && isDevMode) {\r\n @if (!!payLoad) {\r\n <pre class=\"form-row payload-preview\"><strong>Current values</strong><br>{{payLoad | tableCell: 'TRIM' : lang}}</pre>\r\n }\r\n\r\n @if (!!validatorOverview) {\r\n <pre class=\"form-row payload-preview validator-preview\"><strong>Current errors</strong><br>{{validatorOverview | tableCell: 'TRIM' : lang}}</pre>\r\n }\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container{overflow-x:visible}.core-form-container>form .section{margin-top:var(--size-layout-block-cell-spacing)}.core-form-container>form .section:not(:first-child){margin-top:calc(var(--size-layout-block-cell-spacing) * 2)}.core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img.calculated{background-image:url(/assets/images/sql-icon.svg);border-radius:0;background-color:transparent}.core-form-container>form .section .section-header-label .section-calc-wrapper{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background-color:#d3d3d3;border-radius:50%}.core-form-container>form .section .section-header-label .section-calc-wrapper i{width:24px;height:24px;font-size:24px;color:#1b4332}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer;border-radius:0}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .dev-button{cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;padding:8px;width:120px;border-radius:18px;box-shadow:.4rem 0 2rem #0000002e}.core-form-container .dev-button:not(:last-child){margin-right:15px}.core-form-container .dev-button:first-child{background-color:#dff6dd;border:1px #9fdc9d solid}.core-form-container .dev-button:last-child{background-color:#fff4ce;border:1px #ffda6a solid}.core-form-container .payload-preview{display:block;width:calc(100% - 48px);height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto;background-color:#dff6dd;padding:24px;margin:24px;text-indent:-58px;color:#333!important;font-family:Fira Code,monospace;font-size:.85rem;word-break:keep-all;line-height:1.5}.core-form-container .payload-preview.validator-preview{background-color:#fff4ce}.core-form-container .bottom-template-wrapper{padding-left:12px;padding-right:12px}.core-form-container .w-100{width:100%}.core-form-container .pr18{padding-right:18px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "fixedShow", "shownItems", "showCaption", "lastChildEffectOff"], outputs: ["buttonClick"] }] }); }
|
|
25463
26120
|
}
|
|
25464
26121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreFormComponent, decorators: [{
|
|
25465
26122
|
type: Component,
|
|
@@ -25472,7 +26129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
25472
26129
|
TranslatePipe,
|
|
25473
26130
|
TableCellPipe,
|
|
25474
26131
|
CoreButtonGroupVnsComponent
|
|
25475
|
-
], template: "@if (!!form) {\r\n<div class=\"core-form-container\" [ngStyle]=\"{\r\n width: !!width ? width + 'px' : 'auto'\r\n}\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || (!!hideCalculatedSection && !!section.forCalculatedFields ) || !!section.hidden\" [ngStyle]=\"{\r\n maxWidth: !!section.maxWidth ? section.maxWidth + 'px' : 'none'\r\n }\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n @if (!section.forCalculatedFields) {\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n } @else {\r\n <div class=\"section-calc-wrapper\">\r\n <i class=\"feather-box\"></i>\r\n </div>\r\n }\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n @if (!!bottomTemplateRef) {\r\n <div class=\"col-md-12\">\r\n <div class=\"bottom-template-wrapper\">\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!secondBottomTemplateRef) {\r\n <div class=\"col-md-12\">\r\n\r\n <ng-container *ngTemplateOutlet=\"secondBottomTemplateRef\"></ng-container>\r\n \r\n </div> \r\n }\r\n\r\n </div>\r\n\r\n @if (!hideButtons) {\r\n <div class=\"h10\"></div>\r\n\r\n @if (!buttonGroupTemplateRef) {\r\n <div class=\"form-row\">\r\n <div class=\"d-flex d-flex-end w-100 pr18\">\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"buttonGroupTemplateRef\"></ng-container>\r\n }\r\n }\r\n\r\n @if (!hideDevSector && isDevMode) {\r\n <div class=\"form-row d-flex d-flex-center\">\r\n <div class=\"dev-button\" (click)=\"updatePayload()\">Show\r\n values</div>\r\n <div class=\"dev-button\" (click)=\"showFormInConsole()\">Form object</div>\r\n <div class=\"dev-button\" (click)=\"updateValidorOverview()\">Show\r\n validators</div>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!hideDevSector && isDevMode) {\r\n @if (!!payLoad) {\r\n <pre class=\"form-row payload-preview\"
|
|
26132
|
+
], template: "@if (!!form) {\r\n<div class=\"core-form-container\" [ngStyle]=\"{\r\n width: !!width ? width + 'px' : 'auto'\r\n}\">\r\n\r\n <form #formRef (ngSubmit)=\"onFormSubmit()\" [formGroup]=\"form\" autocomplete=\"off\">\r\n\r\n <div class=\"row\">\r\n\r\n @if (!!leftInputSections) {\r\n <div [class]=\"'col-md-' + (leftInputSectionsFlexSize || 0)\">\r\n\r\n @for (section of leftInputSections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || !!section.hidden\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n }\r\n\r\n <div [class]=\"'col-md-' + (12 - (leftInputSectionsFlexSize || 0))\">\r\n\r\n @for (section of sections; track $index) {\r\n <div class=\"section\"\r\n [class.d-none]=\"(!!isUpdateMode && section.addModeOnly) || (!!!isUpdateMode && section.updateModeOnly) || (!!hideCalculatedSection && !!section.forCalculatedFields ) || !!section.hidden\" [ngStyle]=\"{\r\n maxWidth: !!section.maxWidth ? section.maxWidth + 'px' : 'none'\r\n }\">\r\n\r\n @if (!!section.caption) {\r\n <div class=\"section-header-label\">\r\n @if (!section.forCalculatedFields) {\r\n <div class=\"section-img-wrapper\">\r\n <div class=\"section-img\"></div>\r\n </div>\r\n } @else {\r\n <div class=\"section-calc-wrapper\">\r\n <i class=\"feather-box\"></i>\r\n </div>\r\n }\r\n <div class=\"section-caption\">{{ section.caption | translate: lang }}</div>\r\n </div>\r\n }\r\n\r\n @for (row of section.rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track $index) {\r\n <div [class]=\"'col-md-' + col.flexSize\" [class.grid-buffer]=\"col.controlType==='GRIDBUFFER'\"\r\n [class.button-control]=\"col.controlType==='BUTTON'\">\r\n <core-control [control]=\"col\" [form]=\"form\" [checkError$]=\"checkError$\"></core-control>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n @if (!!bottomTemplateRef) {\r\n <div class=\"col-md-12\">\r\n <div class=\"bottom-template-wrapper\">\r\n <ng-container *ngTemplateOutlet=\"bottomTemplateRef\"></ng-container>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!secondBottomTemplateRef) {\r\n <div class=\"col-md-12\">\r\n\r\n <ng-container *ngTemplateOutlet=\"secondBottomTemplateRef\"></ng-container>\r\n \r\n </div> \r\n }\r\n\r\n </div>\r\n\r\n @if (!hideButtons) {\r\n <div class=\"h10\"></div>\r\n\r\n @if (!buttonGroupTemplateRef) {\r\n <div class=\"form-row\">\r\n <div class=\"d-flex d-flex-end w-100 pr18\">\r\n <core-button-group-vns [showCaption]=\"showCaptionButton\" [forHeader]=\"false\"\r\n (buttonClick)=\"onButtonClick($event)\" [shownItems]=\"buttonItems\"\r\n class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"buttonGroupTemplateRef\"></ng-container>\r\n }\r\n }\r\n\r\n @if (!hideDevSector && isDevMode) {\r\n <div class=\"form-row d-flex d-flex-center\">\r\n <div class=\"dev-button\" (click)=\"updatePayload()\">Show\r\n values</div>\r\n <div class=\"dev-button\" (click)=\"showFormInConsole()\">Form object</div>\r\n <div class=\"dev-button\" (click)=\"updateValidorOverview()\">Show\r\n validators</div>\r\n </div>\r\n }\r\n\r\n </form>\r\n\r\n @if (!hideDevSector && isDevMode) {\r\n @if (!!payLoad) {\r\n <pre class=\"form-row payload-preview\"><strong>Current values</strong><br>{{payLoad | tableCell: 'TRIM' : lang}}</pre>\r\n }\r\n\r\n @if (!!validatorOverview) {\r\n <pre class=\"form-row payload-preview validator-preview\"><strong>Current errors</strong><br>{{validatorOverview | tableCell: 'TRIM' : lang}}</pre>\r\n }\r\n }\r\n\r\n</div>\r\n}", styles: [".core-form-container{overflow-x:visible}.core-form-container>form .section{margin-top:var(--size-layout-block-cell-spacing)}.core-form-container>form .section:not(:first-child){margin-top:calc(var(--size-layout-block-cell-spacing) * 2)}.core-form-container>form .section .section-header-label{display:block;height:34px;line-height:34px;margin-bottom:15px;margin-left:12px}.core-form-container>form .section .section-header-label .section-img-wrapper{position:relative}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img{position:absolute;width:34px;height:34px;border-radius:50%;background-color:#d3d3d3;float:left;background-image:url(/assets/images/info.svg);background-repeat:no-repeat;background-position:center}.core-form-container>form .section .section-header-label .section-img-wrapper .section-img.calculated{background-image:url(/assets/images/sql-icon.svg);border-radius:0;background-color:transparent}.core-form-container>form .section .section-header-label .section-calc-wrapper{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background-color:#d3d3d3;border-radius:50%}.core-form-container>form .section .section-header-label .section-calc-wrapper i{width:24px;height:24px;font-size:24px;color:#1b4332}.core-form-container>form .section .section-header-label .section-caption{padding-left:40px;font-weight:700;color:#696969}.core-form-container .row{margin-left:var(--size-layout-block-cell-spacing) 0px;margin-right:var(--size-layout-block-cell-spacing) 0px}.core-form-container .row .grid-buffer{border:dotted 2px darkgray}.core-form-container .row .button-control{display:flex;align-items:flex-end}.core-form-container .form-row{margin:var(--size-layout-block-cell-spacing) 0px;display:flex;align-items:center;justify-content:center}.core-form-container .form-row>button{cursor:pointer;border-radius:0}.core-form-container .form-row>button:not(:first-child){margin-left:var(--size-layout-block-cell-spacing)}.core-form-container .dev-button{cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;padding:8px;width:120px;border-radius:18px;box-shadow:.4rem 0 2rem #0000002e}.core-form-container .dev-button:not(:last-child){margin-right:15px}.core-form-container .dev-button:first-child{background-color:#dff6dd;border:1px #9fdc9d solid}.core-form-container .dev-button:last-child{background-color:#fff4ce;border:1px #ffda6a solid}.core-form-container .payload-preview{display:block;width:calc(100% - 48px);height:200px;white-space:pre-wrap;overflow-x:hidden;overflow-y:auto;background-color:#dff6dd;padding:24px;margin:24px;text-indent:-58px;color:#333!important;font-family:Fira Code,monospace;font-size:.85rem;word-break:keep-all;line-height:1.5}.core-form-container .payload-preview.validator-preview{background-color:#fff4ce}.core-form-container .bottom-template-wrapper{padding-left:12px;padding-right:12px}.core-form-container .w-100{width:100%}.core-form-container .pr18{padding-right:18px}\n"] }]
|
|
25476
26133
|
}], ctorParameters: () => [{ type: CoreControlService }, { type: MultiLanguageService }, { type: AlertService }, { type: CoreFormService }, { type: AppConfigService }], propDecorators: { formName: [{
|
|
25477
26134
|
type: Input
|
|
25478
26135
|
}], width: [{
|
|
@@ -25637,7 +26294,7 @@ class CorePageEditComponent {
|
|
|
25637
26294
|
//this.responseService.resolve(body);
|
|
25638
26295
|
if ((body.statusCode = 200)) {
|
|
25639
26296
|
/* #region Exclude sections with flag addModeOnly=true */
|
|
25640
|
-
if (!!body.innerBody
|
|
26297
|
+
if (!!body.innerBody?.id) {
|
|
25641
26298
|
// remove relevant controls from form group
|
|
25642
26299
|
const addModeOnlySections = this.sections.filter((x) => !!x.addModeOnly);
|
|
25643
26300
|
addModeOnlySections.map((addModeOnlySection) => {
|
|
@@ -25741,6 +26398,9 @@ class CorePageEditComponent {
|
|
|
25741
26398
|
if (!!this.width) {
|
|
25742
26399
|
this.container.nativeElement.style.setProperty('--width', this.width + 'px');
|
|
25743
26400
|
}
|
|
26401
|
+
else {
|
|
26402
|
+
this.container.nativeElement.style.setProperty('--width', 'unset');
|
|
26403
|
+
}
|
|
25744
26404
|
this.containerBigger.nativeElement.style.setProperty('--height', '95%');
|
|
25745
26405
|
}
|
|
25746
26406
|
setTimeout(() => {
|
|
@@ -26016,7 +26676,7 @@ class CorePageEditComponent {
|
|
|
26016
26676
|
this.onInitialValueStringReady.emit(JSON.stringify(this.form.getRawValue()));
|
|
26017
26677
|
}
|
|
26018
26678
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CorePageEditComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: CorePageEditService }, { token: CommonHttpRequestService }, { token: AnimatedTextService }, { token: MultiLanguageService }, { token: CoreFormService }, { token: CorePageListService }, { token: HubConnectionService }, { token: AuthService }, { token: AlertService }, { token: UrlService }, { token: RoutingService }, { token: ResponseService }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26019
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CorePageEditComponent, isStandalone: true, selector: "core-page-edit", inputs: { stayAfterSubmit: "stayAfterSubmit", width: "width", entityTable: "entityTable", hasIdOfStringType: "hasIdOfStringType", captionCode: "captionCode", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", sections: "sections", normalMode: "normalMode", bottomTemplateRef: "bottomTemplateRef", autoGetByIdOff: "autoGetByIdOff", autoSubmitLogicOff: "autoSubmitLogicOff", autoCancelLogicOff: "autoCancelLogicOff", customFormButtonItems: "customFormButtonItems", mixedMode: "mixedMode", checkError$: "checkError$", showSaveButton: "showSaveButton", disableSaveButton: "disableSaveButton", disableCancelButton: "disableCancelButton", forceListRefreshOnCreateOrUpdate: "forceListRefreshOnCreateOrUpdate", crud: "crud", entityUniqueIndexs: "entityUniqueIndexs", idAsInput: "idAsInput", id: "id", hideButtons: "hideButtons" }, outputs: { submitLogic: "submitLogic", onFormCreated: "onFormCreated", onSubmitSuccess: "onSubmitSuccess", onButtonClick: "onButtonClick", cancelLogic: "cancelLogic", onInitialValueStringReady: "onInitialValueStringReady" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "containerBigger", first: true, predicate: ["containerBigger"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (!!normalMode) {\r\n<div #container class=\"core-page-edit-container\">\r\n <div [ngStyle]=\"{ margin: '0px 24px' }\">\r\n <core-page-header [title]=\"captionCode\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n @if (!!sections.length) {\r\n <core-form [width]=\"width\" [formName]=\"'form'\" [submitText]=\"submitText\" [showCaptionButton]=\"showCaptionButton\"\r\n [leftInputSections]=\"leftInputSections\" [leftInputSectionsFlexSize]=\"leftInputSectionsFlexSize\"\r\n [inputSections]=\"sections\" [mode$]=\"mode$\" [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [customFormButtonItems]=\"customFormButtonItems\" [disableSaveButton]=\"disableSaveButton\" [disableCancelButton]=\"disableCancelButton\"\r\n [hideButtons]=\"hideButtons\"\r\n [checkError$]=\"checkError$\" (onFormCreated)=\"onFormCreatedLocal($event)\" (onSubmit)=\"onSubmit()\"\r\n (onSave)=\"onSave($event)\" (buttonClick)=\"buttonClick($event)\" (onCancal)=\"onCancel()\"></core-form>\r\n }\r\n</div>\r\n} @else {\r\n<div class=\"modal-container\" [ngStyle]=\"{\r\n overflowY: 'scroll'\r\n }\">\r\n <div #containerBigger class=\"modal-content\">\r\n <div class=\"custom-header-popup\">\r\n <i class=\"feather-x\" (click)=\"onCancel()\"></i>\r\n <div [ngStyle]=\"{ margin: '0px 24px' }\">\r\n <core-page-header [title]=\"captionCode\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n </div>\r\n <div #container class=\"core-page-edit-container not-normal-mode\" [ngStyle]=\"{\r\n overflow: 'visible'\r\n }\">\r\n @if (!!sections.length) {\r\n <core-form [formName]=\"'form'\" [submitText]=\"submitText\" [showCaptionButton]=\"showCaptionButton\"\r\n [leftInputSections]=\"leftInputSections\" [leftInputSectionsFlexSize]=\"leftInputSectionsFlexSize\"\r\n [inputSections]=\"sections\" [mode$]=\"mode$\" [bottomTemplateRef]=\"bottomTemplateRef\" [customFormButtonItems]=\"customFormButtonItems\"\r\n [hideButtons]=\"hideButtons\"\r\n [disableSaveButton]=\"disableSaveButton\" [disableCancelButton]=\"disableCancelButton\" [checkError$]=\"checkError$\"\r\n (onFormCreated)=\"onFormCreatedLocal($event)\" (onSubmit)=\"onSubmit()\" (onSave)=\"onSave($event)\"\r\n (buttonClick)=\"buttonClick($event)\" (onCancal)=\"onCancel()\"></core-form>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n@if (loading) {\r\n<app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n}", styles: ["@charset \"UTF-8\";.core-page-edit-container{--width: 50vw;background-color:#fff;padding:0,var(--size-layout-block-cell-spacing),var(--size-layout-block-cell-spacing),var(--size-layout-block-cell-spacing);width:var(--width)}@media (max-width: 992px){.core-page-edit-container{width:100%}}.core-page-edit-container>.custom-header-popup{display:flex}.core-page-edit-container>i{display:block;float:right;font-size:24px;cursor:pointer;margin:10px}.core-page-edit-container>caption{display:block;width:100%;color:#464646;font-weight:400}.modal-content{--height: 100%;height:var(--height);border-radius:10px}.modal-content i{display:block;float:right;font-size:24px;cursor:pointer;margin:10px}.modal-content caption{display:block;width:100%;color:#000}.custom-header-popup{background:#fff}.captionText{margin-left:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: CoreFormComponent, selector: "core-form", inputs: ["formName", "width", "submitText", "leftInputSections", "leftInputSectionsFlexSize", "inputSections", "mode$", "bottomTemplateRef", "customFormButtonItems", "showCaptionButton", "disableSaveButton", "disableCancelButton", "checkError$", "hideButtons", "forceCreateNewForm", "secondBottomTemplateRef", "hideDevSector", "hideCalculatedSection", "buttonGroupTemplateRef"], outputs: ["onFormCreated", "onFormRefCreated", "onSubmit", "onSave", "onCancal", "buttonClick"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }] }); }
|
|
26679
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CorePageEditComponent, isStandalone: true, selector: "core-page-edit", inputs: { stayAfterSubmit: "stayAfterSubmit", width: "width", entityTable: "entityTable", hasIdOfStringType: "hasIdOfStringType", captionCode: "captionCode", leftInputSections: "leftInputSections", leftInputSectionsFlexSize: "leftInputSectionsFlexSize", sections: "sections", normalMode: "normalMode", bottomTemplateRef: "bottomTemplateRef", autoGetByIdOff: "autoGetByIdOff", autoSubmitLogicOff: "autoSubmitLogicOff", autoCancelLogicOff: "autoCancelLogicOff", customFormButtonItems: "customFormButtonItems", mixedMode: "mixedMode", checkError$: "checkError$", showSaveButton: "showSaveButton", disableSaveButton: "disableSaveButton", disableCancelButton: "disableCancelButton", forceListRefreshOnCreateOrUpdate: "forceListRefreshOnCreateOrUpdate", crud: "crud", entityUniqueIndexs: "entityUniqueIndexs", idAsInput: "idAsInput", id: "id", hideButtons: "hideButtons" }, outputs: { submitLogic: "submitLogic", onFormCreated: "onFormCreated", onSubmitSuccess: "onSubmitSuccess", onButtonClick: "onButtonClick", cancelLogic: "cancelLogic", onInitialValueStringReady: "onInitialValueStringReady" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "containerBigger", first: true, predicate: ["containerBigger"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (!!normalMode) {\r\n<div #container class=\"core-page-edit-container\">\r\n <div [ngStyle]=\"{ margin: '0px 24px' }\">\r\n <core-page-header [title]=\"captionCode\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n @if (!!sections.length) {\r\n <core-form [width]=\"width\" [formName]=\"'form'\" [submitText]=\"submitText\" [showCaptionButton]=\"showCaptionButton\"\r\n [leftInputSections]=\"leftInputSections\" [leftInputSectionsFlexSize]=\"leftInputSectionsFlexSize\"\r\n [inputSections]=\"sections\" [mode$]=\"mode$\" [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [customFormButtonItems]=\"customFormButtonItems\" [disableSaveButton]=\"disableSaveButton\" [disableCancelButton]=\"disableCancelButton\"\r\n [hideButtons]=\"hideButtons\"\r\n [checkError$]=\"checkError$\" (onFormCreated)=\"onFormCreatedLocal($event)\" (onSubmit)=\"onSubmit()\"\r\n (onSave)=\"onSave($event)\" (buttonClick)=\"buttonClick($event)\" (onCancal)=\"onCancel()\"></core-form>\r\n }\r\n</div>\r\n} @else {\r\n<div class=\"modal-container\" [ngStyle]=\"{\r\n overflowY: 'scroll'\r\n }\">\r\n <div #containerBigger class=\"modal-content\">\r\n <div class=\"custom-header-popup\">\r\n <i class=\"feather-x\" (click)=\"onCancel()\"></i>\r\n <div [ngStyle]=\"{ margin: '0px 24px' }\">\r\n <core-page-header [title]=\"captionCode\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n </div>\r\n <div #container class=\"core-page-edit-container not-normal-mode\" [ngStyle]=\"{\r\n overflow: 'visible'\r\n }\">\r\n @if (!!sections.length) {\r\n <core-form [formName]=\"'form'\" [submitText]=\"submitText\" [showCaptionButton]=\"showCaptionButton\"\r\n [leftInputSections]=\"leftInputSections\" [leftInputSectionsFlexSize]=\"leftInputSectionsFlexSize\"\r\n [inputSections]=\"sections\" [mode$]=\"mode$\" [bottomTemplateRef]=\"bottomTemplateRef\" [customFormButtonItems]=\"customFormButtonItems\"\r\n [hideButtons]=\"hideButtons\"\r\n [disableSaveButton]=\"disableSaveButton\" [disableCancelButton]=\"disableCancelButton\" [checkError$]=\"checkError$\"\r\n (onFormCreated)=\"onFormCreatedLocal($event)\" (onSubmit)=\"onSubmit()\" (onSave)=\"onSave($event)\"\r\n (buttonClick)=\"buttonClick($event)\" (onCancal)=\"onCancel()\"></core-form>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n@if (loading) {\r\n<app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n}", styles: ["@charset \"UTF-8\";.core-page-edit-container{--width: 50vw;background-color:#fff;padding:0,var(--size-layout-block-cell-spacing),var(--size-layout-block-cell-spacing),var(--size-layout-block-cell-spacing);width:var(--width)}.core-page-edit-container core-form{display:flex;justify-content:center}@media (max-width: 992px){.core-page-edit-container{width:100%}}.core-page-edit-container>.custom-header-popup{display:flex}.core-page-edit-container>i{display:block;float:right;font-size:24px;cursor:pointer;margin:10px}.core-page-edit-container>caption{display:block;width:100%;color:#464646;font-weight:400}.modal-content{--height: 100%;height:var(--height);border-radius:10px}.modal-content i{display:block;float:right;font-size:24px;cursor:pointer;margin:10px}.modal-content caption{display:block;width:100%;color:#000}.custom-header-popup{background:#fff}.captionText{margin-left:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: CoreFormComponent, selector: "core-form", inputs: ["formName", "width", "submitText", "leftInputSections", "leftInputSectionsFlexSize", "inputSections", "mode$", "bottomTemplateRef", "customFormButtonItems", "showCaptionButton", "disableSaveButton", "disableCancelButton", "checkError$", "hideButtons", "forceCreateNewForm", "secondBottomTemplateRef", "hideDevSector", "hideCalculatedSection", "buttonGroupTemplateRef"], outputs: ["onFormCreated", "onFormRefCreated", "onSubmit", "onSave", "onCancal", "buttonClick"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup", "htmlTooltipRef"], outputs: ["buttonClick"] }] }); }
|
|
26020
26680
|
}
|
|
26021
26681
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CorePageEditComponent, decorators: [{
|
|
26022
26682
|
type: Component,
|
|
@@ -26028,7 +26688,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
26028
26688
|
TranslatePipe,
|
|
26029
26689
|
FullscreenModalLoaderComponent,
|
|
26030
26690
|
CorePageHeaderComponent
|
|
26031
|
-
], template: "@if (!!normalMode) {\r\n<div #container class=\"core-page-edit-container\">\r\n <div [ngStyle]=\"{ margin: '0px 24px' }\">\r\n <core-page-header [title]=\"captionCode\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n @if (!!sections.length) {\r\n <core-form [width]=\"width\" [formName]=\"'form'\" [submitText]=\"submitText\" [showCaptionButton]=\"showCaptionButton\"\r\n [leftInputSections]=\"leftInputSections\" [leftInputSectionsFlexSize]=\"leftInputSectionsFlexSize\"\r\n [inputSections]=\"sections\" [mode$]=\"mode$\" [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [customFormButtonItems]=\"customFormButtonItems\" [disableSaveButton]=\"disableSaveButton\" [disableCancelButton]=\"disableCancelButton\"\r\n [hideButtons]=\"hideButtons\"\r\n [checkError$]=\"checkError$\" (onFormCreated)=\"onFormCreatedLocal($event)\" (onSubmit)=\"onSubmit()\"\r\n (onSave)=\"onSave($event)\" (buttonClick)=\"buttonClick($event)\" (onCancal)=\"onCancel()\"></core-form>\r\n }\r\n</div>\r\n} @else {\r\n<div class=\"modal-container\" [ngStyle]=\"{\r\n overflowY: 'scroll'\r\n }\">\r\n <div #containerBigger class=\"modal-content\">\r\n <div class=\"custom-header-popup\">\r\n <i class=\"feather-x\" (click)=\"onCancel()\"></i>\r\n <div [ngStyle]=\"{ margin: '0px 24px' }\">\r\n <core-page-header [title]=\"captionCode\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n </div>\r\n <div #container class=\"core-page-edit-container not-normal-mode\" [ngStyle]=\"{\r\n overflow: 'visible'\r\n }\">\r\n @if (!!sections.length) {\r\n <core-form [formName]=\"'form'\" [submitText]=\"submitText\" [showCaptionButton]=\"showCaptionButton\"\r\n [leftInputSections]=\"leftInputSections\" [leftInputSectionsFlexSize]=\"leftInputSectionsFlexSize\"\r\n [inputSections]=\"sections\" [mode$]=\"mode$\" [bottomTemplateRef]=\"bottomTemplateRef\" [customFormButtonItems]=\"customFormButtonItems\"\r\n [hideButtons]=\"hideButtons\"\r\n [disableSaveButton]=\"disableSaveButton\" [disableCancelButton]=\"disableCancelButton\" [checkError$]=\"checkError$\"\r\n (onFormCreated)=\"onFormCreatedLocal($event)\" (onSubmit)=\"onSubmit()\" (onSave)=\"onSave($event)\"\r\n (buttonClick)=\"buttonClick($event)\" (onCancal)=\"onCancel()\"></core-form>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n@if (loading) {\r\n<app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n}", styles: ["@charset \"UTF-8\";.core-page-edit-container{--width: 50vw;background-color:#fff;padding:0,var(--size-layout-block-cell-spacing),var(--size-layout-block-cell-spacing),var(--size-layout-block-cell-spacing);width:var(--width)}@media (max-width: 992px){.core-page-edit-container{width:100%}}.core-page-edit-container>.custom-header-popup{display:flex}.core-page-edit-container>i{display:block;float:right;font-size:24px;cursor:pointer;margin:10px}.core-page-edit-container>caption{display:block;width:100%;color:#464646;font-weight:400}.modal-content{--height: 100%;height:var(--height);border-radius:10px}.modal-content i{display:block;float:right;font-size:24px;cursor:pointer;margin:10px}.modal-content caption{display:block;width:100%;color:#000}.custom-header-popup{background:#fff}.captionText{margin-left:24px}\n"] }]
|
|
26691
|
+
], template: "@if (!!normalMode) {\r\n<div #container class=\"core-page-edit-container\">\r\n <div [ngStyle]=\"{ margin: '0px 24px' }\">\r\n <core-page-header [title]=\"captionCode\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n @if (!!sections.length) {\r\n <core-form [width]=\"width\" [formName]=\"'form'\" [submitText]=\"submitText\" [showCaptionButton]=\"showCaptionButton\"\r\n [leftInputSections]=\"leftInputSections\" [leftInputSectionsFlexSize]=\"leftInputSectionsFlexSize\"\r\n [inputSections]=\"sections\" [mode$]=\"mode$\" [bottomTemplateRef]=\"bottomTemplateRef\"\r\n [customFormButtonItems]=\"customFormButtonItems\" [disableSaveButton]=\"disableSaveButton\" [disableCancelButton]=\"disableCancelButton\"\r\n [hideButtons]=\"hideButtons\"\r\n [checkError$]=\"checkError$\" (onFormCreated)=\"onFormCreatedLocal($event)\" (onSubmit)=\"onSubmit()\"\r\n (onSave)=\"onSave($event)\" (buttonClick)=\"buttonClick($event)\" (onCancal)=\"onCancel()\"></core-form>\r\n }\r\n</div>\r\n} @else {\r\n<div class=\"modal-container\" [ngStyle]=\"{\r\n overflowY: 'scroll'\r\n }\">\r\n <div #containerBigger class=\"modal-content\">\r\n <div class=\"custom-header-popup\">\r\n <i class=\"feather-x\" (click)=\"onCancel()\"></i>\r\n <div [ngStyle]=\"{ margin: '0px 24px' }\">\r\n <core-page-header [title]=\"captionCode\" [hideButtonGroup]=\"true\"></core-page-header>\r\n </div>\r\n </div>\r\n <div #container class=\"core-page-edit-container not-normal-mode\" [ngStyle]=\"{\r\n overflow: 'visible'\r\n }\">\r\n @if (!!sections.length) {\r\n <core-form [formName]=\"'form'\" [submitText]=\"submitText\" [showCaptionButton]=\"showCaptionButton\"\r\n [leftInputSections]=\"leftInputSections\" [leftInputSectionsFlexSize]=\"leftInputSectionsFlexSize\"\r\n [inputSections]=\"sections\" [mode$]=\"mode$\" [bottomTemplateRef]=\"bottomTemplateRef\" [customFormButtonItems]=\"customFormButtonItems\"\r\n [hideButtons]=\"hideButtons\"\r\n [disableSaveButton]=\"disableSaveButton\" [disableCancelButton]=\"disableCancelButton\" [checkError$]=\"checkError$\"\r\n (onFormCreated)=\"onFormCreatedLocal($event)\" (onSubmit)=\"onSubmit()\" (onSave)=\"onSave($event)\"\r\n (buttonClick)=\"buttonClick($event)\" (onCancal)=\"onCancel()\"></core-form>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n@if (loading) {\r\n<app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n}", styles: ["@charset \"UTF-8\";.core-page-edit-container{--width: 50vw;background-color:#fff;padding:0,var(--size-layout-block-cell-spacing),var(--size-layout-block-cell-spacing),var(--size-layout-block-cell-spacing);width:var(--width)}.core-page-edit-container core-form{display:flex;justify-content:center}@media (max-width: 992px){.core-page-edit-container{width:100%}}.core-page-edit-container>.custom-header-popup{display:flex}.core-page-edit-container>i{display:block;float:right;font-size:24px;cursor:pointer;margin:10px}.core-page-edit-container>caption{display:block;width:100%;color:#464646;font-weight:400}.modal-content{--height: 100%;height:var(--height);border-radius:10px}.modal-content i{display:block;float:right;font-size:24px;cursor:pointer;margin:10px}.modal-content caption{display:block;width:100%;color:#000}.custom-header-popup{background:#fff}.captionText{margin-left:24px}\n"] }]
|
|
26032
26692
|
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: CorePageEditService }, { type: CommonHttpRequestService }, { type: AnimatedTextService }, { type: MultiLanguageService }, { type: CoreFormService }, { type: CorePageListService }, { type: HubConnectionService }, { type: AuthService }, { type: AlertService }, { type: UrlService }, { type: RoutingService }, { type: ResponseService }, { type: AppConfigService }], propDecorators: { stayAfterSubmit: [{
|
|
26033
26693
|
type: Input
|
|
26034
26694
|
}], width: [{
|
|
@@ -28916,7 +29576,7 @@ class FunctionEditComponent extends BaseEditComponent {
|
|
|
28916
29576
|
this.subscriptions.map(x => x?.unsubscribe());
|
|
28917
29577
|
}
|
|
28918
29578
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FunctionEditComponent, deps: [{ token: DialogService }, { token: MultiLanguageService }, { token: FunctionEditService }, { token: ResponseService }, { token: CoreFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28919
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: FunctionEditComponent, isStandalone: true, selector: "app-function-edit", viewQueries: [{ propertyName: "pathHtmlTooltip", first: true, predicate: ["pathHtmlTooltip"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<core-page-edit *ngIf=\"!!sections.length\" [
|
|
29579
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: FunctionEditComponent, isStandalone: true, selector: "app-function-edit", viewQueries: [{ propertyName: "pathHtmlTooltip", first: true, predicate: ["pathHtmlTooltip"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<core-page-edit *ngIf=\"!!sections.length\" [captionCode]=\"captionCode\" [sections]=\"sections\" [crud]=\"crud\"\r\n [entityTable]=\"entityTable\" (onFormCreated)=\"onFormCreated($event)\"\r\n (onInitialValueStringReady)=\"onFormReinit($event)\"></core-page-edit>\r\n\r\n\r\n<ng-template #pathHtmlTooltip>\r\n <div style=\"background-color: white; color: #848484; padding: 10px; max-width: 350px; font-size: 13px;\">\r\n\r\n @if ((mls.lang$ | async) === 'vi') {\r\n\r\n <strong>\u0110\u01B0\u1EDDng d\u1EABn \u0111i\u1EC1u h\u01B0\u1EDBng \u0111\u1ED9ng:</strong><br />\r\n S\u1EED d\u1EE5ng <code>@param$</code> \u0111\u1EC3 \u0111\u1EA1i di\u1EC7n cho c\u00E1c \u0111o\u1EA1n URL c\u00F3 th\u1EC3 thay \u0111\u1ED5i.<br /><br />\r\n\r\n <strong>V\u00ED d\u1EE5:</strong><br />\r\n <ul style=\"padding-left: 18px; margin: 0;\">\r\n <li>\r\n <code>/cms/profile/edit/@param$</code><br />\r\n \u2192 Kh\u1EDBp v\u1EDBi <code>/cms/profile/edit/123</code>\r\n </li>\r\n <li>\r\n <code>/cms/view/@param$/details/@param$</code><br />\r\n \u2192 Kh\u1EDBp v\u1EDBi <code>/cms/view/abc/details/456</code>\r\n </li>\r\n <li>\r\n <code>/cms/system/language/(corePageListAux:@param$;listInstance=@param$)</code><br />\r\n \u2192 Kh\u1EDBp v\u1EDBi <code>/cms/system/language/(corePageListAux:MA==;listInstance=17494)</code>\r\n </li>\r\n </ul>\r\n\r\n <br />\r\n B\u1EA1n c\u00F3 th\u1EC3 s\u1EED d\u1EE5ng nhi\u1EC1u <code>@param$</code> trong m\u1ED9t \u0111\u01B0\u1EDDng d\u1EABn.\r\n\r\n @if (!appConfigService.IGNORE_PARTIAL_URL_MATCH_FOR_FUNCTION) {\r\n N\u1EBFu \u0111\u01B0\u1EDDng d\u1EABn l\u00E0 c\u1ED1 \u0111\u1ECBnh, h\u00E3y b\u1EADt \u00F4 <strong>T\u01B0\u01A1ng \u1EE9ng to\u00E0n b\u1ED9</strong>.\r\n }\r\n\r\n } @else {\r\n\r\n <strong>Dynamic Navigation Path:</strong><br />\r\n Use <code>@param$</code> as a placeholder to represent dynamic segments in the URL.<br /><br />\r\n\r\n <strong>Examples:</strong><br />\r\n <ul style=\"padding-left: 18px; margin: 0;\">\r\n <li>\r\n <code>/cms/profile/edit/@param$</code><br />\r\n \u2192 Matches <code>/cms/profile/edit/123</code>\r\n </li>\r\n <li>\r\n <code>/cms/view/@param$/details/@param$</code><br />\r\n \u2192 Matches <code>/cms/view/abc/details/456</code>\r\n </li>\r\n <li>\r\n <code>/cms/system/language/(corePageListAux:@param$;listInstance=@param$)</code><br />\r\n \u2192 Matches <code>/cms/system/language/(corePageListAux:MA==;listInstance=17494)</code>\r\n </li>\r\n </ul>\r\n\r\n <br />\r\n You can use multiple <code>@param$</code> in a single path.\r\n @if (!appConfigService.IGNORE_PARTIAL_URL_MATCH_FOR_FUNCTION) {\r\n If the route is fully static, enable the <strong>Path full match</strong> checkbox.\r\n }\r\n\r\n }\r\n\r\n\r\n </div>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CorePageEditComponent, selector: "core-page-edit", inputs: ["stayAfterSubmit", "width", "entityTable", "hasIdOfStringType", "captionCode", "leftInputSections", "leftInputSectionsFlexSize", "sections", "normalMode", "bottomTemplateRef", "autoGetByIdOff", "autoSubmitLogicOff", "autoCancelLogicOff", "customFormButtonItems", "mixedMode", "checkError$", "showSaveButton", "disableSaveButton", "disableCancelButton", "forceListRefreshOnCreateOrUpdate", "crud", "entityUniqueIndexs", "idAsInput", "id", "hideButtons"], outputs: ["submitLogic", "onFormCreated", "onSubmitSuccess", "onButtonClick", "cancelLogic", "onInitialValueStringReady"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
28920
29580
|
}
|
|
28921
29581
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FunctionEditComponent, decorators: [{
|
|
28922
29582
|
type: Component,
|
|
@@ -28924,7 +29584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
28924
29584
|
AsyncPipe,
|
|
28925
29585
|
CommonModule,
|
|
28926
29586
|
CorePageEditComponent,
|
|
28927
|
-
], encapsulation: ViewEncapsulation.None, template: "<core-page-edit *ngIf=\"!!sections.length\" [
|
|
29587
|
+
], encapsulation: ViewEncapsulation.None, template: "<core-page-edit *ngIf=\"!!sections.length\" [captionCode]=\"captionCode\" [sections]=\"sections\" [crud]=\"crud\"\r\n [entityTable]=\"entityTable\" (onFormCreated)=\"onFormCreated($event)\"\r\n (onInitialValueStringReady)=\"onFormReinit($event)\"></core-page-edit>\r\n\r\n\r\n<ng-template #pathHtmlTooltip>\r\n <div style=\"background-color: white; color: #848484; padding: 10px; max-width: 350px; font-size: 13px;\">\r\n\r\n @if ((mls.lang$ | async) === 'vi') {\r\n\r\n <strong>\u0110\u01B0\u1EDDng d\u1EABn \u0111i\u1EC1u h\u01B0\u1EDBng \u0111\u1ED9ng:</strong><br />\r\n S\u1EED d\u1EE5ng <code>@param$</code> \u0111\u1EC3 \u0111\u1EA1i di\u1EC7n cho c\u00E1c \u0111o\u1EA1n URL c\u00F3 th\u1EC3 thay \u0111\u1ED5i.<br /><br />\r\n\r\n <strong>V\u00ED d\u1EE5:</strong><br />\r\n <ul style=\"padding-left: 18px; margin: 0;\">\r\n <li>\r\n <code>/cms/profile/edit/@param$</code><br />\r\n \u2192 Kh\u1EDBp v\u1EDBi <code>/cms/profile/edit/123</code>\r\n </li>\r\n <li>\r\n <code>/cms/view/@param$/details/@param$</code><br />\r\n \u2192 Kh\u1EDBp v\u1EDBi <code>/cms/view/abc/details/456</code>\r\n </li>\r\n <li>\r\n <code>/cms/system/language/(corePageListAux:@param$;listInstance=@param$)</code><br />\r\n \u2192 Kh\u1EDBp v\u1EDBi <code>/cms/system/language/(corePageListAux:MA==;listInstance=17494)</code>\r\n </li>\r\n </ul>\r\n\r\n <br />\r\n B\u1EA1n c\u00F3 th\u1EC3 s\u1EED d\u1EE5ng nhi\u1EC1u <code>@param$</code> trong m\u1ED9t \u0111\u01B0\u1EDDng d\u1EABn.\r\n\r\n @if (!appConfigService.IGNORE_PARTIAL_URL_MATCH_FOR_FUNCTION) {\r\n N\u1EBFu \u0111\u01B0\u1EDDng d\u1EABn l\u00E0 c\u1ED1 \u0111\u1ECBnh, h\u00E3y b\u1EADt \u00F4 <strong>T\u01B0\u01A1ng \u1EE9ng to\u00E0n b\u1ED9</strong>.\r\n }\r\n\r\n } @else {\r\n\r\n <strong>Dynamic Navigation Path:</strong><br />\r\n Use <code>@param$</code> as a placeholder to represent dynamic segments in the URL.<br /><br />\r\n\r\n <strong>Examples:</strong><br />\r\n <ul style=\"padding-left: 18px; margin: 0;\">\r\n <li>\r\n <code>/cms/profile/edit/@param$</code><br />\r\n \u2192 Matches <code>/cms/profile/edit/123</code>\r\n </li>\r\n <li>\r\n <code>/cms/view/@param$/details/@param$</code><br />\r\n \u2192 Matches <code>/cms/view/abc/details/456</code>\r\n </li>\r\n <li>\r\n <code>/cms/system/language/(corePageListAux:@param$;listInstance=@param$)</code><br />\r\n \u2192 Matches <code>/cms/system/language/(corePageListAux:MA==;listInstance=17494)</code>\r\n </li>\r\n </ul>\r\n\r\n <br />\r\n You can use multiple <code>@param$</code> in a single path.\r\n @if (!appConfigService.IGNORE_PARTIAL_URL_MATCH_FOR_FUNCTION) {\r\n If the route is fully static, enable the <strong>Path full match</strong> checkbox.\r\n }\r\n\r\n }\r\n\r\n\r\n </div>\r\n</ng-template>\r\n" }]
|
|
28928
29588
|
}], ctorParameters: () => [{ type: DialogService }, { type: MultiLanguageService }, { type: FunctionEditService }, { type: ResponseService }, { type: CoreFormService }], propDecorators: { pathHtmlTooltip: [{
|
|
28929
29589
|
type: ViewChild,
|
|
28930
29590
|
args: ['pathHtmlTooltip']
|
|
@@ -29186,7 +29846,6 @@ class GroupFunctionEditComponent extends BaseEditComponent {
|
|
|
29186
29846
|
super(dialogService);
|
|
29187
29847
|
this.dialogService = dialogService;
|
|
29188
29848
|
this.appService = appService;
|
|
29189
|
-
/* Properties to be passed into core-page-edit */
|
|
29190
29849
|
this.loading = false;
|
|
29191
29850
|
this.entityTable = "SYS_FUNCTION_GROUP";
|
|
29192
29851
|
this.subsctiptions = [];
|
|
@@ -29273,13 +29932,13 @@ class GroupFunctionEditComponent extends BaseEditComponent {
|
|
|
29273
29932
|
this.formInitStringValue = e;
|
|
29274
29933
|
}
|
|
29275
29934
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GroupFunctionEditComponent, deps: [{ token: DialogService }, { token: AppService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29276
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
29935
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: GroupFunctionEditComponent, isStandalone: true, selector: "sys-groupfunction-edit", usesInheritance: true, ngImport: i0, template: "@if (!!sections.length) {\r\n<core-page-edit [width]=\"1000\" [captionCode]=\"captionCode\" [sections]=\"sections\" [crud]=\"crud\"\r\n [entityTable]=\"entityTable\" (onFormCreated)=\"onFormCreated($event)\"\r\n (onInitialValueStringReady)=\"onFormReinit($event)\"></core-page-edit>\r\n}", styles: [""], dependencies: [{ kind: "component", type: CorePageEditComponent, selector: "core-page-edit", inputs: ["stayAfterSubmit", "width", "entityTable", "hasIdOfStringType", "captionCode", "leftInputSections", "leftInputSectionsFlexSize", "sections", "normalMode", "bottomTemplateRef", "autoGetByIdOff", "autoSubmitLogicOff", "autoCancelLogicOff", "customFormButtonItems", "mixedMode", "checkError$", "showSaveButton", "disableSaveButton", "disableCancelButton", "forceListRefreshOnCreateOrUpdate", "crud", "entityUniqueIndexs", "idAsInput", "id", "hideButtons"], outputs: ["submitLogic", "onFormCreated", "onSubmitSuccess", "onButtonClick", "cancelLogic", "onInitialValueStringReady"] }] }); }
|
|
29277
29936
|
}
|
|
29278
29937
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: GroupFunctionEditComponent, decorators: [{
|
|
29279
29938
|
type: Component,
|
|
29280
29939
|
args: [{ selector: "sys-groupfunction-edit", imports: [
|
|
29281
29940
|
CorePageEditComponent,
|
|
29282
|
-
], template: "<core-page-edit
|
|
29941
|
+
], template: "@if (!!sections.length) {\r\n<core-page-edit [width]=\"1000\" [captionCode]=\"captionCode\" [sections]=\"sections\" [crud]=\"crud\"\r\n [entityTable]=\"entityTable\" (onFormCreated)=\"onFormCreated($event)\"\r\n (onInitialValueStringReady)=\"onFormReinit($event)\"></core-page-edit>\r\n}" }]
|
|
29283
29942
|
}], ctorParameters: () => [{ type: DialogService }, { type: AppService }] });
|
|
29284
29943
|
|
|
29285
29944
|
class InMemoryComponent extends BaseComponent {
|
|
@@ -31450,7 +32109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
31450
32109
|
const simpleChatRoutes = [
|
|
31451
32110
|
{
|
|
31452
32111
|
path: '',
|
|
31453
|
-
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-
|
|
32112
|
+
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-Du2PDR-u.mjs').then(m => m.SimpleChatComponent)
|
|
31454
32113
|
}
|
|
31455
32114
|
];
|
|
31456
32115
|
|
|
@@ -34778,6 +35437,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
34778
35437
|
}]
|
|
34779
35438
|
}], ctorParameters: () => [] });
|
|
34780
35439
|
|
|
35440
|
+
const coreDocGenRoutes = [
|
|
35441
|
+
{
|
|
35442
|
+
path: 'template-list',
|
|
35443
|
+
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-Bd_34R-U.mjs').then(m => m.TemplateListComponent),
|
|
35444
|
+
},
|
|
35445
|
+
{
|
|
35446
|
+
path: ":id",
|
|
35447
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-DH2hr-WQ.mjs').then(m => m.CoreTemplateEditorComponent),
|
|
35448
|
+
canDeactivate: [CanDeactivateGuard]
|
|
35449
|
+
},
|
|
35450
|
+
{
|
|
35451
|
+
path: '',
|
|
35452
|
+
redirectTo: 'template-list',
|
|
35453
|
+
pathMatch: 'full'
|
|
35454
|
+
}
|
|
35455
|
+
];
|
|
35456
|
+
|
|
34781
35457
|
class CustomValidators {
|
|
34782
35458
|
static core(errorKey, valid, errorMessage) {
|
|
34783
35459
|
return (control) => {
|
|
@@ -34797,7 +35473,7 @@ const coreFormDesignRoutes = [
|
|
|
34797
35473
|
},
|
|
34798
35474
|
{
|
|
34799
35475
|
path: ':id',
|
|
34800
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-
|
|
35476
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-a1ho0-oS.mjs').then(function (n) { return n.c; }).then(m => m.CoreFormDesignComponent)
|
|
34801
35477
|
}
|
|
34802
35478
|
];
|
|
34803
35479
|
|
|
@@ -35691,7 +36367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
35691
36367
|
const coreNavigationTrackerRoutes = [
|
|
35692
36368
|
{
|
|
35693
36369
|
path: '',
|
|
35694
|
-
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-
|
|
36370
|
+
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-E3A09674.mjs').then(m => m.TrackerStudioComponent)
|
|
35695
36371
|
}
|
|
35696
36372
|
];
|
|
35697
36373
|
|
|
@@ -38327,29 +39003,29 @@ const coreWorkflowRoutes = [
|
|
|
38327
39003
|
{
|
|
38328
39004
|
path: 'form-assign/:id',
|
|
38329
39005
|
outlet: "formAssignAux",
|
|
38330
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-
|
|
39006
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-CUgB6Y-o.mjs').then(m => m.WfFormAssignComponent),
|
|
38331
39007
|
canDeactivate: [CanDeactivateGuard]
|
|
38332
39008
|
}
|
|
38333
39009
|
]
|
|
38334
39010
|
},
|
|
38335
39011
|
{
|
|
38336
39012
|
path: 'db-settings',
|
|
38337
|
-
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-
|
|
39013
|
+
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-DvZpSoNS.mjs').then(m => m.DbSettingsComponent)
|
|
38338
39014
|
},
|
|
38339
39015
|
{
|
|
38340
39016
|
path: 'workflow-consume',
|
|
38341
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-
|
|
39017
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-BkQU1iCl.mjs').then(m => m.CoreWorkflowConsumeComponent),
|
|
38342
39018
|
children: [
|
|
38343
39019
|
{
|
|
38344
39020
|
path: ':id',
|
|
38345
39021
|
outlet: "workflowConsume",
|
|
38346
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
39022
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-BJVtjmhk.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
38347
39023
|
}
|
|
38348
39024
|
]
|
|
38349
39025
|
},
|
|
38350
39026
|
{
|
|
38351
39027
|
path: 'workflow-consume/:id',
|
|
38352
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
39028
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-BJVtjmhk.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
38353
39029
|
},
|
|
38354
39030
|
{
|
|
38355
39031
|
path: 'workflow-group-edit/:id',
|
|
@@ -38359,17 +39035,17 @@ const coreWorkflowRoutes = [
|
|
|
38359
39035
|
},
|
|
38360
39036
|
{
|
|
38361
39037
|
path: 'design/:id',
|
|
38362
|
-
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-
|
|
39038
|
+
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-CJ1qavG9.mjs').then(m => m.wfDesignWrapperRoutes),
|
|
38363
39039
|
},
|
|
38364
39040
|
]
|
|
38365
39041
|
},
|
|
38366
39042
|
{
|
|
38367
39043
|
path: 'react/:id',
|
|
38368
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-
|
|
39044
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-C99XgtbF.mjs').then(m => m.WfInstanceStepReactComponent)
|
|
38369
39045
|
},
|
|
38370
39046
|
{
|
|
38371
39047
|
path: 'status/:id',
|
|
38372
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-
|
|
39048
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-C4UGaTAu.mjs').then(m => m.WfInstanceStatusComponent)
|
|
38373
39049
|
}
|
|
38374
39050
|
];
|
|
38375
39051
|
|
|
@@ -40899,5 +41575,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
40899
41575
|
* Generated bundle index. Do not edit.
|
|
40900
41576
|
*/
|
|
40901
41577
|
|
|
40902
|
-
export { CoreControlComponent as $, AppService as A, BaseEditComponent as B, ChatService as C, DragReorderDirective as D, EnumFormBaseContolType as E, FullscreenModalLoaderComponent as F, GptService as G, ApplicationHelpService as H, ImageErrorResolverDirective as I, HotKeysDirective as J, CoreCheckboxComponent as K, JsonService as L, MultiLanguageService as M, NavigatorService as N, AppConfigService as O, EnumCorePageEditMode as P, EnumCoreButtonVNSCode as Q, READONLY_WORKFLOW_FIELDS as R, SocketService as S, TranslatePipe as T, noneAutoClosedAlertOptions as U, CoreFormComponent as V, CoreButtonGroupVnsComponent as W, EnumCoreTablePipeType as X, HtmlTooltipDirective as Y, CoreControlNoFormArrayComponent as Z, EnumFormDesignMode as _, CorePageHeaderComponent as a, DndService as a$, JsonSafePipe as a0, CoreAttachmentComponent as a1, CoreMonthSelectorComponent as a2, EnumImageResolverType as a3, NormalizeHumanNamePipe as a4, CoreIosSwitcherComponent as a5, CoreFormService as a6, SunnyRotatingComponent as a7, MapAppdemoToServerPipePipe as a8, MapAttachmentToServerPipe as a9, httpInterceptorProviders as aA, InterceptorSkipHeader as aB, appTypeInterceptor as aC, baseUrlInterceptor as aD, authInterceptor as aE, graphInterceptor as aF, tokenInterceptor as aG, responseInterceptor as aH, timeZoneInterceptor as aI, cachingInterceptor as aJ, langInterceptor as aK, EnumFilterOperator as aL, OnlineUsersComponent as aM, ActionService as aN, AppInitializationService as aO, AuthService as aP, CacheService as aQ, EnumSwUpdateVersionUpdatesEventType as aR, CheckForUpdateService as aS, EnumDeviceType as aT, EnumBrowserType as aU, EnumOsType as aV, ClientService as aW, CommonHttpRequestService as aX, TLA_CONFIG as aY, ConfigService as aZ, CoreTableService as a_, MapNewsfeedMediaToServerPipe as aa, StringHtmlPipe as ab, UploadedFilenameCutoffPipe as ac, DialogStateComponent as ad, FooterComponent as ae, RightchatComponent as af, WaittingScreenComponent as ag, longAlertOptions as ah, attachmentOptions as ai, CORE_VNS_BUTTONS as aj, defaultPaging as ak, DESKTOP_SCREEN_HEDER_HEIGHT as al, MOBILE_SCREEN_HEDER_HEIGHT as am, themeBlue as an, DATE_VALUE_ACCESSOR as ao, DateValueAccessor as ap, EnumDragType as aq, EnumErrorType as ar, EnumIconClass as as, EnumProfileInfoSector as at, EnumSignalRType as au, EnumSortDirection as av, EnumStyleButtonClass as aw, CanActivateFunctionUrlMapperGuard as ax, InitializationCanActivateFn as ay, InitializationCanMatchFn as az, CoreTabsComponent as b, SysOtherListComponent as b$, FilterKitService as b0, GrpcService as b1, HeaderService as b2, HistoryService as b3, HttpErrorHandler as b4, HubConnectionService as b5, IpServiceService as b6, LayoutService as b7, MapService as b8, MenuService as b9, EnumWorkScheduleViewMode as bA, WorkShiftDndService as bB, AtShiftPatternComponent as bC, AtShiftPatternApplyComponent as bD, AtShiftPatternEditComponent as bE, AtWorksignComponent as bF, AtWorksignService as bG, FunctionComponent as bH, IndividualScheduleApplyComponent as bI, FunctionEditComponent as bJ, FunctionIgnoreComponent as bK, FunctionIgnoreEditComponent as bL, GroupFunctionComponent as bM, GroupFunctionEditComponent as bN, InMemoryComponent as bO, LanguageComponent as bP, LanguageEditComponent as bQ, MenuComponent as bR, MenuEditComponent as bS, MutationLogComponent as bT, MutationViewComponent as bU, PaSalaryPolicyComponent as bV, PaSalaryPolicyEditComponent as bW, PortalRouteComponent as bX, ScheduleOverviewComponent as bY, simpleChatRoutes as bZ, PortalRouteEditComponent as b_, MessageService as ba, ModalService as bb, OrganizationService as bc, PkceService as bd, PositionTransferService as be, EnumNotificationDir as bf, NotificationActionType as bg, PushNotificationService as bh, RandomAvatarService as bi, RequestCache as bj, RequestCacheWithMap as bk, ResponseService as bl, RoutingService as bm, EnumSsrsExpressFileExtension as bn, EnumSsrsExpressExportFormat as bo, SsrsExpressService as bp, StatisticService as bq, StatisticAuthService as br, SysMenuService as bs, TimeSheetService as bt, TopicPermissionService as bu, TopicTreeService as bv, UploadedFileService as bw, UrlService as bx, UserActivityService as by, EvaluateDialogService as bz, CoreWorkflowService as c, coreFormDesignRoutes as c$, SysOtherListEditComponent as c0, SysOtherListTypeComponent as c1, SysOtherListTypeEditComponent as c2, SysActionComponent as c3, SysActionEditComponent as c4, SysFunctionActionComponent as c5, SysFunctionActionEditComponent as c6, SysFunctionActionMapperComponent as c7, SysFunctionUrlMapperComponent as c8, FunctionEditService as c9, CoreCommonParamKitComponent as cA, CoreCompareDbPipelineComponent as cB, CoreCompositionState as cC, CoreCompositionService as cD, CoreCompositionComponent as cE, CoreConfirmDialogComponent as cF, ConfirmDialogStateComponent as cG, CoreLazyMountComponent as cH, CoreRootMenuItemPickerComponent as cI, CoreRootMenuItemPickerService as cJ, ECoreTableToolCode as cK, ECoreTableToolClass as cL, CoreTableComponent as cM, CoreContractSeekerComponent as cN, CoreControlNoGridBufferComponent as cO, CoreControlNoSeekerComponent as cP, CoreEmployeeScheduleComponent as cQ, CoreEmployeeSeekerComponent as cR, EnumCoreFileUploaderType as cS, CoreFileUploaderComponent as cT, CoreFilterHubComponent as cU, CoreFilterHubService as cV, ControlBase as cW, Textbox as cX, CoreControlService as cY, CustomValidators as cZ, URL_PATTERN as c_, SysModuleComponent as ca, SysModuleEditComponent as cb, SysRouteAccessComponent as cc, liner_to_nested_array_script as cd, blob_to_base64_script as ce, AlertComponent as cf, EnumAlertType as cg, IAlertOptions as ch, AnimatedTextService as ci, AnimatedTextComponent as cj, BaseDropdownComponent as ck, ButtonGroupModule as cl, ButtonGroupService as cm, ButtonGroupComponent as cn, EnumButtonCaptionCode as co, CoreButtonComponent as cp, CoreAccordionComponent as cq, CoreAccordionService as cr, CoreActiveUserCountComponent as cs, NewlyCreatedTokenService as ct, CoreApiProgressComponent as cu, CoreButtonGroupComponent as cv, EnumCoreButtonCode as cw, ActionSvgEditComponent as cx, CoreButtonGroupService as cy, CoreButtonVnsComponent as cz, EnumCoreFormControlSeekerSourceType as d, CoreSalaryPolicyPickerComponent as d$, CoreFormTabComponent as d0, CoreFormLiteComponent as d1, CoreFormControlBaseComponent as d2, EnumCoreSeekerColumnJob as d3, EnumCoreSeekerColumnStaffProfile as d4, EnumCoreSeekerColumnContract as d5, EnumCoreSeekerColumnWorking as d6, EnumCoreSeekerColumnWage as d7, EnumCoreSeekerColumnPosition as d8, EnumCoreSeekerColumnPositionConcurrent as d9, CorePageEditService as dA, CorePageEditLiteComponent as dB, CorePageEditTabComponent as dC, CorePageListComponent as dD, EnumExType as dE, CorePageListService as dF, CorePageListState as dG, CorePageListContentComponent as dH, EnumCoreViewItemType as dI, CorePageViewComponent as dJ, CorePaginationComponent as dK, CorePaginationFullComponent as dL, CorePaginationFullService as dM, CoreFileFormatPickerComponent as dN, CorePermissionService as dO, EnumPermissionObjectType as dP, CorePermissionComponent as dQ, CorePermissionActionsComponent as dR, CorePositionConcurrentSeekerComponent as dS, CorePositionSeekerComponent as dT, CoreQrcodeComponent as dU, EnumOparator as dV, CoreQueryBuilderComponent as dW, CoreReducerIconComponent as dX, CoreRotatingTextComponent as dY, CoreRouteAccumulatorComponent as dZ, CoreRoutingHistoryComponent as d_, EnumCoreSeekerColumnAutoForm as da, SeekerService as db, CoreGridBufferComponent as dc, CoreHeaderParamsComponent as dd, CoreHelperComponent as de, CoreLineComponent as df, CoreListComponent as dg, CoreListLazyComponent as dh, CoreLoadingSurfaceComponent as di, CoreMccComponent as dj, CoreMonthPickerComponent as dk, CoreNavigationTrackerComponent as dl, coreNavigationTrackerRoutes as dm, CoreOauthCallbackComponent as dn, CoreOauthCallbackOffice365Component as dp, EnumCoreOrgTreeaAccessorMode as dq, EnumCoreOrgTreeaSearchMode as dr, CoreOrgTreeComponent as ds, CoreOrgTreeState as dt, CoreOrgTreeService as du, CoreOrgUnitSeekerComponent as dv, CoreOrgchartflexComponent as dw, CoreOrgParamComponent as dx, EnumCorePageEditBootstrapClass as dy, EnumCorePageEditFieldType as dz, CorePageEditComponent as e, CoreScrollComponent as e0, CoreScrollLazyComponent as e1, CoreSeenByComponent as e2, CoreShiftCardComponent as e3, CoreShiftCellComponent as e4, CoreShiftCollectionComponent as e5, CoreShiftStickerComponent as e6, STICKER_COLOR_SCHEMA as e7, CoreStatusStickerComponent as e8, CoreSubFormGroupComponent as e9, LanguageChangerComponent as eA, DEFAULT_SVG as eB, ItemComponent as eC, NavigatorComponent as eD, OtpInputComponent as eE, OtpInputService as eF, PageTitleComponent as eG, PaginationComponent as eH, FilterPipe as eI, normalizeHumanName as eJ, PositionComponent as eK, PositionEditService as eL, CoreDatetimeService as eM, FileService as eN, LongTaskService as eO, EnumRecursiveFields as eP, RecursiveService as eQ, StringService as eR, UnicodeService as eS, StaffProfileComponent as eT, ThreedotsComponent as eU, TooltipComponent as eV, UserActivityComponent as eW, WageComponent as eX, tooltip_directive as eY, dragReorder_directive as eZ, CoreTabListComponent as ea, CoreTagsComponent as eb, CoreTopicPickerComponent as ec, EnumCoreArticleCategoryTreeaAccessorMode as ed, CoreTopicTreeComponent as ee, CoreTreeComponent as ef, EnumCoreTreeGridEditMode as eg, CoreTreeGridComponent as eh, CoreWageSeekerComponent as ei, CoreWorkingSeekerComponent as ej, coreWorkflowRoutes as ek, CoreWorkflowBuilderComponent as el, CoreWorkflowGroupEditComponent as em, CoreYearPickerComponent as en, CoreYearSelectorComponent as eo, EnumCoreD3ScaleType as ep, CoreD3Service as eq, CorePieComponent as er, CoreScatterPlotComponent as es, EnumHrComparisonCode as et, EnumICoreStatisticWidgetDataType as eu, CoreStatisticWidgetComponent as ev, DecisionComponent as ew, EvaluateDialogComponent as ex, HuconcurrentlyComponent as ey, JobComponent as ez, BaseComponent as f, CoreWorkflowListComponent as g, TooltipDirective as h, CanDeactivateGuard as i, AlertService as j, TableCellPipe as k, MapAvatarToServerPipe as l, alertOptions as m, CoreTerminalSpinnerComponent as n, CoreFormDesignService as o, EnumWorkflowStepType as p, DialogService as q, DomService as r, CoreDropdownComponent as s, CoreChecklistComponent as t, CoreDatePickerComponent as u, CoreFormControlSeekerComponent as v, CoreCurrencyInputComponent as w, EnumActorSourceType as x, CoreParamControlComponent as y, CoreRadioGroupComponent as z };
|
|
40903
|
-
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-
|
|
41578
|
+
export { EnumFormDesignMode as $, AppService as A, BaseComponent as B, ChatService as C, DialogService as D, EnumCoreTablePipeType as E, FullscreenModalLoaderComponent as F, EnumActorSourceType as G, CoreParamControlComponent as H, ImageErrorResolverDirective as I, CoreRadioGroupComponent as J, GptService as K, ApplicationHelpService as L, MultiLanguageService as M, HotKeysDirective as N, NavigatorService as O, JsonService as P, AppConfigService as Q, EnumCorePageEditMode as R, SocketService as S, TranslatePipe as T, EnumCoreButtonVNSCode as U, READONLY_WORKFLOW_FIELDS as V, noneAutoClosedAlertOptions as W, CoreFormComponent as X, CoreButtonGroupVnsComponent as Y, HtmlTooltipDirective as Z, CoreControlNoFormArrayComponent as _, CorePageListComponent as a, CoreTableService as a$, CoreControlComponent as a0, JsonSafePipe as a1, CoreAttachmentComponent as a2, CoreMonthSelectorComponent as a3, EnumImageResolverType as a4, NormalizeHumanNamePipe as a5, CoreIosSwitcherComponent as a6, CoreFormService as a7, SunnyRotatingComponent as a8, MapAppdemoToServerPipePipe as a9, InitializationCanMatchFn as aA, httpInterceptorProviders as aB, InterceptorSkipHeader as aC, appTypeInterceptor as aD, baseUrlInterceptor as aE, authInterceptor as aF, graphInterceptor as aG, tokenInterceptor as aH, responseInterceptor as aI, timeZoneInterceptor as aJ, cachingInterceptor as aK, langInterceptor as aL, EnumFilterOperator as aM, OnlineUsersComponent as aN, ActionService as aO, AppInitializationService as aP, AuthService as aQ, CacheService as aR, EnumSwUpdateVersionUpdatesEventType as aS, CheckForUpdateService as aT, EnumDeviceType as aU, EnumBrowserType as aV, EnumOsType as aW, ClientService as aX, CommonHttpRequestService as aY, TLA_CONFIG as aZ, ConfigService as a_, MapAttachmentToServerPipe as aa, MapNewsfeedMediaToServerPipe as ab, StringHtmlPipe as ac, UploadedFilenameCutoffPipe as ad, DialogStateComponent as ae, FooterComponent as af, RightchatComponent as ag, WaittingScreenComponent as ah, longAlertOptions as ai, attachmentOptions as aj, CORE_VNS_BUTTONS as ak, defaultPaging as al, DESKTOP_SCREEN_HEDER_HEIGHT as am, MOBILE_SCREEN_HEDER_HEIGHT as an, themeBlue as ao, DATE_VALUE_ACCESSOR as ap, DateValueAccessor as aq, EnumDragType as ar, EnumErrorType as as, EnumIconClass as at, EnumProfileInfoSector as au, EnumSignalRType as av, EnumSortDirection as aw, EnumStyleButtonClass as ax, CanActivateFunctionUrlMapperGuard as ay, InitializationCanActivateFn as az, CoreCheckboxComponent as b, PortalRouteEditComponent as b$, DndService as b0, FilterKitService as b1, GrpcService as b2, HeaderService as b3, HistoryService as b4, HttpErrorHandler as b5, HubConnectionService as b6, IpServiceService as b7, LayoutService as b8, MapService as b9, EvaluateDialogService as bA, EnumWorkScheduleViewMode as bB, WorkShiftDndService as bC, AtShiftPatternComponent as bD, AtShiftPatternApplyComponent as bE, AtShiftPatternEditComponent as bF, AtWorksignComponent as bG, AtWorksignService as bH, FunctionComponent as bI, IndividualScheduleApplyComponent as bJ, FunctionEditComponent as bK, FunctionIgnoreComponent as bL, FunctionIgnoreEditComponent as bM, GroupFunctionComponent as bN, GroupFunctionEditComponent as bO, InMemoryComponent as bP, LanguageComponent as bQ, LanguageEditComponent as bR, MenuComponent as bS, MenuEditComponent as bT, MutationLogComponent as bU, MutationViewComponent as bV, PaSalaryPolicyComponent as bW, PaSalaryPolicyEditComponent as bX, PortalRouteComponent as bY, ScheduleOverviewComponent as bZ, simpleChatRoutes as b_, MenuService as ba, MessageService as bb, ModalService as bc, OrganizationService as bd, PkceService as be, PositionTransferService as bf, EnumNotificationDir as bg, NotificationActionType as bh, PushNotificationService as bi, RandomAvatarService as bj, RequestCache as bk, RequestCacheWithMap as bl, ResponseService as bm, RoutingService as bn, EnumSsrsExpressFileExtension as bo, EnumSsrsExpressExportFormat as bp, SsrsExpressService as bq, StatisticService as br, StatisticAuthService as bs, SysMenuService as bt, TimeSheetService as bu, TopicPermissionService as bv, TopicTreeService as bw, UploadedFileService as bx, UrlService as by, UserActivityService as bz, BaseEditComponent as c, CoreControlService as c$, SysOtherListComponent as c0, SysOtherListEditComponent as c1, SysOtherListTypeComponent as c2, SysOtherListTypeEditComponent as c3, SysActionComponent as c4, SysActionEditComponent as c5, SysFunctionActionComponent as c6, SysFunctionActionEditComponent as c7, SysFunctionActionMapperComponent as c8, SysFunctionUrlMapperComponent as c9, CoreButtonVnsComponent as cA, CoreCommonParamKitComponent as cB, CoreCompareDbPipelineComponent as cC, CoreCompositionState as cD, CoreCompositionService as cE, CoreCompositionComponent as cF, CoreConfirmDialogComponent as cG, ConfirmDialogStateComponent as cH, CoreLazyMountComponent as cI, CoreRootMenuItemPickerComponent as cJ, CoreRootMenuItemPickerService as cK, ECoreTableToolCode as cL, ECoreTableToolClass as cM, CoreTableComponent as cN, CoreContractSeekerComponent as cO, CoreControlNoGridBufferComponent as cP, CoreControlNoSeekerComponent as cQ, coreDocGenRoutes as cR, CoreDocgenToolbarComponent as cS, CoreEmployeeScheduleComponent as cT, CoreEmployeeSeekerComponent as cU, EnumCoreFileUploaderType as cV, CoreFileUploaderComponent as cW, CoreFilterHubComponent as cX, CoreFilterHubService as cY, ControlBase as cZ, Textbox as c_, FunctionEditService as ca, SysModuleComponent as cb, SysModuleEditComponent as cc, SysRouteAccessComponent as cd, liner_to_nested_array_script as ce, blob_to_base64_script as cf, AlertComponent as cg, EnumAlertType as ch, IAlertOptions as ci, AnimatedTextService as cj, AnimatedTextComponent as ck, BaseDropdownComponent as cl, ButtonGroupModule as cm, ButtonGroupService as cn, ButtonGroupComponent as co, EnumButtonCaptionCode as cp, CoreButtonComponent as cq, CoreAccordionComponent as cr, CoreAccordionService as cs, CoreActiveUserCountComponent as ct, NewlyCreatedTokenService as cu, CoreApiProgressComponent as cv, CoreButtonGroupComponent as cw, EnumCoreButtonCode as cx, ActionSvgEditComponent as cy, CoreButtonGroupService as cz, EnumFormBaseContolType as d, CoreRotatingTextComponent as d$, CustomValidators as d0, URL_PATTERN as d1, coreFormDesignRoutes as d2, CoreFormTabComponent as d3, CoreFormLiteComponent as d4, CoreFormControlBaseComponent as d5, EnumCoreSeekerColumnJob as d6, EnumCoreSeekerColumnStaffProfile as d7, EnumCoreSeekerColumnContract as d8, EnumCoreSeekerColumnWorking as d9, CoreOrgchartflexComponent as dA, CoreOrgParamComponent as dB, EnumCorePageEditBootstrapClass as dC, EnumCorePageEditFieldType as dD, CorePageEditService as dE, CorePageEditLiteComponent as dF, CorePageEditTabComponent as dG, EnumExType as dH, CorePageListService as dI, CorePageListState as dJ, CorePageListContentComponent as dK, EnumCoreViewItemType as dL, CorePageViewComponent as dM, CorePaginationComponent as dN, CorePaginationFullComponent as dO, CorePaginationFullService as dP, CoreFileFormatPickerComponent as dQ, CorePermissionService as dR, EnumPermissionObjectType as dS, CorePermissionComponent as dT, CorePermissionActionsComponent as dU, CorePositionConcurrentSeekerComponent as dV, CorePositionSeekerComponent as dW, CoreQrcodeComponent as dX, EnumOparator as dY, CoreQueryBuilderComponent as dZ, CoreReducerIconComponent as d_, EnumCoreSeekerColumnWage as da, EnumCoreSeekerColumnPosition as db, EnumCoreSeekerColumnPositionConcurrent as dc, EnumCoreSeekerColumnAutoForm as dd, SeekerService as de, CoreGridBufferComponent as df, CoreHeaderParamsComponent as dg, CoreHelperComponent as dh, CoreLineComponent as di, CoreLiquidWysiwygComponent as dj, CoreListComponent as dk, CoreListLazyComponent as dl, CoreLoadingSurfaceComponent as dm, CoreMccComponent as dn, CoreMonthPickerComponent as dp, CoreNavigationTrackerComponent as dq, coreNavigationTrackerRoutes as dr, CoreOauthCallbackComponent as ds, CoreOauthCallbackOffice365Component as dt, EnumCoreOrgTreeaAccessorMode as du, EnumCoreOrgTreeaSearchMode as dv, CoreOrgTreeComponent as dw, CoreOrgTreeState as dx, CoreOrgTreeService as dy, CoreOrgUnitSeekerComponent as dz, CorePageEditComponent as e, tooltip_directive as e$, CoreRouteAccumulatorComponent as e0, CoreRoutingHistoryComponent as e1, CoreSalaryPolicyPickerComponent as e2, CoreScrollComponent as e3, CoreScrollLazyComponent as e4, CoreSeenByComponent as e5, CoreShiftCardComponent as e6, CoreShiftCellComponent as e7, CoreShiftCollectionComponent as e8, CoreShiftStickerComponent as e9, EvaluateDialogComponent as eA, HuconcurrentlyComponent as eB, JobComponent as eC, LanguageChangerComponent as eD, DEFAULT_SVG as eE, ItemComponent as eF, NavigatorComponent as eG, OtpInputComponent as eH, OtpInputService as eI, PageTitleComponent as eJ, PaginationComponent as eK, FilterPipe as eL, normalizeHumanName as eM, PositionComponent as eN, PositionEditService as eO, CoreDatetimeService as eP, FileService as eQ, LongTaskService as eR, EnumRecursiveFields as eS, RecursiveService as eT, StringService as eU, UnicodeService as eV, StaffProfileComponent as eW, ThreedotsComponent as eX, TooltipComponent as eY, UserActivityComponent as eZ, WageComponent as e_, STICKER_COLOR_SCHEMA as ea, CoreStatusStickerComponent as eb, CoreSubFormGroupComponent as ec, CoreTabListComponent as ed, CoreTagsComponent as ee, CoreTopicPickerComponent as ef, EnumCoreArticleCategoryTreeaAccessorMode as eg, CoreTopicTreeComponent as eh, CoreTreeComponent as ei, EnumCoreTreeGridEditMode as ej, CoreTreeGridComponent as ek, CoreWageSeekerComponent as el, CoreWorkingSeekerComponent as em, coreWorkflowRoutes as en, CoreWorkflowBuilderComponent as eo, CoreWorkflowGroupEditComponent as ep, CoreYearPickerComponent as eq, CoreYearSelectorComponent as er, EnumCoreD3ScaleType as es, CoreD3Service as et, CorePieComponent as eu, CoreScatterPlotComponent as ev, EnumHrComparisonCode as ew, EnumICoreStatisticWidgetDataType as ex, CoreStatisticWidgetComponent as ey, DecisionComponent as ez, CorePageHeaderComponent as f, dragReorder_directive as f0, CoreTabsComponent as g, CoreWorkflowService as h, EnumCoreFormControlSeekerSourceType as i, CoreWorkflowListComponent as j, TooltipDirective as k, DragReorderDirective as l, CanDeactivateGuard as m, AlertService as n, TableCellPipe as o, MapAvatarToServerPipe as p, alertOptions as q, CoreTerminalSpinnerComponent as r, CoreFormDesignService as s, EnumWorkflowStepType as t, DomService as u, CoreDropdownComponent as v, CoreChecklistComponent as w, CoreDatePickerComponent as x, CoreFormControlSeekerComponent as y, CoreCurrencyInputComponent as z };
|
|
41579
|
+
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-OX-fPVM-.mjs.map
|