ngx-histaff-alpha 6.3.6 → 6.3.8
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-D_Yv-aKW.mjs → ngx-histaff-alpha-ai-hint-for-table.component-D9X0r5wC.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-D_Yv-aKW.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-D9X0r5wC.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-BDh-358_.mjs → ngx-histaff-alpha-core-form-design.component-Jzy7HTBy.mjs} +6 -6
- package/fesm2022/{ngx-histaff-alpha-core-form-design.component-BDh-358_.mjs.map → ngx-histaff-alpha-core-form-design.component-Jzy7HTBy.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-BBWim535.mjs → ngx-histaff-alpha-core-template-editor.component-CwYRUlbM.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-template-editor.component-BBWim535.mjs.map → ngx-histaff-alpha-core-template-editor.component-CwYRUlbM.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-DxfG1JzG.mjs → ngx-histaff-alpha-core-toast-loading.component-Byl2v6zI.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-DxfG1JzG.mjs.map → ngx-histaff-alpha-core-toast-loading.component-Byl2v6zI.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-CvGswHbB.mjs → ngx-histaff-alpha-core-workflow-consume.component-Fma_hNMb.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-CvGswHbB.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-Fma_hNMb.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-CqNPzdzL.mjs → ngx-histaff-alpha-db-settings.component-CpjFcS3r.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-db-settings.component-CqNPzdzL.mjs.map → ngx-histaff-alpha-db-settings.component-CpjFcS3r.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-CVsgjU2z.mjs → ngx-histaff-alpha-design-wrapper.component-CWPAtJdW.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-CVsgjU2z.mjs.map → ngx-histaff-alpha-design-wrapper.component-CWPAtJdW.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-B_EjwkZd.mjs → ngx-histaff-alpha-design-wrapper.route-BPTxhFez.mjs} +5 -5
- package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-B_EjwkZd.mjs.map → ngx-histaff-alpha-design-wrapper.route-BPTxhFez.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-form-array-props.component-BEKVB15X.mjs → ngx-histaff-alpha-form-array-props.component-CFQHLdzG.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-form-array-props.component-BEKVB15X.mjs.map → ngx-histaff-alpha-form-array-props.component-CFQHLdzG.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-BEt_LyNb.mjs → ngx-histaff-alpha-hrm-schema.component-DhcmippJ.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-hrm-schema.component-BEt_LyNb.mjs.map → ngx-histaff-alpha-hrm-schema.component-DhcmippJ.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-live-form.component-FW_M5cI5.mjs → ngx-histaff-alpha-live-form.component-iX23HD-T.mjs} +4 -4
- package/fesm2022/{ngx-histaff-alpha-live-form.component-FW_M5cI5.mjs.map → ngx-histaff-alpha-live-form.component-iX23HD-T.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-YPc6xct6.mjs → ngx-histaff-alpha-ngx-histaff-alpha-BJ3ZVba7.mjs} +2133 -1019
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-BJ3ZVba7.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-pL0ykKNj.mjs → ngx-histaff-alpha-simple-chat.component-Da4H2k5o.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-simple-chat.component-pL0ykKNj.mjs.map → ngx-histaff-alpha-simple-chat.component-Da4H2k5o.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-template-list.component-36QflRwY.mjs → ngx-histaff-alpha-template-list.component-CVK_Ewx4.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-template-list.component-36QflRwY.mjs.map → ngx-histaff-alpha-template-list.component-CVK_Ewx4.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-DlAdz6Wq.mjs → ngx-histaff-alpha-tracker-studio.component-8tqyVAcU.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-tracker-studio.component-DlAdz6Wq.mjs.map → ngx-histaff-alpha-tracker-studio.component-8tqyVAcU.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-V9exT_fm.mjs → ngx-histaff-alpha-wf-form-assign.component-CRs1A8j_.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-V9exT_fm.mjs.map → ngx-histaff-alpha-wf-form-assign.component-CRs1A8j_.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-global-config.component-BuCfL80F.mjs → ngx-histaff-alpha-wf-global-config.component-yeFb4wxY.mjs} +19 -2
- package/fesm2022/ngx-histaff-alpha-wf-global-config.component-yeFb4wxY.mjs.map +1 -0
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-DJuPBwqR.mjs → ngx-histaff-alpha-wf-instance-status.component-Jahj4MO-.mjs} +2 -2
- package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-DJuPBwqR.mjs.map → ngx-histaff-alpha-wf-instance-status.component-Jahj4MO-.mjs.map} +1 -1
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-OAdGYvAN.mjs → ngx-histaff-alpha-wf-instance-step-react.component-Bri0bRw3.mjs} +3 -3
- package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-OAdGYvAN.mjs.map → ngx-histaff-alpha-wf-instance-step-react.component-Bri0bRw3.mjs.map} +1 -1
- package/fesm2022/ngx-histaff-alpha.mjs +1 -1
- package/lib/app/libraries/core-com-tree/com-party.service.d.ts +3 -2
- package/lib/app/libraries/core-com-tree/core-com-tree.component.d.ts +7 -5
- package/lib/app/libraries/core-com-tree/mokeUpLinearData.d.ts +19 -0
- package/lib/app/libraries/core-control-no-form-array/core-control-no-form-array.component.d.ts +3 -1
- package/lib/app/libraries/core-form/core-form-array/core-form-array.component.d.ts +5 -4
- package/lib/app/libraries/core-shift-collection/core-shift-collection.component.d.ts +2 -1
- package/lib/app/services/app-config.service.d.ts +1 -0
- package/package.json +2 -2
- package/public-api.d.ts +3 -0
- package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-YPc6xct6.mjs.map +0 -1
- package/fesm2022/ngx-histaff-alpha-wf-global-config.component-BuCfL80F.mjs.map +0 -1
|
@@ -3881,11 +3881,12 @@ class AppInitializationService {
|
|
|
3881
3881
|
if (window.opener && window.opener.globalPopupId) {
|
|
3882
3882
|
//alert(window.opener.globalPopupId);
|
|
3883
3883
|
}
|
|
3884
|
-
fetch('../../assets/app.config.json').then(res => res.json()).then(({ APP_TYPE, APP_UIID, ALLOW_IN_APP_NOTIFICATION, SHOW_LOGIN_NOTIFICATION, IGNORE_PARTIAL_URL_MATCH_FOR_FUNCTION, IGNORE_PARTIAL_URL_MATCH_FOR_PROFILE_CENTER, USE_BUILTIN_OTP, USE_CAPTCHA, BASE_URL, BASE_URL_FOR_STATISTIC, GOLIVE_URL, DEBUG_ENABLED, USE_DEMO_AVATAR, LOGO_LOGIN, LOGO_HEADER, HOME_BACKGROUND_IMAGE, FORM_CONTROL_REQUIRED_HIGHLIGHT_COLOR, OAUTH2_OIDC_ENABLED, OAUTH2_OIDC_CLIENT_ID, OAUTH2_OIDC_LOGIN_URI, OAUTH2_OIDC_REDIRECT_URI, OAUTH2_OIDC_SCOPE, OFFICE365_DEV, OFFICE365_PROD, SAML2ADFS_ENABLED, SAML2ADFS_IDP, SAML2ADFS_IDENTIFIER, SAML2ADFS_WA_SIGNIN, SAML2ADFS_WA_SIGNOUT, SAML2ADFS_WREPLY, HANGFIRE_PATH, STATIC_FOLDER, WORKFLOW_ENABLE_DEBUG_MODE, }) => {
|
|
3884
|
+
fetch('../../assets/app.config.json').then(res => res.json()).then(({ APP_TYPE, APP_UIID, ALLOW_IN_APP_NOTIFICATION, SHOW_LOGIN_NOTIFICATION, FEDERATION_COM_PARTY_ENABLED, IGNORE_PARTIAL_URL_MATCH_FOR_FUNCTION, IGNORE_PARTIAL_URL_MATCH_FOR_PROFILE_CENTER, USE_BUILTIN_OTP, USE_CAPTCHA, BASE_URL, BASE_URL_FOR_STATISTIC, GOLIVE_URL, DEBUG_ENABLED, USE_DEMO_AVATAR, LOGO_LOGIN, LOGO_HEADER, HOME_BACKGROUND_IMAGE, FORM_CONTROL_REQUIRED_HIGHLIGHT_COLOR, OAUTH2_OIDC_ENABLED, OAUTH2_OIDC_CLIENT_ID, OAUTH2_OIDC_LOGIN_URI, OAUTH2_OIDC_REDIRECT_URI, OAUTH2_OIDC_SCOPE, OFFICE365_DEV, OFFICE365_PROD, SAML2ADFS_ENABLED, SAML2ADFS_IDP, SAML2ADFS_IDENTIFIER, SAML2ADFS_WA_SIGNIN, SAML2ADFS_WA_SIGNOUT, SAML2ADFS_WREPLY, HANGFIRE_PATH, STATIC_FOLDER, WORKFLOW_ENABLE_DEBUG_MODE, }) => {
|
|
3885
3885
|
this.appConfigService.APP_TYPE = APP_TYPE;
|
|
3886
3886
|
this.appConfigService.APP_UIID = APP_UIID;
|
|
3887
3887
|
this.appConfigService.ALLOW_IN_APP_NOTIFICATION = ALLOW_IN_APP_NOTIFICATION;
|
|
3888
3888
|
this.appConfigService.SHOW_LOGIN_NOTIFICATION = SHOW_LOGIN_NOTIFICATION;
|
|
3889
|
+
this.appConfigService.FEDERATION_COM_PARTY_ENABLED = FEDERATION_COM_PARTY_ENABLED;
|
|
3889
3890
|
this.appConfigService.IGNORE_PARTIAL_URL_MATCH_FOR_FUNCTION = IGNORE_PARTIAL_URL_MATCH_FOR_FUNCTION;
|
|
3890
3891
|
this.appConfigService.IGNORE_PARTIAL_URL_MATCH_FOR_PROFILE_CENTER = IGNORE_PARTIAL_URL_MATCH_FOR_PROFILE_CENTER;
|
|
3891
3892
|
this.appConfigService.USE_BUILTIN_OTP = USE_BUILTIN_OTP;
|
|
@@ -9176,7 +9177,7 @@ class SocketService {
|
|
|
9176
9177
|
.withUrl(this.appConfigService.BASE_URL + '/hubs/signal', {
|
|
9177
9178
|
accessTokenFactory: () => token,
|
|
9178
9179
|
skipNegotiation: true,
|
|
9179
|
-
transport: HttpTransportType.WebSockets
|
|
9180
|
+
transport: HttpTransportType.WebSockets || HttpTransportType.ServerSentEvents || HttpTransportType.LongPolling
|
|
9180
9181
|
})
|
|
9181
9182
|
.configureLogging(LogLevel.Information)
|
|
9182
9183
|
.build();
|
|
@@ -24465,7 +24466,7 @@ class CoreShiftCollectionComponent extends BaseComponent {
|
|
|
24465
24466
|
this.filteredShifts = this.fullShifts;
|
|
24466
24467
|
}
|
|
24467
24468
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreShiftCollectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24468
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreShiftCollectionComponent, isStandalone: true, selector: "core-shift-collection", inputs: { height: "height", relativeMode: "relativeMode" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-shift-collection-container\" draggable=\"true\">\r\n <div class=\"p-relative\">\r\n <div #header class=\"header\" [ngStyle]=\"{\r\n cursor: relativeMode ? 'auto' : 'move'\r\n }\">\r\n <span>{{ 'SHIFT_COLLECTION' | translate: lang | uppercase }}</span>\r\n @if (!relativeMode) {\r\n <i class=\"feather-x\" (click)=\"onClose($event)\"></i>\r\n }\r\n </div>\r\n <div class=\"lookup-wrapper d-flex d-flex-start p15\">\r\n <div class=\"advanced-search d-flex d-flex-v h-100\">\r\n <div class=\"pointer\" [appTooltip]=\"'UI_COMMON_ADVANCED_FILTER' | translate: lang\" (click)=\"onAdvancedSearchToggle()\">\r\n <i class=\"feather-sliders\"></i>\r\n </div>\r\n @if (codeKeyword.length || nameKeyword.length || symbolCodeKeyword.length || symbolNameKeyword.length) {\r\n <div class=\"pointer\" [appTooltip]=\"'UI_COMMON_FILTER_RESET' | translate: lang\" (click)=\"onFilterReset()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"lookup w-100\">\r\n <input class=\"form-control\" placeholder=\"Code...\" [(ngModel)]=\"codeKeyword\"\r\n (ngModelChange)=\"onCodeKeywordChange($event)\">\r\n\r\n @if (showAdvancedSearch) {\r\n <input class=\"form-control\" placeholder=\"Name...\" [(ngModel)]=\"nameKeyword\"\r\n (ngModelChange)=\"onNameKeywordChange($event)\">\r\n <input class=\"form-control\" placeholder=\"Symbol code...\" [(ngModel)]=\"symbolCodeKeyword\"\r\n (ngModelChange)=\"onSymbolCodeKeywordChange($event)\">\r\n <input class=\"form-control\" placeholder=\"Symbol name...\" [(ngModel)]=\"symbolNameKeyword\"\r\n (ngModelChange)=\"onSymbolNameKeywordChange($event)\">\r\n }\r\n </div>\r\n </div>\r\n <div class=\"scroll-wrapper\">\r\n <core-scroll [localOptions]=\"filteredShifts\" [itemTemplate]=\"itemTemplateRef\"\r\n [itemCount]=\"filteredShifts.length\" [height]=\"height - 50 - searchHeight\" [childHeight]=\"itemHeight\">\r\n </core-scroll>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemTemplateRef let-context=\"context\">\r\n <li [ngStyle]=\"{ height: itemHeight + 'px' }\">\r\n <core-shift-card [ngModel]=\"context\"></core-shift-card>\r\n </li>\r\n</ng-template>", styles: [".core-shift-collection-container{--starter-x: 0px;background-color:#fff;width:320px;position:fixed;display:block;z-index:9;top:0;left:var(--starter-x);box-shadow:.4rem 0 2rem #0000002e;border-radius:2px}.core-shift-collection-container .header{padding:15px;display:block;height:50px}.core-shift-collection-container .header i{color:gray;font-size:24px;float:right;cursor:pointer}.core-shift-collection-container .lookup{padding:15px}.core-shift-collection-container .lookup input:not(:last-child){margin-bottom:15px}li{margin-left:9px;margin-right:9px;border-radius:2px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreScrollComponent, selector: "core-scroll", inputs: ["localOptions", "itemTemplate", "itemCount", "height", "childHeight", "renderAhread"] }, { kind: "component", type: CoreShiftCardComponent, selector: "core-shift-card" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }] }); }
|
|
24469
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreShiftCollectionComponent, isStandalone: true, selector: "core-shift-collection", inputs: { height: "height", disabled: "disabled", relativeMode: "relativeMode" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-shift-collection-container\" draggable=\"true\">\r\n <div class=\"p-relative\">\r\n <div #header class=\"header\" [ngStyle]=\"{\r\n cursor: relativeMode ? 'auto' : 'move'\r\n }\">\r\n <span>{{ 'SHIFT_COLLECTION' | translate: lang | uppercase }}</span>\r\n @if (!relativeMode) {\r\n <i class=\"feather-x\" (click)=\"onClose($event)\"></i>\r\n }\r\n </div>\r\n <div class=\"lookup-wrapper d-flex d-flex-start p15\">\r\n <div class=\"advanced-search d-flex d-flex-v h-100\">\r\n <div class=\"pointer\" [appTooltip]=\"'UI_COMMON_ADVANCED_FILTER' | translate: lang\" (click)=\"onAdvancedSearchToggle()\">\r\n <i class=\"feather-sliders\"></i>\r\n </div>\r\n @if (codeKeyword.length || nameKeyword.length || symbolCodeKeyword.length || symbolNameKeyword.length) {\r\n <div class=\"pointer\" [appTooltip]=\"'UI_COMMON_FILTER_RESET' | translate: lang\" (click)=\"onFilterReset()\">\r\n <i class=\"feather-x\"></i>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"lookup w-100\">\r\n <input class=\"form-control\" placeholder=\"Code...\" [(ngModel)]=\"codeKeyword\"\r\n (ngModelChange)=\"onCodeKeywordChange($event)\">\r\n\r\n @if (showAdvancedSearch) {\r\n <input class=\"form-control\" placeholder=\"Name...\" [(ngModel)]=\"nameKeyword\"\r\n (ngModelChange)=\"onNameKeywordChange($event)\">\r\n <input class=\"form-control\" placeholder=\"Symbol code...\" [(ngModel)]=\"symbolCodeKeyword\"\r\n (ngModelChange)=\"onSymbolCodeKeywordChange($event)\">\r\n <input class=\"form-control\" placeholder=\"Symbol name...\" [(ngModel)]=\"symbolNameKeyword\"\r\n (ngModelChange)=\"onSymbolNameKeywordChange($event)\">\r\n }\r\n </div>\r\n </div>\r\n <div class=\"scroll-wrapper\">\r\n <core-scroll [localOptions]=\"filteredShifts\" [itemTemplate]=\"itemTemplateRef\"\r\n [itemCount]=\"filteredShifts.length\" [height]=\"height - 50 - searchHeight\" [childHeight]=\"itemHeight\">\r\n </core-scroll>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemTemplateRef let-context=\"context\">\r\n <li [ngStyle]=\"{ height: itemHeight + 'px' }\">\r\n <core-shift-card [ngModel]=\"context\"></core-shift-card>\r\n </li>\r\n</ng-template>", styles: [".core-shift-collection-container{--starter-x: 0px;background-color:#fff;width:320px;position:fixed;display:block;z-index:9;top:0;left:var(--starter-x);box-shadow:.4rem 0 2rem #0000002e;border-radius:2px}.core-shift-collection-container .header{padding:15px;display:block;height:50px}.core-shift-collection-container .header i{color:gray;font-size:24px;float:right;cursor:pointer}.core-shift-collection-container .lookup{padding:15px}.core-shift-collection-container .lookup input:not(:last-child){margin-bottom:15px}li{margin-left:9px;margin-right:9px;border-radius:2px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreScrollComponent, selector: "core-scroll", inputs: ["localOptions", "itemTemplate", "itemCount", "height", "childHeight", "renderAhread"] }, { kind: "component", type: CoreShiftCardComponent, selector: "core-shift-card" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }] }); }
|
|
24469
24470
|
}
|
|
24470
24471
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreShiftCollectionComponent, decorators: [{
|
|
24471
24472
|
type: Component,
|
|
@@ -24481,6 +24482,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
24481
24482
|
}], propDecorators: { height: [{
|
|
24482
24483
|
type: Input,
|
|
24483
24484
|
args: [{ required: true }]
|
|
24485
|
+
}], disabled: [{
|
|
24486
|
+
type: Input
|
|
24484
24487
|
}], relativeMode: [{
|
|
24485
24488
|
type: Input
|
|
24486
24489
|
}], container: [{
|
|
@@ -25594,7 +25597,7 @@ class CoreControlNoFormArrayComponent extends BaseComponent {
|
|
|
25594
25597
|
}
|
|
25595
25598
|
}
|
|
25596
25599
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoFormArrayComponent, deps: [{ token: MultiLanguageService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25597
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlNoFormArrayComponent, isStandalone: true, selector: "core-control-no-form-array", inputs: { control: "control", 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 (\"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 (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 @if (control.controlType==='BUTTON') {\r\n <ng-container>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n }\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n @if (!!errors!.length) {\r\n <div>\r\n @for (error of errors; track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (!errors!.length && !!checkError$.value) {\r\n <div>\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n }\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}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\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$3.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$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { 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: ["appTooltip", "showAnyway", "color", "backgroundColor", "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$"] }] }); }
|
|
25600
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreControlNoFormArrayComponent, isStandalone: true, selector: "core-control-no-form-array", inputs: { control: "control", checkError$: "checkError$", rangeLimit: "rangeLimit", readonly: "readonly", disabled: "disabled" }, 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 (\"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 [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"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 [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"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 [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"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 [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]=\"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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea \r\n [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\"\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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\" [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 [disabled]=\"!!disabled || !!control.disabled\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\"\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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\"\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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 @if (control.controlType==='BUTTON') {\r\n <ng-container>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n }\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n @if (!!errors!.length) {\r\n <div>\r\n @for (error of errors; track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (!errors!.length && !!checkError$.value) {\r\n <div>\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n }\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}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\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$3.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$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { 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: ["appTooltip", "showAnyway", "color", "backgroundColor", "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", "disabled", "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$"] }] }); }
|
|
25598
25601
|
}
|
|
25599
25602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlNoFormArrayComponent, decorators: [{
|
|
25600
25603
|
type: Component,
|
|
@@ -25625,24 +25628,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
25625
25628
|
CoreTopicPickerComponent,
|
|
25626
25629
|
CoreIosSwitcherComponent,
|
|
25627
25630
|
HtmlTooltipDirective
|
|
25628
|
-
], 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 (\"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 (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 @if (control.controlType==='BUTTON') {\r\n <ng-container>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n }\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n @if (!!errors!.length) {\r\n <div>\r\n @for (error of errors; track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (!errors!.length && !!checkError$.value) {\r\n <div>\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n }\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}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"] }]
|
|
25631
|
+
], 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 (\"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 [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"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 [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"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 [placeholder]=\"control.placeholder || ''\"\r\n [class.form-control-disabled]=\"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 [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]=\"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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-currency-input>\r\n }\r\n @case (\"TEXTAREA\") {\r\n <textarea \r\n [rows]=\"control.textareaRows?.toString() || '3'\" [ngStyle]=\"{ height: 'unset' }\"\r\n [class.form-control-disabled]=\"disabled || !!control.disabled\"\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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\" [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 [disabled]=\"!!disabled || !!control.disabled\"\r\n [placeholder]=\"control.placeholder! || ''\"\r\n ></core-mcc>\r\n }\r\n @case (\"DATEPICKER\") {\r\n <core-date-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\"\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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\r\n [gridColumns]=\"control.gridBufferTableColumns\"\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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\"\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 \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\" [placeholder]=\"control.placeholder! || ''\"></core-month-selector>\r\n }\r\n @case (\"SHIFTCELL\") {\r\n <core-shift-cell \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [formControlName]=\"control.field\"></core-shift-cell>\r\n }\r\n @case (\"SHIFTCOLLECTION\") {\r\n <core-shift-collection \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [relativeMode]=\"true\" [height]=\"control.height || 800\"></core-shift-collection>\r\n }\r\n @case(\"TOPICPICKER\") {\r\n <core-topic-picker \r\n [disabled]=\"!!disabled || !!control.disabled\"\r\n [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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 [disabled]=\"!!disabled || !!control.disabled\"\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 @if (control.controlType==='BUTTON') {\r\n <ng-container>\r\n <button type=\"button\" class=\"btn btn-secondary text\" (click)=\"oHandleClick($event)\">{{control.label| translate: lang}}</button>\r\n </ng-container>\r\n }\r\n <!-- END: FORM-CONTROL SESSION-->\r\n\r\n <!-- START: ERROR SESSION-->\r\n @if (!!errors!.length) {\r\n <div>\r\n @for (error of errors; track $index) {\r\n <div class=\"form-control-error\">\r\n {{ error.errorMessage | translate: lang }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (!errors!.length && !!checkError$.value) {\r\n <div>\r\n <div>\r\n {{ ' ' }}\r\n </div>\r\n </div>\r\n }\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}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"] }]
|
|
25629
25632
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: AlertService }], propDecorators: { control: [{
|
|
25630
25633
|
type: Input
|
|
25631
25634
|
}], checkError$: [{
|
|
25632
25635
|
type: Input
|
|
25633
25636
|
}], rangeLimit: [{
|
|
25634
25637
|
type: Input
|
|
25638
|
+
}], readonly: [{
|
|
25639
|
+
type: Input
|
|
25640
|
+
}], disabled: [{
|
|
25641
|
+
type: Input
|
|
25635
25642
|
}], onWindowClick: [{
|
|
25636
25643
|
type: HostListener,
|
|
25637
25644
|
args: ['window:click']
|
|
25638
25645
|
}] } });
|
|
25639
25646
|
|
|
25640
|
-
class CoreFormArrayComponent {
|
|
25647
|
+
class CoreFormArrayComponent extends CoreFormControlBaseComponent {
|
|
25641
25648
|
constructor() {
|
|
25649
|
+
super();
|
|
25642
25650
|
this.lang = signal('vi');
|
|
25643
25651
|
this.controlGroups = signal([]);
|
|
25644
25652
|
this.subscriptions = [];
|
|
25645
|
-
|
|
25653
|
+
//enrichment = inject(CoreFormEnrichmentService);
|
|
25646
25654
|
this.cfs = inject(CoreFormService);
|
|
25647
25655
|
const mls = inject(MultiLanguageService);
|
|
25648
25656
|
this.subscriptions.push(mls.lang$.subscribe(x => this.lang.set(x)));
|
|
@@ -25709,13 +25717,13 @@ class CoreFormArrayComponent {
|
|
|
25709
25717
|
this.subscriptions.forEach(x => x?.unsubscribe());
|
|
25710
25718
|
}
|
|
25711
25719
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreFormArrayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25712
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreFormArrayComponent, isStandalone: true, selector: "core-form-array", inputs: { formArrayName: "formArrayName", parentFormGroup: "parentFormGroup", formArray: "formArray", config: "config", checkError$: "checkError$" }, providers: [
|
|
25720
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreFormArrayComponent, isStandalone: true, selector: "core-form-array", inputs: { formArrayName: "formArrayName", parentFormGroup: "parentFormGroup", formArray: "formArray", config: "config", checkError$: "checkError$", readonly: "readonly", disabled: "disabled" }, providers: [
|
|
25713
25721
|
{
|
|
25714
25722
|
provide: NG_VALUE_ACCESSOR,
|
|
25715
25723
|
multi: true,
|
|
25716
25724
|
useExisting: forwardRef(() => CoreFormArrayComponent),
|
|
25717
25725
|
}
|
|
25718
|
-
], 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 <!-- \u2705 Parent owns the formGroup context -->\r\n <div class=\"form-array-item\" [formGroup]=\"group\">\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 <!-- no [form] needed -->\r\n <core-control-no-form-array [control]=\"col\" [checkError$]=\"checkError$\"
|
|
25726
|
+
], usesInheritance: true, 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 <!-- \u2705 Parent owns the formGroup context -->\r\n <div class=\"form-array-item\" [formGroup]=\"group\">\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 <!-- no [form] needed -->\r\n <core-control-no-form-array \r\n [control]=\"col\" \r\n [readonly]=\"!!disabled || !!col.readonly\"\r\n [disabled]=\"!!disabled || !!col.disabled\"\r\n [checkError$]=\"checkError$\">\r\n </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 @if (!disabled && !readonly) {\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 }\r\n </div>\r\n }\r\n\r\n @if (!disabled && !readonly) {\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 }\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: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }, { kind: "component", type: CoreControlNoFormArrayComponent, selector: "core-control-no-form-array", inputs: ["control", "checkError$", "rangeLimit", "readonly", "disabled"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25719
25727
|
}
|
|
25720
25728
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreFormArrayComponent, decorators: [{
|
|
25721
25729
|
type: Component,
|
|
@@ -25731,7 +25739,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
25731
25739
|
TooltipDirective,
|
|
25732
25740
|
CoreControlNoFormArrayComponent,
|
|
25733
25741
|
ReactiveFormsModule
|
|
25734
|
-
], template: "<div class=\"core-form-array-container\">\r\n\r\n\r\n @for (group of controlGroups(); track $index; let i = $index) {\r\n <!-- \u2705 Parent owns the formGroup context -->\r\n <div class=\"form-array-item\" [formGroup]=\"group\">\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 <!-- no [form] needed -->\r\n <core-control-no-form-array [control]=\"col\" [checkError$]=\"checkError$\"
|
|
25742
|
+
], template: "<div class=\"core-form-array-container\">\r\n\r\n\r\n @for (group of controlGroups(); track $index; let i = $index) {\r\n <!-- \u2705 Parent owns the formGroup context -->\r\n <div class=\"form-array-item\" [formGroup]=\"group\">\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 <!-- no [form] needed -->\r\n <core-control-no-form-array \r\n [control]=\"col\" \r\n [readonly]=\"!!disabled || !!col.readonly\"\r\n [disabled]=\"!!disabled || !!col.disabled\"\r\n [checkError$]=\"checkError$\">\r\n </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 @if (!disabled && !readonly) {\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 }\r\n </div>\r\n }\r\n\r\n @if (!disabled && !readonly) {\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 }\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"] }]
|
|
25735
25743
|
}], ctorParameters: () => [], propDecorators: { formArrayName: [{
|
|
25736
25744
|
type: Input,
|
|
25737
25745
|
args: [{ required: true }]
|
|
@@ -25747,6 +25755,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
25747
25755
|
}], checkError$: [{
|
|
25748
25756
|
type: Input,
|
|
25749
25757
|
args: [{ required: true }]
|
|
25758
|
+
}], readonly: [{
|
|
25759
|
+
type: Input
|
|
25760
|
+
}], disabled: [{
|
|
25761
|
+
type: Input
|
|
25750
25762
|
}] } });
|
|
25751
25763
|
|
|
25752
25764
|
class CoreDocgenToolbarComponent {
|
|
@@ -26765,7 +26777,7 @@ class CoreControlComponent extends BaseComponent {
|
|
|
26765
26777
|
}
|
|
26766
26778
|
}
|
|
26767
26779
|
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 }); }
|
|
26768
|
-
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 [formArrayName]=\"control.field!\"\r\n [parentFormGroup]=\"form\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [required]=\"required\" [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 [class.required-highlight]=\"!!required\"\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 [required]=\"required\" [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 [required]=\"required\" [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$ || !!control.optionApiDriven) {\r\n <core-dropdown \r\n [required]=\"required\" \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$ | optionApiDriven detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [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 } @else {\r\n <div class=\"dev-declaration\">Please add uploadFileType</div>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"STICKER_COLLECTION\") {\r\n <core-sticker-collection\r\n [formControlName]=\"control.field\"\r\n [required]=\"required\"\r\n [$items]=\"control.stickerCollectionItems!\"\r\n [$shownFrom]=\"control.stickerCollectionShownFrom!\"\r\n [$tooltipFrom]=\"control.stickerCollectionTooltipFrom!\"\r\n [$initialChecked]=\"control.stickerCollectionInitialChecked!\"\r\n >\r\n </core-sticker-collection>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [$textareaRows]=\"control.textareaRows!\"\r\n [$showLiquidSourceOnly]=\"control.showLiquidSourceOnly!\"\r\n [$isForWorkflowEmail]=\"control.isForWorkflowEmail!\"\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}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\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$3.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$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreFormArrayComponent, selector: "core-form-array", inputs: ["formArrayName", "parentFormGroup", "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: ["appTooltip", "showAnyway", "color", "backgroundColor", "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", "$textareaRows", "$height", "$readonly", "$showLiquidSourceOnly", "$isForWorkflowEmail", "getByIdObject$", "placeholder"] }, { kind: "component", type: CoreStickerCollectionComponent, selector: "core-sticker-collection", inputs: ["$items", "$shownFrom", "$tooltipFrom", "$initialChecked", "$showMore", "$showMoreTooltip", "$hideShowMoreIfNotSelected", "$enableFilter"], outputs: ["$checkedChange", "$onShowMore"] }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "backgroundColor", "hold$"] }] }); }
|
|
26780
|
+
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 [formArrayName]=\"control.field!\"\r\n [parentFormGroup]=\"form\"\r\n [formArray]=\"formArray\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [disabled]=\"control.disabled!\"\r\n [readonly]=\"control.readonly!\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [required]=\"required\" [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 [class.required-highlight]=\"!!required\"\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 [required]=\"required\" [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 [required]=\"required\" [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$ || !!control.optionApiDriven) {\r\n <core-dropdown \r\n [required]=\"required\" \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$ | optionApiDriven detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [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 } @else {\r\n <div class=\"dev-declaration\">Please add uploadFileType</div>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"STICKER_COLLECTION\") {\r\n <core-sticker-collection\r\n [formControlName]=\"control.field\"\r\n [required]=\"required\"\r\n [$items]=\"control.stickerCollectionItems!\"\r\n [$shownFrom]=\"control.stickerCollectionShownFrom!\"\r\n [$tooltipFrom]=\"control.stickerCollectionTooltipFrom!\"\r\n [$initialChecked]=\"control.stickerCollectionInitialChecked!\"\r\n >\r\n </core-sticker-collection>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [$textareaRows]=\"control.textareaRows!\"\r\n [$showLiquidSourceOnly]=\"control.showLiquidSourceOnly!\"\r\n [$isForWorkflowEmail]=\"control.isForWorkflowEmail!\"\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}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\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$3.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$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreFormArrayComponent, selector: "core-form-array", inputs: ["formArrayName", "parentFormGroup", "formArray", "config", "checkError$", "readonly", "disabled"] }, { 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: ["appTooltip", "showAnyway", "color", "backgroundColor", "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", "disabled", "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", "$textareaRows", "$height", "$readonly", "$showLiquidSourceOnly", "$isForWorkflowEmail", "getByIdObject$", "placeholder"] }, { kind: "component", type: CoreStickerCollectionComponent, selector: "core-sticker-collection", inputs: ["$items", "$shownFrom", "$tooltipFrom", "$initialChecked", "$showMore", "$showMoreTooltip", "$hideShowMoreIfNotSelected", "$enableFilter"], outputs: ["$checkedChange", "$onShowMore"] }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "backgroundColor", "hold$"] }] }); }
|
|
26769
26781
|
}
|
|
26770
26782
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreControlComponent, decorators: [{
|
|
26771
26783
|
type: Component,
|
|
@@ -26799,7 +26811,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
26799
26811
|
CoreLiquidWysiwygComponent,
|
|
26800
26812
|
CoreStickerCollectionComponent,
|
|
26801
26813
|
HtmlTooltipDirective
|
|
26802
|
-
], 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 [formArrayName]=\"control.field!\"\r\n [parentFormGroup]=\"form\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [required]=\"required\" [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 [class.required-highlight]=\"!!required\"\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 [required]=\"required\" [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 [required]=\"required\" [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$ || !!control.optionApiDriven) {\r\n <core-dropdown \r\n [required]=\"required\" \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$ | optionApiDriven detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [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 } @else {\r\n <div class=\"dev-declaration\">Please add uploadFileType</div>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"STICKER_COLLECTION\") {\r\n <core-sticker-collection\r\n [formControlName]=\"control.field\"\r\n [required]=\"required\"\r\n [$items]=\"control.stickerCollectionItems!\"\r\n [$shownFrom]=\"control.stickerCollectionShownFrom!\"\r\n [$tooltipFrom]=\"control.stickerCollectionTooltipFrom!\"\r\n [$initialChecked]=\"control.stickerCollectionInitialChecked!\"\r\n >\r\n </core-sticker-collection>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [$textareaRows]=\"control.textareaRows!\"\r\n [$showLiquidSourceOnly]=\"control.showLiquidSourceOnly!\"\r\n [$isForWorkflowEmail]=\"control.isForWorkflowEmail!\"\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}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"] }]
|
|
26814
|
+
], 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 [formArrayName]=\"control.field!\"\r\n [parentFormGroup]=\"form\"\r\n [formArray]=\"formArray\"\r\n [config]=\"control.formArraySections! ?? []\"\r\n [disabled]=\"control.disabled!\"\r\n [readonly]=\"control.readonly!\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\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.required-highlight]=\"!!required\"\r\n [class.form-control-disabled]=\"!!control.disabled\" />\r\n }\r\n @case (\"CURRENCY\") {\r\n <core-currency-input [required]=\"required\" [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 [class.required-highlight]=\"!!required\"\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 [required]=\"required\" [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 [required]=\"required\" [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$ || !!control.optionApiDriven) {\r\n <core-dropdown \r\n [required]=\"required\" \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$ | optionApiDriven detected\r\n }\r\n }\r\n @case (\"LIST\") {\r\n <core-list [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [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 } @else {\r\n <div class=\"dev-declaration\">Please add uploadFileType</div>\r\n }\r\n }\r\n @case (\"ATTACHMENT\") {\r\n <core-attachment ngDefaultControl [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [formControlName]=\"control.field\"\r\n [accessorMode]=\"coreOrgTreeDefaultAccessorMode\" [height]=\"control.height!\"></core-org-tree>\r\n }\r\n @case (\"RADIOGROUP\") {\r\n <core-radio-group [required]=\"required\" [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 [required]=\"required\" [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 [required]=\"required\" [formControlName]=\"control.field\" [popupHeight]=\"control.popupHeight!\" [getByIdApi]=\"control.getByIdApi!\"></core-topic-picker>\r\n }\r\n @case(\"STICKER_COLLECTION\") {\r\n <core-sticker-collection\r\n [formControlName]=\"control.field\"\r\n [required]=\"required\"\r\n [$items]=\"control.stickerCollectionItems!\"\r\n [$shownFrom]=\"control.stickerCollectionShownFrom!\"\r\n [$tooltipFrom]=\"control.stickerCollectionTooltipFrom!\"\r\n [$initialChecked]=\"control.stickerCollectionInitialChecked!\"\r\n >\r\n </core-sticker-collection>\r\n }\r\n @case (\"SEEKER\") {\r\n @switch(control.seekerSourceType) {\r\n @case(\"JOB_SEEK\") {\r\n <core-form-control-seeker\r\n [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [required]=\"required\" \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 [$textareaRows]=\"control.textareaRows!\"\r\n [$showLiquidSourceOnly]=\"control.showLiquidSourceOnly!\"\r\n [$isForWorkflowEmail]=\"control.isForWorkflowEmail!\"\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}.calculated-tooltip-container label.required~input:not([disabled]),.calculated-tooltip-container label.required~textarea:not([disabled]),.calculated-tooltip-container label.required~select:not([disabled]){background-color:#ff0!important}\n"] }]
|
|
26803
26815
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: AlertService }], propDecorators: { control: [{
|
|
26804
26816
|
type: Input
|
|
26805
26817
|
}], form: [{
|
|
@@ -28485,7 +28497,7 @@ class AtShiftPatternComponent extends BaseEditComponent {
|
|
|
28485
28497
|
this.atShiftPatternService.activePattern$.next(undefined);
|
|
28486
28498
|
}
|
|
28487
28499
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AtShiftPatternComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28488
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AtShiftPatternComponent, isStandalone: true, selector: "core-at-shift-pattern", viewQueries: [{ propertyName: "sticker", first: true, predicate: ["sticker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"core-at-shift-pattern-container\">\r\n\r\n <!-- <core-page-header [title]=\"title\" (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header> -->\r\n\r\n @if (workShiftDndService.shiftCollectionOpen$ | async) {\r\n <core-shift-collection [height]=\"(shiftCollectionHeight$ | async) || 800\"></core-shift-collection>\r\n }\r\n\r\n <div class=\"d-flex d-flex-between content-wrapper position-relative\">\r\n <div class=\"list-block\">\r\n <core-page-list [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [autoResizeWithWindow]=\"true\" [checkboxExplicity]=\"true\"\r\n (listChange)=\"onListChange($event)\" (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\" (rowClick)=\"rowClick($event)\"></core-page-list>\r\n </div>\r\n\r\n @if (!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"anim-block\">\r\n <div class=\"alert is-success\">\r\n <p class=\"alert-title\"><span class=\"ti-light-bulb\" aria-hidden=\"true\"></span>\r\n @if (lang === 'vi') {\r\n G\u1EE2I \u00DD\r\n } @else {\r\n TIP\r\n }\r\n\r\n </p>\r\n\r\n <div>\r\n @if (lang === 'vi') {\r\n M\u1EABu x\u1EBFp ca l\u00E0 c\u00F4ng c\u1EE5 tr\u1EF1c quan v\u00E0 ti\u1EC7n l\u1EE3i gi\u00FAp ph\u00F2ng nh\u00E2n s\u1EF1 (HR) qu\u1EA3n l\u00FD v\u00E0 b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c\r\n cho nh\u00E2n vi\u00EAn m\u1ED9t c\u00E1ch hi\u1EC7u qu\u1EA3. M\u00E0n h\u00ECnh n\u00E0y \u0111\u01B0\u1EE3c thi\u1EBFt k\u1EBF \u0111\u1EC3 \u0111\u00E1p \u1EE9ng nhu c\u1EA7u l\u1EADp k\u1EBF ho\u1EA1ch c\u00F4ng\r\n vi\u1EC7c h\u00E0ng ng\u00E0y, h\u00E0ng tu\u1EA7n ho\u1EB7c theo chu k\u1EF3 c\u1EE5 th\u1EC3, \u0111\u1EA3m b\u1EA3o t\u00EDnh linh ho\u1EA1t v\u00E0 s\u1EF1 d\u1EC5 d\u00E0ng trong qu\u1EA3n\r\n l\u00FD.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo m\u1EABu tu\u1EA7n (WEEK)</b>:\r\n Cho ph\u00E9p HR b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c d\u1EF1a tr\u00EAn c\u00E1c th\u1EE9 trong tu\u1EA7n, v\u00ED d\u1EE5: th\u1EE9 Hai, th\u1EE9 Ba, v.v. Ph\u00F9 h\u1EE3p\r\n cho\r\n nh\u1EEFng chu k\u1EF3 l\u00E0m vi\u1EC7c l\u1EB7p l\u1EA1i \u0111\u1ECBnh k\u1EF3 (v\u00ED d\u1EE5: l\u1ECBch l\u00E0m vi\u1EC7c tu\u1EA7n).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo chu\u1ED7i ng\u00E0y (DAYS)</b>:\r\n D\u00E0nh cho c\u00E1c tr\u01B0\u1EDDng h\u1EE3p x\u1EBFp ca kh\u00F4ng c\u1ED1 \u0111\u1ECBnh theo th\u1EE9 trong tu\u1EA7n m\u00E0 d\u1EF1a tr\u00EAn m\u1ED9t chu\u1ED7i ng\u00E0y li\u00EAn\r\n t\u1EE5c. HR c\u00F3 th\u1EC3 ch\u1EC9 \u0111\u1ECBnh b\u1EAFt \u0111\u1EA7u t\u1EEB ng\u00E0y b\u1EA5t k\u1EF3 v\u00E0 thi\u1EBFt l\u1EADp c\u00E1c ca l\u00E0m vi\u1EC7c t\u01B0\u01A1ng \u1EE9ng.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n \u1EA4n F1 \u0111\u1EC3 c\u00F3 th\u00EAm chi ti\u1EBFt\r\n </div>\r\n } @else {\r\n Shift Scheduling Template is an intuitive and convenient tool to help HR departments effectively\r\n manage\r\n and assign work shifts for employees. This screen is designed to meet the needs of daily, weekly, or\r\n specific cycle-based work planning, ensuring flexibility and ease of management.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by weekly pattern (WEEK)</b>:\r\n Allows HR to assign work shifts based on days of the week, e.g., Monday, Tuesday, etc. This is\r\n suitable for recurring work cycles (e.g., weekly schedules).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by sequence of days (DAYS)</b>:\r\n Designed for cases where shifts are assigned based on a continuous sequence of days rather than\r\n specific days of the week. HR can specify any start date and set up corresponding work shifts.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n Press F1 for more details\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"detail-block\">\r\n <!-- <div class=\"tenant-settings\">\r\n <div class=\"the-six-wrapper\" [appTooltip]=\"lang==='vi' ? 'C\u00E0i \u0111\u1EB7t th\u00EAm' : 'More settings'\"\r\n [showAnyway]=\"true\" (click)=\"toggleMoreSettings()\">\uD83C\uDFB2</div>\r\n </div> -->\r\n <div class=\"details-wrapper\">\r\n <div class=\"details-title\">\r\n \u2728 {{ (atShiftPatternService.activePattern$ | async)?.code }}\r\n </div>\r\n <core-at-shift-pattern-detail [data$]=\"atShiftPatternService.activePattern$\"\r\n (onCellChange)=\"onCellChange($event)\"></core-at-shift-pattern-detail>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (showMoreSettings) {\r\n <div @fadeSwitch class=\"more-settings-panel\">\r\n\r\n <div class=\"alert alert-info small mt-2\" role=\"alert\">\r\n @if (lang === 'vi') {\r\n <p class=\"mb-0\">\r\n C\u00E1c ng\u00E0y ngh\u1EC9 m\u1EB7c \u0111\u1ECBnh s\u1EBD \u0111\u01B0\u1EE3c \u00E1p d\u1EE5ng khi b\u1EA1n m\u1EDF m\u1ED9t m\u1EABu tu\u1EA7n ch\u01B0a c\u00F3 d\u1EEF li\u1EC7u.<br />\r\n B\u1EA1n c\u00F3 th\u1EC3 ch\u1ECDn nh\u1EEFng ng\u00E0y th\u01B0\u1EDDng ngh\u1EC9 (v\u00ED d\u1EE5 Th\u1EE9 B\u1EA3y, Ch\u1EE7 Nh\u1EADt) v\u00E0 g\u00E1n ca \u201COFF\u201D cho c\u00E1c ng\u00E0y \u0111\u00F3.<br />\r\n Thay \u0111\u1ED5i ch\u1EC9 \u0111\u01B0\u1EE3c l\u01B0u l\u1EA1i khi b\u1EA1n nh\u1EA5n n\u00FAt <strong>Save</strong> tr\u00EAn thanh c\u00F4ng c\u1EE5 c\u1EE7a trang.\r\n </p>\r\n } @else {\r\n <p class=\"mb-0\">\r\n Default off days are applied automatically when you open a weekly template that has no data yet.<br />\r\n You can select the usual off days (e.g., Saturday, Sunday) and assign the \u201COFF\u201D shift to them.<br />\r\n Changes will only be saved when you click <strong>Save</strong> in the page toolbar.\r\n </p>\r\n }\r\n </div>\r\n\r\n <div class=\"mb-2\">{{ lang === 'vi' ? 'Ng\u00E0y ngh\u1EC9 m\u1EB7c \u0111\u1ECBnh' : 'Default off days'}}</div>\r\n <div class=\"mb-2\">\r\n <core-sticker-collection [$items]=\"treatedAsOffDays\" [$shownFrom]=\"'weekday'\"\r\n [$initialChecked]=\"defaultTreatedAsOffDays || []\"\r\n ($checkedChange)=\"onTreatedAsOffDaysChange($event)\" />\r\n </div>\r\n <core-shift-cell [(ngModel)]=\"commonOffDayShiftCell\" />\r\n <div class=\"d-flex d-flex-end\">\r\n <div class=\"d-flex\">\r\n @if (loading) {\r\n <core-terminal-spinner />\r\n }\r\n <button class=\"btn btn-sm btn-primary me-2\" (click)=\"onMoreSettingsSave()\">Save</button>\r\n <button class=\"btn btn-sm btn-secondary\" (click)=\"onCloseMoreSettings()\">Close</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n\r\n @if (!!loading) {\r\n <app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n }\r\n\r\n <ng-template #sticker let-code=\"context.status\">\r\n <core-status-sticker [code]=\"code\" [isTrueCode]=\"true\"></core-status-sticker>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-at-shift-pattern-container .list-block{width:50vw}.core-at-shift-pattern-container .anim-container{height:calc(100vh - 60px);display:flex;align-items:flex-start;justify-content:flex-end}.core-at-shift-pattern-container .anim-block,.core-at-shift-pattern-container .detail-block{margin-left:15px;padding-top:50px;display:flex}.core-at-shift-pattern-container .anim-block{width:100%;flex-direction:column;align-items:center;justify-content:space-around}.core-at-shift-pattern-container .detail-block{position:relative;width:100%;align-items:flex-start;justify-content:center}.core-at-shift-pattern-container .details-wrapper{background-color:bisque;padding:0 15px 15px;width:100%;overflow-x:scroll;position:relative}.core-at-shift-pattern-container .details-wrapper .details-title{height:40px;display:flex;align-items:center;justify-content:flex-start;font-weight:700}.core-at-shift-pattern-container .details-wrapper .col-md-4{min-width:280px}.core-at-shift-pattern-container .content-wrapper{align-items:flex-start}.core-at-shift-pattern-container .more-settings-panel{font-size:13px;z-index:1;padding:15px;display:block;position:absolute;min-width:100px;min-height:100px;top:52px;right:2px;background-color:#fff;box-shadow:.4rem 0 2rem #0000002e}.core-at-shift-pattern-container .more-settings-panel .off-day-dropzone{background-color:bisque}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreStickerCollectionComponent, selector: "core-sticker-collection", inputs: ["$items", "$shownFrom", "$tooltipFrom", "$initialChecked", "$showMore", "$showMoreTooltip", "$hideShowMoreIfNotSelected", "$enableFilter"], outputs: ["$checkedChange", "$onShowMore"] }, { kind: "component", type: CoreStatusStickerComponent, selector: "core-status-sticker", inputs: ["code", "caption", "width", "isTrueCode"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "useTheseColumns", "hideOrgTree", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub", "autoColumnFitAvailableSpace", "ignoredDefaultActions", "checkboxExplicity", "auxOutletName", "forceReloadingFlag$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }, { kind: "component", type: AtShiftPatternDetailComponent, selector: "core-at-shift-pattern-detail", inputs: ["data$"], outputs: ["onCellChange"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreTerminalSpinnerComponent, selector: "core-terminal-spinner" }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "relativeMode"] }], animations: [
|
|
28500
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AtShiftPatternComponent, isStandalone: true, selector: "core-at-shift-pattern", viewQueries: [{ propertyName: "sticker", first: true, predicate: ["sticker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"core-at-shift-pattern-container\">\r\n\r\n <!-- <core-page-header [title]=\"title\" (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header> -->\r\n\r\n @if (workShiftDndService.shiftCollectionOpen$ | async) {\r\n <core-shift-collection [height]=\"(shiftCollectionHeight$ | async) || 800\"></core-shift-collection>\r\n }\r\n\r\n <div class=\"d-flex d-flex-between content-wrapper position-relative\">\r\n <div class=\"list-block\">\r\n <core-page-list [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [autoResizeWithWindow]=\"true\" [checkboxExplicity]=\"true\"\r\n (listChange)=\"onListChange($event)\" (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\" (rowClick)=\"rowClick($event)\"></core-page-list>\r\n </div>\r\n\r\n @if (!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"anim-block\">\r\n <div class=\"alert is-success\">\r\n <p class=\"alert-title\"><span class=\"ti-light-bulb\" aria-hidden=\"true\"></span>\r\n @if (lang === 'vi') {\r\n G\u1EE2I \u00DD\r\n } @else {\r\n TIP\r\n }\r\n\r\n </p>\r\n\r\n <div>\r\n @if (lang === 'vi') {\r\n M\u1EABu x\u1EBFp ca l\u00E0 c\u00F4ng c\u1EE5 tr\u1EF1c quan v\u00E0 ti\u1EC7n l\u1EE3i gi\u00FAp ph\u00F2ng nh\u00E2n s\u1EF1 (HR) qu\u1EA3n l\u00FD v\u00E0 b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c\r\n cho nh\u00E2n vi\u00EAn m\u1ED9t c\u00E1ch hi\u1EC7u qu\u1EA3. M\u00E0n h\u00ECnh n\u00E0y \u0111\u01B0\u1EE3c thi\u1EBFt k\u1EBF \u0111\u1EC3 \u0111\u00E1p \u1EE9ng nhu c\u1EA7u l\u1EADp k\u1EBF ho\u1EA1ch c\u00F4ng\r\n vi\u1EC7c h\u00E0ng ng\u00E0y, h\u00E0ng tu\u1EA7n ho\u1EB7c theo chu k\u1EF3 c\u1EE5 th\u1EC3, \u0111\u1EA3m b\u1EA3o t\u00EDnh linh ho\u1EA1t v\u00E0 s\u1EF1 d\u1EC5 d\u00E0ng trong qu\u1EA3n\r\n l\u00FD.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo m\u1EABu tu\u1EA7n (WEEK)</b>:\r\n Cho ph\u00E9p HR b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c d\u1EF1a tr\u00EAn c\u00E1c th\u1EE9 trong tu\u1EA7n, v\u00ED d\u1EE5: th\u1EE9 Hai, th\u1EE9 Ba, v.v. Ph\u00F9 h\u1EE3p\r\n cho\r\n nh\u1EEFng chu k\u1EF3 l\u00E0m vi\u1EC7c l\u1EB7p l\u1EA1i \u0111\u1ECBnh k\u1EF3 (v\u00ED d\u1EE5: l\u1ECBch l\u00E0m vi\u1EC7c tu\u1EA7n).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo chu\u1ED7i ng\u00E0y (DAYS)</b>:\r\n D\u00E0nh cho c\u00E1c tr\u01B0\u1EDDng h\u1EE3p x\u1EBFp ca kh\u00F4ng c\u1ED1 \u0111\u1ECBnh theo th\u1EE9 trong tu\u1EA7n m\u00E0 d\u1EF1a tr\u00EAn m\u1ED9t chu\u1ED7i ng\u00E0y li\u00EAn\r\n t\u1EE5c. HR c\u00F3 th\u1EC3 ch\u1EC9 \u0111\u1ECBnh b\u1EAFt \u0111\u1EA7u t\u1EEB ng\u00E0y b\u1EA5t k\u1EF3 v\u00E0 thi\u1EBFt l\u1EADp c\u00E1c ca l\u00E0m vi\u1EC7c t\u01B0\u01A1ng \u1EE9ng.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n \u1EA4n F1 \u0111\u1EC3 c\u00F3 th\u00EAm chi ti\u1EBFt\r\n </div>\r\n } @else {\r\n Shift Scheduling Template is an intuitive and convenient tool to help HR departments effectively\r\n manage\r\n and assign work shifts for employees. This screen is designed to meet the needs of daily, weekly, or\r\n specific cycle-based work planning, ensuring flexibility and ease of management.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by weekly pattern (WEEK)</b>:\r\n Allows HR to assign work shifts based on days of the week, e.g., Monday, Tuesday, etc. This is\r\n suitable for recurring work cycles (e.g., weekly schedules).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by sequence of days (DAYS)</b>:\r\n Designed for cases where shifts are assigned based on a continuous sequence of days rather than\r\n specific days of the week. HR can specify any start date and set up corresponding work shifts.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n Press F1 for more details\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"detail-block\">\r\n <!-- <div class=\"tenant-settings\">\r\n <div class=\"the-six-wrapper\" [appTooltip]=\"lang==='vi' ? 'C\u00E0i \u0111\u1EB7t th\u00EAm' : 'More settings'\"\r\n [showAnyway]=\"true\" (click)=\"toggleMoreSettings()\">\uD83C\uDFB2</div>\r\n </div> -->\r\n <div class=\"details-wrapper\">\r\n <div class=\"details-title\">\r\n \u2728 {{ (atShiftPatternService.activePattern$ | async)?.code }}\r\n </div>\r\n <core-at-shift-pattern-detail [data$]=\"atShiftPatternService.activePattern$\"\r\n (onCellChange)=\"onCellChange($event)\"></core-at-shift-pattern-detail>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (showMoreSettings) {\r\n <div @fadeSwitch class=\"more-settings-panel\">\r\n\r\n <div class=\"alert alert-info small mt-2\" role=\"alert\">\r\n @if (lang === 'vi') {\r\n <p class=\"mb-0\">\r\n C\u00E1c ng\u00E0y ngh\u1EC9 m\u1EB7c \u0111\u1ECBnh s\u1EBD \u0111\u01B0\u1EE3c \u00E1p d\u1EE5ng khi b\u1EA1n m\u1EDF m\u1ED9t m\u1EABu tu\u1EA7n ch\u01B0a c\u00F3 d\u1EEF li\u1EC7u.<br />\r\n B\u1EA1n c\u00F3 th\u1EC3 ch\u1ECDn nh\u1EEFng ng\u00E0y th\u01B0\u1EDDng ngh\u1EC9 (v\u00ED d\u1EE5 Th\u1EE9 B\u1EA3y, Ch\u1EE7 Nh\u1EADt) v\u00E0 g\u00E1n ca \u201COFF\u201D cho c\u00E1c ng\u00E0y \u0111\u00F3.<br />\r\n Thay \u0111\u1ED5i ch\u1EC9 \u0111\u01B0\u1EE3c l\u01B0u l\u1EA1i khi b\u1EA1n nh\u1EA5n n\u00FAt <strong>Save</strong> tr\u00EAn thanh c\u00F4ng c\u1EE5 c\u1EE7a trang.\r\n </p>\r\n } @else {\r\n <p class=\"mb-0\">\r\n Default off days are applied automatically when you open a weekly template that has no data yet.<br />\r\n You can select the usual off days (e.g., Saturday, Sunday) and assign the \u201COFF\u201D shift to them.<br />\r\n Changes will only be saved when you click <strong>Save</strong> in the page toolbar.\r\n </p>\r\n }\r\n </div>\r\n\r\n <div class=\"mb-2\">{{ lang === 'vi' ? 'Ng\u00E0y ngh\u1EC9 m\u1EB7c \u0111\u1ECBnh' : 'Default off days'}}</div>\r\n <div class=\"mb-2\">\r\n <core-sticker-collection [$items]=\"treatedAsOffDays\" [$shownFrom]=\"'weekday'\"\r\n [$initialChecked]=\"defaultTreatedAsOffDays || []\"\r\n ($checkedChange)=\"onTreatedAsOffDaysChange($event)\" />\r\n </div>\r\n <core-shift-cell [(ngModel)]=\"commonOffDayShiftCell\" />\r\n <div class=\"d-flex d-flex-end\">\r\n <div class=\"d-flex\">\r\n @if (loading) {\r\n <core-terminal-spinner />\r\n }\r\n <button class=\"btn btn-sm btn-primary me-2\" (click)=\"onMoreSettingsSave()\">Save</button>\r\n <button class=\"btn btn-sm btn-secondary\" (click)=\"onCloseMoreSettings()\">Close</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n\r\n @if (!!loading) {\r\n <app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n }\r\n\r\n <ng-template #sticker let-code=\"context.status\">\r\n <core-status-sticker [code]=\"code\" [isTrueCode]=\"true\"></core-status-sticker>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-at-shift-pattern-container .list-block{width:50vw}.core-at-shift-pattern-container .anim-container{height:calc(100vh - 60px);display:flex;align-items:flex-start;justify-content:flex-end}.core-at-shift-pattern-container .anim-block,.core-at-shift-pattern-container .detail-block{margin-left:15px;padding-top:50px;display:flex}.core-at-shift-pattern-container .anim-block{width:100%;flex-direction:column;align-items:center;justify-content:space-around}.core-at-shift-pattern-container .detail-block{position:relative;width:100%;align-items:flex-start;justify-content:center}.core-at-shift-pattern-container .details-wrapper{background-color:bisque;padding:0 15px 15px;width:100%;overflow-x:scroll;position:relative}.core-at-shift-pattern-container .details-wrapper .details-title{height:40px;display:flex;align-items:center;justify-content:flex-start;font-weight:700}.core-at-shift-pattern-container .details-wrapper .col-md-4{min-width:280px}.core-at-shift-pattern-container .content-wrapper{align-items:flex-start}.core-at-shift-pattern-container .more-settings-panel{font-size:13px;z-index:1;padding:15px;display:block;position:absolute;min-width:100px;min-height:100px;top:52px;right:2px;background-color:#fff;box-shadow:.4rem 0 2rem #0000002e}.core-at-shift-pattern-container .more-settings-panel .off-day-dropzone{background-color:bisque}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreStickerCollectionComponent, selector: "core-sticker-collection", inputs: ["$items", "$shownFrom", "$tooltipFrom", "$initialChecked", "$showMore", "$showMoreTooltip", "$hideShowMoreIfNotSelected", "$enableFilter"], outputs: ["$checkedChange", "$onShowMore"] }, { kind: "component", type: CoreStatusStickerComponent, selector: "core-status-sticker", inputs: ["code", "caption", "width", "isTrueCode"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "useTheseColumns", "hideOrgTree", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub", "autoColumnFitAvailableSpace", "ignoredDefaultActions", "checkboxExplicity", "auxOutletName", "forceReloadingFlag$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }, { kind: "component", type: AtShiftPatternDetailComponent, selector: "core-at-shift-pattern-detail", inputs: ["data$"], outputs: ["onCellChange"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreTerminalSpinnerComponent, selector: "core-terminal-spinner" }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "disabled", "relativeMode"] }], animations: [
|
|
28489
28501
|
trigger('fadeSwitch', [
|
|
28490
28502
|
state('visible', style({ opacity: 1 })),
|
|
28491
28503
|
state('hidden', style({ opacity: 0 })),
|
|
@@ -30576,7 +30588,7 @@ class AtWorksignComponent extends BaseComponent {
|
|
|
30576
30588
|
}
|
|
30577
30589
|
}
|
|
30578
30590
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AtWorksignComponent, deps: [{ token: MultiLanguageService }, { token: CoreButtonGroupService }, { token: OrganizationService }, { token: AppService }, { token: AtWorksignService }, { token: AlertService }, { token: CorePageListService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: DialogService }, { token: WorkShiftDndService }, { token: CoreDatetimeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30579
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AtWorksignComponent, isStandalone: true, selector: "core-at-worksign", viewQueries: [{ propertyName: "$shiftCells", predicate: ["shiftCell"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "orgNameWithLock", first: true, predicate: ["orgNameWithLock"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (!!$longTaskIsRunning()) {\r\n<core-api-progress></core-api-progress>\r\n}\r\n<div class=\"at-worksign-container\">\r\n\r\n <!-- @if ($loading()) {\r\n <app-fullscreen-modal-loader [content]=\"threeDots\"></app-fullscreen-modal-loader>\r\n } -->\r\n\r\n <core-page-list [top]=\"top\" [title]=\"title\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\"\r\n [disableDoubleClick]=\"true\" [selfResolveCorePageHeaderButtonClick]=\"true\" [rowHeight]=\"'71px'\" [frozen]=\"2\"\r\n [columnSearchDefaultOpen]=\"true\" [editRoute]=\"editRoute\" [crud]=\"crud\" [loading$]=\"loading$\" [normalMode]=\"true\"\r\n [outerInOperators]=\"outerInOperators\" [outerParam$]=\"outerParam$\" [changeTracking]=\"true\"\r\n [changedItems$]=\"changedItems$\" [outerFilterOperators]=\"$filterOperators()\" [extraManualOffset]=\"55\"\r\n [fixedPageSize]=\"10\" [autoResizeWithWindow]=\"true\" (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (onInstanceCreated)=\"onListInstanceCreated($event)\"\r\n [autoColumnFitAvailableSpace]=\"false\"></core-page-list>\r\n\r\n @if (showShiftCollection) {\r\n <core-shift-collection [height]=\"800\"></core-shift-collection>\r\n }\r\n\r\n <!-- @for (day of $visibleDays(); track $index) {\r\n <ng-template #shiftCell let-context=\"context\" let-isLocked=\"context.isLocked\">\r\n {{ context['shifts' + ($index + 1)] | json }}\r\n <core-shift-cell [ngModel]=\"context['shifts' + ($index + 1)]\" [$readOnly]=\"isLocked\"\r\n (ngModelChange)=\"onCellChange('shifts' + ($index + 1), $event, context)\"></core-shift-cell>\r\n </ng-template>\r\n } -->\r\n\r\n @for (dateStr of $visibleDays(); track $index) {\r\n <ng-template #shiftCell let-context=\"context\" let-isLocked=\"context.isLocked\">\r\n <core-shift-cell [ngModel]=\"context.shiftMap?.[dateStr]\" [$readOnly]=\"isLocked\"\r\n (ngModelChange)=\"onCellChange(dateStr, $event, context)\">\r\n </core-shift-cell>\r\n </ng-template>\r\n }\r\n\r\n <ng-template #threeDots>\r\n <app-threedots></app-threedots>\r\n </ng-template>\r\n\r\n <ng-template #orgNameWithLock let-context=\"context\" let-orgName=\"context.orgName\" let-isLocked=\"context.isLocked\">\r\n <div class=\"d-flex d-flex-start orgNameWrapper\" [htmlTooltip]=\"orgBranch\"\r\n [tooltipContext]=\"{ orgId: context['orgId'] }\">\r\n <div class=\"icon-wrapper\">\r\n @if (!!isLocked) {\r\n \uD83D\uDD12\r\n <!-- <i class=\"feather-lock\"></i> -->\r\n } @else {\r\n \uD83D\uDD16\r\n <!-- <i class=\"feather-bookmark\"></i> -->\r\n }\r\n </div>\r\n <div class=\"org-name\">{{ orgName }}</div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #orgBranch let-orgId=\"orgId\">\r\n <core-org-branch [$currentId]=\"orgId\" />\r\n </ng-template>\r\n\r\n <ng-template #top>\r\n <div class=\"d-flex d-flex-start mb15 pd5\">\r\n <div class=\"param-wrapper w250 mr15\">\r\n <div class=\"form-group vertical\">\r\n <core-org-param [accessorMode]=\"orgParamAccessorMode\" [(ngModel)]=\"orgIds\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\"></core-org-param>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w150 mr15\">\r\n <div class=\"form-group vertical\">\r\n <core-month-selector [(ngModel)]=\"currentMonth\"\r\n (ngModelChange)=\"onCurrentMonthChange($event)\"></core-month-selector>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w150 mr15\">\r\n <div class=\"form-group vertical\">\r\n <core-dropdown [paramMode]=\"true\" [(ngModel)]=\"subPeriodOption\"\r\n (ngModelChange)=\"onSubPeriodOptionChange($event)\" [options$]=\"subPeriodOptions$\"\r\n [getByIdObject$]=\"subPeriodGetByIdObject$\" [shownFrom]=\"''\" [clearDisable]=\"true\"\r\n [fitHeightWithItemCount]=\"true\"></core-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w150 mr15\">\r\n <div class=\"form-group vertical\">\r\n <div class=\"d-flex d-flex-around\">\r\n @if (!fullPeriodMode) {\r\n <div (click)=\"goPreviousSevenDays()\" [class.disabled]=\"$startDateString()===$startPeriodString()\"><i\r\n class=\"feather-arrow-left fs24 color-gray pointer\"></i></div>\r\n }\r\n <h6 style=\"color: gray;\" class=\"h35 d-flex no-margin user-select-none\">{{ $startDate() | tableCell:\r\n \"DATE_DDMM\"\r\n :\r\n lang }} - {{\r\n $endDate() | tableCell: \"DATE_DDMM\" : lang }}</h6>\r\n @if (!fullPeriodMode) {\r\n <div (click)=\"goNextSevenDays()\" [class.disabled]=\"$endDateString()===$endPeriodString()\"><i\r\n class=\"feather-arrow-right fs24 color-gray pointer\"></i></div>\r\n }\r\n @if ($loading()) {\r\n <core-terminal-spinner />\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</div>", styles: [".icon-wrapper{display:block;width:20px;height:20px}.icon-wrapper i{color:#d3d3d3;font-size:20px}.icon-wrapper i.feather-lock{color:#000}.org-name{display:block;margin-left:8px;width:100%;overflow:hidden;text-overflow:ellipsis}.pd5{padding:5px}.pointer{cursor:pointer}\n"], dependencies: [{ kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreTerminalSpinnerComponent, selector: "core-terminal-spinner" }, { kind: "component", type: CoreOrgBranchComponent, selector: "core-org-branch", inputs: ["$levelUp", "$currentId"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "useTheseColumns", "hideOrgTree", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub", "autoColumnFitAvailableSpace", "ignoredDefaultActions", "checkboxExplicity", "auxOutletName", "forceReloadingFlag$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }, { 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: CoreOrgParamComponent, selector: "core-org-param", inputs: ["accessorMode"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "relativeMode"] }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: ThreedotsComponent, selector: "app-threedots" }, { kind: "component", type: CoreApiProgressComponent, selector: "core-api-progress", outputs: ["onClose"] }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "backgroundColor", "hold$"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30591
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: AtWorksignComponent, isStandalone: true, selector: "core-at-worksign", viewQueries: [{ propertyName: "$shiftCells", predicate: ["shiftCell"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "orgNameWithLock", first: true, predicate: ["orgNameWithLock"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (!!$longTaskIsRunning()) {\r\n<core-api-progress></core-api-progress>\r\n}\r\n<div class=\"at-worksign-container\">\r\n\r\n <!-- @if ($loading()) {\r\n <app-fullscreen-modal-loader [content]=\"threeDots\"></app-fullscreen-modal-loader>\r\n } -->\r\n\r\n <core-page-list [top]=\"top\" [title]=\"title\" [apiDefinition]=\"apiDefinition\" [columns]=\"columns\"\r\n [disableDoubleClick]=\"true\" [selfResolveCorePageHeaderButtonClick]=\"true\" [rowHeight]=\"'71px'\" [frozen]=\"2\"\r\n [columnSearchDefaultOpen]=\"true\" [editRoute]=\"editRoute\" [crud]=\"crud\" [loading$]=\"loading$\" [normalMode]=\"true\"\r\n [outerInOperators]=\"outerInOperators\" [outerParam$]=\"outerParam$\" [changeTracking]=\"true\"\r\n [changedItems$]=\"changedItems$\" [outerFilterOperators]=\"$filterOperators()\" [extraManualOffset]=\"55\"\r\n [fixedPageSize]=\"10\" [autoResizeWithWindow]=\"true\" (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (rowDoubleClick)=\"onRowDoubleClick($event)\" (onInstanceCreated)=\"onListInstanceCreated($event)\"\r\n [autoColumnFitAvailableSpace]=\"false\"></core-page-list>\r\n\r\n @if (showShiftCollection) {\r\n <core-shift-collection [height]=\"800\"></core-shift-collection>\r\n }\r\n\r\n <!-- @for (day of $visibleDays(); track $index) {\r\n <ng-template #shiftCell let-context=\"context\" let-isLocked=\"context.isLocked\">\r\n {{ context['shifts' + ($index + 1)] | json }}\r\n <core-shift-cell [ngModel]=\"context['shifts' + ($index + 1)]\" [$readOnly]=\"isLocked\"\r\n (ngModelChange)=\"onCellChange('shifts' + ($index + 1), $event, context)\"></core-shift-cell>\r\n </ng-template>\r\n } -->\r\n\r\n @for (dateStr of $visibleDays(); track $index) {\r\n <ng-template #shiftCell let-context=\"context\" let-isLocked=\"context.isLocked\">\r\n <core-shift-cell [ngModel]=\"context.shiftMap?.[dateStr]\" [$readOnly]=\"isLocked\"\r\n (ngModelChange)=\"onCellChange(dateStr, $event, context)\">\r\n </core-shift-cell>\r\n </ng-template>\r\n }\r\n\r\n <ng-template #threeDots>\r\n <app-threedots></app-threedots>\r\n </ng-template>\r\n\r\n <ng-template #orgNameWithLock let-context=\"context\" let-orgName=\"context.orgName\" let-isLocked=\"context.isLocked\">\r\n <div class=\"d-flex d-flex-start orgNameWrapper\" [htmlTooltip]=\"orgBranch\"\r\n [tooltipContext]=\"{ orgId: context['orgId'] }\">\r\n <div class=\"icon-wrapper\">\r\n @if (!!isLocked) {\r\n \uD83D\uDD12\r\n <!-- <i class=\"feather-lock\"></i> -->\r\n } @else {\r\n \uD83D\uDD16\r\n <!-- <i class=\"feather-bookmark\"></i> -->\r\n }\r\n </div>\r\n <div class=\"org-name\">{{ orgName }}</div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #orgBranch let-orgId=\"orgId\">\r\n <core-org-branch [$currentId]=\"orgId\" />\r\n </ng-template>\r\n\r\n <ng-template #top>\r\n <div class=\"d-flex d-flex-start mb15 pd5\">\r\n <div class=\"param-wrapper w250 mr15\">\r\n <div class=\"form-group vertical\">\r\n <core-org-param [accessorMode]=\"orgParamAccessorMode\" [(ngModel)]=\"orgIds\"\r\n (ngModelChange)=\"onOrgIdsChange($event)\"></core-org-param>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w150 mr15\">\r\n <div class=\"form-group vertical\">\r\n <core-month-selector [(ngModel)]=\"currentMonth\"\r\n (ngModelChange)=\"onCurrentMonthChange($event)\"></core-month-selector>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w150 mr15\">\r\n <div class=\"form-group vertical\">\r\n <core-dropdown [paramMode]=\"true\" [(ngModel)]=\"subPeriodOption\"\r\n (ngModelChange)=\"onSubPeriodOptionChange($event)\" [options$]=\"subPeriodOptions$\"\r\n [getByIdObject$]=\"subPeriodGetByIdObject$\" [shownFrom]=\"''\" [clearDisable]=\"true\"\r\n [fitHeightWithItemCount]=\"true\"></core-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w150 mr15\">\r\n <div class=\"form-group vertical\">\r\n <div class=\"d-flex d-flex-around\">\r\n @if (!fullPeriodMode) {\r\n <div (click)=\"goPreviousSevenDays()\" [class.disabled]=\"$startDateString()===$startPeriodString()\"><i\r\n class=\"feather-arrow-left fs24 color-gray pointer\"></i></div>\r\n }\r\n <h6 style=\"color: gray;\" class=\"h35 d-flex no-margin user-select-none\">{{ $startDate() | tableCell:\r\n \"DATE_DDMM\"\r\n :\r\n lang }} - {{\r\n $endDate() | tableCell: \"DATE_DDMM\" : lang }}</h6>\r\n @if (!fullPeriodMode) {\r\n <div (click)=\"goNextSevenDays()\" [class.disabled]=\"$endDateString()===$endPeriodString()\"><i\r\n class=\"feather-arrow-right fs24 color-gray pointer\"></i></div>\r\n }\r\n @if ($loading()) {\r\n <core-terminal-spinner />\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</div>", styles: [".icon-wrapper{display:block;width:20px;height:20px}.icon-wrapper i{color:#d3d3d3;font-size:20px}.icon-wrapper i.feather-lock{color:#000}.org-name{display:block;margin-left:8px;width:100%;overflow:hidden;text-overflow:ellipsis}.pd5{padding:5px}.pointer{cursor:pointer}\n"], dependencies: [{ kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreTerminalSpinnerComponent, selector: "core-terminal-spinner" }, { kind: "component", type: CoreOrgBranchComponent, selector: "core-org-branch", inputs: ["$levelUp", "$currentId"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "useTheseColumns", "hideOrgTree", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub", "autoColumnFitAvailableSpace", "ignoredDefaultActions", "checkboxExplicity", "auxOutletName", "forceReloadingFlag$"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }, { 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: CoreOrgParamComponent, selector: "core-org-param", inputs: ["accessorMode"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align", "placeholder"], outputs: ["onYearClick"] }, { kind: "component", type: CoreShiftCollectionComponent, selector: "core-shift-collection", inputs: ["height", "disabled", "relativeMode"] }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: ThreedotsComponent, selector: "app-threedots" }, { kind: "component", type: CoreApiProgressComponent, selector: "core-api-progress", outputs: ["onClose"] }, { kind: "directive", type: HtmlTooltipDirective, selector: "[htmlTooltip]", inputs: ["htmlTooltip", "tooltipContext", "maxWidthUnset", "backgroundColor", "hold$"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30580
30592
|
}
|
|
30581
30593
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AtWorksignComponent, decorators: [{
|
|
30582
30594
|
type: Component,
|
|
@@ -31574,7 +31586,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
31574
31586
|
const hrmSchemaRoutes = [
|
|
31575
31587
|
{
|
|
31576
31588
|
path: '',
|
|
31577
|
-
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-
|
|
31589
|
+
loadComponent: () => import('./ngx-histaff-alpha-hrm-schema.component-DhcmippJ.mjs').then(m => m.HrmSchemaComponent)
|
|
31578
31590
|
}
|
|
31579
31591
|
];
|
|
31580
31592
|
|
|
@@ -33747,7 +33759,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
33747
33759
|
const simpleChatRoutes = [
|
|
33748
33760
|
{
|
|
33749
33761
|
path: '',
|
|
33750
|
-
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-
|
|
33762
|
+
loadComponent: () => import('./ngx-histaff-alpha-simple-chat.component-Da4H2k5o.mjs').then(m => m.SimpleChatComponent)
|
|
33751
33763
|
}
|
|
33752
33764
|
];
|
|
33753
33765
|
|
|
@@ -36186,185 +36198,1922 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
36186
36198
|
], template: "<div class=\"modal-container\">\r\n <div class=\"modal-container-root\">\r\n <div class=\"edit-container\">\r\n\r\n <core-page-header [title]=\"'EDIT_ACTION_SVG_ICON'\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <div class=\"object-property w-100 fw700 color-gray\">\r\n <div>{{ id }} <span> \u2022 </span> {{ code }} <span> \u2022 </span> {{ (code || '') | translate: lang }} </div>\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n\r\n <div class=\"d-flex d-flex-between\">\r\n\r\n <div class=\"entry\">\r\n <div class=\"label\">Enter Svg element here:</div>\r\n <textarea class=\"form-control\" [(ngModel)]=\"svg\" [rows]=\"'10'\"\r\n [ngStyle]=\"{ height: 'unset'}\"></textarea>\r\n </div>\r\n <div class=\"preview d-flex d-flex-v d-flex-between\">\r\n <div class=\"label\">Preview:</div>\r\n <div class=\"preview-icon\" [innerHtml]=\"svg | stringHtml\">\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n <div class=\"d-flex d-flex-end\">\r\n <core-button-group-vns [showCaption]=\"true\" [forHeader]=\"false\" (buttonClick)=\"onButtonClick($event)\"\r\n [shownItems]=\"buttonItems\" class=\"buttonGroupCustom\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".edit-container{width:800px;height:400px;padding:0 15px 15px;background-color:#fff}.edit-container .entry{width:655px}.edit-container .preview{width:100px;height:100px}\n"] }]
|
|
36187
36199
|
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: ActionService }, { type: AppService }, { type: AlertService }] });
|
|
36188
36200
|
|
|
36189
|
-
|
|
36190
|
-
|
|
36191
|
-
|
|
36192
|
-
|
|
36193
|
-
|
|
36194
|
-
|
|
36195
|
-
|
|
36196
|
-
|
|
36197
|
-
|
|
36198
|
-
|
|
36199
|
-
|
|
36200
|
-
|
|
36201
|
-
|
|
36202
|
-
|
|
36203
|
-
|
|
36204
|
-
|
|
36205
|
-
|
|
36206
|
-
|
|
36207
|
-
|
|
36208
|
-
|
|
36209
|
-
|
|
36210
|
-
|
|
36211
|
-
|
|
36212
|
-
|
|
36213
|
-
|
|
36214
|
-
|
|
36215
|
-
|
|
36216
|
-
|
|
36217
|
-
|
|
36218
|
-
|
|
36219
|
-
|
|
36220
|
-
|
|
36221
|
-
|
|
36222
|
-
|
|
36223
|
-
|
|
36224
|
-
|
|
36225
|
-
|
|
36201
|
+
const COM_MOKEUP_DATA = [
|
|
36202
|
+
{
|
|
36203
|
+
"id": 2,
|
|
36204
|
+
"name": "Hanoi Office Test",
|
|
36205
|
+
"parentId": 1,
|
|
36206
|
+
"orderNum": 99999,
|
|
36207
|
+
"protected": false,
|
|
36208
|
+
"level": null,
|
|
36209
|
+
"code": "HOT",
|
|
36210
|
+
"isActive": true
|
|
36211
|
+
},
|
|
36212
|
+
{
|
|
36213
|
+
"id": 3,
|
|
36214
|
+
"name": "Corporate Group ",
|
|
36215
|
+
"parentId": 2,
|
|
36216
|
+
"orderNum": 99999,
|
|
36217
|
+
"protected": false,
|
|
36218
|
+
"level": null,
|
|
36219
|
+
"code": "CG",
|
|
36220
|
+
"isActive": true
|
|
36221
|
+
},
|
|
36222
|
+
{
|
|
36223
|
+
"id": 4,
|
|
36224
|
+
"name": "BACKEND_ONLY.HU_ORGANIZATION.NAME.TI",
|
|
36225
|
+
"parentId": 2,
|
|
36226
|
+
"orderNum": 99999,
|
|
36227
|
+
"protected": false,
|
|
36228
|
+
"level": null,
|
|
36229
|
+
"code": "TI",
|
|
36230
|
+
"isActive": true
|
|
36231
|
+
},
|
|
36232
|
+
{
|
|
36233
|
+
"id": 5,
|
|
36234
|
+
"name": "Project and Investment",
|
|
36235
|
+
"parentId": 2,
|
|
36236
|
+
"orderNum": 99999,
|
|
36237
|
+
"protected": false,
|
|
36238
|
+
"level": null,
|
|
36239
|
+
"code": "PI",
|
|
36240
|
+
"isActive": true
|
|
36241
|
+
},
|
|
36242
|
+
{
|
|
36243
|
+
"id": 6,
|
|
36244
|
+
"name": "Treasury & Accounting Department",
|
|
36245
|
+
"parentId": 3,
|
|
36246
|
+
"orderNum": 99999,
|
|
36247
|
+
"protected": false,
|
|
36248
|
+
"level": null,
|
|
36249
|
+
"code": "TA",
|
|
36250
|
+
"isActive": true
|
|
36251
|
+
},
|
|
36252
|
+
{
|
|
36253
|
+
"id": 7,
|
|
36254
|
+
"name": "Legal &Risk Management department",
|
|
36255
|
+
"parentId": 3,
|
|
36256
|
+
"orderNum": 99999,
|
|
36257
|
+
"protected": false,
|
|
36258
|
+
"level": null,
|
|
36259
|
+
"code": "LR",
|
|
36260
|
+
"isActive": true
|
|
36261
|
+
},
|
|
36262
|
+
{
|
|
36263
|
+
"id": 8,
|
|
36264
|
+
"name": "Corporate Planning & Coordination department",
|
|
36265
|
+
"parentId": 3,
|
|
36266
|
+
"orderNum": 99999,
|
|
36267
|
+
"protected": false,
|
|
36268
|
+
"level": null,
|
|
36269
|
+
"code": "CC",
|
|
36270
|
+
"isActive": true
|
|
36271
|
+
},
|
|
36272
|
+
{
|
|
36273
|
+
"id": 9,
|
|
36274
|
+
"name": "Administration and Planning department",
|
|
36275
|
+
"parentId": 3,
|
|
36276
|
+
"orderNum": 99999,
|
|
36277
|
+
"protected": false,
|
|
36278
|
+
"level": null,
|
|
36279
|
+
"code": "Admin",
|
|
36280
|
+
"isActive": true
|
|
36281
|
+
},
|
|
36282
|
+
{
|
|
36283
|
+
"id": 10,
|
|
36284
|
+
"name": "Da Nang Office",
|
|
36285
|
+
"parentId": 3,
|
|
36286
|
+
"orderNum": 99999,
|
|
36287
|
+
"protected": false,
|
|
36288
|
+
"level": null,
|
|
36289
|
+
"code": "DN",
|
|
36290
|
+
"isActive": true
|
|
36291
|
+
},
|
|
36292
|
+
{
|
|
36293
|
+
"id": 11,
|
|
36294
|
+
"name": "Ha Noi Iron, Steel & Non-ferrous Metal department",
|
|
36295
|
+
"parentId": 4,
|
|
36296
|
+
"orderNum": 99999,
|
|
36297
|
+
"protected": false,
|
|
36298
|
+
"level": null,
|
|
36299
|
+
"code": "IS",
|
|
36300
|
+
"isActive": true
|
|
36301
|
+
},
|
|
36302
|
+
{
|
|
36303
|
+
"id": 12,
|
|
36304
|
+
"name": "Ha Noi Chemicals, Plastics and Mineral Resources department\n",
|
|
36305
|
+
"parentId": 4,
|
|
36306
|
+
"orderNum": 99999,
|
|
36307
|
+
"protected": false,
|
|
36308
|
+
"level": null,
|
|
36309
|
+
"code": "HNC",
|
|
36310
|
+
"isActive": true
|
|
36311
|
+
},
|
|
36312
|
+
{
|
|
36313
|
+
"id": 13,
|
|
36314
|
+
"name": "Mineral Resources department",
|
|
36315
|
+
"parentId": 4,
|
|
36316
|
+
"orderNum": 99999,
|
|
36317
|
+
"protected": false,
|
|
36318
|
+
"level": null,
|
|
36319
|
+
"code": "MR",
|
|
36320
|
+
"isActive": true
|
|
36321
|
+
},
|
|
36322
|
+
{
|
|
36323
|
+
"id": 14,
|
|
36324
|
+
"name": "BACKEND_ONLY.HU_ORGANIZATION.NAME.TP",
|
|
36325
|
+
"parentId": 5,
|
|
36326
|
+
"orderNum": 99999,
|
|
36327
|
+
"protected": false,
|
|
36328
|
+
"level": null,
|
|
36329
|
+
"code": "TP",
|
|
36330
|
+
"isActive": true
|
|
36331
|
+
},
|
|
36332
|
+
{
|
|
36333
|
+
"id": 15,
|
|
36334
|
+
"name": "Automotive Department Business ",
|
|
36335
|
+
"parentId": 5,
|
|
36336
|
+
"orderNum": 99999,
|
|
36337
|
+
"protected": false,
|
|
36338
|
+
"level": null,
|
|
36339
|
+
"code": "ADB",
|
|
36340
|
+
"isActive": true
|
|
36341
|
+
},
|
|
36342
|
+
{
|
|
36343
|
+
"id": 16,
|
|
36344
|
+
"name": "Environment & Infrastructure Project Business department\n",
|
|
36345
|
+
"parentId": 5,
|
|
36346
|
+
"orderNum": 99999,
|
|
36347
|
+
"protected": false,
|
|
36348
|
+
"level": null,
|
|
36349
|
+
"code": "EIPB",
|
|
36350
|
+
"isActive": true
|
|
36351
|
+
},
|
|
36352
|
+
{
|
|
36353
|
+
"id": 17,
|
|
36354
|
+
"name": "Power Infrastructure Business department",
|
|
36355
|
+
"parentId": 5,
|
|
36356
|
+
"orderNum": 99999,
|
|
36357
|
+
"protected": false,
|
|
36358
|
+
"level": null,
|
|
36359
|
+
"code": "PIB",
|
|
36360
|
+
"isActive": true
|
|
36361
|
+
},
|
|
36362
|
+
{
|
|
36363
|
+
"id": 18,
|
|
36364
|
+
"name": "General Director",
|
|
36365
|
+
"parentId": 3,
|
|
36366
|
+
"orderNum": 99999,
|
|
36367
|
+
"protected": false,
|
|
36368
|
+
"level": null,
|
|
36369
|
+
"code": "GD",
|
|
36370
|
+
"isActive": true
|
|
36371
|
+
},
|
|
36372
|
+
{
|
|
36373
|
+
"id": 30,
|
|
36374
|
+
"name": "Ho Chi Minh Office",
|
|
36375
|
+
"parentId": 1,
|
|
36376
|
+
"orderNum": 99999,
|
|
36377
|
+
"protected": false,
|
|
36378
|
+
"level": null,
|
|
36379
|
+
"code": "A",
|
|
36380
|
+
"isActive": true
|
|
36381
|
+
},
|
|
36382
|
+
{
|
|
36383
|
+
"id": 31,
|
|
36384
|
+
"name": "Corporate Group",
|
|
36385
|
+
"parentId": 30,
|
|
36386
|
+
"orderNum": 99999,
|
|
36387
|
+
"protected": false,
|
|
36388
|
+
"level": null,
|
|
36389
|
+
"code": "B",
|
|
36390
|
+
"isActive": true
|
|
36391
|
+
},
|
|
36392
|
+
{
|
|
36393
|
+
"id": 32,
|
|
36394
|
+
"name": "Metal, Chemical, Natural Resources & Living-related Business Group",
|
|
36395
|
+
"parentId": 30,
|
|
36396
|
+
"orderNum": 99999,
|
|
36397
|
+
"protected": false,
|
|
36398
|
+
"level": null,
|
|
36399
|
+
"code": "C",
|
|
36400
|
+
"isActive": true
|
|
36401
|
+
},
|
|
36402
|
+
{
|
|
36403
|
+
"id": 33,
|
|
36404
|
+
"name": "Project & Machinery Group",
|
|
36405
|
+
"parentId": 30,
|
|
36406
|
+
"orderNum": 99999,
|
|
36407
|
+
"protected": false,
|
|
36408
|
+
"level": null,
|
|
36409
|
+
"code": "D",
|
|
36410
|
+
"isActive": true
|
|
36411
|
+
},
|
|
36412
|
+
{
|
|
36413
|
+
"id": 43,
|
|
36414
|
+
"name": "Administration and Planning department ",
|
|
36415
|
+
"parentId": 31,
|
|
36416
|
+
"orderNum": 99999,
|
|
36417
|
+
"protected": false,
|
|
36418
|
+
"level": null,
|
|
36419
|
+
"code": "43",
|
|
36420
|
+
"isActive": true
|
|
36421
|
+
},
|
|
36422
|
+
{
|
|
36423
|
+
"id": 44,
|
|
36424
|
+
"name": "Treasury & Accounting Department",
|
|
36425
|
+
"parentId": 31,
|
|
36426
|
+
"orderNum": 99999,
|
|
36427
|
+
"protected": false,
|
|
36428
|
+
"level": null,
|
|
36429
|
+
"code": "E",
|
|
36430
|
+
"isActive": true
|
|
36431
|
+
},
|
|
36432
|
+
{
|
|
36433
|
+
"id": 45,
|
|
36434
|
+
"name": "Legal & Risk Management Department",
|
|
36435
|
+
"parentId": 31,
|
|
36436
|
+
"orderNum": 99999,
|
|
36437
|
+
"protected": false,
|
|
36438
|
+
"level": null,
|
|
36439
|
+
"code": "CZ",
|
|
36440
|
+
"isActive": true
|
|
36441
|
+
},
|
|
36442
|
+
{
|
|
36443
|
+
"id": 46,
|
|
36444
|
+
"name": "BACKEND_ONLY.HU_ORGANIZATION.NAME.TUBULARS PRODUCTS DEPT.",
|
|
36445
|
+
"parentId": 32,
|
|
36446
|
+
"orderNum": 99999,
|
|
36447
|
+
"protected": false,
|
|
36448
|
+
"level": null,
|
|
36449
|
+
"code": "F",
|
|
36450
|
+
"isActive": true
|
|
36451
|
+
},
|
|
36452
|
+
{
|
|
36453
|
+
"id": 47,
|
|
36454
|
+
"name": "Iron, Steel & Non-Ferrous Metal Dept",
|
|
36455
|
+
"parentId": 32,
|
|
36456
|
+
"orderNum": 99999,
|
|
36457
|
+
"protected": false,
|
|
36458
|
+
"level": null,
|
|
36459
|
+
"code": "G",
|
|
36460
|
+
"isActive": true
|
|
36461
|
+
},
|
|
36462
|
+
{
|
|
36463
|
+
"id": 48,
|
|
36464
|
+
"name": "Energy Dept.",
|
|
36465
|
+
"parentId": 32,
|
|
36466
|
+
"orderNum": 99999,
|
|
36467
|
+
"protected": false,
|
|
36468
|
+
"level": null,
|
|
36469
|
+
"code": "H",
|
|
36470
|
+
"isActive": true
|
|
36471
|
+
},
|
|
36472
|
+
{
|
|
36473
|
+
"id": 49,
|
|
36474
|
+
"name": "Chemicals and Plastics Dept",
|
|
36475
|
+
"parentId": 32,
|
|
36476
|
+
"orderNum": 99999,
|
|
36477
|
+
"protected": false,
|
|
36478
|
+
"level": null,
|
|
36479
|
+
"code": "I",
|
|
36480
|
+
"isActive": true
|
|
36481
|
+
},
|
|
36482
|
+
{
|
|
36483
|
+
"id": 50,
|
|
36484
|
+
"name": "Media, Food, Materials & Real Estate dept\n",
|
|
36485
|
+
"parentId": 32,
|
|
36486
|
+
"orderNum": 99999,
|
|
36487
|
+
"protected": false,
|
|
36488
|
+
"level": null,
|
|
36489
|
+
"code": "J",
|
|
36490
|
+
"isActive": true
|
|
36491
|
+
},
|
|
36492
|
+
{
|
|
36493
|
+
"id": 51,
|
|
36494
|
+
"name": "Transportation Project Dept",
|
|
36495
|
+
"parentId": 33,
|
|
36496
|
+
"orderNum": 99999,
|
|
36497
|
+
"protected": false,
|
|
36498
|
+
"level": null,
|
|
36499
|
+
"code": "K",
|
|
36500
|
+
"isActive": true
|
|
36501
|
+
},
|
|
36502
|
+
{
|
|
36503
|
+
"id": 52,
|
|
36504
|
+
"name": "Power Infrastructure Business Dept.",
|
|
36505
|
+
"parentId": 33,
|
|
36506
|
+
"orderNum": 99999,
|
|
36507
|
+
"protected": false,
|
|
36508
|
+
"level": null,
|
|
36509
|
+
"code": "L",
|
|
36510
|
+
"isActive": true
|
|
36511
|
+
},
|
|
36512
|
+
{
|
|
36513
|
+
"id": 2111,
|
|
36514
|
+
"name": "Corporate Planning and Coordination Department",
|
|
36515
|
+
"parentId": 31,
|
|
36516
|
+
"orderNum": 99999,
|
|
36517
|
+
"protected": false,
|
|
36518
|
+
"level": null,
|
|
36519
|
+
"code": "CPC",
|
|
36520
|
+
"isActive": true
|
|
36521
|
+
},
|
|
36522
|
+
{
|
|
36523
|
+
"id": 2131,
|
|
36524
|
+
"name": "Corporate Group test",
|
|
36525
|
+
"parentId": 3,
|
|
36526
|
+
"orderNum": 99999,
|
|
36527
|
+
"protected": false,
|
|
36528
|
+
"level": null,
|
|
36529
|
+
"code": "81",
|
|
36530
|
+
"isActive": true
|
|
36531
|
+
},
|
|
36532
|
+
{
|
|
36533
|
+
"id": 2132,
|
|
36534
|
+
"name": "phòng kiểm thử 34",
|
|
36535
|
+
"parentId": 1,
|
|
36536
|
+
"orderNum": 99999,
|
|
36537
|
+
"protected": false,
|
|
36538
|
+
"level": null,
|
|
36539
|
+
"code": "PKT34",
|
|
36540
|
+
"isActive": true
|
|
36541
|
+
},
|
|
36542
|
+
{
|
|
36543
|
+
"id": 22146,
|
|
36544
|
+
"name": "Hanoi Office",
|
|
36545
|
+
"parentId": 22145,
|
|
36546
|
+
"orderNum": 99999,
|
|
36547
|
+
"protected": false,
|
|
36548
|
+
"level": null,
|
|
36549
|
+
"code": "HNIZZ",
|
|
36550
|
+
"isActive": true
|
|
36551
|
+
},
|
|
36552
|
+
{
|
|
36553
|
+
"id": 22147,
|
|
36554
|
+
"name": "Business Development Department",
|
|
36555
|
+
"parentId": 22146,
|
|
36556
|
+
"orderNum": 99999,
|
|
36557
|
+
"protected": false,
|
|
36558
|
+
"level": null,
|
|
36559
|
+
"code": "BDD",
|
|
36560
|
+
"isActive": true
|
|
36561
|
+
},
|
|
36562
|
+
{
|
|
36563
|
+
"id": 22148,
|
|
36564
|
+
"name": "Corporate Group ",
|
|
36565
|
+
"parentId": 22146,
|
|
36566
|
+
"orderNum": 99999,
|
|
36567
|
+
"protected": false,
|
|
36568
|
+
"level": null,
|
|
36569
|
+
"code": "CU",
|
|
36570
|
+
"isActive": true
|
|
36571
|
+
},
|
|
36572
|
+
{
|
|
36573
|
+
"id": 22149,
|
|
36574
|
+
"name": "Human Resources Department",
|
|
36575
|
+
"parentId": 22148,
|
|
36576
|
+
"orderNum": 99999,
|
|
36577
|
+
"protected": false,
|
|
36578
|
+
"level": null,
|
|
36579
|
+
"code": "HRD",
|
|
36580
|
+
"isActive": true
|
|
36581
|
+
},
|
|
36582
|
+
{
|
|
36583
|
+
"id": 22150,
|
|
36584
|
+
"name": "Corporate Services Department",
|
|
36585
|
+
"parentId": 22148,
|
|
36586
|
+
"orderNum": 99999,
|
|
36587
|
+
"protected": false,
|
|
36588
|
+
"level": null,
|
|
36589
|
+
"code": "CSD",
|
|
36590
|
+
"isActive": true
|
|
36591
|
+
},
|
|
36592
|
+
{
|
|
36593
|
+
"id": 22151,
|
|
36594
|
+
"name": "Treasury & Accounting Department",
|
|
36595
|
+
"parentId": 22148,
|
|
36596
|
+
"orderNum": 99999,
|
|
36597
|
+
"protected": false,
|
|
36598
|
+
"level": null,
|
|
36599
|
+
"code": "T&AD",
|
|
36600
|
+
"isActive": true
|
|
36601
|
+
},
|
|
36602
|
+
{
|
|
36603
|
+
"id": 22152,
|
|
36604
|
+
"name": "Legal & Risk Department",
|
|
36605
|
+
"parentId": 22148,
|
|
36606
|
+
"orderNum": 99999,
|
|
36607
|
+
"protected": false,
|
|
36608
|
+
"level": null,
|
|
36609
|
+
"code": "L&RD",
|
|
36610
|
+
"isActive": true
|
|
36611
|
+
},
|
|
36612
|
+
{
|
|
36613
|
+
"id": 22153,
|
|
36614
|
+
"name": "Infrastructure, Automotive, Energy & Urban Business Group",
|
|
36615
|
+
"parentId": 22146,
|
|
36616
|
+
"orderNum": 99999,
|
|
36617
|
+
"protected": false,
|
|
36618
|
+
"level": null,
|
|
36619
|
+
"code": "IAE&UBG",
|
|
36620
|
+
"isActive": true
|
|
36621
|
+
},
|
|
36622
|
+
{
|
|
36623
|
+
"id": 22154,
|
|
36624
|
+
"name": "Automotive Business Department",
|
|
36625
|
+
"parentId": 22153,
|
|
36626
|
+
"orderNum": 99999,
|
|
36627
|
+
"protected": false,
|
|
36628
|
+
"level": null,
|
|
36629
|
+
"code": "ABD",
|
|
36630
|
+
"isActive": true
|
|
36631
|
+
},
|
|
36632
|
+
{
|
|
36633
|
+
"id": 22155,
|
|
36634
|
+
"name": "Energy Department",
|
|
36635
|
+
"parentId": 22153,
|
|
36636
|
+
"orderNum": 99999,
|
|
36637
|
+
"protected": false,
|
|
36638
|
+
"level": null,
|
|
36639
|
+
"code": "ED",
|
|
36640
|
+
"isActive": true
|
|
36641
|
+
},
|
|
36642
|
+
{
|
|
36643
|
+
"id": 22156,
|
|
36644
|
+
"name": "Energy Innovation Initiatives Department",
|
|
36645
|
+
"parentId": 22153,
|
|
36646
|
+
"orderNum": 99999,
|
|
36647
|
+
"protected": false,
|
|
36648
|
+
"level": null,
|
|
36649
|
+
"code": "EIID",
|
|
36650
|
+
"isActive": true
|
|
36651
|
+
},
|
|
36652
|
+
{
|
|
36653
|
+
"id": 22157,
|
|
36654
|
+
"name": "Power Infrastructure Business department",
|
|
36655
|
+
"parentId": 22153,
|
|
36656
|
+
"orderNum": 99999,
|
|
36657
|
+
"protected": false,
|
|
36658
|
+
"level": null,
|
|
36659
|
+
"code": "PIBD",
|
|
36660
|
+
"isActive": true
|
|
36661
|
+
},
|
|
36662
|
+
{
|
|
36663
|
+
"id": 22158,
|
|
36664
|
+
"name": "Social Infrastructure, Transportation & Urban Business Department",
|
|
36665
|
+
"parentId": 22153,
|
|
36666
|
+
"orderNum": 99999,
|
|
36667
|
+
"protected": false,
|
|
36668
|
+
"level": null,
|
|
36669
|
+
"code": "SIT&UBD",
|
|
36670
|
+
"isActive": true
|
|
36671
|
+
},
|
|
36672
|
+
{
|
|
36673
|
+
"id": 22159,
|
|
36674
|
+
"name": "Lifestyle & Chemicals Group",
|
|
36675
|
+
"parentId": 22146,
|
|
36676
|
+
"orderNum": 99999,
|
|
36677
|
+
"protected": false,
|
|
36678
|
+
"level": null,
|
|
36679
|
+
"code": "L&CG",
|
|
36680
|
+
"isActive": true
|
|
36681
|
+
},
|
|
36682
|
+
{
|
|
36683
|
+
"id": 22160,
|
|
36684
|
+
"name": "Lifestyle & Retail Business Department",
|
|
36685
|
+
"parentId": 22159,
|
|
36686
|
+
"orderNum": 99999,
|
|
36687
|
+
"protected": false,
|
|
36688
|
+
"level": null,
|
|
36689
|
+
"code": "L&RBD",
|
|
36690
|
+
"isActive": true
|
|
36691
|
+
},
|
|
36692
|
+
{
|
|
36693
|
+
"id": 22161,
|
|
36694
|
+
"name": "Chemicals & Plastics Department",
|
|
36695
|
+
"parentId": 22159,
|
|
36696
|
+
"orderNum": 99999,
|
|
36697
|
+
"protected": false,
|
|
36698
|
+
"level": null,
|
|
36699
|
+
"code": "C&PD",
|
|
36700
|
+
"isActive": true
|
|
36701
|
+
},
|
|
36702
|
+
{
|
|
36703
|
+
"id": 22162,
|
|
36704
|
+
"name": "Steel & Mineral Resources Group",
|
|
36705
|
+
"parentId": 22146,
|
|
36706
|
+
"orderNum": 99999,
|
|
36707
|
+
"protected": false,
|
|
36708
|
+
"level": null,
|
|
36709
|
+
"code": "S&MRG",
|
|
36710
|
+
"isActive": true
|
|
36711
|
+
},
|
|
36712
|
+
{
|
|
36713
|
+
"id": 22163,
|
|
36714
|
+
"name": "Hanoi Steel & Non-ferrous Department",
|
|
36715
|
+
"parentId": 22162,
|
|
36716
|
+
"orderNum": 99999,
|
|
36717
|
+
"protected": false,
|
|
36718
|
+
"level": null,
|
|
36719
|
+
"code": "HS&ND",
|
|
36720
|
+
"isActive": true
|
|
36721
|
+
},
|
|
36722
|
+
{
|
|
36723
|
+
"id": 22164,
|
|
36724
|
+
"name": "Ho Chi Minh City Office",
|
|
36725
|
+
"parentId": 22145,
|
|
36726
|
+
"orderNum": 99999,
|
|
36727
|
+
"protected": false,
|
|
36728
|
+
"level": null,
|
|
36729
|
+
"code": "HMCZZ",
|
|
36730
|
+
"isActive": true
|
|
36731
|
+
},
|
|
36732
|
+
{
|
|
36733
|
+
"id": 22165,
|
|
36734
|
+
"name": "Business Development Department",
|
|
36735
|
+
"parentId": 22164,
|
|
36736
|
+
"orderNum": 99999,
|
|
36737
|
+
"protected": false,
|
|
36738
|
+
"level": null,
|
|
36739
|
+
"code": "BD",
|
|
36740
|
+
"isActive": true
|
|
36741
|
+
},
|
|
36742
|
+
{
|
|
36743
|
+
"id": 22166,
|
|
36744
|
+
"name": "Infrastructure, Automotive, Energy & Urban Business Group",
|
|
36745
|
+
"parentId": 22164,
|
|
36746
|
+
"orderNum": 99999,
|
|
36747
|
+
"protected": false,
|
|
36748
|
+
"level": null,
|
|
36749
|
+
"code": "IAE&UB",
|
|
36750
|
+
"isActive": true
|
|
36751
|
+
},
|
|
36752
|
+
{
|
|
36753
|
+
"id": 22167,
|
|
36754
|
+
"name": "Lifestyle & Chemicals Group",
|
|
36755
|
+
"parentId": 22164,
|
|
36756
|
+
"orderNum": 99999,
|
|
36757
|
+
"protected": false,
|
|
36758
|
+
"level": null,
|
|
36759
|
+
"code": "L&C",
|
|
36760
|
+
"isActive": true
|
|
36761
|
+
},
|
|
36762
|
+
{
|
|
36763
|
+
"id": 22168,
|
|
36764
|
+
"name": "Steel & Mineral Resources Group",
|
|
36765
|
+
"parentId": 22164,
|
|
36766
|
+
"orderNum": 99999,
|
|
36767
|
+
"protected": false,
|
|
36768
|
+
"level": null,
|
|
36769
|
+
"code": "S&MR",
|
|
36770
|
+
"isActive": true
|
|
36771
|
+
},
|
|
36772
|
+
{
|
|
36773
|
+
"id": 22169,
|
|
36774
|
+
"name": "Automotive Business Department",
|
|
36775
|
+
"parentId": 22166,
|
|
36776
|
+
"orderNum": 99999,
|
|
36777
|
+
"protected": false,
|
|
36778
|
+
"level": null,
|
|
36779
|
+
"code": "AB",
|
|
36780
|
+
"isActive": true
|
|
36781
|
+
},
|
|
36782
|
+
{
|
|
36783
|
+
"id": 22170,
|
|
36784
|
+
"name": "Energy Department",
|
|
36785
|
+
"parentId": 22166,
|
|
36786
|
+
"orderNum": 99999,
|
|
36787
|
+
"protected": false,
|
|
36788
|
+
"level": null,
|
|
36789
|
+
"code": "EU",
|
|
36790
|
+
"isActive": true
|
|
36791
|
+
},
|
|
36792
|
+
{
|
|
36793
|
+
"id": 22171,
|
|
36794
|
+
"name": "Energy Innovation Initiatives Department",
|
|
36795
|
+
"parentId": 22166,
|
|
36796
|
+
"orderNum": 99999,
|
|
36797
|
+
"protected": false,
|
|
36798
|
+
"level": null,
|
|
36799
|
+
"code": "EII",
|
|
36800
|
+
"isActive": true
|
|
36801
|
+
},
|
|
36802
|
+
{
|
|
36803
|
+
"id": 22172,
|
|
36804
|
+
"name": "Social Infrastructure, Transportation & Urban Business Department",
|
|
36805
|
+
"parentId": 22166,
|
|
36806
|
+
"orderNum": 99999,
|
|
36807
|
+
"protected": false,
|
|
36808
|
+
"level": null,
|
|
36809
|
+
"code": "SIT&UB",
|
|
36810
|
+
"isActive": true
|
|
36811
|
+
},
|
|
36812
|
+
{
|
|
36813
|
+
"id": 22173,
|
|
36814
|
+
"name": "Chemicals & Plastics Department",
|
|
36815
|
+
"parentId": 22167,
|
|
36816
|
+
"orderNum": 99999,
|
|
36817
|
+
"protected": false,
|
|
36818
|
+
"level": null,
|
|
36819
|
+
"code": "C&P",
|
|
36820
|
+
"isActive": true
|
|
36821
|
+
},
|
|
36822
|
+
{
|
|
36823
|
+
"id": 22174,
|
|
36824
|
+
"name": "Digital & Food Related Department",
|
|
36825
|
+
"parentId": 22167,
|
|
36826
|
+
"orderNum": 99999,
|
|
36827
|
+
"protected": false,
|
|
36828
|
+
"level": null,
|
|
36829
|
+
"code": "D&FRD",
|
|
36830
|
+
"isActive": true
|
|
36831
|
+
},
|
|
36832
|
+
{
|
|
36833
|
+
"id": 22175,
|
|
36834
|
+
"name": "HCMC Steel & Non-ferrous",
|
|
36835
|
+
"parentId": 22168,
|
|
36836
|
+
"orderNum": 99999,
|
|
36837
|
+
"protected": false,
|
|
36838
|
+
"level": null,
|
|
36839
|
+
"code": "HS&N",
|
|
36840
|
+
"isActive": true
|
|
36841
|
+
},
|
|
36842
|
+
{
|
|
36843
|
+
"id": 22176,
|
|
36844
|
+
"name": "Tubular Products Department",
|
|
36845
|
+
"parentId": 22168,
|
|
36846
|
+
"orderNum": 99999,
|
|
36847
|
+
"protected": false,
|
|
36848
|
+
"level": null,
|
|
36849
|
+
"code": "TPD",
|
|
36850
|
+
"isActive": true
|
|
36851
|
+
},
|
|
36852
|
+
{
|
|
36853
|
+
"id": 22177,
|
|
36854
|
+
"name": "Energy Department",
|
|
36855
|
+
"parentId": 5,
|
|
36856
|
+
"orderNum": 99999,
|
|
36857
|
+
"protected": false,
|
|
36858
|
+
"level": null,
|
|
36859
|
+
"code": "EDB",
|
|
36860
|
+
"isActive": true
|
|
36861
|
+
},
|
|
36862
|
+
{
|
|
36863
|
+
"id": 22178,
|
|
36864
|
+
"name": "rtyrt",
|
|
36865
|
+
"parentId": 2134,
|
|
36866
|
+
"orderNum": 99999,
|
|
36867
|
+
"protected": false,
|
|
36868
|
+
"level": null,
|
|
36869
|
+
"code": "R",
|
|
36870
|
+
"isActive": true
|
|
36871
|
+
},
|
|
36872
|
+
{
|
|
36873
|
+
"id": 22179,
|
|
36874
|
+
"name": "vp test test",
|
|
36875
|
+
"parentId": 1,
|
|
36876
|
+
"orderNum": 99999,
|
|
36877
|
+
"protected": false,
|
|
36878
|
+
"level": null,
|
|
36879
|
+
"code": "VTT",
|
|
36880
|
+
"isActive": true
|
|
36881
|
+
},
|
|
36882
|
+
{
|
|
36883
|
+
"id": 22180,
|
|
36884
|
+
"name": "hưng yên ofice",
|
|
36885
|
+
"parentId": 22145,
|
|
36886
|
+
"orderNum": 99999,
|
|
36887
|
+
"protected": false,
|
|
36888
|
+
"level": null,
|
|
36889
|
+
"code": "HYO",
|
|
36890
|
+
"isActive": false
|
|
36891
|
+
},
|
|
36892
|
+
{
|
|
36893
|
+
"id": 22181,
|
|
36894
|
+
"name": "hy city",
|
|
36895
|
+
"parentId": 22179,
|
|
36896
|
+
"orderNum": 99999,
|
|
36897
|
+
"protected": false,
|
|
36898
|
+
"level": null,
|
|
36899
|
+
"code": "HC",
|
|
36900
|
+
"isActive": true
|
|
36901
|
+
},
|
|
36902
|
+
{
|
|
36903
|
+
"id": 22182,
|
|
36904
|
+
"name": "122",
|
|
36905
|
+
"parentId": 22147,
|
|
36906
|
+
"orderNum": 99999,
|
|
36907
|
+
"protected": false,
|
|
36908
|
+
"level": null,
|
|
36909
|
+
"code": "122",
|
|
36910
|
+
"isActive": true
|
|
36911
|
+
},
|
|
36912
|
+
{
|
|
36913
|
+
"id": 22183,
|
|
36914
|
+
"name": "247",
|
|
36915
|
+
"parentId": 22145,
|
|
36916
|
+
"orderNum": 99999,
|
|
36917
|
+
"protected": false,
|
|
36918
|
+
"level": null,
|
|
36919
|
+
"code": "247",
|
|
36920
|
+
"isActive": false
|
|
36921
|
+
},
|
|
36922
|
+
{
|
|
36923
|
+
"id": 22184,
|
|
36924
|
+
"name": "247",
|
|
36925
|
+
"parentId": 22183,
|
|
36926
|
+
"orderNum": 99999,
|
|
36927
|
+
"protected": false,
|
|
36928
|
+
"level": null,
|
|
36929
|
+
"code": "66",
|
|
36930
|
+
"isActive": false
|
|
36931
|
+
},
|
|
36932
|
+
{
|
|
36933
|
+
"id": 22185,
|
|
36934
|
+
"name": "zalo",
|
|
36935
|
+
"parentId": 22183,
|
|
36936
|
+
"orderNum": 99999,
|
|
36937
|
+
"protected": false,
|
|
36938
|
+
"level": null,
|
|
36939
|
+
"code": "Z",
|
|
36940
|
+
"isActive": false
|
|
36941
|
+
},
|
|
36942
|
+
{
|
|
36943
|
+
"id": 22186,
|
|
36944
|
+
"name": "vp testet",
|
|
36945
|
+
"parentId": 12139,
|
|
36946
|
+
"orderNum": 99999,
|
|
36947
|
+
"protected": false,
|
|
36948
|
+
"level": null,
|
|
36949
|
+
"code": "VT",
|
|
36950
|
+
"isActive": true
|
|
36951
|
+
},
|
|
36952
|
+
{
|
|
36953
|
+
"id": 22187,
|
|
36954
|
+
"name": "văn phòng Đà Nẵng",
|
|
36955
|
+
"parentId": 22164,
|
|
36956
|
+
"orderNum": 99999,
|
|
36957
|
+
"protected": false,
|
|
36958
|
+
"level": null,
|
|
36959
|
+
"code": "Đà Nẵng office",
|
|
36960
|
+
"isActive": false
|
|
36961
|
+
},
|
|
36962
|
+
{
|
|
36963
|
+
"id": 22188,
|
|
36964
|
+
"name": "VĂn Phòng miền nam",
|
|
36965
|
+
"parentId": 22145,
|
|
36966
|
+
"orderNum": 99999,
|
|
36967
|
+
"protected": false,
|
|
36968
|
+
"level": null,
|
|
36969
|
+
"code": "Miền Nam office",
|
|
36970
|
+
"isActive": false
|
|
36971
|
+
},
|
|
36972
|
+
{
|
|
36973
|
+
"id": 2134,
|
|
36974
|
+
"name": "Văn phòng Hà Nội",
|
|
36975
|
+
"parentId": 1,
|
|
36976
|
+
"orderNum": 99999,
|
|
36977
|
+
"protected": false,
|
|
36978
|
+
"level": null,
|
|
36979
|
+
"code": "VPHN",
|
|
36980
|
+
"isActive": true
|
|
36981
|
+
},
|
|
36982
|
+
{
|
|
36983
|
+
"id": 12134,
|
|
36984
|
+
"name": "Văn phòng Hà nội 2 ",
|
|
36985
|
+
"parentId": 2134,
|
|
36986
|
+
"orderNum": 99999,
|
|
36987
|
+
"protected": false,
|
|
36988
|
+
"level": null,
|
|
36989
|
+
"code": "VPHN2",
|
|
36990
|
+
"isActive": true
|
|
36991
|
+
},
|
|
36992
|
+
{
|
|
36993
|
+
"id": 12135,
|
|
36994
|
+
"name": "BACKEND_ONLY.HU_ORGANIZATION.NAME.TEST",
|
|
36995
|
+
"parentId": 1,
|
|
36996
|
+
"orderNum": 99999,
|
|
36997
|
+
"protected": false,
|
|
36998
|
+
"level": null,
|
|
36999
|
+
"code": "T",
|
|
37000
|
+
"isActive": false
|
|
37001
|
+
},
|
|
37002
|
+
{
|
|
37003
|
+
"id": 12136,
|
|
37004
|
+
"name": "Phòng Development",
|
|
37005
|
+
"parentId": 1,
|
|
37006
|
+
"orderNum": 99999,
|
|
37007
|
+
"protected": false,
|
|
37008
|
+
"level": null,
|
|
37009
|
+
"code": "PD",
|
|
37010
|
+
"isActive": false
|
|
37011
|
+
},
|
|
37012
|
+
{
|
|
37013
|
+
"id": 12137,
|
|
37014
|
+
"name": "Nhóm thực tập sinh BA",
|
|
37015
|
+
"parentId": 2132,
|
|
37016
|
+
"orderNum": 99999,
|
|
37017
|
+
"protected": false,
|
|
37018
|
+
"level": null,
|
|
37019
|
+
"code": "NTTSB",
|
|
37020
|
+
"isActive": false
|
|
37021
|
+
},
|
|
37022
|
+
{
|
|
37023
|
+
"id": 12138,
|
|
37024
|
+
"name": "Cá nhân ",
|
|
37025
|
+
"parentId": 12137,
|
|
37026
|
+
"orderNum": 99999,
|
|
37027
|
+
"protected": false,
|
|
37028
|
+
"level": null,
|
|
37029
|
+
"code": "CN",
|
|
37030
|
+
"isActive": false
|
|
37031
|
+
},
|
|
37032
|
+
{
|
|
37033
|
+
"id": 12139,
|
|
37034
|
+
"name": "Văn phòng Test",
|
|
37035
|
+
"parentId": 1,
|
|
37036
|
+
"orderNum": 99999,
|
|
37037
|
+
"protected": false,
|
|
37038
|
+
"level": null,
|
|
37039
|
+
"code": "VPT",
|
|
37040
|
+
"isActive": true
|
|
37041
|
+
},
|
|
37042
|
+
{
|
|
37043
|
+
"id": 12140,
|
|
37044
|
+
"name": "Phòng BA Test 1",
|
|
37045
|
+
"parentId": 12139,
|
|
37046
|
+
"orderNum": 99999,
|
|
37047
|
+
"protected": false,
|
|
37048
|
+
"level": null,
|
|
37049
|
+
"code": "PBT1",
|
|
37050
|
+
"isActive": false
|
|
37051
|
+
},
|
|
37052
|
+
{
|
|
37053
|
+
"id": 12141,
|
|
37054
|
+
"name": "Phòng BA Test 2",
|
|
37055
|
+
"parentId": 12139,
|
|
37056
|
+
"orderNum": 99999,
|
|
37057
|
+
"protected": false,
|
|
37058
|
+
"level": null,
|
|
37059
|
+
"code": "PBT2",
|
|
37060
|
+
"isActive": false
|
|
37061
|
+
},
|
|
37062
|
+
{
|
|
37063
|
+
"id": 12142,
|
|
37064
|
+
"name": "Phòng BA Test 3",
|
|
37065
|
+
"parentId": 12139,
|
|
37066
|
+
"orderNum": 99999,
|
|
37067
|
+
"protected": false,
|
|
37068
|
+
"level": null,
|
|
37069
|
+
"code": "PBT3",
|
|
37070
|
+
"isActive": false
|
|
37071
|
+
},
|
|
37072
|
+
{
|
|
37073
|
+
"id": 12143,
|
|
37074
|
+
"name": "BACKEND_ONLY.HU_ORGANIZATION.NAME.TEST 1",
|
|
37075
|
+
"parentId": 12139,
|
|
37076
|
+
"orderNum": 99999,
|
|
37077
|
+
"protected": false,
|
|
37078
|
+
"level": null,
|
|
37079
|
+
"code": "T1",
|
|
37080
|
+
"isActive": false
|
|
37081
|
+
},
|
|
37082
|
+
{
|
|
37083
|
+
"id": 12146,
|
|
37084
|
+
"name": "Văn phòng Test 2",
|
|
37085
|
+
"parentId": 1,
|
|
37086
|
+
"orderNum": 99999,
|
|
37087
|
+
"protected": false,
|
|
37088
|
+
"level": null,
|
|
37089
|
+
"code": "VPT2",
|
|
37090
|
+
"isActive": false
|
|
37091
|
+
},
|
|
37092
|
+
{
|
|
37093
|
+
"id": 12147,
|
|
37094
|
+
"name": "TEST KK",
|
|
37095
|
+
"parentId": 1,
|
|
37096
|
+
"orderNum": 99999,
|
|
37097
|
+
"protected": false,
|
|
37098
|
+
"level": null,
|
|
37099
|
+
"code": "TK",
|
|
37100
|
+
"isActive": false
|
|
37101
|
+
},
|
|
37102
|
+
{
|
|
37103
|
+
"id": 12149,
|
|
37104
|
+
"name": "Tester 3",
|
|
37105
|
+
"parentId": 12146,
|
|
37106
|
+
"orderNum": 99999,
|
|
37107
|
+
"protected": false,
|
|
37108
|
+
"level": null,
|
|
37109
|
+
"code": "T3",
|
|
37110
|
+
"isActive": false
|
|
37111
|
+
},
|
|
37112
|
+
{
|
|
37113
|
+
"id": 12150,
|
|
37114
|
+
"name": "Tester 4",
|
|
37115
|
+
"parentId": 12146,
|
|
37116
|
+
"orderNum": 99999,
|
|
37117
|
+
"protected": false,
|
|
37118
|
+
"level": null,
|
|
37119
|
+
"code": "T4",
|
|
37120
|
+
"isActive": false
|
|
37121
|
+
},
|
|
37122
|
+
{
|
|
37123
|
+
"id": 12151,
|
|
37124
|
+
"name": "Tester 5",
|
|
37125
|
+
"parentId": 12146,
|
|
37126
|
+
"orderNum": 99999,
|
|
37127
|
+
"protected": false,
|
|
37128
|
+
"level": null,
|
|
37129
|
+
"code": "T5",
|
|
37130
|
+
"isActive": false
|
|
37131
|
+
},
|
|
37132
|
+
{
|
|
37133
|
+
"id": 12152,
|
|
37134
|
+
"name": "vp test 1",
|
|
37135
|
+
"parentId": 1,
|
|
37136
|
+
"orderNum": 99999,
|
|
37137
|
+
"protected": false,
|
|
37138
|
+
"level": null,
|
|
37139
|
+
"code": "VT1",
|
|
37140
|
+
"isActive": false
|
|
37141
|
+
},
|
|
37142
|
+
{
|
|
37143
|
+
"id": 12155,
|
|
37144
|
+
"name": "Group A",
|
|
37145
|
+
"parentId": 12139,
|
|
37146
|
+
"orderNum": 99999,
|
|
37147
|
+
"protected": false,
|
|
37148
|
+
"level": null,
|
|
37149
|
+
"code": "GA",
|
|
37150
|
+
"isActive": false
|
|
37151
|
+
},
|
|
37152
|
+
{
|
|
37153
|
+
"id": 12156,
|
|
37154
|
+
"name": "vp thuongtest 3",
|
|
37155
|
+
"parentId": 2,
|
|
37156
|
+
"orderNum": 99999,
|
|
37157
|
+
"protected": false,
|
|
37158
|
+
"level": null,
|
|
37159
|
+
"code": "VT3",
|
|
37160
|
+
"isActive": false
|
|
37161
|
+
},
|
|
37162
|
+
{
|
|
37163
|
+
"id": 12158,
|
|
37164
|
+
"name": "vp thuongtest 2",
|
|
37165
|
+
"parentId": 1,
|
|
37166
|
+
"orderNum": 99999,
|
|
37167
|
+
"protected": false,
|
|
37168
|
+
"level": null,
|
|
37169
|
+
"code": "VT2",
|
|
37170
|
+
"isActive": false
|
|
37171
|
+
},
|
|
37172
|
+
{
|
|
37173
|
+
"id": 12159,
|
|
37174
|
+
"name": "vp thuong test 3",
|
|
37175
|
+
"parentId": 1,
|
|
37176
|
+
"orderNum": 99999,
|
|
37177
|
+
"protected": false,
|
|
37178
|
+
"level": null,
|
|
37179
|
+
"code": "VTT3",
|
|
37180
|
+
"isActive": true
|
|
37181
|
+
},
|
|
37182
|
+
{
|
|
37183
|
+
"id": 12160,
|
|
37184
|
+
"name": "Phong ban test data",
|
|
37185
|
+
"parentId": 1,
|
|
37186
|
+
"orderNum": 99999,
|
|
37187
|
+
"protected": false,
|
|
37188
|
+
"level": null,
|
|
37189
|
+
"code": "PBTD",
|
|
37190
|
+
"isActive": false
|
|
37191
|
+
},
|
|
37192
|
+
{
|
|
37193
|
+
"id": 22144,
|
|
37194
|
+
"name": "Testing K 1",
|
|
37195
|
+
"parentId": 12159,
|
|
37196
|
+
"orderNum": 99999,
|
|
37197
|
+
"protected": false,
|
|
37198
|
+
"level": null,
|
|
37199
|
+
"code": "TK1",
|
|
37200
|
+
"isActive": true
|
|
37201
|
+
},
|
|
37202
|
+
{
|
|
37203
|
+
"id": 22145,
|
|
37204
|
+
"name": "Sumitomo Corporation Vietnam LLC",
|
|
37205
|
+
"parentId": null,
|
|
37206
|
+
"orderNum": 2,
|
|
37207
|
+
"protected": false,
|
|
37208
|
+
"level": null,
|
|
37209
|
+
"code": "SCVL",
|
|
37210
|
+
"isActive": true
|
|
37211
|
+
},
|
|
37212
|
+
{
|
|
37213
|
+
"id": 2133,
|
|
37214
|
+
"name": "Phòng ba 1",
|
|
37215
|
+
"parentId": 2132,
|
|
37216
|
+
"orderNum": 2,
|
|
37217
|
+
"protected": false,
|
|
37218
|
+
"level": null,
|
|
37219
|
+
"code": "PB1",
|
|
37220
|
+
"isActive": true
|
|
37221
|
+
},
|
|
37222
|
+
{
|
|
37223
|
+
"id": 1,
|
|
37224
|
+
"name": "SCVN",
|
|
37225
|
+
"parentId": null,
|
|
37226
|
+
"orderNum": 1,
|
|
37227
|
+
"protected": false,
|
|
37228
|
+
"level": null,
|
|
37229
|
+
"code": "S",
|
|
37230
|
+
"isActive": true
|
|
36226
37231
|
}
|
|
36227
|
-
|
|
36228
|
-
|
|
36229
|
-
|
|
36230
|
-
|
|
36231
|
-
|
|
36232
|
-
|
|
36233
|
-
|
|
37232
|
+
];
|
|
37233
|
+
|
|
37234
|
+
class ComPartyService {
|
|
37235
|
+
constructor(recursiveService, alertService) {
|
|
37236
|
+
this.recursiveService = recursiveService;
|
|
37237
|
+
this.alertService = alertService;
|
|
37238
|
+
this.instances = [];
|
|
37239
|
+
this.loading = true;
|
|
37240
|
+
this.comTreeData$ = new BehaviorSubject([]);
|
|
37241
|
+
this.comTreeDataWithPeople$ = new BehaviorSubject([]);
|
|
37242
|
+
this.linerData$ = new BehaviorSubject([]);
|
|
37243
|
+
this.buildTreeFlag$ = new BehaviorSubject(false);
|
|
37244
|
+
this.status$ = new BehaviorSubject({
|
|
37245
|
+
selectedKey: undefined,
|
|
37246
|
+
activeKeys: [],
|
|
37247
|
+
checkedKeys: [],
|
|
37248
|
+
expandedKeys: [],
|
|
37249
|
+
checkInheritance: true
|
|
36234
37250
|
});
|
|
36235
|
-
|
|
36236
|
-
|
|
36237
|
-
|
|
36238
|
-
|
|
36239
|
-
|
|
36240
|
-
|
|
36241
|
-
|
|
36242
|
-
|
|
37251
|
+
this.linerData$.subscribe(xs => {
|
|
37252
|
+
const idCountMap = new Map();
|
|
37253
|
+
xs.forEach(item => {
|
|
37254
|
+
const id = item.id;
|
|
37255
|
+
idCountMap.set(id, (idCountMap.get(id) ?? 0) + 1);
|
|
37256
|
+
});
|
|
37257
|
+
const duplicates = Array.from(idCountMap.entries())
|
|
37258
|
+
.filter(([_, count]) => count > 1)
|
|
37259
|
+
.map(([id]) => id);
|
|
37260
|
+
if (!!duplicates.length) {
|
|
37261
|
+
if (isDevMode()) {
|
|
37262
|
+
alertService.error('🔁 Duplicate IDs: ' + duplicates.reduce((a, c) => a + ";" + c, ''), alertOptions);
|
|
37263
|
+
}
|
|
37264
|
+
}
|
|
36243
37265
|
});
|
|
36244
37266
|
}
|
|
36245
|
-
|
|
36246
|
-
|
|
36247
|
-
|
|
36248
|
-
|
|
36249
|
-
|
|
36250
|
-
|
|
36251
|
-
|
|
36252
|
-
|
|
36253
|
-
|
|
36254
|
-
|
|
36255
|
-
|
|
37267
|
+
buildComTreeData(status = {
|
|
37268
|
+
selectedKey: undefined,
|
|
37269
|
+
activeKeys: [],
|
|
37270
|
+
checkedKeys: [],
|
|
37271
|
+
expandedKeys: [],
|
|
37272
|
+
checkInheritance: true
|
|
37273
|
+
}) {
|
|
37274
|
+
this.loading = true;
|
|
37275
|
+
const cloneCopy = JSON.parse(JSON.stringify(this.linerData$.value));
|
|
37276
|
+
if (typeof Worker !== 'undefined') {
|
|
37277
|
+
// Create a new
|
|
37278
|
+
console.log("🟢🟢 Worker works");
|
|
37279
|
+
const worker = new Worker(liner_to_nested_array_script);
|
|
37280
|
+
worker.addEventListener('message', ({ data }) => {
|
|
37281
|
+
const newData = data.list;
|
|
37282
|
+
this.comTreeData$.next(newData);
|
|
37283
|
+
this.loading = false;
|
|
36256
37284
|
});
|
|
36257
|
-
|
|
36258
|
-
|
|
37285
|
+
worker.postMessage({
|
|
37286
|
+
list: cloneCopy,
|
|
37287
|
+
keyField: 'id',
|
|
37288
|
+
titleField: 'name',
|
|
37289
|
+
parentField: 'parentId',
|
|
37290
|
+
activeField: 'active',
|
|
37291
|
+
checkedField: 'checked',
|
|
37292
|
+
expandedField: 'expand',
|
|
37293
|
+
status
|
|
36259
37294
|
});
|
|
36260
|
-
|
|
36261
|
-
|
|
37295
|
+
}
|
|
37296
|
+
else {
|
|
37297
|
+
// Web workers are not supported in this environment.
|
|
37298
|
+
// You should add a fallback so that your program still executes correctly.
|
|
37299
|
+
this.recursiveService
|
|
37300
|
+
.linerArrayToNestedArray(cloneCopy, 'id', 'name', 'parentId', 'active', 'checked', 'expand', status)
|
|
37301
|
+
.subscribe((obj) => {
|
|
37302
|
+
const newData = obj.list;
|
|
37303
|
+
this.comTreeData$.next(newData);
|
|
37304
|
+
this.loading = false;
|
|
36262
37305
|
});
|
|
36263
|
-
|
|
36264
|
-
this.touchStartSubscription$ = this.touchStartStream$.subscribe();
|
|
36265
|
-
this.mouseUpSubscription$ = this.mouseUpStream$.subscribe();
|
|
36266
|
-
this.touchEndSubscription$ = this.touchEndStream$.subscribe();
|
|
36267
|
-
if (this.$background())
|
|
36268
|
-
setTimeout(() => this.$container().nativeElement.style.setProperty('--bg', this.$background()));
|
|
36269
|
-
if (this.$height())
|
|
36270
|
-
this.$container()?.nativeElement.style.setProperty('--height', this.$height() + 'px');
|
|
36271
|
-
});
|
|
37306
|
+
}
|
|
36272
37307
|
}
|
|
36273
|
-
|
|
36274
|
-
|
|
36275
|
-
|
|
36276
|
-
|
|
36277
|
-
|
|
36278
|
-
|
|
36279
|
-
|
|
36280
|
-
|
|
36281
|
-
|
|
37308
|
+
getComLinearData(userId) {
|
|
37309
|
+
return of({
|
|
37310
|
+
ok: true,
|
|
37311
|
+
status: 200,
|
|
37312
|
+
body: {
|
|
37313
|
+
statusCode: 200,
|
|
37314
|
+
innerBody: COM_MOKEUP_DATA
|
|
37315
|
+
}
|
|
37316
|
+
});
|
|
36282
37317
|
}
|
|
36283
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type:
|
|
36284
|
-
static { this.ɵ
|
|
37318
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ComPartyService, deps: [{ token: RecursiveService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37319
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ComPartyService, providedIn: 'root' }); }
|
|
36285
37320
|
}
|
|
36286
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type:
|
|
36287
|
-
type:
|
|
36288
|
-
args: [{
|
|
36289
|
-
|
|
36290
|
-
|
|
36291
|
-
|
|
36292
|
-
}], ctorParameters: () => [] });
|
|
37321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ComPartyService, decorators: [{
|
|
37322
|
+
type: Injectable,
|
|
37323
|
+
args: [{
|
|
37324
|
+
providedIn: 'root'
|
|
37325
|
+
}]
|
|
37326
|
+
}], ctorParameters: () => [{ type: RecursiveService }, { type: AlertService }] });
|
|
36293
37327
|
|
|
36294
|
-
class
|
|
36295
|
-
|
|
36296
|
-
|
|
37328
|
+
class CoreComTreeComponent extends CoreFormControlBaseComponent {
|
|
37329
|
+
writeValue(obj) {
|
|
37330
|
+
this.value = obj;
|
|
37331
|
+
switch (this.accessorMode) {
|
|
37332
|
+
case EnumCoreOrgTreeaAccessorMode.CHECKED:
|
|
37333
|
+
if (!!obj) {
|
|
37334
|
+
const checkedKeys = [];
|
|
37335
|
+
this.checkedIds = obj; // <=== 24/10/2023
|
|
37336
|
+
obj.map(x => checkedKeys.push(x.toString()));
|
|
37337
|
+
this.loading = true;
|
|
37338
|
+
this.recursiveService.writeValueChecked(checkedKeys, this.data, this.disabledLoopExpand).subscribe(_ => {
|
|
37339
|
+
this.loading = false;
|
|
37340
|
+
if (!!this.data && !!this.data?.length)
|
|
37341
|
+
this.data[0].tree$Expanded = true;
|
|
37342
|
+
});
|
|
37343
|
+
}
|
|
37344
|
+
break;
|
|
37345
|
+
case EnumCoreOrgTreeaAccessorMode.ACTIVATED_SINGLE:
|
|
37346
|
+
case EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE:
|
|
37347
|
+
if (!!obj) {
|
|
37348
|
+
const activatedKeys = [];
|
|
37349
|
+
obj.map(x => activatedKeys.push(x.toString()));
|
|
37350
|
+
this.loading = true;
|
|
37351
|
+
this.recursiveService.writeValueActivated(activatedKeys, this.data, this.disabledLoopExpand).subscribe(_ => {
|
|
37352
|
+
this.loading = false;
|
|
37353
|
+
if (!!this.data && !!this.data?.length)
|
|
37354
|
+
this.data[0].tree$Expanded = true;
|
|
37355
|
+
});
|
|
37356
|
+
}
|
|
37357
|
+
break;
|
|
37358
|
+
default:
|
|
37359
|
+
break;
|
|
37360
|
+
}
|
|
37361
|
+
if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.CHECKED) {
|
|
37362
|
+
}
|
|
37363
|
+
else /* EnumCoreOrgTreeaAccessorMode.ACTIVATED_SINGLE or EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE */ {
|
|
37364
|
+
}
|
|
37365
|
+
}
|
|
37366
|
+
setDisabledState(disabled) {
|
|
37367
|
+
this.disabled = disabled;
|
|
37368
|
+
}
|
|
37369
|
+
constructor(
|
|
37370
|
+
//public override injector: Injector,
|
|
37371
|
+
authService, recursiveService, mls, layoutService, coreOrgTreeService,
|
|
37372
|
+
// private coreOrgTreeState: CoreOrgTreeState,
|
|
37373
|
+
alertService, comPartyService) {
|
|
37374
|
+
super( /*injector*/);
|
|
37375
|
+
this.authService = authService;
|
|
37376
|
+
this.recursiveService = recursiveService;
|
|
36297
37377
|
this.mls = mls;
|
|
36298
|
-
this.
|
|
36299
|
-
this.
|
|
36300
|
-
this.
|
|
36301
|
-
this.
|
|
36302
|
-
this.
|
|
36303
|
-
|
|
36304
|
-
|
|
36305
|
-
|
|
36306
|
-
|
|
36307
|
-
|
|
36308
|
-
|
|
36309
|
-
|
|
36310
|
-
|
|
36311
|
-
|
|
36312
|
-
|
|
36313
|
-
|
|
36314
|
-
|
|
36315
|
-
|
|
36316
|
-
|
|
36317
|
-
|
|
36318
|
-
|
|
36319
|
-
|
|
36320
|
-
|
|
36321
|
-
|
|
36322
|
-
|
|
36323
|
-
|
|
36324
|
-
|
|
36325
|
-
|
|
36326
|
-
|
|
36327
|
-
|
|
36328
|
-
|
|
36329
|
-
|
|
36330
|
-
|
|
36331
|
-
|
|
36332
|
-
|
|
36333
|
-
|
|
36334
|
-
|
|
36335
|
-
|
|
36336
|
-
|
|
36337
|
-
|
|
36338
|
-
|
|
36339
|
-
|
|
36340
|
-
|
|
36341
|
-
|
|
36342
|
-
|
|
36343
|
-
|
|
36344
|
-
|
|
36345
|
-
|
|
36346
|
-
|
|
36347
|
-
|
|
36348
|
-
|
|
36349
|
-
|
|
36350
|
-
|
|
36351
|
-
|
|
36352
|
-
|
|
36353
|
-
|
|
36354
|
-
|
|
36355
|
-
|
|
36356
|
-
|
|
36357
|
-
|
|
36358
|
-
{
|
|
36359
|
-
|
|
36360
|
-
|
|
36361
|
-
|
|
36362
|
-
|
|
36363
|
-
|
|
36364
|
-
|
|
36365
|
-
|
|
36366
|
-
|
|
36367
|
-
|
|
37378
|
+
this.layoutService = layoutService;
|
|
37379
|
+
this.coreOrgTreeService = coreOrgTreeService;
|
|
37380
|
+
this.alertService = alertService;
|
|
37381
|
+
this.comPartyService = comPartyService;
|
|
37382
|
+
this.lineColor = 'transparent';
|
|
37383
|
+
this.accessorMode = EnumCoreOrgTreeaAccessorMode.CHECKED;
|
|
37384
|
+
//TO BE NEW
|
|
37385
|
+
this.searchMode = EnumCoreOrgTreeaSearchMode.REDUCE;
|
|
37386
|
+
this.excludedIds$ = new BehaviorSubject([]); // 2024-05-10: to be implemented
|
|
37387
|
+
this.stateIsolated$ = new BehaviorSubject(false);
|
|
37388
|
+
this.itemDoubleClick = new EventEmitter();
|
|
37389
|
+
this.itemClick = new EventEmitter();
|
|
37390
|
+
this.showSearch = false;
|
|
37391
|
+
this.hiddenToolClickStream$ = new BehaviorSubject('');
|
|
37392
|
+
this.value = [];
|
|
37393
|
+
this.appConfigService = inject(AppConfigService);
|
|
37394
|
+
this.activeIds = [];
|
|
37395
|
+
this.checkedIds = [];
|
|
37396
|
+
this.subscriptions = [];
|
|
37397
|
+
this.search$ = new Subject();
|
|
37398
|
+
this.searchPlaceholder = "Tìm kiếm...";
|
|
37399
|
+
this.checkInheritance = true; // default value is true
|
|
37400
|
+
this.showDissolved = false; // default value is false
|
|
37401
|
+
this.initializing = true;
|
|
37402
|
+
// this.reduced$ = this.coreOrgTreeState.coreOrgTreeReduced$;
|
|
37403
|
+
this.initializing = false;
|
|
37404
|
+
}
|
|
37405
|
+
ngOnChanges(changes) {
|
|
37406
|
+
if (changes['height']) {
|
|
37407
|
+
this.resizeHeight();
|
|
37408
|
+
}
|
|
37409
|
+
}
|
|
37410
|
+
ngOnInit() {
|
|
37411
|
+
super.register();
|
|
37412
|
+
//this.layoutService.leftbarOpen$.next(false);
|
|
37413
|
+
this.instanceNumber = new Date().getTime();
|
|
37414
|
+
const newInstance = {
|
|
37415
|
+
instanceNumber: this.instanceNumber,
|
|
37416
|
+
selectedKey$: new BehaviorSubject(undefined),
|
|
37417
|
+
activeKeys$: new BehaviorSubject([]),
|
|
37418
|
+
checkedKeys$: new BehaviorSubject([]),
|
|
37419
|
+
expandedKeys$: new BehaviorSubject([]),
|
|
37420
|
+
checkInheritance$: new BehaviorSubject(true)
|
|
37421
|
+
};
|
|
37422
|
+
this.comPartyService.instances.push(newInstance);
|
|
37423
|
+
// Check xem chiều cao height có được truyền vào hay không
|
|
37424
|
+
if (this.height === undefined) {
|
|
37425
|
+
if (isDevMode()) {
|
|
37426
|
+
//this.alertService.warn("CoreOrgTree không nhận được chiều cao (height) truyền vào từ lớp ngoài. Chiều cao mặc định sẽ được tính toán dựa vào bố cục chính.", alertOptions);
|
|
37427
|
+
}
|
|
37428
|
+
this.subscriptions.push(this.layoutService.contentContainerHeight$.subscribe(x => {
|
|
37429
|
+
// basicSpacing là paddingBottom của lớp content-container
|
|
37430
|
+
this.height = x - this.layoutService.corePageHeaderHeight - this.layoutService.basicSpacing;
|
|
37431
|
+
}));
|
|
37432
|
+
}
|
|
37433
|
+
this.subscriptions.push(this.comPartyService.linerData$.subscribe((x) => this.linearComArray = x));
|
|
37434
|
+
this.subscriptions.push(this.comPartyService.buildTreeFlag$.pipe(skip(1)).subscribe(_ => {
|
|
37435
|
+
this.buildComTreeData();
|
|
37436
|
+
}));
|
|
37437
|
+
this.subscriptions.push(this.stateIsolated$.subscribe(x => {
|
|
37438
|
+
if (x) {
|
|
37439
|
+
if (!!this.statusSubscription) {
|
|
37440
|
+
this.statusSubscription.unsubscribe();
|
|
37441
|
+
}
|
|
37442
|
+
}
|
|
37443
|
+
else {
|
|
37444
|
+
if (!this.statusSubscription) {
|
|
37445
|
+
this.statusSubscription = this.comPartyService.status$.subscribe((x) => {
|
|
37446
|
+
console.log("this.organizationService.status$ changes", x);
|
|
37447
|
+
const newActiveIds = [];
|
|
37448
|
+
x.activeKeys.map((k) => {
|
|
37449
|
+
newActiveIds.push(Number(k));
|
|
37450
|
+
});
|
|
37451
|
+
this.activeIds = newActiveIds;
|
|
37452
|
+
if (this.accessorMode !== EnumCoreOrgTreeaAccessorMode.CHECKED) {
|
|
37453
|
+
this.value = this.activeIds;
|
|
37454
|
+
this.onChange(this.activeIds);
|
|
37455
|
+
}
|
|
37456
|
+
this.selectedKey = x.selectedKey;
|
|
37457
|
+
});
|
|
37458
|
+
}
|
|
37459
|
+
}
|
|
37460
|
+
}));
|
|
37461
|
+
this.subscriptions.push(this.coreOrgTreeService.showSearch$.subscribe(x => this.showSearch = x));
|
|
37462
|
+
this.subscriptions.push(this.hiddenToolClickStream$.pipe(buffer(this.hiddenToolClickStream$.pipe(debounceTime(250))), map$1(clicks => clicks.length), filter(clicksLength => clicksLength >= 5))
|
|
37463
|
+
.subscribe(_ => {
|
|
37464
|
+
this.coreOrgTreeService.showSearch$.next(!this.coreOrgTreeService.showSearch$.value);
|
|
37465
|
+
}));
|
|
37466
|
+
this.subscriptions.push(this.search$
|
|
37467
|
+
.pipe(filter((x) => x !== null), debounceTime(500), distinctUntilChanged(), switchMap((text) => {
|
|
37468
|
+
console.log('switchMap works');
|
|
37469
|
+
this.loading = true;
|
|
37470
|
+
// AUG 2024 NEW : MUST BE TESTED
|
|
37471
|
+
if (this.searchMode === EnumCoreOrgTreeaSearchMode.HIGHLIGHT) {
|
|
37472
|
+
return this.recursiveService.findItem(text, this.data);
|
|
37473
|
+
}
|
|
37474
|
+
else {
|
|
37475
|
+
return of(this.recursiveService.reducingFilter(this.scrollContainer, text));
|
|
37476
|
+
}
|
|
37477
|
+
}))
|
|
37478
|
+
.subscribe((x) => {
|
|
37479
|
+
this.loading = false;
|
|
37480
|
+
// if (this.searchMode === EnumCoreOrgTreeaSearchMode.REDUCE) {
|
|
37481
|
+
// this.dataFiltered = x as IOrgTreeItem[];
|
|
37482
|
+
// }
|
|
37483
|
+
}));
|
|
37484
|
+
this.subscriptions.push(this.comPartyService.status$
|
|
37485
|
+
.pipe(filter((value) => !!!this.initializing && !!value))
|
|
37486
|
+
.subscribe((x) => {
|
|
37487
|
+
if (!!localStorage) {
|
|
37488
|
+
localStorage.setItem('coreOrgTreeStatus', JSON.stringify(x));
|
|
37489
|
+
}
|
|
37490
|
+
}));
|
|
37491
|
+
this.subscriptions.push(this.mls.lang$.subscribe((x) => (this.lang = x)));
|
|
37492
|
+
}
|
|
37493
|
+
buildComTree(comLinerData) {
|
|
37494
|
+
if (!this.appConfigService.FEDERATION_COM_PARTY_ENABLED)
|
|
37495
|
+
return;
|
|
37496
|
+
this.comPartyService.linerData$.next(comLinerData);
|
|
37497
|
+
const cloneCopy = JSON.parse(JSON.stringify(comLinerData));
|
|
37498
|
+
console.group("comLinerData...", comLinerData);
|
|
37499
|
+
if (!!comLinerData) {
|
|
37500
|
+
if (typeof Worker !== 'undefined') {
|
|
37501
|
+
console.log('🟢 Worker works');
|
|
37502
|
+
// Create a new
|
|
37503
|
+
const worker = new Worker(liner_to_nested_array_script);
|
|
37504
|
+
worker.addEventListener("message", ({ data }) => {
|
|
37505
|
+
console.log("ComTreeData calculation finished!", new Date().getTime());
|
|
37506
|
+
this.comPartyService.loading = false;
|
|
37507
|
+
this.comPartyService.comTreeData$.next(data.list);
|
|
37508
|
+
this.comPartyService.linerData$.next(data.rawList);
|
|
37509
|
+
});
|
|
37510
|
+
console.log("ComTreeData is being calculated by Worker...");
|
|
37511
|
+
console.log("this.comPartyService.status$.value", this.comPartyService.status$.value);
|
|
37512
|
+
worker.postMessage({
|
|
37513
|
+
list: cloneCopy,
|
|
37514
|
+
keyField: 'id',
|
|
37515
|
+
titleField: 'name',
|
|
37516
|
+
parentField: 'parentId',
|
|
37517
|
+
activeField: 'active',
|
|
37518
|
+
checkedField: 'checked',
|
|
37519
|
+
expandedField: 'expanded',
|
|
37520
|
+
status: this.comPartyService.status$.value, // <=== this had been already retrieved on app-initialization
|
|
37521
|
+
orderBy: 'orderNum'
|
|
37522
|
+
});
|
|
37523
|
+
}
|
|
37524
|
+
else {
|
|
37525
|
+
// Web workers are not supported in this environment.
|
|
37526
|
+
// You should add a fallback so that your program still executes correctly.
|
|
37527
|
+
console.log("this.comPartyService.status$.value", this.comPartyService.status$.value);
|
|
37528
|
+
this.subscriptions.push(this.recursiveService.linerArrayToNestedArray(cloneCopy, 'id', 'name', 'parentId', 'active', 'checked', 'expand', this.comPartyService.status$.value // <=== this had been already retrieved on app-initialization
|
|
37529
|
+
)
|
|
37530
|
+
.subscribe(data => {
|
|
37531
|
+
console.log("data", data);
|
|
37532
|
+
this.comPartyService.comTreeData$.next(data.list);
|
|
37533
|
+
this.comPartyService.linerData$.next(data.rawList);
|
|
37534
|
+
}));
|
|
37535
|
+
}
|
|
37536
|
+
}
|
|
37537
|
+
}
|
|
37538
|
+
resizeHeight() {
|
|
37539
|
+
// height is not given and the tree resize as standard
|
|
37540
|
+
if (!!!this.height) {
|
|
37541
|
+
const sizeHeaderHeight = Number(getComputedStyle(document.documentElement)
|
|
37542
|
+
.getPropertyValue('--size-header-height')
|
|
37543
|
+
.replace('px', ''));
|
|
37544
|
+
const sizeCorePageHeaderHeight = Number(getComputedStyle(document.documentElement)
|
|
37545
|
+
.getPropertyValue('--size-core-page-header-height')
|
|
37546
|
+
.replace('px', ''));
|
|
37547
|
+
const containerHeight = window.innerHeight - sizeHeaderHeight - sizeCorePageHeaderHeight;
|
|
37548
|
+
const pageHeaderHeight = Number(getComputedStyle(document.documentElement)
|
|
37549
|
+
.getPropertyValue('--size-core-page-header-height')
|
|
37550
|
+
.replace('px', ''));
|
|
37551
|
+
const paginationHeight = Number(getComputedStyle(document.documentElement)
|
|
37552
|
+
.getPropertyValue('--size-core-pagination-height')
|
|
37553
|
+
.replace('px', ''));
|
|
37554
|
+
const sizeMarginCorePaginationFull = Number(getComputedStyle(document.documentElement)
|
|
37555
|
+
.getPropertyValue('--size-margin-core-pagination')
|
|
37556
|
+
.replace('px', ''));
|
|
37557
|
+
const height = containerHeight - pageHeaderHeight - paginationHeight + sizeMarginCorePaginationFull;
|
|
37558
|
+
console.log(height);
|
|
37559
|
+
this.container?.nativeElement.style.setProperty('--height', height + 'px');
|
|
37560
|
+
}
|
|
37561
|
+
else {
|
|
37562
|
+
this.container?.nativeElement.style.setProperty('--height', this.height + 'px');
|
|
37563
|
+
}
|
|
37564
|
+
}
|
|
37565
|
+
ngAfterViewInit() {
|
|
37566
|
+
setTimeout(() => {
|
|
37567
|
+
if (!!this.authService.data$.value?.id && (!this.comPartyService.linerData$?.value || (!!this.comPartyService.linerData$?.value && !this.comPartyService.linerData$?.value.length))) {
|
|
37568
|
+
this.comPartyService.getComLinearData(this.authService.data$.value.id).pipe(tap$1(_ => this.loading = true), finalize$1(() => this.loading = false)).subscribe(x => {
|
|
37569
|
+
if (x.ok && x.status === 200 && x.body?.statusCode === 200) {
|
|
37570
|
+
this.comPartyService.linerData$.next(x.body.innerBody.map(i => ({
|
|
37571
|
+
...i,
|
|
37572
|
+
active: i.isActive
|
|
37573
|
+
})));
|
|
37574
|
+
this.comPartyService.buildTreeFlag$.next(!this.comPartyService.buildTreeFlag$.value);
|
|
37575
|
+
}
|
|
37576
|
+
});
|
|
37577
|
+
}
|
|
37578
|
+
this.subscriptions.push(this.comPartyService.comTreeData$.subscribe((x) => {
|
|
37579
|
+
this.data = x;
|
|
37580
|
+
//this.dataFiltered = JSON.parse(JSON.stringify(x));
|
|
37581
|
+
console.log("new Data coming", this.data, new Date().getTime());
|
|
37582
|
+
if (!!this.data) {
|
|
37583
|
+
if (!!this.data.length)
|
|
37584
|
+
this.data[0].tree$Expanded = true;
|
|
37585
|
+
}
|
|
37586
|
+
}));
|
|
37587
|
+
this.subscriptions.push(this.coreOrgTreeService.arrowFontSize$.subscribe(x => {
|
|
37588
|
+
this.container?.nativeElement.style.setProperty('--arrow-font-size', x + 'px');
|
|
37589
|
+
}));
|
|
37590
|
+
this.subscriptions.push(this.coreOrgTreeService.titleWrapperMaxWidth$.pipe(filter(x => !!x)).subscribe(x => {
|
|
37591
|
+
this.container?.nativeElement.style.setProperty('--title-wrapper-max-width', x + 'px');
|
|
37592
|
+
}));
|
|
37593
|
+
this.subscriptions.push(this.comPartyService.status$.subscribe(x => {
|
|
37594
|
+
if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE && !!x.activeKeys) {
|
|
37595
|
+
this.onChange(x.activeKeys.map(i => Number(i)));
|
|
37596
|
+
}
|
|
37597
|
+
else if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.ACTIVATED_SINGLE) {
|
|
37598
|
+
// tạm thời bỏ qua
|
|
37599
|
+
}
|
|
37600
|
+
else if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.CHECKED && !!x.checkedKeys) {
|
|
37601
|
+
this.onChange(x.checkedKeys.map(i => Number(i)));
|
|
37602
|
+
}
|
|
37603
|
+
}));
|
|
37604
|
+
});
|
|
37605
|
+
}
|
|
37606
|
+
// onItemClickLocal(e: IComTreeItem): void {
|
|
37607
|
+
// this.linnerOrgArray.map((x) => (x.active = false));
|
|
37608
|
+
// setTimeout(() => this.buildTreeData());
|
|
37609
|
+
// }
|
|
37610
|
+
onToggleItem(e) {
|
|
37611
|
+
const cloneCopy = JSON.parse(JSON.stringify(this.linearComArray));
|
|
37612
|
+
const filter = cloneCopy.filter((x) => x.id === e.id);
|
|
37613
|
+
if (filter.length === 1) {
|
|
37614
|
+
filter[0].expand = !!!e.expand;
|
|
37615
|
+
}
|
|
37616
|
+
this.linearComArray = cloneCopy;
|
|
37617
|
+
setTimeout(() => this.buildComTreeData());
|
|
37618
|
+
}
|
|
37619
|
+
// buildTreeData(): void {
|
|
37620
|
+
// this.loading = true;
|
|
37621
|
+
// const cloneCopy = JSON.parse(JSON.stringify(this.linnerOrgArray));
|
|
37622
|
+
// if (typeof Worker !== 'undefined') {
|
|
37623
|
+
// // Create a new
|
|
37624
|
+
// console.log("🟢🟢 Worker works");
|
|
37625
|
+
// this.worker = new Worker(liner_to_nested_array_script);
|
|
37626
|
+
// this.worker.addEventListener('message', ({ data }) => {
|
|
37627
|
+
// this.data = data.list;
|
|
37628
|
+
// //this.dataFiltered = JSON.parse(JSON.stringify(data.list));
|
|
37629
|
+
// if (!!this.data && !!this.data?.length) this.data[0].tree$Expanded = true;
|
|
37630
|
+
// this.loading = false;
|
|
37631
|
+
// });
|
|
37632
|
+
// this.worker.postMessage({
|
|
37633
|
+
// list: cloneCopy,
|
|
37634
|
+
// keyField: 'id',
|
|
37635
|
+
// titleField: 'name',
|
|
37636
|
+
// parentField: 'parentId',
|
|
37637
|
+
// activeField: 'active',
|
|
37638
|
+
// //inheritantActiveField: 'inheritantActive',
|
|
37639
|
+
// checkedField: 'checked',
|
|
37640
|
+
// expandedField: 'expand',
|
|
37641
|
+
// });
|
|
37642
|
+
// } else {
|
|
37643
|
+
// // Web workers are not supported in this environment.
|
|
37644
|
+
// // You should add a fallback so that your program still executes correctly.
|
|
37645
|
+
// const status = this.organizationService.status$.value;
|
|
37646
|
+
// this.subscriptions.push(
|
|
37647
|
+
// this.recursiveService
|
|
37648
|
+
// .linerArrayToNestedArray(
|
|
37649
|
+
// cloneCopy,
|
|
37650
|
+
// 'id',
|
|
37651
|
+
// 'name',
|
|
37652
|
+
// 'parentId',
|
|
37653
|
+
// 'active',
|
|
37654
|
+
// 'checked',
|
|
37655
|
+
// 'expand',
|
|
37656
|
+
// //status
|
|
37657
|
+
// )
|
|
37658
|
+
// .subscribe((obj) => {
|
|
37659
|
+
// this.data = obj.list;
|
|
37660
|
+
// //this.dataFiltered = JSON.parse(JSON.stringify(obj.list));
|
|
37661
|
+
// if (!!this.data && !!this.data?.length) this.data[0].tree$Expanded = true;
|
|
37662
|
+
// this.loading = false;
|
|
37663
|
+
// })
|
|
37664
|
+
// );
|
|
37665
|
+
// }
|
|
37666
|
+
// }
|
|
37667
|
+
buildComTreeData() {
|
|
37668
|
+
this.loading = true;
|
|
37669
|
+
const cloneCopy = JSON.parse(JSON.stringify(this.linearComArray));
|
|
37670
|
+
// ✅ ADD THIS FILTER
|
|
37671
|
+
const filteredList = !this.showDissolved
|
|
37672
|
+
? cloneCopy.filter(x => x.active === true)
|
|
37673
|
+
: cloneCopy;
|
|
37674
|
+
if (typeof Worker !== 'undefined') {
|
|
37675
|
+
this.worker = new Worker(liner_to_nested_array_script);
|
|
37676
|
+
this.worker.addEventListener('message', ({ data }) => {
|
|
37677
|
+
this.data = data.list;
|
|
37678
|
+
if (!!this.data?.length)
|
|
37679
|
+
this.data[0].tree$Expanded = true;
|
|
37680
|
+
this.loading = false;
|
|
37681
|
+
});
|
|
37682
|
+
// ✅ USE filteredList INSTEAD OF cloneCopy
|
|
37683
|
+
this.worker.postMessage({
|
|
37684
|
+
list: filteredList,
|
|
37685
|
+
keyField: 'id',
|
|
37686
|
+
titleField: 'name',
|
|
37687
|
+
parentField: 'parentId',
|
|
37688
|
+
activeField: 'active',
|
|
37689
|
+
checkedField: 'checked',
|
|
37690
|
+
expandedField: 'expand',
|
|
37691
|
+
});
|
|
37692
|
+
}
|
|
37693
|
+
else {
|
|
37694
|
+
this.subscriptions.push(this.recursiveService
|
|
37695
|
+
.linerArrayToNestedArray(filteredList, // ✅ use filteredList
|
|
37696
|
+
'id', 'name', 'parentId', 'active', 'checked', 'expand')
|
|
37697
|
+
.subscribe((obj) => {
|
|
37698
|
+
this.data = obj.list;
|
|
37699
|
+
if (!!this.data?.length)
|
|
37700
|
+
this.data[0].tree$Expanded = true;
|
|
37701
|
+
this.loading = false;
|
|
37702
|
+
}));
|
|
37703
|
+
}
|
|
37704
|
+
}
|
|
37705
|
+
onExpandTogglerClick(e, event) {
|
|
37706
|
+
event.stopPropagation();
|
|
37707
|
+
const newValue = !e.tree$Expanded;
|
|
37708
|
+
e.tree$Expanded = newValue;
|
|
37709
|
+
// updating status with newValue
|
|
37710
|
+
const currentExpandedIds = this.comPartyService.status$.value?.expandedKeys;
|
|
37711
|
+
let newExpandedIds = currentExpandedIds?.filter((_) => !!!currentExpandedIds.includes(e.id.toString()));
|
|
37712
|
+
if (newValue) {
|
|
37713
|
+
newExpandedIds?.push(e.id.toString());
|
|
37714
|
+
}
|
|
37715
|
+
newExpandedIds?.sort();
|
|
37716
|
+
const newExpandedKeys = [];
|
|
37717
|
+
newExpandedIds.map((x) => newExpandedKeys.push(x.toString()));
|
|
37718
|
+
this.comPartyService.status$.next({
|
|
37719
|
+
...this.comPartyService.status$.value,
|
|
37720
|
+
expandedKeys: newExpandedKeys,
|
|
37721
|
+
});
|
|
37722
|
+
}
|
|
37723
|
+
onItemCheck(e, newValue) {
|
|
37724
|
+
this.itemClick?.emit(e);
|
|
37725
|
+
if (this.accessorMode !== EnumCoreOrgTreeaAccessorMode.CHECKED)
|
|
37726
|
+
return;
|
|
37727
|
+
// We have this var to hold nodes that are being changed
|
|
37728
|
+
let toggledIds;
|
|
37729
|
+
// We should calculate a new state into this var:
|
|
37730
|
+
const newCheckedIds = JSON.parse(JSON.stringify(this.checkedIds));
|
|
37731
|
+
// We will call this function after toggledIds changed
|
|
37732
|
+
const changeValue = () => {
|
|
37733
|
+
// If newValue === true, we will disctintly push changed ids to the state
|
|
37734
|
+
// Otherwise we will remove them from the state
|
|
37735
|
+
if (!!newValue) {
|
|
37736
|
+
toggledIds.map(x => {
|
|
37737
|
+
if (!!!newCheckedIds.includes(x)) {
|
|
37738
|
+
newCheckedIds.push(x);
|
|
37739
|
+
}
|
|
37740
|
+
});
|
|
37741
|
+
// Then asign the state to the newCheckedIds
|
|
37742
|
+
this.checkedIds = newCheckedIds;
|
|
37743
|
+
}
|
|
37744
|
+
else {
|
|
37745
|
+
const filter = newCheckedIds.filter(x => !!!toggledIds.includes(x));
|
|
37746
|
+
// Then asign the state to the filter
|
|
37747
|
+
this.checkedIds = filter;
|
|
37748
|
+
}
|
|
37749
|
+
// After the cases of if/else, make the control change with onChange
|
|
37750
|
+
this.value = this.checkedIds;
|
|
37751
|
+
this.onChange(this.checkedIds);
|
|
37752
|
+
this.markAsTouched();
|
|
37753
|
+
};
|
|
37754
|
+
/* start: THIS CODE SCOPE calculates toggledIds */
|
|
37755
|
+
if (this.checkInheritance) {
|
|
37756
|
+
// If true, all the nested items will be checked/unchecked
|
|
37757
|
+
this.recursiveService
|
|
37758
|
+
.nestedToggleCheck(e, newValue, this.showDissolved)
|
|
37759
|
+
.then((x) => {
|
|
37760
|
+
let currentCheckedKeys = this.comPartyService.status$.value.checkedKeys || [];
|
|
37761
|
+
if (!!newValue) {
|
|
37762
|
+
x.map(item => {
|
|
37763
|
+
if (currentCheckedKeys.filter(i => i === item.toString()).length === 0) {
|
|
37764
|
+
currentCheckedKeys.push(item.toString());
|
|
37765
|
+
}
|
|
37766
|
+
});
|
|
37767
|
+
}
|
|
37768
|
+
else {
|
|
37769
|
+
currentCheckedKeys = currentCheckedKeys.filter(i => !x.includes(Number(i)));
|
|
37770
|
+
}
|
|
37771
|
+
this.comPartyService.status$.next({
|
|
37772
|
+
...this.comPartyService.status$.value,
|
|
37773
|
+
checkedKeys: currentCheckedKeys //x.map(item => item.toString())
|
|
37774
|
+
});
|
|
37775
|
+
// The ids have been changed
|
|
37776
|
+
toggledIds = x;
|
|
37777
|
+
// Now toggledIds were set. We call the function we declared
|
|
37778
|
+
changeValue();
|
|
37779
|
+
})
|
|
37780
|
+
.catch((x) => {
|
|
37781
|
+
console.error(x);
|
|
37782
|
+
});
|
|
37783
|
+
}
|
|
37784
|
+
else {
|
|
37785
|
+
// Otherwise we simply toggle check for current item only
|
|
37786
|
+
toggledIds = [e.id];
|
|
37787
|
+
// Now toggledIds were set. We call the function we declared
|
|
37788
|
+
changeValue();
|
|
37789
|
+
}
|
|
37790
|
+
/* end: THIS CODE SCOPE calculates toggledIds */
|
|
37791
|
+
// That is. Happy debugging!
|
|
37792
|
+
}
|
|
37793
|
+
onCheckIncludeDissolvedChange(value) {
|
|
37794
|
+
console.log("onCheckIncludeDissolvedChange", value);
|
|
37795
|
+
}
|
|
37796
|
+
onCheckInheritanceChange(value) {
|
|
37797
|
+
this.comPartyService.status$.next({
|
|
37798
|
+
...this.comPartyService.status$.value,
|
|
37799
|
+
checkInheritance: value,
|
|
37800
|
+
});
|
|
37801
|
+
}
|
|
37802
|
+
onObjectClick(e, event) {
|
|
37803
|
+
// remove highlight class
|
|
37804
|
+
// TO DO
|
|
37805
|
+
if (!!e.protected)
|
|
37806
|
+
return;
|
|
37807
|
+
this.itemClick?.emit(e);
|
|
37808
|
+
if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.CHECKED)
|
|
37809
|
+
return;
|
|
37810
|
+
let activeIds = [];
|
|
37811
|
+
this.data.map((item) => (item.active = false));
|
|
37812
|
+
if (this.accessorMode ===
|
|
37813
|
+
EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE ||
|
|
37814
|
+
!!!this.accessorMode) {
|
|
37815
|
+
// If true, all the nested items will be active, the others are inactive
|
|
37816
|
+
this.recursiveService
|
|
37817
|
+
.nestedResetActive(e, true)
|
|
37818
|
+
.then((x) => {
|
|
37819
|
+
activeIds = x;
|
|
37820
|
+
activeIds.sort();
|
|
37821
|
+
const newActiveKeys = [];
|
|
37822
|
+
activeIds.map((x) => newActiveKeys.push(x.toString()));
|
|
37823
|
+
this.comPartyService.status$.next({
|
|
37824
|
+
...this.comPartyService.status$.value,
|
|
37825
|
+
activeKeys: newActiveKeys,
|
|
37826
|
+
selectedKey: e.id.toString()
|
|
37827
|
+
});
|
|
37828
|
+
this.activeIds = activeIds;
|
|
37829
|
+
console.log(this.activeIds);
|
|
37830
|
+
this.onChange(activeIds);
|
|
37831
|
+
})
|
|
37832
|
+
.catch((x) => {
|
|
37833
|
+
console.error(x);
|
|
37834
|
+
});
|
|
37835
|
+
}
|
|
37836
|
+
else {
|
|
37837
|
+
// ACTIVATED_SINGLE
|
|
37838
|
+
// Otherwise we simply set current item to be active only
|
|
37839
|
+
activeIds = [e.id];
|
|
37840
|
+
this.activeIds = activeIds;
|
|
37841
|
+
this.comPartyService.status$.next({
|
|
37842
|
+
...this.comPartyService.status$.value,
|
|
37843
|
+
activeKeys: [e.id.toString()],
|
|
37844
|
+
selectedKey: e.id.toString(),
|
|
37845
|
+
});
|
|
37846
|
+
this.onChange(activeIds);
|
|
37847
|
+
}
|
|
37848
|
+
const { detail } = event;
|
|
37849
|
+
if (detail === 2) {
|
|
37850
|
+
console.log('This was a dblclick');
|
|
37851
|
+
this.itemDoubleClick.emit(e);
|
|
37852
|
+
}
|
|
37853
|
+
this.selectedItem = e;
|
|
37854
|
+
}
|
|
37855
|
+
onSearchChange(text) {
|
|
37856
|
+
this.search$.next(text);
|
|
37857
|
+
}
|
|
37858
|
+
onHiddenToolClick(e) {
|
|
37859
|
+
e.stopPropagation();
|
|
37860
|
+
this.hiddenToolClickStream$.next(crypto.randomUUID());
|
|
37861
|
+
}
|
|
37862
|
+
ngOnDestroy() {
|
|
37863
|
+
if (this.worker) {
|
|
37864
|
+
this.worker.terminate();
|
|
37865
|
+
}
|
|
37866
|
+
this.subscriptions.map((x) => x?.unsubscribe());
|
|
37867
|
+
if (!!this.instanceNumber) {
|
|
37868
|
+
const tryToFind = this.comPartyService.instances.filter((x) => x.instanceNumber === this.instanceNumber);
|
|
37869
|
+
if (!!tryToFind.length) {
|
|
37870
|
+
const newInstances = this.comPartyService.instances.filter((x) => x.instanceNumber !== this.instanceNumber);
|
|
37871
|
+
this.comPartyService.instances = newInstances;
|
|
37872
|
+
}
|
|
37873
|
+
}
|
|
37874
|
+
}
|
|
37875
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreComTreeComponent, deps: [{ token: AuthService }, { token: RecursiveService }, { token: MultiLanguageService }, { token: LayoutService }, { token: CoreOrgTreeService }, { token: AlertService }, { token: ComPartyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37876
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreComTreeComponent, isStandalone: true, selector: "core-com-tree", inputs: { lineColor: "lineColor", fullWidthMode: "fullWidthMode", accessorMode: "accessorMode", searchMode: "searchMode", fullRendering: "fullRendering", height: "height", disabledLoopExpand: "disabledLoopExpand", showCheckInheritance: "showCheckInheritance", excludedIds$: "excludedIds$", stateIsolated$: "stateIsolated$" }, outputs: { itemDoubleClick: "itemDoubleClick", itemClick: "itemClick" }, providers: [
|
|
37877
|
+
{
|
|
37878
|
+
provide: NG_VALUE_ACCESSOR,
|
|
37879
|
+
useExisting: forwardRef(() => CoreComTreeComponent),
|
|
37880
|
+
multi: true
|
|
37881
|
+
}
|
|
37882
|
+
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true }, { propertyName: "displayContent", first: true, predicate: ["displayContent"], descendants: true }, { propertyName: "reducedIconWrapper", first: true, predicate: ["reducedIconWrapper"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-org-tree-container\" [class.full-width]=\"!!fullWidthMode\" *ngIf=\"!!data\" \r\n [style.position]=\"'relative'\"\r\n [style.width]=\"'100%'\"\r\n [style.minWidth]=\"'310px'\"\r\n [style.height]=\"height + 'px'\"\r\n >\r\n <div #displayContent class=\"custom-org-tree\">\r\n @if (showSearch) {\r\n <div class=\"core-org-tree-header d-flex-between\">\r\n <div class=\"m5\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"search\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"searchPlaceholder | translate: lang\" [class.full-width]=\"!!fullWidthMode\">\r\n </div>\r\n </div>\r\n }\r\n <ng-container>\r\n\r\n <div #scrollContainer class=\"scroll-container\" \r\n [style.height]=\"height - layoutService.coreOrgTreeTopHeight * (showSearch ? 1 : 0) - layoutService.coreOrgTreeBottomHeight + 'px'\" \r\n [style.overflow]=\"'scroll'\" \r\n >\r\n <div class=\"hidden-tool\" (click)=\"onHiddenToolClick($event)\"></div>\r\n <core-loading-surface [loading]=\"loading\" [height]=\"scrollContainerHeight\"></core-loading-surface>\r\n <!-- @for (root of dataFiltered; track root) { -->\r\n @if (!!data && !!data.length) {\r\n @for (root of data; track $index) {\r\n @defer(on viewport(scrollContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n } @placeholder() {\r\n Placeholder...\r\n } @loading() {\r\n Loading...\r\n } @error() {\r\n Error...\r\n }\r\n }\r\n } @else {\r\n No items\r\n }\r\n </div>\r\n <div \r\n [style.display]=\"'block'\"\r\n [style.position]=\"'absolute'\"\r\n [style.bottom]=\"'0px'\"\r\n [style.left]=\"'0px'\"\r\n [style.right]=\"'0px'\"\r\n [style.height]=\"layoutService.corePaginationHeight + 'px'\"\r\n [style.paddingLeft]=\"layoutService.basicSpacing + 'px'\"\r\n [style.paddingRight]=\"layoutService.basicSpacing + 'px'\"\r\n [style.lineHeight]=\"layoutService.corePaginationHeight + 'px'\"\r\n [style.overflow]=\"'hidden'\"\r\n >\r\n <div \r\n [style.height]=\"layoutService.corePaginationHeight + 'px'\"\r\n [style.position]=\"'relative'\"\r\n [style.display]=\"'flex'\"\r\n [style.alignItems]=\"'center'\"\r\n [style.justifyContent]=\"'space-between'\"\r\n >\r\n <div>\r\n <core-checkbox [(ngModel)]=\"showDissolved\"\r\n (ngModelChange)=\"onCheckIncludeDissolvedChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS_ABBREVIATED'\"\r\n [tooltip]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS'\" tooltipPosition=\"above\"></core-checkbox>\r\n </div>\r\n @if (accessorMode === 'CHECKED') {\r\n <div class=\"check-inheritance-wrapper\">\r\n @if (showCheckInheritance) {\r\n <core-checkbox [(ngModel)]=\"checkInheritance\"\r\n (ngModelChange)=\"onCheckInheritanceChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.CHECK_INHERITANCE'\"></core-checkbox>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-id=\"context.id\" let-title=\"context.tree$Title\"\r\n let-highlighted=\"context.tree$Highlighted\" let-hasChildren=\"context.tree$HasChildren\"\r\n let-hasActiveChildren=\"context.tree$HasActiveChildren\" let-children=\"context.tree$Children\"\r\n let-expanded=\"context.tree$Expanded\" let-isActive=\"context.isActive\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-protected=\"context.protected\">\r\n\r\n @if ((!showDissolved && !!isActive) || (!!showDissolved)) {\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\">\r\n <!-- (click)=\"accessorMode !== 'CHECKED' ? onObjectClick(context, $event) : $event.preventDefault()\" -->\r\n <span (click)=\"onObjectClick(context, $event)\">\r\n @if ((!!showDissolved && !!hasChildren) || (!showDissolved && !!hasActiveChildren)) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context, $event)\"></i>\r\n }\r\n\r\n @if (accessorMode === 'CHECKED' && !protected) {\r\n <core-checkbox (onClick)=\"onItemCheck(context, $event)\" [inputValue]=\"checked\"\r\n [disabled]=\"disabled\"></core-checkbox>\r\n }\r\n <object [class.active]=\"accessorMode != 'CHECKED' && selectedKey===id.toString()\"\r\n [class.highlighted]=\"highlighted\" [class.dissolved]=\"!isActive\"\r\n [class.protected]=\"protected\" [appTooltip]=\"title\">\r\n {{ title }}\r\n </object>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n @if (!!expanded || !!fullRendering) {\r\n\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n\r\n }\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreLoadingSurfaceComponent, selector: "core-loading-surface", inputs: ["loading", "height"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }] }); }
|
|
37883
|
+
}
|
|
37884
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreComTreeComponent, decorators: [{
|
|
37885
|
+
type: Component,
|
|
37886
|
+
args: [{ selector: 'core-com-tree', imports: [
|
|
37887
|
+
FormsModule,
|
|
37888
|
+
NgIf,
|
|
37889
|
+
CoreCheckboxComponent,
|
|
37890
|
+
CoreLoadingSurfaceComponent,
|
|
37891
|
+
TranslatePipe,
|
|
37892
|
+
TooltipDirective,
|
|
37893
|
+
], providers: [
|
|
37894
|
+
{
|
|
37895
|
+
provide: NG_VALUE_ACCESSOR,
|
|
37896
|
+
useExisting: forwardRef(() => CoreComTreeComponent),
|
|
37897
|
+
multi: true
|
|
37898
|
+
}
|
|
37899
|
+
], template: "<div #container class=\"core-org-tree-container\" [class.full-width]=\"!!fullWidthMode\" *ngIf=\"!!data\" \r\n [style.position]=\"'relative'\"\r\n [style.width]=\"'100%'\"\r\n [style.minWidth]=\"'310px'\"\r\n [style.height]=\"height + 'px'\"\r\n >\r\n <div #displayContent class=\"custom-org-tree\">\r\n @if (showSearch) {\r\n <div class=\"core-org-tree-header d-flex-between\">\r\n <div class=\"m5\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"search\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"searchPlaceholder | translate: lang\" [class.full-width]=\"!!fullWidthMode\">\r\n </div>\r\n </div>\r\n }\r\n <ng-container>\r\n\r\n <div #scrollContainer class=\"scroll-container\" \r\n [style.height]=\"height - layoutService.coreOrgTreeTopHeight * (showSearch ? 1 : 0) - layoutService.coreOrgTreeBottomHeight + 'px'\" \r\n [style.overflow]=\"'scroll'\" \r\n >\r\n <div class=\"hidden-tool\" (click)=\"onHiddenToolClick($event)\"></div>\r\n <core-loading-surface [loading]=\"loading\" [height]=\"scrollContainerHeight\"></core-loading-surface>\r\n <!-- @for (root of dataFiltered; track root) { -->\r\n @if (!!data && !!data.length) {\r\n @for (root of data; track $index) {\r\n @defer(on viewport(scrollContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n } @placeholder() {\r\n Placeholder...\r\n } @loading() {\r\n Loading...\r\n } @error() {\r\n Error...\r\n }\r\n }\r\n } @else {\r\n No items\r\n }\r\n </div>\r\n <div \r\n [style.display]=\"'block'\"\r\n [style.position]=\"'absolute'\"\r\n [style.bottom]=\"'0px'\"\r\n [style.left]=\"'0px'\"\r\n [style.right]=\"'0px'\"\r\n [style.height]=\"layoutService.corePaginationHeight + 'px'\"\r\n [style.paddingLeft]=\"layoutService.basicSpacing + 'px'\"\r\n [style.paddingRight]=\"layoutService.basicSpacing + 'px'\"\r\n [style.lineHeight]=\"layoutService.corePaginationHeight + 'px'\"\r\n [style.overflow]=\"'hidden'\"\r\n >\r\n <div \r\n [style.height]=\"layoutService.corePaginationHeight + 'px'\"\r\n [style.position]=\"'relative'\"\r\n [style.display]=\"'flex'\"\r\n [style.alignItems]=\"'center'\"\r\n [style.justifyContent]=\"'space-between'\"\r\n >\r\n <div>\r\n <core-checkbox [(ngModel)]=\"showDissolved\"\r\n (ngModelChange)=\"onCheckIncludeDissolvedChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS_ABBREVIATED'\"\r\n [tooltip]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS'\" tooltipPosition=\"above\"></core-checkbox>\r\n </div>\r\n @if (accessorMode === 'CHECKED') {\r\n <div class=\"check-inheritance-wrapper\">\r\n @if (showCheckInheritance) {\r\n <core-checkbox [(ngModel)]=\"checkInheritance\"\r\n (ngModelChange)=\"onCheckInheritanceChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.CHECK_INHERITANCE'\"></core-checkbox>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-id=\"context.id\" let-title=\"context.tree$Title\"\r\n let-highlighted=\"context.tree$Highlighted\" let-hasChildren=\"context.tree$HasChildren\"\r\n let-hasActiveChildren=\"context.tree$HasActiveChildren\" let-children=\"context.tree$Children\"\r\n let-expanded=\"context.tree$Expanded\" let-isActive=\"context.isActive\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-protected=\"context.protected\">\r\n\r\n @if ((!showDissolved && !!isActive) || (!!showDissolved)) {\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\">\r\n <!-- (click)=\"accessorMode !== 'CHECKED' ? onObjectClick(context, $event) : $event.preventDefault()\" -->\r\n <span (click)=\"onObjectClick(context, $event)\">\r\n @if ((!!showDissolved && !!hasChildren) || (!showDissolved && !!hasActiveChildren)) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context, $event)\"></i>\r\n }\r\n\r\n @if (accessorMode === 'CHECKED' && !protected) {\r\n <core-checkbox (onClick)=\"onItemCheck(context, $event)\" [inputValue]=\"checked\"\r\n [disabled]=\"disabled\"></core-checkbox>\r\n }\r\n <object [class.active]=\"accessorMode != 'CHECKED' && selectedKey===id.toString()\"\r\n [class.highlighted]=\"highlighted\" [class.dissolved]=\"!isActive\"\r\n [class.protected]=\"protected\" [appTooltip]=\"title\">\r\n {{ title }}\r\n </object>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n @if (!!expanded || !!fullRendering) {\r\n\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n\r\n }\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</div>" }]
|
|
37900
|
+
}], ctorParameters: () => [{ type: AuthService }, { type: RecursiveService }, { type: MultiLanguageService }, { type: LayoutService }, { type: CoreOrgTreeService }, { type: AlertService }, { type: ComPartyService }], propDecorators: { lineColor: [{
|
|
37901
|
+
type: Input
|
|
37902
|
+
}], fullWidthMode: [{
|
|
37903
|
+
type: Input
|
|
37904
|
+
}], accessorMode: [{
|
|
37905
|
+
type: Input
|
|
37906
|
+
}], searchMode: [{
|
|
37907
|
+
type: Input
|
|
37908
|
+
}], fullRendering: [{
|
|
37909
|
+
type: Input
|
|
37910
|
+
}], height: [{
|
|
37911
|
+
type: Input
|
|
37912
|
+
}], disabledLoopExpand: [{
|
|
37913
|
+
type: Input
|
|
37914
|
+
}], showCheckInheritance: [{
|
|
37915
|
+
type: Input
|
|
37916
|
+
}], excludedIds$: [{
|
|
37917
|
+
type: Input
|
|
37918
|
+
}], stateIsolated$: [{
|
|
37919
|
+
type: Input
|
|
37920
|
+
}], itemDoubleClick: [{
|
|
37921
|
+
type: Output
|
|
37922
|
+
}], itemClick: [{
|
|
37923
|
+
type: Output
|
|
37924
|
+
}], container: [{
|
|
37925
|
+
type: ViewChild,
|
|
37926
|
+
args: ['container']
|
|
37927
|
+
}], scrollContainer: [{
|
|
37928
|
+
type: ViewChild,
|
|
37929
|
+
args: ['scrollContainer']
|
|
37930
|
+
}], displayContent: [{
|
|
37931
|
+
type: ViewChild,
|
|
37932
|
+
args: ['displayContent']
|
|
37933
|
+
}], reducedIconWrapper: [{
|
|
37934
|
+
type: ViewChild,
|
|
37935
|
+
args: ['reducedIconWrapper']
|
|
37936
|
+
}] } });
|
|
37937
|
+
|
|
37938
|
+
class CorePaginationComponent {
|
|
37939
|
+
constructor() {
|
|
37940
|
+
this.$currentPage = input.required();
|
|
37941
|
+
this.$height = input.required();
|
|
37942
|
+
this.$pageCount = input.required();
|
|
37943
|
+
this.$loading = input.required();
|
|
37944
|
+
this.$suspendCurrentPageSubscription = input();
|
|
37945
|
+
this.$showAdd = input();
|
|
37946
|
+
this.$background = input();
|
|
37947
|
+
this.$fixedPageSize = input();
|
|
37948
|
+
this.$onClickAdd = output();
|
|
37949
|
+
this.$container = viewChild('container');
|
|
37950
|
+
this.$current = viewChild('current');
|
|
37951
|
+
this.$aperture = viewChild('aperture');
|
|
37952
|
+
this.$currentButtonContent = signal('1');
|
|
37953
|
+
this.$suspendCurrentPage = signal(true);
|
|
37954
|
+
this.$navigationDirection = signal(1);
|
|
37955
|
+
this.subscriptions = [];
|
|
37956
|
+
}
|
|
37957
|
+
ngOnInit() { }
|
|
37958
|
+
goFirst() {
|
|
37959
|
+
this.$navigationDirection.set(-1);
|
|
37960
|
+
this.$suspendCurrentPage.set(false);
|
|
37961
|
+
setTimeout(() => {
|
|
37962
|
+
if (!!this.$pageCount())
|
|
37963
|
+
this.$currentPage().next(1);
|
|
37964
|
+
this.$aperture()?.nativeElement.style.setProperty('animation-name', 'rotatebackwards');
|
|
37965
|
+
});
|
|
37966
|
+
}
|
|
37967
|
+
goLast() {
|
|
37968
|
+
this.$navigationDirection.set(1);
|
|
37969
|
+
this.$suspendCurrentPage.set(false);
|
|
37970
|
+
setTimeout(() => {
|
|
37971
|
+
if (!!this.$pageCount())
|
|
37972
|
+
this.$currentPage().next(this.$pageCount());
|
|
37973
|
+
this.$aperture()?.nativeElement.style.setProperty('animation-name', 'rotateforwards');
|
|
37974
|
+
});
|
|
37975
|
+
}
|
|
37976
|
+
goPrevious() {
|
|
37977
|
+
this.$navigationDirection.set(-1);
|
|
37978
|
+
this.$suspendCurrentPage.set(false);
|
|
37979
|
+
setTimeout(() => {
|
|
37980
|
+
if (!!this.$pageCount())
|
|
37981
|
+
this.$currentPage().next(this.$currentPage().value - 1);
|
|
37982
|
+
this.$aperture()?.nativeElement.style.setProperty('animation-name', 'rotatebackwards');
|
|
37983
|
+
});
|
|
37984
|
+
}
|
|
37985
|
+
goNext() {
|
|
37986
|
+
this.$navigationDirection.set(1);
|
|
37987
|
+
this.$suspendCurrentPage.set(false);
|
|
37988
|
+
setTimeout(() => {
|
|
37989
|
+
if (!!this.$pageCount())
|
|
37990
|
+
this.$currentPage().next(this.$currentPage().value + 1);
|
|
37991
|
+
this.$aperture()?.nativeElement.style.setProperty('animation-name', 'rotateforwards');
|
|
37992
|
+
});
|
|
37993
|
+
}
|
|
37994
|
+
onClickAddLocal() {
|
|
37995
|
+
this.$onClickAdd.emit();
|
|
37996
|
+
}
|
|
37997
|
+
ngAfterViewInit() {
|
|
37998
|
+
setTimeout(() => {
|
|
37999
|
+
this.subscriptions.push(this.$currentPage().subscribe(x => this.$currentButtonContent.set(x.toString())));
|
|
38000
|
+
this.mouseDownStream$ = fromEvent(this.$current().nativeElement, 'mousedown', _ => {
|
|
38001
|
+
this.$currentButtonContent.set(`${this.$currentPage().value}/${this.$pageCount()}`);
|
|
38002
|
+
});
|
|
38003
|
+
this.touchStartStream$ = fromEvent(this.$current().nativeElement, 'touchstart', _ => {
|
|
38004
|
+
this.$currentButtonContent.set(`${this.$currentPage().value}/${this.$pageCount()}`);
|
|
38005
|
+
});
|
|
38006
|
+
this.mouseUpStream$ = fromEvent(this.$current().nativeElement, 'mouseup', _ => {
|
|
38007
|
+
this.$currentButtonContent.set(`${this.$currentPage().value}`);
|
|
38008
|
+
});
|
|
38009
|
+
this.touchEndStream$ = fromEvent(this.$current().nativeElement, 'touchend', _ => {
|
|
38010
|
+
this.$currentButtonContent.set(`${this.$currentPage().value}`);
|
|
38011
|
+
});
|
|
38012
|
+
this.mouseDownSubscription$ = this.mouseDownStream$.subscribe();
|
|
38013
|
+
this.touchStartSubscription$ = this.touchStartStream$.subscribe();
|
|
38014
|
+
this.mouseUpSubscription$ = this.mouseUpStream$.subscribe();
|
|
38015
|
+
this.touchEndSubscription$ = this.touchEndStream$.subscribe();
|
|
38016
|
+
if (this.$background())
|
|
38017
|
+
setTimeout(() => this.$container().nativeElement.style.setProperty('--bg', this.$background()));
|
|
38018
|
+
if (this.$height())
|
|
38019
|
+
this.$container()?.nativeElement.style.setProperty('--height', this.$height() + 'px');
|
|
38020
|
+
});
|
|
38021
|
+
}
|
|
38022
|
+
ngOnDestroy() {
|
|
38023
|
+
if (this.mouseDownSubscription$)
|
|
38024
|
+
this.mouseDownSubscription$.unsubscribe();
|
|
38025
|
+
if (this.touchStartSubscription$)
|
|
38026
|
+
this.touchStartSubscription$.unsubscribe();
|
|
38027
|
+
if (this.mouseUpSubscription$)
|
|
38028
|
+
this.mouseUpSubscription$.unsubscribe();
|
|
38029
|
+
if (this.touchEndSubscription$)
|
|
38030
|
+
this.touchEndSubscription$.unsubscribe();
|
|
38031
|
+
}
|
|
38032
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CorePaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38033
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CorePaginationComponent, isStandalone: true, selector: "core-pagination", inputs: { $currentPage: { classPropertyName: "$currentPage", publicName: "$currentPage", isSignal: true, isRequired: true, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: true, transformFunction: null }, $pageCount: { classPropertyName: "$pageCount", publicName: "$pageCount", isSignal: true, isRequired: true, transformFunction: null }, $loading: { classPropertyName: "$loading", publicName: "$loading", isSignal: true, isRequired: true, transformFunction: null }, $suspendCurrentPageSubscription: { classPropertyName: "$suspendCurrentPageSubscription", publicName: "$suspendCurrentPageSubscription", isSignal: true, isRequired: false, transformFunction: null }, $showAdd: { classPropertyName: "$showAdd", publicName: "$showAdd", isSignal: true, isRequired: false, transformFunction: null }, $background: { classPropertyName: "$background", publicName: "$background", isSignal: true, isRequired: false, transformFunction: null }, $fixedPageSize: { classPropertyName: "$fixedPageSize", publicName: "$fixedPageSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { $onClickAdd: "$onClickAdd" }, viewQueries: [{ propertyName: "$container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "$current", first: true, predicate: ["current"], descendants: true, isSignal: true }, { propertyName: "$aperture", first: true, predicate: ["aperture"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #container class=\"pagination-container d-flex-between\">\r\n <div class=\"pagination-container\">\r\n <div class=\"first\" [class.disable]=\"!$pageCount() || $currentPage().value===1\" (click)=\"goFirst()\"></div>\r\n <div class=\"previous\" [class.disable]=\"!$pageCount() || $currentPage().value===1\" (click)=\"goPrevious()\"></div>\r\n <div #current class=\"current\">\r\n <div class=\"d-flex-center\">\r\n <i #aperture class=\"feather-aperture aperture \" [class.visible]=\"$loading()\"></i>\r\n @if (!$loading()) {\r\n <span class=\"current-text\">{{ $currentButtonContent() }}</span>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"next\" [class.disable]=\"!$pageCount() || ($currentPage() | async)===$pageCount()\" (click)=\"goNext()\"></div>\r\n <div class=\"last\" [class.disable]=\"!$pageCount() || ($currentPage() | async)===$pageCount()\" (click)=\"goLast()\"></div>\r\n </div>\r\n @if ($showAdd()) {\r\n <a (click)=\"onClickAddLocal()\">\r\n <div class=\"add\"></div>\r\n </a>\r\n }\r\n</div>", styles: [".pagination-container{--bg: #848484;--color: white;--height: 38px;--button-size: 50px;--font-size: 18px;--aperture-size: 30px}@keyframes rotateforwards{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotatebackwards{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.pagination-container .add:before{font-family:feather;content:\"\\e9b1\";font-weight:700;font-size:var(--font-size);color:#fff;background:var(--bg);width:var(--button-size);height:var(--button-size);display:flex;align-items:center;justify-content:center;border-top-right-radius:50%;border-bottom-right-radius:50%}.pagination-container .pagination-container{height:var(--height);display:flex}.pagination-container .pagination-container>div{display:inline-block;cursor:pointer;margin-right:2px}.pagination-container .pagination-container .disable{cursor:default;opacity:.5!important}.pagination-container .pagination-container .current{border-radius:50%;margin:0 5px;opacity:1;transition:2s}.pagination-container .pagination-container .aperture{width:var(--aperture-size);height:var(--aperture-size);opacity:0;transition:.25s ease-out;animation:rotateforwards 1s linear infinite}.pagination-container .pagination-container .aperture:before{font-size:var(--aperture-size)}.pagination-container .pagination-container .visible{opacity:1;transition:.25s ease-out}.pagination-container .pagination-container .current,.pagination-container .pagination-container .loading{width:var(--button-size);height:var(--button-size);background:var(--bg);color:var(--color)}.pagination-container .pagination-container .current-text{position:absolute}.pagination-container .pagination-container .current>div{width:var(--button-size);height:var(--button-size);display:flex;align-items:center;justify-content:center}.pagination-container .pagination-container div:before{font-family:feather;font-size:var(--font-size);width:var(--button-size);height:var(--button-size);background:var(--bg);color:var(--color);display:flex;align-items:center;justify-content:center}.pagination-container .pagination-container .first:before{content:\"\\e933\"}.pagination-container .pagination-container .previous:before{content:\"\\e92f\"}.pagination-container .pagination-container .next:before{content:\"\\e930\"}.pagination-container .pagination-container .last:before{content:\"\\e934\"}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38034
|
+
}
|
|
38035
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CorePaginationComponent, decorators: [{
|
|
38036
|
+
type: Component,
|
|
38037
|
+
args: [{ selector: 'core-pagination', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
38038
|
+
NgStyle,
|
|
38039
|
+
AsyncPipe,
|
|
38040
|
+
], template: "<div #container class=\"pagination-container d-flex-between\">\r\n <div class=\"pagination-container\">\r\n <div class=\"first\" [class.disable]=\"!$pageCount() || $currentPage().value===1\" (click)=\"goFirst()\"></div>\r\n <div class=\"previous\" [class.disable]=\"!$pageCount() || $currentPage().value===1\" (click)=\"goPrevious()\"></div>\r\n <div #current class=\"current\">\r\n <div class=\"d-flex-center\">\r\n <i #aperture class=\"feather-aperture aperture \" [class.visible]=\"$loading()\"></i>\r\n @if (!$loading()) {\r\n <span class=\"current-text\">{{ $currentButtonContent() }}</span>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"next\" [class.disable]=\"!$pageCount() || ($currentPage() | async)===$pageCount()\" (click)=\"goNext()\"></div>\r\n <div class=\"last\" [class.disable]=\"!$pageCount() || ($currentPage() | async)===$pageCount()\" (click)=\"goLast()\"></div>\r\n </div>\r\n @if ($showAdd()) {\r\n <a (click)=\"onClickAddLocal()\">\r\n <div class=\"add\"></div>\r\n </a>\r\n }\r\n</div>", styles: [".pagination-container{--bg: #848484;--color: white;--height: 38px;--button-size: 50px;--font-size: 18px;--aperture-size: 30px}@keyframes rotateforwards{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotatebackwards{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.pagination-container .add:before{font-family:feather;content:\"\\e9b1\";font-weight:700;font-size:var(--font-size);color:#fff;background:var(--bg);width:var(--button-size);height:var(--button-size);display:flex;align-items:center;justify-content:center;border-top-right-radius:50%;border-bottom-right-radius:50%}.pagination-container .pagination-container{height:var(--height);display:flex}.pagination-container .pagination-container>div{display:inline-block;cursor:pointer;margin-right:2px}.pagination-container .pagination-container .disable{cursor:default;opacity:.5!important}.pagination-container .pagination-container .current{border-radius:50%;margin:0 5px;opacity:1;transition:2s}.pagination-container .pagination-container .aperture{width:var(--aperture-size);height:var(--aperture-size);opacity:0;transition:.25s ease-out;animation:rotateforwards 1s linear infinite}.pagination-container .pagination-container .aperture:before{font-size:var(--aperture-size)}.pagination-container .pagination-container .visible{opacity:1;transition:.25s ease-out}.pagination-container .pagination-container .current,.pagination-container .pagination-container .loading{width:var(--button-size);height:var(--button-size);background:var(--bg);color:var(--color)}.pagination-container .pagination-container .current-text{position:absolute}.pagination-container .pagination-container .current>div{width:var(--button-size);height:var(--button-size);display:flex;align-items:center;justify-content:center}.pagination-container .pagination-container div:before{font-family:feather;font-size:var(--font-size);width:var(--button-size);height:var(--button-size);background:var(--bg);color:var(--color);display:flex;align-items:center;justify-content:center}.pagination-container .pagination-container .first:before{content:\"\\e933\"}.pagination-container .pagination-container .previous:before{content:\"\\e92f\"}.pagination-container .pagination-container .next:before{content:\"\\e930\"}.pagination-container .pagination-container .last:before{content:\"\\e934\"}\n"] }]
|
|
38041
|
+
}], ctorParameters: () => [] });
|
|
38042
|
+
|
|
38043
|
+
class CoreCompareDbPipelineComponent extends BaseComponent {
|
|
38044
|
+
constructor(mls, appService) {
|
|
38045
|
+
super(mls);
|
|
38046
|
+
this.mls = mls;
|
|
38047
|
+
this.appService = appService;
|
|
38048
|
+
this.data = [];
|
|
38049
|
+
this.tabHeaders = ["Dev-Test-Live", "Dev-Extended"];
|
|
38050
|
+
this.activeTabIndex = 0;
|
|
38051
|
+
this.columns = [
|
|
38052
|
+
{
|
|
38053
|
+
field: 'id',
|
|
38054
|
+
type: 'string',
|
|
38055
|
+
caption: 'id',
|
|
38056
|
+
align: 'left',
|
|
38057
|
+
hidden: true,
|
|
38058
|
+
width: 0
|
|
38059
|
+
},
|
|
38060
|
+
{
|
|
38061
|
+
field: 'difference',
|
|
38062
|
+
type: 'string',
|
|
38063
|
+
caption: 'Problem',
|
|
38064
|
+
align: 'left',
|
|
38065
|
+
sortDisabled: true,
|
|
38066
|
+
width: 300
|
|
38067
|
+
},
|
|
38068
|
+
{
|
|
38069
|
+
field: 'conflictType',
|
|
38070
|
+
type: 'string',
|
|
38071
|
+
caption: 'Marker',
|
|
38072
|
+
align: 'center',
|
|
38073
|
+
width: 50
|
|
38074
|
+
},
|
|
38075
|
+
{
|
|
38076
|
+
field: 'sourceAlias',
|
|
38077
|
+
type: 'string',
|
|
38078
|
+
caption: 'Source',
|
|
38079
|
+
align: 'left',
|
|
38080
|
+
sortDisabled: true,
|
|
38081
|
+
width: 60
|
|
38082
|
+
},
|
|
38083
|
+
{
|
|
38084
|
+
field: 'targetAlias',
|
|
38085
|
+
type: 'string',
|
|
38086
|
+
caption: 'Target',
|
|
38087
|
+
align: 'left',
|
|
38088
|
+
sortDisabled: true,
|
|
38089
|
+
width: 200
|
|
38090
|
+
},
|
|
38091
|
+
{
|
|
38092
|
+
field: 'tableName',
|
|
38093
|
+
type: 'string',
|
|
38094
|
+
caption: 'Table',
|
|
38095
|
+
align: 'left',
|
|
38096
|
+
sortDisabled: true,
|
|
38097
|
+
width: 200
|
|
38098
|
+
},
|
|
38099
|
+
{
|
|
38100
|
+
field: 'columnName',
|
|
38101
|
+
type: 'string',
|
|
38102
|
+
caption: 'Column',
|
|
38103
|
+
align: 'left',
|
|
38104
|
+
sortDisabled: true,
|
|
38105
|
+
width: 200
|
|
38106
|
+
},
|
|
38107
|
+
{
|
|
38108
|
+
field: 'sourceType',
|
|
38109
|
+
type: 'string',
|
|
38110
|
+
caption: 'Source type',
|
|
38111
|
+
align: 'left',
|
|
38112
|
+
sortDisabled: true,
|
|
38113
|
+
width: 100
|
|
38114
|
+
},
|
|
38115
|
+
{
|
|
38116
|
+
field: 'sourceIsPrimaryKey',
|
|
36368
38117
|
type: 'boolean',
|
|
36369
38118
|
caption: 'Source is PK',
|
|
36370
38119
|
align: 'center',
|
|
@@ -36743,860 +38492,221 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
36743
38492
|
args: [{ selector: 'confirm-dialog-state', standalone: false, template: "<div class=\"confirm-dialog-state-container\">\r\n <div class=\"container container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-md-4 label\">busy</div>\r\n <div class=\"col-md-8 font-bold\">{{ ds.busy }}</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4 label\">showConfirmDialog</div>\r\n <div class=\"col-md-8 font-bold\">{{ ds.showConfirmDialog$.value }}</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4 label\">dialogConfirmed</div>\r\n <div class=\"col-md-8 font-bold\">{{ ds.dialogConfirmed$.value }}</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4 label\">title</div>\r\n <div class=\"col-md-8 font-bold\">{{ ds.title$.value }}</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4 label\">body</div>\r\n <div class=\"col-md-8 font-bold\">{{ ds.body$.value }}</div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--\r\n\r\n busy!: boolean;\r\n\r\n showConfirmDialog$ = new BehaviorSubject<boolean | undefined>(undefined);\r\n canDeactivate$ = new Subject<boolean>;\r\n dialogConfirmed$ = new BehaviorSubject<IDialogConfirmModel | undefined>(undefined);\r\n\r\n title$ = new Subject<EnumTranslateKey>;\r\n body$ = new Subject<EnumTranslateKey>;\r\n okButtonText$ = new Subject<EnumTranslateKey>;\r\n cancelButtonText$ = new Subject<EnumTranslateKey>;\r\n showCancelOnly$ = new Subject<boolean>;\r\n informationLines$ = new Subject<string[]>;\r\n-->", styles: [".confirm-dialog-state-container{position:fixed;display:block;top:calc(var(--size-header-height) + var(--size-layout-block-cell-spacing));left:var(--size-layout-block-cell-spacing);z-index:9999999;width:320px;height:320px}\n"] }]
|
|
36744
38493
|
}], ctorParameters: () => [{ type: DialogService }] });
|
|
36745
38494
|
|
|
36746
|
-
class CoreLazyMountComponent {
|
|
36747
|
-
constructor() {
|
|
36748
|
-
this.vcRef = inject(ViewContainerRef);
|
|
36749
|
-
}
|
|
36750
|
-
set props(value) {
|
|
36751
|
-
this._props = value;
|
|
36752
|
-
this.assignInputs();
|
|
36753
|
-
}
|
|
36754
|
-
async ngOnInit() {
|
|
36755
|
-
if (this.loadComponent) {
|
|
36756
|
-
const componentType = await this.loadComponent();
|
|
36757
|
-
this.componentRef = this.vcRef.createComponent(componentType);
|
|
36758
|
-
this.assignInputs();
|
|
36759
|
-
}
|
|
36760
|
-
}
|
|
36761
|
-
assignInputs() {
|
|
36762
|
-
if (this.componentRef && this._props) {
|
|
36763
|
-
Object.assign(this.componentRef.instance, this._props);
|
|
36764
|
-
this.componentRef.changeDetectorRef.markForCheck();
|
|
36765
|
-
}
|
|
36766
|
-
}
|
|
36767
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreLazyMountComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36768
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: CoreLazyMountComponent, isStandalone: true, selector: "core-lazy-mount", inputs: { loadComponent: "loadComponent", props: "props" }, ngImport: i0, template: "", styles: [""] }); }
|
|
36769
|
-
}
|
|
36770
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreLazyMountComponent, decorators: [{
|
|
36771
|
-
type: Component,
|
|
36772
|
-
args: [{ selector: 'core-lazy-mount', imports: [], template: "" }]
|
|
36773
|
-
}], propDecorators: { loadComponent: [{
|
|
36774
|
-
type: Input
|
|
36775
|
-
}], props: [{
|
|
36776
|
-
type: Input
|
|
36777
|
-
}] } });
|
|
36778
|
-
|
|
36779
|
-
class ModuleItemComponent extends BaseComponent {
|
|
36780
|
-
constructor(mls, navigatorService, cdr, menuService) {
|
|
36781
|
-
super(mls);
|
|
36782
|
-
this.mls = mls;
|
|
36783
|
-
this.navigatorService = navigatorService;
|
|
36784
|
-
this.cdr = cdr;
|
|
36785
|
-
this.menuService = menuService;
|
|
36786
|
-
this.$item = input.required();
|
|
36787
|
-
this.$itemPadding = input(5);
|
|
36788
|
-
this.$width = input.required();
|
|
36789
|
-
this.$height = input.required();
|
|
36790
|
-
this.$iconTextVerticalMargin = input(25);
|
|
36791
|
-
this.$active = signal(false);
|
|
36792
|
-
this.iconClickStream$ = new BehaviorSubject('');
|
|
36793
|
-
}
|
|
36794
|
-
ngOnInit() {
|
|
36795
|
-
this.subscriptions.push(this.mls.lang$.subscribe(x => {
|
|
36796
|
-
this.lang = x;
|
|
36797
|
-
this.cdr.markForCheck();
|
|
36798
|
-
}));
|
|
36799
|
-
if (!!localStorage) {
|
|
36800
|
-
const activeRootMenuItemId = Number(localStorage.getItem('activeRootMenuItemId') || '0');
|
|
36801
|
-
const active = activeRootMenuItemId === this.$item()?.id;
|
|
36802
|
-
this.$active.set(active);
|
|
36803
|
-
}
|
|
36804
|
-
}
|
|
36805
|
-
onClick(e, item) {
|
|
36806
|
-
this.iconClickStream$.next(crypto.randomUUID());
|
|
36807
|
-
if (!!item) {
|
|
36808
|
-
this.navigatorService.clickedItem$.next(item);
|
|
36809
|
-
}
|
|
36810
|
-
if (localStorage.getItem('moduleDesignMode') === 'on')
|
|
36811
|
-
return;
|
|
36812
|
-
this.navigatorService.activeRootMenuItemId$.next(item?.id);
|
|
36813
|
-
if (!!localStorage) {
|
|
36814
|
-
localStorage.setItem('activeRootMenuItemId', (item?.id || 0).toString());
|
|
36815
|
-
}
|
|
36816
|
-
this.menuService.isOpen$.next(true); // trigger the LeftBar to be opened at the first time
|
|
36817
|
-
}
|
|
36818
|
-
ngAfterViewInit() {
|
|
36819
|
-
this.subscriptions.push(this.navigatorService.activeRootMenuItemId$.subscribe(x => {
|
|
36820
|
-
const active = x === this.$item()?.id;
|
|
36821
|
-
this.$active.set(active);
|
|
36822
|
-
}));
|
|
36823
|
-
this.subscriptions.push(this.iconClickStream$.pipe(buffer(this.iconClickStream$.pipe(debounceTime(250))), map$1(clicks => clicks.length), filter(clicksLength => clicksLength >= 5))
|
|
36824
|
-
.subscribe(_ => {
|
|
36825
|
-
this.navigatorService.showEditSvg$.next(true);
|
|
36826
|
-
}));
|
|
36827
|
-
}
|
|
36828
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ModuleItemComponent, deps: [{ token: MultiLanguageService }, { token: NavigatorService }, { token: i0.ChangeDetectorRef }, { token: MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36829
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: ModuleItemComponent, isStandalone: true, selector: "app-module-item", inputs: { $item: { classPropertyName: "$item", publicName: "$item", isSignal: true, isRequired: true, transformFunction: null }, $itemPadding: { classPropertyName: "$itemPadding", publicName: "$itemPadding", isSignal: true, isRequired: false, transformFunction: null }, $width: { classPropertyName: "$width", publicName: "$width", isSignal: true, isRequired: true, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: true, transformFunction: null }, $iconTextVerticalMargin: { classPropertyName: "$iconTextVerticalMargin", publicName: "$iconTextVerticalMargin", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"menu-item-wrapper\" \r\n [class.active] = \"$active()\"\r\n (click)=\"onClick($event, $item())\" [ngStyle]=\"{\r\n width: $width() + 'px',\r\n height: $height() + 'px',\r\n padding: $itemPadding() + 'px',\r\n visibility: !!$item() ? 'visible' : 'hidden'\r\n}\">\r\n @if (!!$item()) {\r\n <div class=\"d-flex d-flex-v d-flex-center\">\r\n @if ($item()!.iconSvg) {\r\n <div class=\"d-block\">\r\n <i class=\"module-icon\">\r\n <span [innerHtml]=\"$item()!.iconSvg! | stringHtml\"></span>\r\n </i>\r\n </div>\r\n } @else if ($item()!.iconClass) {\r\n <div>\r\n <i [class]=\"$item()!.iconClass + ' module-icon'\"></i>\r\n </div>\r\n }\r\n <div [ngStyle]=\"{\r\n height: $iconTextVerticalMargin() + 'px'\r\n }\"></div>\r\n <div class=\"module-code\" [appTooltip]=\"$item()!.code! | translate: lang\" [ngStyle]=\"{\r\n width: $width() - $itemPadding() * 2 + 'px'\r\n }\">{{ $item()!.code! | translate: lang}}</div>\r\n </div>\r\n }\r\n</div>", styles: [".menu-item-wrapper{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-user-select:none;user-select:none}.menu-item-wrapper:not(.active){cursor:pointer}.menu-item-wrapper:not(.active):hover{background-color:var(--color-bg-main)}.menu-item-wrapper.active{color:var(--color-basic-orange)}.module-code{font-size:var(--typo-basic-font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36830
|
-
}
|
|
36831
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ModuleItemComponent, decorators: [{
|
|
36832
|
-
type: Component,
|
|
36833
|
-
args: [{ selector: 'app-module-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
36834
|
-
NgStyle,
|
|
36835
|
-
TooltipDirective,
|
|
36836
|
-
StringHtmlPipe,
|
|
36837
|
-
TranslatePipe,
|
|
36838
|
-
], template: "<div class=\"menu-item-wrapper\" \r\n [class.active] = \"$active()\"\r\n (click)=\"onClick($event, $item())\" [ngStyle]=\"{\r\n width: $width() + 'px',\r\n height: $height() + 'px',\r\n padding: $itemPadding() + 'px',\r\n visibility: !!$item() ? 'visible' : 'hidden'\r\n}\">\r\n @if (!!$item()) {\r\n <div class=\"d-flex d-flex-v d-flex-center\">\r\n @if ($item()!.iconSvg) {\r\n <div class=\"d-block\">\r\n <i class=\"module-icon\">\r\n <span [innerHtml]=\"$item()!.iconSvg! | stringHtml\"></span>\r\n </i>\r\n </div>\r\n } @else if ($item()!.iconClass) {\r\n <div>\r\n <i [class]=\"$item()!.iconClass + ' module-icon'\"></i>\r\n </div>\r\n }\r\n <div [ngStyle]=\"{\r\n height: $iconTextVerticalMargin() + 'px'\r\n }\"></div>\r\n <div class=\"module-code\" [appTooltip]=\"$item()!.code! | translate: lang\" [ngStyle]=\"{\r\n width: $width() - $itemPadding() * 2 + 'px'\r\n }\">{{ $item()!.code! | translate: lang}}</div>\r\n </div>\r\n }\r\n</div>", styles: [".menu-item-wrapper{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-user-select:none;user-select:none}.menu-item-wrapper:not(.active){cursor:pointer}.menu-item-wrapper:not(.active):hover{background-color:var(--color-bg-main)}.menu-item-wrapper.active{color:var(--color-basic-orange)}.module-code{font-size:var(--typo-basic-font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center}\n"] }]
|
|
36839
|
-
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: NavigatorService }, { type: i0.ChangeDetectorRef }, { type: MenuService }] });
|
|
36840
|
-
|
|
36841
|
-
class CoreRootMenuItemPickerComponent extends BaseComponent {
|
|
36842
|
-
constructor(mls, ahs, renderer, navigatorService, layoutService, domService, menuService, sysMenuService, authService, appConfigService) {
|
|
36843
|
-
super(mls);
|
|
36844
|
-
this.mls = mls;
|
|
36845
|
-
this.ahs = ahs;
|
|
36846
|
-
this.renderer = renderer;
|
|
36847
|
-
this.navigatorService = navigatorService;
|
|
36848
|
-
this.layoutService = layoutService;
|
|
36849
|
-
this.domService = domService;
|
|
36850
|
-
this.menuService = menuService;
|
|
36851
|
-
this.sysMenuService = sysMenuService;
|
|
36852
|
-
this.authService = authService;
|
|
36853
|
-
this.appConfigService = appConfigService;
|
|
36854
|
-
this.logoPath = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE1IiBoZWlnaHQ9IjI5IiB2aWV3Qm94PSIwIDAgMTE1IDI5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDI4LjU1MjhWOC41NzY4NkgyLjU2MzI5VjE2LjgxMzRIMTIuNTIzNVY4LjU3Njg2SDE1LjA4NjhWMjguNTMzOUgxMi41MjM1VjE5LjE0MjNIMi41ODE2VjI4LjUzMzlIMFYyOC41NTI4Wk0xOS4wNzgyIDExLjM2MDJWOC41NzY4NkgyMS40NTg0VjExLjM2MDJIMTkuMDc4MlpNMTkuMDc4MiAyOC41NTI4VjE0LjA4NjhIMjEuNDU4NFYyOC41NTI4SDE5LjA3ODJaTTI0LjIyMzEgMjIuMDc3MkwyOC4wMzE1IDIxLjY3OTZDMjguMjUxMiAyMi45ODYxIDI4LjcyNzIgMjMuOTUxNyAyOS40MjMgMjQuNTc2NkMzMC4xMTg3IDI1LjIwMTQgMzEuMDcwOCAyNS41MDQ0IDMyLjI0MjYgMjUuNTA0NEMzMy40ODc2IDI1LjUwNDQgMzQuNDIxNCAyNS4yMjAzIDM1LjA2MjIgMjQuNjcxMkMzNS43MDMgMjQuMTIyMSAzNi4wMTQzIDIzLjQ5NzMgMzYuMDE0MyAyMi43NTg5QzM2LjAxNDMgMjIuMjg1NSAzNS44ODYxIDIxLjg2ODkgMzUuNjExNSAyMS41NDdDMzUuMzM2OCAyMS4yMjUyIDM0Ljg3OTEgMjAuOTIyMiAzNC4yMiAyMC42NzYxQzMzLjc2MjIgMjAuNTI0NiAzMi43MzY5IDIwLjIyMTYgMzEuMTI1NyAxOS44MDUxQzI5LjAzODUgMTkuMjc0OSAyNy41NzM3IDE4LjYxMjIgMjYuNzQ5OCAxNy44MTY5QzI1LjU1OTcgMTYuNzE4NyAyNC45OTIxIDE1LjM3NDQgMjQuOTkyMSAxMy44MDI4QzI0Ljk5MjEgMTIuNzgwMyAyNS4yNjY4IDExLjgxNDcgMjUuODE2IDEwLjk0MzdDMjYuMzgzNiAxMC4wNTM4IDI3LjE3MDkgOS4zNzIxMSAyOC4yMTQ1IDguOTE3NjhDMjkuMjc2NSA4LjQ0NDMyIDMwLjUyMTUgOC4yMTcxIDMyLjAwNDYgOC4yMTcxQzM0LjQyMTQgOC4yMTcxIDM2LjIzNCA4Ljc2NjIgMzcuNDYwNyA5Ljg2NDQxQzM4LjY4NzQgMTAuOTgxNSAzOS4zMDk5IDEyLjQ1ODQgMzkuMzgzMiAxNC4zMTRMMzUuNDgzMyAxNC40NjU1QzM1LjMxODUgMTMuNDI0MSAzNC45NzA3IDEyLjY4NTcgMzQuNDIxNCAxMi4yNTAyQzMzLjg3MjEgMTEuODE0NyAzMy4wNjY1IDExLjU2ODUgMzEuOTY3OSAxMS41Njg1QzMwLjg1MTEgMTEuNTY4NSAyOS45NzIyIDExLjgxNDcgMjkuMzMxNCAxMi4yODhDMjguOTI4NiAxMi42MDk5IDI4LjcwODkgMTMuMDI2NSAyOC43MDg5IDEzLjUzNzdDMjguNzA4OSAxNC4wMTExIDI4LjkxMDMgMTQuNDI3NiAyOS4yOTQ4IDE0Ljc0OTVDMjkuNzcwOCAxNS4xODUgMzAuOTc5MiAxNS42Mzk1IDMyLjg2NTEgMTYuMTEyOEMzNC43NTA5IDE2LjU2NzIgMzYuMTYwOCAxNy4wNDA2IDM3LjA1NzkgMTcuNTUxOEMzNy45NTUxIDE4LjA0NDEgMzguNjY5MSAxOC43MjU4IDM5LjE4MTggMTkuNTc3OEMzOS42OTQ0IDIwLjQ0ODggMzkuOTUwOCAyMS40OTAyIDM5Ljk1MDggMjIuNzU4OUMzOS45NTA4IDIzLjg5NDkgMzkuNjM5NSAyNC45NzQyIDM5LjAxNyAyNS45Nzc3QzM4LjQxMjggMjYuOTgxMyAzNy41MzQgMjcuNzE5NyAzNi40MTcxIDI4LjE5MzFDMzUuMzAwMiAyOC42ODU0IDMzLjkwODcgMjguOTEyNiAzMi4yMjQzIDI4LjkxMjZDMjkuNzg5MSAyOC45MTI2IDI3LjkwMzMgMjguMzI1NiAyNi42MDMzIDI3LjE3MDZDMjUuMjY2OCAyNS45OTY3IDI0LjQ3OTUgMjQuMjkyNiAyNC4yMjMxIDIyLjA3NzJaTTQ5LjU4MTQgMTQuMDY3OVYxNy4wOTc0SDQ3LjA1NDhWMjIuOTY3MUM0Ny4wNTQ4IDI0LjE0MTEgNDcuMDczMSAyNC44NDE3IDQ3LjEwOTcgMjUuMDQ5OUM0Ny4xNjQ2IDI1LjIzOTMgNDcuMjc0NSAyNS40MDk3IDQ3LjQ1NzYgMjUuNTQyMkM0Ny42MjIzIDI1LjY3NDggNDcuODIzNyAyNS43MzE2IDQ4LjA4MDEgMjUuNzMxNkM0OC40MjggMjUuNzMxNiA0OC45MjIzIDI1LjU5OSA0OS41NjMxIDI1LjM3MThMNDkuODc0NCAyOC4zNDQ2QzQ5LjAxMzkgMjguNzIzMiA0OC4wNjE4IDI4LjkxMjYgNDYuOTYzMiAyOC45MTI2QzQ2LjMwNDEgMjguOTEyNiA0NS42OTk5IDI4Ljc5OSA0NS4xNjg5IDI4LjU3MThDNDQuNjM3OSAyOC4zNDQ2IDQ0LjIzNTEgMjguMDQxNiA0My45Nzg4IDI3LjY2MjlDNDMuNzQwOCAyNy4zMDMyIDQzLjU1NzcgMjYuNzkxOSA0My40NjYxIDI2LjE2NzFDNDMuMzkyOSAyNS43MTI2IDQzLjM1NjMgMjQuODIyNyA0My4zNTYzIDIzLjQ1OTRWMTcuMTE2NEg0MS42NzE4VjE0LjA4NjhINDMuMzU2M1YxMS4yMDg4TDQ3LjA1NDggOC45NTU1NVYxNC4wODY4SDQ5LjU4MTRWMTQuMDY3OVpNNTQuOTI3NyAxOC41MzY0TDUxLjU3NzEgMTcuOTMwNUM1MS45NjE2IDE2LjUxMDQgNTIuNjAyNSAxNS40NjkgNTMuNTE3OSAxNC43ODc0QzU0LjQ1MTcgMTQuMTI0NyA1NS44MjQ5IDEzLjc4MzkgNTcuNjM3NSAxMy43ODM5QzU5LjI4NTMgMTMuNzgzOSA2MC41MTIxIDEzLjk3MzIgNjEuMzE3NyAxNC4zODk4QzYyLjEyMzMgMTQuNzg3NCA2Mi42OTA5IDE1LjI5ODYgNjMuMDIwNCAxNS45MjM1QzYzLjM1IDE2LjU0ODMgNjMuNTE0OCAxNy42ODQ0IDYzLjUxNDggMTkuMzMxN0w2My40NTk4IDIzLjgwMDNDNjMuNDU5OCAyNS4wNjg5IDYzLjUxNDggMjUuOTk2NyA2My42NDI5IDI2LjYwMjZDNjMuNzUyOCAyNy4yMDg1IDYzLjk5MDggMjcuODcxMiA2NC4zMDIxIDI4LjU1MjhINjAuNjQwMkM2MC41MzA0IDI4LjMwNjcgNjAuNDIwNSAyNy45MjggNjAuMjkyMyAyNy40MzU3QzYwLjIzNzQgMjcuMjA4NSA2MC4xODI1IDI3LjA1NyA2MC4xNDU5IDI2Ljk4MTNDNTkuNTIzNCAyNy42MjUgNTguODQ1OSAyOC4wOTg0IDU4LjEzMTkgMjguNDIwM0M1Ny40MTc4IDI4Ljc0MjIgNTYuNjQ4OCAyOC44OTM3IDU1Ljg0MzIgMjguODkzN0M1NC40MTUxIDI4Ljg5MzcgNTMuMjc5OSAyOC40OTYgNTIuNDU2IDI3LjY4MThDNTEuNjMyMSAyNi44ODY2IDUxLjIxMSAyNS44NjQxIDUxLjIxMSAyNC42MTQ0QzUxLjIxMSAyMy44MDAzIDUxLjM5NDEgMjMuMDgwNyA1MS43Nzg1IDIyLjQzN0M1Mi4xNjMgMjEuODEyMSA1Mi42NzU3IDIxLjMwMDkgNTMuMzcxNCAyMC45NjAxQzU0LjA0ODkgMjAuNjM4MiA1NS4wMTkzIDIwLjMzNTIgNTYuMzAwOSAyMC4wNzAxQzU4LjAyMiAxOS43NDgzIDU5LjIzMDQgMTkuNDI2NCA1OS44ODk1IDE5LjE0MjNWMTguNzYzN0M1OS44ODk1IDE4LjAwNjMgNTkuNzA2NSAxNy40OTUgNTkuMzc2OSAxNy4xNzMyQzU5LjAyOSAxNi44NTEzIDU4LjM1MTYgMTYuNjgwOSA1Ny4zODEyIDE2LjY4MDlDNTYuNzIyIDE2LjY4MDkgNTYuMjA5NCAxNi44MzIzIDU1Ljg0MzIgMTcuMDk3NEM1NS40NDA0IDE3LjM4MTQgNTUuMTQ3NCAxNy44NTQ4IDU0LjkyNzcgMTguNTM2NFpNNTkuODg5NSAyMS42NDE3QzU5LjQxMzUgMjEuNzkzMiA1OC42NjI4IDIyLjAwMTUgNTcuNjM3NSAyMi4yMjg3QzU2LjYxMjIgMjIuNDU1OSA1NS45NTMxIDIyLjY4MzEgNTUuNjIzNSAyMi44OTE0QzU1LjE0NzQgMjMuMjUxMiA1NC44OTExIDIzLjY4NjYgNTQuODkxMSAyNC4yMzU3QzU0Ljg5MTEgMjQuNzg0OSA1NS4wNzQyIDI1LjIzOTMgNTUuNDc3IDI1LjYzNjlDNTUuODYxNSAyNi4wMzQ1IDU2LjMzNzUgMjYuMjIzOSA1Ni45NDE3IDI2LjIyMzlDNTcuNjE5MiAyNi4yMjM5IDU4LjI2IDI1Ljk5NjcgNTguODY0MiAyNS41NDIyQzU5LjMwMzYgMjUuMjAxNCA1OS41OTY2IDI0Ljc4NDkgNTkuNzQzMSAyNC4yNzM2QzU5LjgzNDYgMjMuOTUxNyA1OS44ODk1IDIzLjMwOCA1OS44ODk1IDIyLjM5OTFWMjEuNjQxN1pNNjUuNTQ3MSAxNC4wNjc5SDY3LjU5NzdWMTIuOTg4NkM2Ny41OTc3IDExLjc1NzkgNjcuNzI1OSAxMC44Njc5IDY3Ljk4MjIgMTAuMjYyQzY4LjIzODYgOS42NTYxMyA2OC42OTYzIDkuMTYzODMgNjkuMzczNyA4Ljc4NTE0QzcwLjA1MTIgOC40MDY0NSA3MC45MTE3IDguMjE3MSA3MS45MzcgOC4yMTcxQzcyLjk5OSA4LjIxNzEgNzQuMDQyNiA4LjM2ODU4IDc1LjA0OTYgOC43MDk0TDc0LjU3MzYgMTEuMzYwMkM3My45Njk0IDExLjIwODggNzMuMzgzNSAxMS4xMzMgNzIuODUyNSAxMS4xMzNDNzIuMzAzMiAxMS4xMzMgNzEuOTE4NyAxMS4yNjU2IDcxLjY2MjQgMTEuNTMwN0M3MS40MDYxIDExLjc5NTcgNzEuMzE0NSAxMi4yODggNzEuMzE0NSAxMy4wNDU0VjE0LjA2NzlINzQuMDc5MlYxNy4wNzg1SDcxLjMxNDVWMjguNTMzOUg2Ny42MTZWMTcuMDc4NUg2NS41NjU0VjE0LjA2NzlINjUuNTQ3MVpNNzQuNTE4NiAxNC4wNjc5SDc2LjU2OTNWMTIuOTg4NkM3Ni41NjkzIDExLjc1NzkgNzYuNjk3NCAxMC44Njc5IDc2Ljk1MzggMTAuMjYyQzc3LjIxMDEgOS42NTYxMyA3Ny42Njc4IDkuMTYzODMgNzguMzQ1MyA4Ljc4NTE0Qzc5LjAyMjcgOC40MDY0NSA3OS44ODMyIDguMjE3MSA4MC45MDg2IDguMjE3MUM4MS45NzA1IDguMjE3MSA4My4wMTQxIDguMzY4NTggODQuMDIxMSA4LjcwOTRMODMuNTQ1MSAxMS4zNjAyQzgyLjk0MDkgMTEuMjA4OCA4Mi4zNTUgMTEuMTMzIDgxLjgwNTcgMTEuMTMzQzgxLjI1NjQgMTEuMTMzIDgwLjg3MTkgMTEuMjY1NiA4MC42MTU2IDExLjUzMDdDODAuMzk1OSAxMS43OTU3IDgwLjI2NzcgMTIuMjg4IDgwLjI2NzcgMTMuMDQ1NFYxNC4wNjc5SDgzLjAzMjRWMTcuMDc4NUg4MC4yNjc3VjI4LjUzMzlINzYuNTY5M1YxNy4wNzg1SDc0LjUxODZWMTQuMDY3OVoiIGZpbGw9ImJsYWNrIi8+DQo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTk4LjY0OTggNS4yNDQ3N0M5Ny45NTQgMi43ODMyOCA5NS42NDcxIDIuNDA0NTkgOTMuNzI0NiAzLjc2Nzg4QzkxLjc0NzIgNS4xNjkwMyA5MC40Mjg5IDguMTk4NTcgOTEuMTA2NCAxMC42MjIyQzkxLjgwMjEgMTMuMDgzNyA5NC4xMDkxIDEzLjQ2MjQgOTYuMDMxNiAxMi4xMThDOTguMDA5IDEwLjcxNjkgOTkuMzI3MiA3LjY2ODQgOTguNjQ5OCA1LjI0NDc3WiIgZmlsbD0iI0YzNzU0MCIvPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05MS4xNDI4IDI3LjgxNDlDOTEuOTMwMSAyNy4xMTQzIDkyLjk3MzggMjYuNDUxNiA5My44MTYgMjUuODgzNkw5NS40NjM4IDI0LjgyMzJDOTcuODQ0IDIwLjAzMjggMTAxLjA0OCAxNS41NDUzIDEwNC40MTcgMTEuNDU1NEMxMDcuNDkzIDcuNjg3NDQgMTExLjA4MiAzLjc0OTA1IDExNSAwLjkwODg2TDExNC4zNDEgMEMxMTAuMTQ4IDIuMjkxMDggMTA2LjMwMyA1LjQxNTI5IDEwMi44NDIgOC43NjY3MUM5OS4xOTg5IDEyLjMwNzUgOTUuODQ4MyAxNi4yMjY5IDkzLjE1NjggMjAuNTgxOUw5My4wNDcgMjAuNzMzNEw5Mi4yNzggMTkuMDY3MUM5MS43MTA0IDE3Ljg1NTMgOTAuMTM1OCAxNC42NTU0IDg4LjU0MjkgMTQuNjU1NEM4Ni45NSAxNC42NTU0IDg1LjQzMDMgMTUuODI5MyA4NC4zMTM1IDE2Ljk0NjRDODUuMzAyMiAxNy4zMDYyIDg2LjEyNjEgMTcuOTg3OCA4Ni43ODUyIDE4LjgyMUM4Ny44MTA1IDIwLjA3MDYgODguNjM0NSAyMS43NzQ4IDg5LjI5MzYgMjMuMjcwNkw4OS45MTYxIDI0LjY3MTdDOTAuMzE4OSAyNS42NzUzIDkwLjgxMzMgMjYuNzkyNCA5MS4xNDI4IDI3LjgxNDlaIiBmaWxsPSIjRjM3NTQwIi8+DQo8L3N2Zz4NCg==';
|
|
36855
|
-
this.itemsPerRow = 4;
|
|
36856
|
-
this.iconTextVerticalMargin = 25;
|
|
36857
|
-
this.items = [[]];
|
|
36858
|
-
this.zIndex = 1;
|
|
36859
|
-
this.imageErrorResolverType = EnumImageResolverType.LOGO;
|
|
36860
|
-
this.headerHeight = 0;
|
|
36861
|
-
this.width = 400;
|
|
36862
|
-
this.layoutService.modulePanelWidth$.subscribe(x => this.width = x);
|
|
36863
|
-
}
|
|
36864
|
-
ngOnInit() {
|
|
36865
|
-
this.subscriptions.push(this.mls.lang$.subscribe(x => this.lang = x));
|
|
36866
|
-
this.subscriptions.push(this.authService.data$.subscribe(x => this.isRoot = !!x?.isRoot));
|
|
36867
|
-
this.scrollWidth = this.layoutService.modulePanelWidth$.value - this.layoutService.basicSpacing * 2;
|
|
36868
|
-
this.scrollHeight = window.innerHeight - this.layoutService.headerHeight$.value - this.layoutService.basicSpacing * 2;
|
|
36869
|
-
this.itemWidth = this.scrollWidth / 4;
|
|
36870
|
-
}
|
|
36871
|
-
transformTo2DArray(flatList) {
|
|
36872
|
-
const result = [];
|
|
36873
|
-
for (let i = 0; i < flatList.length; i += this.itemsPerRow) {
|
|
36874
|
-
const row = flatList.slice(i, i + this.itemsPerRow);
|
|
36875
|
-
// If the last row has fewer than itemsPerRow, pad it with undefineds
|
|
36876
|
-
while (row.length < this.itemsPerRow) {
|
|
36877
|
-
row.push(undefined);
|
|
36878
|
-
}
|
|
36879
|
-
result.push(row);
|
|
36880
|
-
}
|
|
36881
|
-
return result;
|
|
36882
|
-
}
|
|
36883
|
-
ngAfterViewInit() {
|
|
36884
|
-
setTimeout(() => {
|
|
36885
|
-
this.designMode = localStorage.getItem('moduleDesignMode') === 'on';
|
|
36886
|
-
this.zIndex = this.domService.getMaxZIndex() + 1;
|
|
36887
|
-
// this.listenerFn = this.renderer.listen('window', 'click', (e: Event) => {
|
|
36888
|
-
// if (!this.designMode) {
|
|
36889
|
-
// if (this.container && !!!this.container.nativeElement.contains(e.target)) {
|
|
36890
|
-
// this.ahs.activeKey$.next(undefined);
|
|
36891
|
-
// }
|
|
36892
|
-
// }
|
|
36893
|
-
// });
|
|
36894
|
-
this.subscriptions.push(this.navigatorService.rootNavigatorItems$.subscribe(x => {
|
|
36895
|
-
// Transform the flat list into a 2D array
|
|
36896
|
-
this.items = this.transformTo2DArray(x);
|
|
36897
|
-
}));
|
|
36898
|
-
this.subscriptions.push(this.layoutService.headerHeight$.subscribe(x => {
|
|
36899
|
-
this.headerHeight = x;
|
|
36900
|
-
}));
|
|
36901
|
-
if (!!localStorage) {
|
|
36902
|
-
const activeRootMenuItemId = Number(localStorage.getItem('activeRootMenuItemId') || '0');
|
|
36903
|
-
this.navigatorService.activeRootMenuItemId$.next(activeRootMenuItemId);
|
|
36904
|
-
}
|
|
36905
|
-
if (window.innerWidth < this.layoutService.modulePanelWidth$.value) {
|
|
36906
|
-
this.layoutService.modulePanelWidth$.next(window.innerWidth);
|
|
36907
|
-
}
|
|
36908
|
-
});
|
|
36909
|
-
}
|
|
36910
|
-
onDesignModeClick(e) {
|
|
36911
|
-
e.stopPropagation();
|
|
36912
|
-
if (localStorage.getItem('moduleDesignMode') === 'on') {
|
|
36913
|
-
localStorage.setItem('moduleDesignMode', 'off');
|
|
36914
|
-
this.designMode = false;
|
|
36915
|
-
}
|
|
36916
|
-
else {
|
|
36917
|
-
localStorage.setItem('moduleDesignMode', 'on');
|
|
36918
|
-
this.designMode = true;
|
|
36919
|
-
}
|
|
36920
|
-
}
|
|
36921
|
-
ngOnDestroy() {
|
|
36922
|
-
this.subscriptions.map(x => x?.unsubscribe());
|
|
36923
|
-
if (this.listenerFn)
|
|
36924
|
-
this.listenerFn();
|
|
36925
|
-
}
|
|
36926
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerComponent, deps: [{ token: MultiLanguageService }, { token: ApplicationHelpService }, { token: i0.Renderer2 }, { token: NavigatorService }, { token: LayoutService }, { token: DomService }, { token: MenuService }, { token: SysMenuService }, { token: AuthService }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36927
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreRootMenuItemPickerComponent, isStandalone: true, selector: "core-root-menu-item-picker", inputs: { logoPath: "logoPath", itemsPerRow: "itemsPerRow", iconTextVerticalMargin: "iconTextVerticalMargin" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-root-menu-item-picker-container\" [ngStyle]=\"{\r\n zIndex: zIndex,\r\n}\">\r\n <div class=\"mudule-picker-header d-flex d-flex-between\" [ngStyle]=\"{\r\n height: 59 + 'px'\r\n }\">\r\n <div class=\"HEADER_LOGO\">\r\n <div class=\"logo-wrapper d-flex\">\r\n <img src=\"logoPath\" class=\"lg\" [ngStyle]=\"{\r\n width: '130px',\r\n height: '59px',\r\n transform: 'translate(0, -5px)'\r\n }\" appImageErrorResolver [type]=\"imageErrorResolverType\">\r\n </div>\r\n </div>\r\n @if (!!isRoot) {\r\n <i \r\n [class.feather-square]=\"!designMode\" \r\n [class.feather-play]=\"!!designMode\" \r\n class=\"stop-mode-icon\" \r\n (click)=\"onDesignModeClick($event)\"\r\n [appTooltip]=\"!designMode ? 'Chuy\u1EC3n sang ch\u1EBF \u0111\u1ED9 thi\u1EBFt k\u1EBF' : 'Chuy\u1EC3n v\u1EC1 ch\u1EBF \u0111\u1ED9 b\u00ECnh th\u01B0\u1EDDng'\"\r\n ></i>\r\n }\r\n </div>\r\n\r\n <div class=\"header-bottom\" [ngStyle]=\"{\r\n width: width + 'px'\r\n }\">\r\n <core-line></core-line>\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n\r\n <div class=\"scroll\" [ngStyle]=\"{\r\n width: width + 'px',\r\n height: scrollHeight + 'px'\r\n }\">\r\n @for (row of items; track $index) {\r\n <div class=\"menu-row\">\r\n @for (item of row; track $index) {\r\n <app-module-item [$item]=\"item\" [$width]=\"itemWidth\" [$height]=\"100\" [$iconTextVerticalMargin]=\"iconTextVerticalMargin\"></app-module-item>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-root-menu-item-picker-container .header-bottom{position:absolute;top:59px;left:0}.core-root-menu-item-picker-container .scroll{overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;-ms-overflow-style:none}.core-root-menu-item-picker-container .scroll::-webkit-scrollbar{display:none}.core-root-menu-item-picker-container .menu-row{display:flex;flex-wrap:nowrap;justify-content:space-between}.core-root-menu-item-picker-container .stop-mode-icon{cursor:pointer;width:24px;height:24px;font-size:24px}\n"], dependencies: [{ kind: "component", type: CoreLineComponent, selector: "core-line" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ModuleItemComponent, selector: "app-module-item", inputs: ["$item", "$itemPadding", "$width", "$height", "$iconTextVerticalMargin"] }, { kind: "directive", type: ImageErrorResolverDirective, selector: "[appImageErrorResolver]", inputs: ["type", "isFemale"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }] }); }
|
|
36928
|
-
}
|
|
36929
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerComponent, decorators: [{
|
|
36930
|
-
type: Component,
|
|
36931
|
-
args: [{ selector: 'core-root-menu-item-picker', imports: [
|
|
36932
|
-
CoreLineComponent,
|
|
36933
|
-
NgStyle,
|
|
36934
|
-
ModuleItemComponent,
|
|
36935
|
-
ImageErrorResolverDirective,
|
|
36936
|
-
TooltipDirective,
|
|
36937
|
-
], template: "<div #container class=\"core-root-menu-item-picker-container\" [ngStyle]=\"{\r\n zIndex: zIndex,\r\n}\">\r\n <div class=\"mudule-picker-header d-flex d-flex-between\" [ngStyle]=\"{\r\n height: 59 + 'px'\r\n }\">\r\n <div class=\"HEADER_LOGO\">\r\n <div class=\"logo-wrapper d-flex\">\r\n <img src=\"logoPath\" class=\"lg\" [ngStyle]=\"{\r\n width: '130px',\r\n height: '59px',\r\n transform: 'translate(0, -5px)'\r\n }\" appImageErrorResolver [type]=\"imageErrorResolverType\">\r\n </div>\r\n </div>\r\n @if (!!isRoot) {\r\n <i \r\n [class.feather-square]=\"!designMode\" \r\n [class.feather-play]=\"!!designMode\" \r\n class=\"stop-mode-icon\" \r\n (click)=\"onDesignModeClick($event)\"\r\n [appTooltip]=\"!designMode ? 'Chuy\u1EC3n sang ch\u1EBF \u0111\u1ED9 thi\u1EBFt k\u1EBF' : 'Chuy\u1EC3n v\u1EC1 ch\u1EBF \u0111\u1ED9 b\u00ECnh th\u01B0\u1EDDng'\"\r\n ></i>\r\n }\r\n </div>\r\n\r\n <div class=\"header-bottom\" [ngStyle]=\"{\r\n width: width + 'px'\r\n }\">\r\n <core-line></core-line>\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n\r\n <div class=\"scroll\" [ngStyle]=\"{\r\n width: width + 'px',\r\n height: scrollHeight + 'px'\r\n }\">\r\n @for (row of items; track $index) {\r\n <div class=\"menu-row\">\r\n @for (item of row; track $index) {\r\n <app-module-item [$item]=\"item\" [$width]=\"itemWidth\" [$height]=\"100\" [$iconTextVerticalMargin]=\"iconTextVerticalMargin\"></app-module-item>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-root-menu-item-picker-container .header-bottom{position:absolute;top:59px;left:0}.core-root-menu-item-picker-container .scroll{overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;-ms-overflow-style:none}.core-root-menu-item-picker-container .scroll::-webkit-scrollbar{display:none}.core-root-menu-item-picker-container .menu-row{display:flex;flex-wrap:nowrap;justify-content:space-between}.core-root-menu-item-picker-container .stop-mode-icon{cursor:pointer;width:24px;height:24px;font-size:24px}\n"] }]
|
|
36938
|
-
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: ApplicationHelpService }, { type: i0.Renderer2 }, { type: NavigatorService }, { type: LayoutService }, { type: DomService }, { type: MenuService }, { type: SysMenuService }, { type: AuthService }, { type: AppConfigService }], propDecorators: { logoPath: [{
|
|
36939
|
-
type: Input
|
|
36940
|
-
}], itemsPerRow: [{
|
|
36941
|
-
type: Input
|
|
36942
|
-
}], iconTextVerticalMargin: [{
|
|
36943
|
-
type: Input
|
|
36944
|
-
}], container: [{
|
|
36945
|
-
type: ViewChild,
|
|
36946
|
-
args: ['container']
|
|
36947
|
-
}] } });
|
|
36948
|
-
|
|
36949
|
-
class CoreRootMenuItemPickerService {
|
|
36950
|
-
constructor() { }
|
|
36951
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36952
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerService, providedIn: 'root' }); }
|
|
36953
|
-
}
|
|
36954
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerService, decorators: [{
|
|
36955
|
-
type: Injectable,
|
|
36956
|
-
args: [{
|
|
36957
|
-
providedIn: 'root'
|
|
36958
|
-
}]
|
|
36959
|
-
}], ctorParameters: () => [] });
|
|
36960
|
-
|
|
36961
|
-
class ComPartyService {
|
|
36962
|
-
constructor(recursiveService, alertService) {
|
|
36963
|
-
this.recursiveService = recursiveService;
|
|
36964
|
-
this.alertService = alertService;
|
|
36965
|
-
this.instances = [];
|
|
36966
|
-
this.loading = true;
|
|
36967
|
-
this.comTreeData$ = new BehaviorSubject([]);
|
|
36968
|
-
this.comTreeDataWithPeople$ = new BehaviorSubject([]);
|
|
36969
|
-
this.linerData$ = new BehaviorSubject([]);
|
|
36970
|
-
this.buildTreeFlag$ = new BehaviorSubject(false);
|
|
36971
|
-
this.status$ = new BehaviorSubject({
|
|
36972
|
-
selectedKey: undefined,
|
|
36973
|
-
activeKeys: [],
|
|
36974
|
-
checkedKeys: [],
|
|
36975
|
-
expandedKeys: [],
|
|
36976
|
-
checkInheritance: true
|
|
36977
|
-
});
|
|
36978
|
-
this.linerData$.subscribe(xs => {
|
|
36979
|
-
const idCountMap = new Map();
|
|
36980
|
-
xs.forEach(item => {
|
|
36981
|
-
const id = item.id;
|
|
36982
|
-
idCountMap.set(id, (idCountMap.get(id) ?? 0) + 1);
|
|
36983
|
-
});
|
|
36984
|
-
const duplicates = Array.from(idCountMap.entries())
|
|
36985
|
-
.filter(([_, count]) => count > 1)
|
|
36986
|
-
.map(([id]) => id);
|
|
36987
|
-
if (!!duplicates.length) {
|
|
36988
|
-
if (isDevMode()) {
|
|
36989
|
-
alertService.error('🔁 Duplicate IDs: ' + duplicates.reduce((a, c) => a + ";" + c, ''), alertOptions);
|
|
36990
|
-
}
|
|
36991
|
-
}
|
|
36992
|
-
});
|
|
36993
|
-
}
|
|
36994
|
-
buildTreeData(status = {
|
|
36995
|
-
selectedKey: undefined,
|
|
36996
|
-
activeKeys: [],
|
|
36997
|
-
checkedKeys: [],
|
|
36998
|
-
expandedKeys: [],
|
|
36999
|
-
checkInheritance: true
|
|
37000
|
-
}) {
|
|
37001
|
-
this.loading = true;
|
|
37002
|
-
const cloneCopy = JSON.parse(JSON.stringify(this.linerData$.value));
|
|
37003
|
-
if (typeof Worker !== 'undefined') {
|
|
37004
|
-
// Create a new
|
|
37005
|
-
console.log("🟢🟢 Worker works");
|
|
37006
|
-
const worker = new Worker(liner_to_nested_array_script);
|
|
37007
|
-
worker.addEventListener('message', ({ data }) => {
|
|
37008
|
-
const newData = data.list;
|
|
37009
|
-
this.comTreeData$.next(newData);
|
|
37010
|
-
this.loading = false;
|
|
37011
|
-
});
|
|
37012
|
-
worker.postMessage({
|
|
37013
|
-
list: cloneCopy,
|
|
37014
|
-
keyField: 'id',
|
|
37015
|
-
titleField: 'name',
|
|
37016
|
-
parentField: 'parentId',
|
|
37017
|
-
activeField: 'active',
|
|
37018
|
-
checkedField: 'checked',
|
|
37019
|
-
expandedField: 'expand',
|
|
37020
|
-
status
|
|
37021
|
-
});
|
|
37022
|
-
}
|
|
37023
|
-
else {
|
|
37024
|
-
// Web workers are not supported in this environment.
|
|
37025
|
-
// You should add a fallback so that your program still executes correctly.
|
|
37026
|
-
this.recursiveService
|
|
37027
|
-
.linerArrayToNestedArray(cloneCopy, 'id', 'name', 'parentId', 'active', 'checked', 'expand', status)
|
|
37028
|
-
.subscribe((obj) => {
|
|
37029
|
-
const newData = obj.list;
|
|
37030
|
-
this.comTreeData$.next(newData);
|
|
37031
|
-
this.loading = false;
|
|
37032
|
-
});
|
|
37033
|
-
}
|
|
37034
|
-
}
|
|
37035
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ComPartyService, deps: [{ token: RecursiveService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37036
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ComPartyService, providedIn: 'root' }); }
|
|
37037
|
-
}
|
|
37038
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ComPartyService, decorators: [{
|
|
37039
|
-
type: Injectable,
|
|
37040
|
-
args: [{
|
|
37041
|
-
providedIn: 'root'
|
|
37042
|
-
}]
|
|
37043
|
-
}], ctorParameters: () => [{ type: RecursiveService }, { type: AlertService }] });
|
|
37044
|
-
|
|
37045
|
-
class CoreComTreeComponent extends CoreFormControlBaseComponent {
|
|
37046
|
-
writeValue(obj) {
|
|
37047
|
-
this.value = obj;
|
|
37048
|
-
switch (this.accessorMode) {
|
|
37049
|
-
case EnumCoreOrgTreeaAccessorMode.CHECKED:
|
|
37050
|
-
if (!!obj) {
|
|
37051
|
-
const checkedKeys = [];
|
|
37052
|
-
this.checkedIds = obj; // <=== 24/10/2023
|
|
37053
|
-
obj.map(x => checkedKeys.push(x.toString()));
|
|
37054
|
-
this.loading = true;
|
|
37055
|
-
this.recursiveService.writeValueChecked(checkedKeys, this.data, this.disabledLoopExpand).subscribe(_ => {
|
|
37056
|
-
this.loading = false;
|
|
37057
|
-
if (!!this.data && !!this.data?.length)
|
|
37058
|
-
this.data[0].tree$Expanded = true;
|
|
37059
|
-
});
|
|
37060
|
-
}
|
|
37061
|
-
break;
|
|
37062
|
-
case EnumCoreOrgTreeaAccessorMode.ACTIVATED_SINGLE:
|
|
37063
|
-
case EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE:
|
|
37064
|
-
if (!!obj) {
|
|
37065
|
-
const activatedKeys = [];
|
|
37066
|
-
obj.map(x => activatedKeys.push(x.toString()));
|
|
37067
|
-
this.loading = true;
|
|
37068
|
-
this.recursiveService.writeValueActivated(activatedKeys, this.data, this.disabledLoopExpand).subscribe(_ => {
|
|
37069
|
-
this.loading = false;
|
|
37070
|
-
if (!!this.data && !!this.data?.length)
|
|
37071
|
-
this.data[0].tree$Expanded = true;
|
|
37072
|
-
});
|
|
37073
|
-
}
|
|
37074
|
-
break;
|
|
37075
|
-
default:
|
|
37076
|
-
break;
|
|
37077
|
-
}
|
|
37078
|
-
if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.CHECKED) {
|
|
37079
|
-
}
|
|
37080
|
-
else /* EnumCoreOrgTreeaAccessorMode.ACTIVATED_SINGLE or EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE */ {
|
|
37081
|
-
}
|
|
37082
|
-
}
|
|
37083
|
-
setDisabledState(disabled) {
|
|
37084
|
-
this.disabled = disabled;
|
|
37085
|
-
}
|
|
37086
|
-
constructor(
|
|
37087
|
-
//public override injector: Injector,
|
|
37088
|
-
authService, recursiveService, mls, layoutService, coreOrgTreeService,
|
|
37089
|
-
// private coreOrgTreeState: CoreOrgTreeState,
|
|
37090
|
-
alertService, organizationService) {
|
|
37091
|
-
super( /*injector*/);
|
|
37092
|
-
this.authService = authService;
|
|
37093
|
-
this.recursiveService = recursiveService;
|
|
37094
|
-
this.mls = mls;
|
|
37095
|
-
this.layoutService = layoutService;
|
|
37096
|
-
this.coreOrgTreeService = coreOrgTreeService;
|
|
37097
|
-
this.alertService = alertService;
|
|
37098
|
-
this.organizationService = organizationService;
|
|
37099
|
-
this.lineColor = 'transparent';
|
|
37100
|
-
this.accessorMode = EnumCoreOrgTreeaAccessorMode.CHECKED;
|
|
37101
|
-
//TO BE NEW
|
|
37102
|
-
this.searchMode = EnumCoreOrgTreeaSearchMode.REDUCE;
|
|
37103
|
-
this.excludedIds$ = new BehaviorSubject([]); // 2024-05-10: to be implemented
|
|
37104
|
-
this.stateIsolated$ = new BehaviorSubject(false);
|
|
37105
|
-
this.itemDoubleClick = new EventEmitter();
|
|
37106
|
-
this.itemClick = new EventEmitter();
|
|
37107
|
-
this.showSearch = false;
|
|
37108
|
-
this.hiddenToolClickStream$ = new BehaviorSubject('');
|
|
37109
|
-
this.value = [];
|
|
37110
|
-
this.activeIds = [];
|
|
37111
|
-
this.checkedIds = [];
|
|
37112
|
-
this.subscriptions = [];
|
|
37113
|
-
this.search$ = new Subject();
|
|
37114
|
-
this.searchPlaceholder = "Tìm kiếm...";
|
|
37115
|
-
this.checkInheritance = true; // default value is true
|
|
37116
|
-
this.showDissolved = false; // default value is false
|
|
37117
|
-
this.initializing = true;
|
|
37118
|
-
// this.reduced$ = this.coreOrgTreeState.coreOrgTreeReduced$;
|
|
37119
|
-
this.initializing = false;
|
|
37120
|
-
}
|
|
37121
|
-
ngOnChanges(changes) {
|
|
37122
|
-
if (changes['height']) {
|
|
37123
|
-
this.resizeHeight();
|
|
37124
|
-
}
|
|
37125
|
-
}
|
|
37126
|
-
ngOnInit() {
|
|
37127
|
-
super.register();
|
|
37128
|
-
//this.layoutService.leftbarOpen$.next(false);
|
|
37129
|
-
this.instanceNumber = new Date().getTime();
|
|
37130
|
-
const newInstance = {
|
|
37131
|
-
instanceNumber: this.instanceNumber,
|
|
37132
|
-
selectedKey$: new BehaviorSubject(undefined),
|
|
37133
|
-
activeKeys$: new BehaviorSubject([]),
|
|
37134
|
-
checkedKeys$: new BehaviorSubject([]),
|
|
37135
|
-
expandedKeys$: new BehaviorSubject([]),
|
|
37136
|
-
checkInheritance$: new BehaviorSubject(true)
|
|
37137
|
-
};
|
|
37138
|
-
this.organizationService.instances.push(newInstance);
|
|
37139
|
-
// Check xem chiều cao height có được truyền vào hay không
|
|
37140
|
-
if (this.height === undefined) {
|
|
37141
|
-
if (isDevMode()) {
|
|
37142
|
-
//this.alertService.warn("CoreOrgTree không nhận được chiều cao (height) truyền vào từ lớp ngoài. Chiều cao mặc định sẽ được tính toán dựa vào bố cục chính.", alertOptions);
|
|
37143
|
-
}
|
|
37144
|
-
this.subscriptions.push(this.layoutService.contentContainerHeight$.subscribe(x => {
|
|
37145
|
-
// basicSpacing là paddingBottom của lớp content-container
|
|
37146
|
-
this.height = x - this.layoutService.corePageHeaderHeight - this.layoutService.basicSpacing;
|
|
37147
|
-
}));
|
|
37148
|
-
}
|
|
37149
|
-
this.subscriptions.push(this.organizationService.linerData$.subscribe((x) => {
|
|
37150
|
-
this.linnerOrgArray = x;
|
|
37151
|
-
}));
|
|
37152
|
-
this.subscriptions.push(this.organizationService.buildTreeFlag$.pipe(skip(1)).subscribe(_ => {
|
|
37153
|
-
this.buildTreeData();
|
|
37154
|
-
}));
|
|
37155
|
-
this.subscriptions.push(this.stateIsolated$.subscribe(x => {
|
|
37156
|
-
if (x) {
|
|
37157
|
-
if (!!this.statusSubscription) {
|
|
37158
|
-
this.statusSubscription.unsubscribe();
|
|
37159
|
-
}
|
|
37160
|
-
}
|
|
37161
|
-
else {
|
|
37162
|
-
if (!this.statusSubscription) {
|
|
37163
|
-
this.statusSubscription = this.organizationService.status$.subscribe((x) => {
|
|
37164
|
-
console.log("this.organizationService.status$ changes", x);
|
|
37165
|
-
const newActiveIds = [];
|
|
37166
|
-
x.activeKeys.map((k) => {
|
|
37167
|
-
newActiveIds.push(Number(k));
|
|
37168
|
-
});
|
|
37169
|
-
this.activeIds = newActiveIds;
|
|
37170
|
-
if (this.accessorMode !== EnumCoreOrgTreeaAccessorMode.CHECKED) {
|
|
37171
|
-
this.value = this.activeIds;
|
|
37172
|
-
this.onChange(this.activeIds);
|
|
37173
|
-
}
|
|
37174
|
-
this.selectedKey = x.selectedKey;
|
|
37175
|
-
});
|
|
37176
|
-
}
|
|
37177
|
-
}
|
|
37178
|
-
}));
|
|
37179
|
-
this.subscriptions.push(this.coreOrgTreeService.showSearch$.subscribe(x => this.showSearch = x));
|
|
37180
|
-
this.subscriptions.push(this.hiddenToolClickStream$.pipe(buffer(this.hiddenToolClickStream$.pipe(debounceTime(250))), map$1(clicks => clicks.length), filter(clicksLength => clicksLength >= 5))
|
|
37181
|
-
.subscribe(_ => {
|
|
37182
|
-
this.coreOrgTreeService.showSearch$.next(!this.coreOrgTreeService.showSearch$.value);
|
|
37183
|
-
}));
|
|
37184
|
-
this.subscriptions.push(this.search$
|
|
37185
|
-
.pipe(filter((x) => x !== null), debounceTime(500), distinctUntilChanged(), switchMap((text) => {
|
|
37186
|
-
console.log('switchMap works');
|
|
37187
|
-
this.loading = true;
|
|
37188
|
-
// AUG 2024 NEW : MUST BE TESTED
|
|
37189
|
-
if (this.searchMode === EnumCoreOrgTreeaSearchMode.HIGHLIGHT) {
|
|
37190
|
-
return this.recursiveService.findItem(text, this.data);
|
|
37191
|
-
}
|
|
37192
|
-
else {
|
|
37193
|
-
return of(this.recursiveService.reducingFilter(this.scrollContainer, text));
|
|
37194
|
-
}
|
|
37195
|
-
}))
|
|
37196
|
-
.subscribe((x) => {
|
|
37197
|
-
this.loading = false;
|
|
37198
|
-
// if (this.searchMode === EnumCoreOrgTreeaSearchMode.REDUCE) {
|
|
37199
|
-
// this.dataFiltered = x as IOrgTreeItem[];
|
|
37200
|
-
// }
|
|
37201
|
-
}));
|
|
37202
|
-
this.subscriptions.push(this.organizationService.status$
|
|
37203
|
-
.pipe(filter((value) => !!!this.initializing && !!value))
|
|
37204
|
-
.subscribe((x) => {
|
|
37205
|
-
if (!!localStorage) {
|
|
37206
|
-
localStorage.setItem('coreOrgTreeStatus', JSON.stringify(x));
|
|
37207
|
-
}
|
|
37208
|
-
}));
|
|
37209
|
-
this.subscriptions.push(this.mls.lang$.subscribe((x) => (this.lang = x)));
|
|
37210
|
-
}
|
|
37211
|
-
resizeHeight() {
|
|
37212
|
-
// height is not given and the tree resize as standard
|
|
37213
|
-
if (!!!this.height) {
|
|
37214
|
-
const sizeHeaderHeight = Number(getComputedStyle(document.documentElement)
|
|
37215
|
-
.getPropertyValue('--size-header-height')
|
|
37216
|
-
.replace('px', ''));
|
|
37217
|
-
const sizeCorePageHeaderHeight = Number(getComputedStyle(document.documentElement)
|
|
37218
|
-
.getPropertyValue('--size-core-page-header-height')
|
|
37219
|
-
.replace('px', ''));
|
|
37220
|
-
const containerHeight = window.innerHeight - sizeHeaderHeight - sizeCorePageHeaderHeight;
|
|
37221
|
-
const pageHeaderHeight = Number(getComputedStyle(document.documentElement)
|
|
37222
|
-
.getPropertyValue('--size-core-page-header-height')
|
|
37223
|
-
.replace('px', ''));
|
|
37224
|
-
const paginationHeight = Number(getComputedStyle(document.documentElement)
|
|
37225
|
-
.getPropertyValue('--size-core-pagination-height')
|
|
37226
|
-
.replace('px', ''));
|
|
37227
|
-
const sizeMarginCorePaginationFull = Number(getComputedStyle(document.documentElement)
|
|
37228
|
-
.getPropertyValue('--size-margin-core-pagination')
|
|
37229
|
-
.replace('px', ''));
|
|
37230
|
-
const height = containerHeight - pageHeaderHeight - paginationHeight + sizeMarginCorePaginationFull;
|
|
37231
|
-
console.log(height);
|
|
37232
|
-
this.container?.nativeElement.style.setProperty('--height', height + 'px');
|
|
37233
|
-
}
|
|
37234
|
-
else {
|
|
37235
|
-
this.container?.nativeElement.style.setProperty('--height', this.height + 'px');
|
|
38495
|
+
class CoreLazyMountComponent {
|
|
38496
|
+
constructor() {
|
|
38497
|
+
this.vcRef = inject(ViewContainerRef);
|
|
38498
|
+
}
|
|
38499
|
+
set props(value) {
|
|
38500
|
+
this._props = value;
|
|
38501
|
+
this.assignInputs();
|
|
38502
|
+
}
|
|
38503
|
+
async ngOnInit() {
|
|
38504
|
+
if (this.loadComponent) {
|
|
38505
|
+
const componentType = await this.loadComponent();
|
|
38506
|
+
this.componentRef = this.vcRef.createComponent(componentType);
|
|
38507
|
+
this.assignInputs();
|
|
37236
38508
|
}
|
|
37237
38509
|
}
|
|
37238
|
-
|
|
37239
|
-
|
|
37240
|
-
this.
|
|
37241
|
-
|
|
37242
|
-
|
|
37243
|
-
console.log("new Data coming", this.data, new Date().getTime());
|
|
37244
|
-
if (!!this.data) {
|
|
37245
|
-
if (!!this.data.length)
|
|
37246
|
-
this.data[0].tree$Expanded = true;
|
|
37247
|
-
}
|
|
37248
|
-
}));
|
|
37249
|
-
this.subscriptions.push(this.coreOrgTreeService.arrowFontSize$.subscribe(x => {
|
|
37250
|
-
this.container?.nativeElement.style.setProperty('--arrow-font-size', x + 'px');
|
|
37251
|
-
}));
|
|
37252
|
-
this.subscriptions.push(this.coreOrgTreeService.titleWrapperMaxWidth$.pipe(filter(x => !!x)).subscribe(x => {
|
|
37253
|
-
this.container?.nativeElement.style.setProperty('--title-wrapper-max-width', x + 'px');
|
|
37254
|
-
}));
|
|
37255
|
-
this.subscriptions.push(this.organizationService.status$.subscribe(x => {
|
|
37256
|
-
if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE && !!x.activeKeys) {
|
|
37257
|
-
this.onChange(x.activeKeys.map(i => Number(i)));
|
|
37258
|
-
}
|
|
37259
|
-
else if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.ACTIVATED_SINGLE) {
|
|
37260
|
-
// tạm thời bỏ qua
|
|
37261
|
-
}
|
|
37262
|
-
else if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.CHECKED && !!x.checkedKeys) {
|
|
37263
|
-
this.onChange(x.checkedKeys.map(i => Number(i)));
|
|
37264
|
-
}
|
|
37265
|
-
}));
|
|
37266
|
-
});
|
|
38510
|
+
assignInputs() {
|
|
38511
|
+
if (this.componentRef && this._props) {
|
|
38512
|
+
Object.assign(this.componentRef.instance, this._props);
|
|
38513
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
38514
|
+
}
|
|
37267
38515
|
}
|
|
37268
|
-
|
|
37269
|
-
|
|
37270
|
-
|
|
38516
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreLazyMountComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38517
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: CoreLazyMountComponent, isStandalone: true, selector: "core-lazy-mount", inputs: { loadComponent: "loadComponent", props: "props" }, ngImport: i0, template: "", styles: [""] }); }
|
|
38518
|
+
}
|
|
38519
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreLazyMountComponent, decorators: [{
|
|
38520
|
+
type: Component,
|
|
38521
|
+
args: [{ selector: 'core-lazy-mount', imports: [], template: "" }]
|
|
38522
|
+
}], propDecorators: { loadComponent: [{
|
|
38523
|
+
type: Input
|
|
38524
|
+
}], props: [{
|
|
38525
|
+
type: Input
|
|
38526
|
+
}] } });
|
|
38527
|
+
|
|
38528
|
+
class ModuleItemComponent extends BaseComponent {
|
|
38529
|
+
constructor(mls, navigatorService, cdr, menuService) {
|
|
38530
|
+
super(mls);
|
|
38531
|
+
this.mls = mls;
|
|
38532
|
+
this.navigatorService = navigatorService;
|
|
38533
|
+
this.cdr = cdr;
|
|
38534
|
+
this.menuService = menuService;
|
|
38535
|
+
this.$item = input.required();
|
|
38536
|
+
this.$itemPadding = input(5);
|
|
38537
|
+
this.$width = input.required();
|
|
38538
|
+
this.$height = input.required();
|
|
38539
|
+
this.$iconTextVerticalMargin = input(25);
|
|
38540
|
+
this.$active = signal(false);
|
|
38541
|
+
this.iconClickStream$ = new BehaviorSubject('');
|
|
37271
38542
|
}
|
|
37272
|
-
|
|
37273
|
-
|
|
37274
|
-
|
|
37275
|
-
|
|
37276
|
-
|
|
38543
|
+
ngOnInit() {
|
|
38544
|
+
this.subscriptions.push(this.mls.lang$.subscribe(x => {
|
|
38545
|
+
this.lang = x;
|
|
38546
|
+
this.cdr.markForCheck();
|
|
38547
|
+
}));
|
|
38548
|
+
if (!!localStorage) {
|
|
38549
|
+
const activeRootMenuItemId = Number(localStorage.getItem('activeRootMenuItemId') || '0');
|
|
38550
|
+
const active = activeRootMenuItemId === this.$item()?.id;
|
|
38551
|
+
this.$active.set(active);
|
|
37277
38552
|
}
|
|
37278
|
-
this.linnerOrgArray = cloneCopy;
|
|
37279
|
-
setTimeout(() => this.buildTreeData());
|
|
37280
38553
|
}
|
|
37281
|
-
|
|
37282
|
-
|
|
37283
|
-
|
|
37284
|
-
|
|
37285
|
-
// // Create a new
|
|
37286
|
-
// console.log("🟢🟢 Worker works");
|
|
37287
|
-
// this.worker = new Worker(liner_to_nested_array_script);
|
|
37288
|
-
// this.worker.addEventListener('message', ({ data }) => {
|
|
37289
|
-
// this.data = data.list;
|
|
37290
|
-
// //this.dataFiltered = JSON.parse(JSON.stringify(data.list));
|
|
37291
|
-
// if (!!this.data && !!this.data?.length) this.data[0].tree$Expanded = true;
|
|
37292
|
-
// this.loading = false;
|
|
37293
|
-
// });
|
|
37294
|
-
// this.worker.postMessage({
|
|
37295
|
-
// list: cloneCopy,
|
|
37296
|
-
// keyField: 'id',
|
|
37297
|
-
// titleField: 'name',
|
|
37298
|
-
// parentField: 'parentId',
|
|
37299
|
-
// activeField: 'active',
|
|
37300
|
-
// //inheritantActiveField: 'inheritantActive',
|
|
37301
|
-
// checkedField: 'checked',
|
|
37302
|
-
// expandedField: 'expand',
|
|
37303
|
-
// });
|
|
37304
|
-
// } else {
|
|
37305
|
-
// // Web workers are not supported in this environment.
|
|
37306
|
-
// // You should add a fallback so that your program still executes correctly.
|
|
37307
|
-
// const status = this.organizationService.status$.value;
|
|
37308
|
-
// this.subscriptions.push(
|
|
37309
|
-
// this.recursiveService
|
|
37310
|
-
// .linerArrayToNestedArray(
|
|
37311
|
-
// cloneCopy,
|
|
37312
|
-
// 'id',
|
|
37313
|
-
// 'name',
|
|
37314
|
-
// 'parentId',
|
|
37315
|
-
// 'active',
|
|
37316
|
-
// 'checked',
|
|
37317
|
-
// 'expand',
|
|
37318
|
-
// //status
|
|
37319
|
-
// )
|
|
37320
|
-
// .subscribe((obj) => {
|
|
37321
|
-
// this.data = obj.list;
|
|
37322
|
-
// //this.dataFiltered = JSON.parse(JSON.stringify(obj.list));
|
|
37323
|
-
// if (!!this.data && !!this.data?.length) this.data[0].tree$Expanded = true;
|
|
37324
|
-
// this.loading = false;
|
|
37325
|
-
// })
|
|
37326
|
-
// );
|
|
37327
|
-
// }
|
|
37328
|
-
// }
|
|
37329
|
-
buildTreeData() {
|
|
37330
|
-
this.loading = true;
|
|
37331
|
-
const cloneCopy = JSON.parse(JSON.stringify(this.linnerOrgArray));
|
|
37332
|
-
// ✅ ADD THIS FILTER
|
|
37333
|
-
const filteredList = !this.showDissolved
|
|
37334
|
-
? cloneCopy.filter(x => x.active === true)
|
|
37335
|
-
: cloneCopy;
|
|
37336
|
-
if (typeof Worker !== 'undefined') {
|
|
37337
|
-
this.worker = new Worker(liner_to_nested_array_script);
|
|
37338
|
-
this.worker.addEventListener('message', ({ data }) => {
|
|
37339
|
-
this.data = data.list;
|
|
37340
|
-
if (!!this.data?.length)
|
|
37341
|
-
this.data[0].tree$Expanded = true;
|
|
37342
|
-
this.loading = false;
|
|
37343
|
-
});
|
|
37344
|
-
// ✅ USE filteredList INSTEAD OF cloneCopy
|
|
37345
|
-
this.worker.postMessage({
|
|
37346
|
-
list: filteredList,
|
|
37347
|
-
keyField: 'id',
|
|
37348
|
-
titleField: 'name',
|
|
37349
|
-
parentField: 'parentId',
|
|
37350
|
-
activeField: 'active',
|
|
37351
|
-
checkedField: 'checked',
|
|
37352
|
-
expandedField: 'expand',
|
|
37353
|
-
});
|
|
38554
|
+
onClick(e, item) {
|
|
38555
|
+
this.iconClickStream$.next(crypto.randomUUID());
|
|
38556
|
+
if (!!item) {
|
|
38557
|
+
this.navigatorService.clickedItem$.next(item);
|
|
37354
38558
|
}
|
|
37355
|
-
|
|
37356
|
-
|
|
37357
|
-
|
|
37358
|
-
|
|
37359
|
-
|
|
37360
|
-
this.data = obj.list;
|
|
37361
|
-
if (!!this.data?.length)
|
|
37362
|
-
this.data[0].tree$Expanded = true;
|
|
37363
|
-
this.loading = false;
|
|
37364
|
-
}));
|
|
38559
|
+
if (localStorage.getItem('moduleDesignMode') === 'on')
|
|
38560
|
+
return;
|
|
38561
|
+
this.navigatorService.activeRootMenuItemId$.next(item?.id);
|
|
38562
|
+
if (!!localStorage) {
|
|
38563
|
+
localStorage.setItem('activeRootMenuItemId', (item?.id || 0).toString());
|
|
37365
38564
|
}
|
|
38565
|
+
this.menuService.isOpen$.next(true); // trigger the LeftBar to be opened at the first time
|
|
37366
38566
|
}
|
|
37367
|
-
|
|
37368
|
-
|
|
37369
|
-
|
|
37370
|
-
|
|
37371
|
-
|
|
37372
|
-
|
|
37373
|
-
|
|
37374
|
-
|
|
37375
|
-
|
|
37376
|
-
}
|
|
37377
|
-
newExpandedIds?.sort();
|
|
37378
|
-
const newExpandedKeys = [];
|
|
37379
|
-
newExpandedIds.map((x) => newExpandedKeys.push(x.toString()));
|
|
37380
|
-
this.organizationService.status$.next({
|
|
37381
|
-
...this.organizationService.status$.value,
|
|
37382
|
-
expandedKeys: newExpandedKeys,
|
|
37383
|
-
});
|
|
38567
|
+
ngAfterViewInit() {
|
|
38568
|
+
this.subscriptions.push(this.navigatorService.activeRootMenuItemId$.subscribe(x => {
|
|
38569
|
+
const active = x === this.$item()?.id;
|
|
38570
|
+
this.$active.set(active);
|
|
38571
|
+
}));
|
|
38572
|
+
this.subscriptions.push(this.iconClickStream$.pipe(buffer(this.iconClickStream$.pipe(debounceTime(250))), map$1(clicks => clicks.length), filter(clicksLength => clicksLength >= 5))
|
|
38573
|
+
.subscribe(_ => {
|
|
38574
|
+
this.navigatorService.showEditSvg$.next(true);
|
|
38575
|
+
}));
|
|
37384
38576
|
}
|
|
37385
|
-
|
|
37386
|
-
|
|
37387
|
-
|
|
37388
|
-
|
|
37389
|
-
|
|
37390
|
-
|
|
37391
|
-
|
|
37392
|
-
|
|
37393
|
-
|
|
37394
|
-
|
|
37395
|
-
|
|
37396
|
-
|
|
37397
|
-
|
|
37398
|
-
|
|
37399
|
-
|
|
37400
|
-
|
|
37401
|
-
|
|
37402
|
-
|
|
37403
|
-
|
|
37404
|
-
|
|
37405
|
-
|
|
37406
|
-
|
|
37407
|
-
|
|
37408
|
-
|
|
37409
|
-
|
|
38577
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ModuleItemComponent, deps: [{ token: MultiLanguageService }, { token: NavigatorService }, { token: i0.ChangeDetectorRef }, { token: MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38578
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: ModuleItemComponent, isStandalone: true, selector: "app-module-item", inputs: { $item: { classPropertyName: "$item", publicName: "$item", isSignal: true, isRequired: true, transformFunction: null }, $itemPadding: { classPropertyName: "$itemPadding", publicName: "$itemPadding", isSignal: true, isRequired: false, transformFunction: null }, $width: { classPropertyName: "$width", publicName: "$width", isSignal: true, isRequired: true, transformFunction: null }, $height: { classPropertyName: "$height", publicName: "$height", isSignal: true, isRequired: true, transformFunction: null }, $iconTextVerticalMargin: { classPropertyName: "$iconTextVerticalMargin", publicName: "$iconTextVerticalMargin", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"menu-item-wrapper\" \r\n [class.active] = \"$active()\"\r\n (click)=\"onClick($event, $item())\" [ngStyle]=\"{\r\n width: $width() + 'px',\r\n height: $height() + 'px',\r\n padding: $itemPadding() + 'px',\r\n visibility: !!$item() ? 'visible' : 'hidden'\r\n}\">\r\n @if (!!$item()) {\r\n <div class=\"d-flex d-flex-v d-flex-center\">\r\n @if ($item()!.iconSvg) {\r\n <div class=\"d-block\">\r\n <i class=\"module-icon\">\r\n <span [innerHtml]=\"$item()!.iconSvg! | stringHtml\"></span>\r\n </i>\r\n </div>\r\n } @else if ($item()!.iconClass) {\r\n <div>\r\n <i [class]=\"$item()!.iconClass + ' module-icon'\"></i>\r\n </div>\r\n }\r\n <div [ngStyle]=\"{\r\n height: $iconTextVerticalMargin() + 'px'\r\n }\"></div>\r\n <div class=\"module-code\" [appTooltip]=\"$item()!.code! | translate: lang\" [ngStyle]=\"{\r\n width: $width() - $itemPadding() * 2 + 'px'\r\n }\">{{ $item()!.code! | translate: lang}}</div>\r\n </div>\r\n }\r\n</div>", styles: [".menu-item-wrapper{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-user-select:none;user-select:none}.menu-item-wrapper:not(.active){cursor:pointer}.menu-item-wrapper:not(.active):hover{background-color:var(--color-bg-main)}.menu-item-wrapper.active{color:var(--color-basic-orange)}.module-code{font-size:var(--typo-basic-font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38579
|
+
}
|
|
38580
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: ModuleItemComponent, decorators: [{
|
|
38581
|
+
type: Component,
|
|
38582
|
+
args: [{ selector: 'app-module-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
38583
|
+
NgStyle,
|
|
38584
|
+
TooltipDirective,
|
|
38585
|
+
StringHtmlPipe,
|
|
38586
|
+
TranslatePipe,
|
|
38587
|
+
], template: "<div class=\"menu-item-wrapper\" \r\n [class.active] = \"$active()\"\r\n (click)=\"onClick($event, $item())\" [ngStyle]=\"{\r\n width: $width() + 'px',\r\n height: $height() + 'px',\r\n padding: $itemPadding() + 'px',\r\n visibility: !!$item() ? 'visible' : 'hidden'\r\n}\">\r\n @if (!!$item()) {\r\n <div class=\"d-flex d-flex-v d-flex-center\">\r\n @if ($item()!.iconSvg) {\r\n <div class=\"d-block\">\r\n <i class=\"module-icon\">\r\n <span [innerHtml]=\"$item()!.iconSvg! | stringHtml\"></span>\r\n </i>\r\n </div>\r\n } @else if ($item()!.iconClass) {\r\n <div>\r\n <i [class]=\"$item()!.iconClass + ' module-icon'\"></i>\r\n </div>\r\n }\r\n <div [ngStyle]=\"{\r\n height: $iconTextVerticalMargin() + 'px'\r\n }\"></div>\r\n <div class=\"module-code\" [appTooltip]=\"$item()!.code! | translate: lang\" [ngStyle]=\"{\r\n width: $width() - $itemPadding() * 2 + 'px'\r\n }\">{{ $item()!.code! | translate: lang}}</div>\r\n </div>\r\n }\r\n</div>", styles: [".menu-item-wrapper{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-user-select:none;user-select:none}.menu-item-wrapper:not(.active){cursor:pointer}.menu-item-wrapper:not(.active):hover{background-color:var(--color-bg-main)}.menu-item-wrapper.active{color:var(--color-basic-orange)}.module-code{font-size:var(--typo-basic-font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center}\n"] }]
|
|
38588
|
+
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: NavigatorService }, { type: i0.ChangeDetectorRef }, { type: MenuService }] });
|
|
38589
|
+
|
|
38590
|
+
class CoreRootMenuItemPickerComponent extends BaseComponent {
|
|
38591
|
+
constructor(mls, ahs, renderer, navigatorService, layoutService, domService, menuService, sysMenuService, authService, appConfigService) {
|
|
38592
|
+
super(mls);
|
|
38593
|
+
this.mls = mls;
|
|
38594
|
+
this.ahs = ahs;
|
|
38595
|
+
this.renderer = renderer;
|
|
38596
|
+
this.navigatorService = navigatorService;
|
|
38597
|
+
this.layoutService = layoutService;
|
|
38598
|
+
this.domService = domService;
|
|
38599
|
+
this.menuService = menuService;
|
|
38600
|
+
this.sysMenuService = sysMenuService;
|
|
38601
|
+
this.authService = authService;
|
|
38602
|
+
this.appConfigService = appConfigService;
|
|
38603
|
+
this.logoPath = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE1IiBoZWlnaHQ9IjI5IiB2aWV3Qm94PSIwIDAgMTE1IDI5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDI4LjU1MjhWOC41NzY4NkgyLjU2MzI5VjE2LjgxMzRIMTIuNTIzNVY4LjU3Njg2SDE1LjA4NjhWMjguNTMzOUgxMi41MjM1VjE5LjE0MjNIMi41ODE2VjI4LjUzMzlIMFYyOC41NTI4Wk0xOS4wNzgyIDExLjM2MDJWOC41NzY4NkgyMS40NTg0VjExLjM2MDJIMTkuMDc4MlpNMTkuMDc4MiAyOC41NTI4VjE0LjA4NjhIMjEuNDU4NFYyOC41NTI4SDE5LjA3ODJaTTI0LjIyMzEgMjIuMDc3MkwyOC4wMzE1IDIxLjY3OTZDMjguMjUxMiAyMi45ODYxIDI4LjcyNzIgMjMuOTUxNyAyOS40MjMgMjQuNTc2NkMzMC4xMTg3IDI1LjIwMTQgMzEuMDcwOCAyNS41MDQ0IDMyLjI0MjYgMjUuNTA0NEMzMy40ODc2IDI1LjUwNDQgMzQuNDIxNCAyNS4yMjAzIDM1LjA2MjIgMjQuNjcxMkMzNS43MDMgMjQuMTIyMSAzNi4wMTQzIDIzLjQ5NzMgMzYuMDE0MyAyMi43NTg5QzM2LjAxNDMgMjIuMjg1NSAzNS44ODYxIDIxLjg2ODkgMzUuNjExNSAyMS41NDdDMzUuMzM2OCAyMS4yMjUyIDM0Ljg3OTEgMjAuOTIyMiAzNC4yMiAyMC42NzYxQzMzLjc2MjIgMjAuNTI0NiAzMi43MzY5IDIwLjIyMTYgMzEuMTI1NyAxOS44MDUxQzI5LjAzODUgMTkuMjc0OSAyNy41NzM3IDE4LjYxMjIgMjYuNzQ5OCAxNy44MTY5QzI1LjU1OTcgMTYuNzE4NyAyNC45OTIxIDE1LjM3NDQgMjQuOTkyMSAxMy44MDI4QzI0Ljk5MjEgMTIuNzgwMyAyNS4yNjY4IDExLjgxNDcgMjUuODE2IDEwLjk0MzdDMjYuMzgzNiAxMC4wNTM4IDI3LjE3MDkgOS4zNzIxMSAyOC4yMTQ1IDguOTE3NjhDMjkuMjc2NSA4LjQ0NDMyIDMwLjUyMTUgOC4yMTcxIDMyLjAwNDYgOC4yMTcxQzM0LjQyMTQgOC4yMTcxIDM2LjIzNCA4Ljc2NjIgMzcuNDYwNyA5Ljg2NDQxQzM4LjY4NzQgMTAuOTgxNSAzOS4zMDk5IDEyLjQ1ODQgMzkuMzgzMiAxNC4zMTRMMzUuNDgzMyAxNC40NjU1QzM1LjMxODUgMTMuNDI0MSAzNC45NzA3IDEyLjY4NTcgMzQuNDIxNCAxMi4yNTAyQzMzLjg3MjEgMTEuODE0NyAzMy4wNjY1IDExLjU2ODUgMzEuOTY3OSAxMS41Njg1QzMwLjg1MTEgMTEuNTY4NSAyOS45NzIyIDExLjgxNDcgMjkuMzMxNCAxMi4yODhDMjguOTI4NiAxMi42MDk5IDI4LjcwODkgMTMuMDI2NSAyOC43MDg5IDEzLjUzNzdDMjguNzA4OSAxNC4wMTExIDI4LjkxMDMgMTQuNDI3NiAyOS4yOTQ4IDE0Ljc0OTVDMjkuNzcwOCAxNS4xODUgMzAuOTc5MiAxNS42Mzk1IDMyLjg2NTEgMTYuMTEyOEMzNC43NTA5IDE2LjU2NzIgMzYuMTYwOCAxNy4wNDA2IDM3LjA1NzkgMTcuNTUxOEMzNy45NTUxIDE4LjA0NDEgMzguNjY5MSAxOC43MjU4IDM5LjE4MTggMTkuNTc3OEMzOS42OTQ0IDIwLjQ0ODggMzkuOTUwOCAyMS40OTAyIDM5Ljk1MDggMjIuNzU4OUMzOS45NTA4IDIzLjg5NDkgMzkuNjM5NSAyNC45NzQyIDM5LjAxNyAyNS45Nzc3QzM4LjQxMjggMjYuOTgxMyAzNy41MzQgMjcuNzE5NyAzNi40MTcxIDI4LjE5MzFDMzUuMzAwMiAyOC42ODU0IDMzLjkwODcgMjguOTEyNiAzMi4yMjQzIDI4LjkxMjZDMjkuNzg5MSAyOC45MTI2IDI3LjkwMzMgMjguMzI1NiAyNi42MDMzIDI3LjE3MDZDMjUuMjY2OCAyNS45OTY3IDI0LjQ3OTUgMjQuMjkyNiAyNC4yMjMxIDIyLjA3NzJaTTQ5LjU4MTQgMTQuMDY3OVYxNy4wOTc0SDQ3LjA1NDhWMjIuOTY3MUM0Ny4wNTQ4IDI0LjE0MTEgNDcuMDczMSAyNC44NDE3IDQ3LjEwOTcgMjUuMDQ5OUM0Ny4xNjQ2IDI1LjIzOTMgNDcuMjc0NSAyNS40MDk3IDQ3LjQ1NzYgMjUuNTQyMkM0Ny42MjIzIDI1LjY3NDggNDcuODIzNyAyNS43MzE2IDQ4LjA4MDEgMjUuNzMxNkM0OC40MjggMjUuNzMxNiA0OC45MjIzIDI1LjU5OSA0OS41NjMxIDI1LjM3MThMNDkuODc0NCAyOC4zNDQ2QzQ5LjAxMzkgMjguNzIzMiA0OC4wNjE4IDI4LjkxMjYgNDYuOTYzMiAyOC45MTI2QzQ2LjMwNDEgMjguOTEyNiA0NS42OTk5IDI4Ljc5OSA0NS4xNjg5IDI4LjU3MThDNDQuNjM3OSAyOC4zNDQ2IDQ0LjIzNTEgMjguMDQxNiA0My45Nzg4IDI3LjY2MjlDNDMuNzQwOCAyNy4zMDMyIDQzLjU1NzcgMjYuNzkxOSA0My40NjYxIDI2LjE2NzFDNDMuMzkyOSAyNS43MTI2IDQzLjM1NjMgMjQuODIyNyA0My4zNTYzIDIzLjQ1OTRWMTcuMTE2NEg0MS42NzE4VjE0LjA4NjhINDMuMzU2M1YxMS4yMDg4TDQ3LjA1NDggOC45NTU1NVYxNC4wODY4SDQ5LjU4MTRWMTQuMDY3OVpNNTQuOTI3NyAxOC41MzY0TDUxLjU3NzEgMTcuOTMwNUM1MS45NjE2IDE2LjUxMDQgNTIuNjAyNSAxNS40NjkgNTMuNTE3OSAxNC43ODc0QzU0LjQ1MTcgMTQuMTI0NyA1NS44MjQ5IDEzLjc4MzkgNTcuNjM3NSAxMy43ODM5QzU5LjI4NTMgMTMuNzgzOSA2MC41MTIxIDEzLjk3MzIgNjEuMzE3NyAxNC4zODk4QzYyLjEyMzMgMTQuNzg3NCA2Mi42OTA5IDE1LjI5ODYgNjMuMDIwNCAxNS45MjM1QzYzLjM1IDE2LjU0ODMgNjMuNTE0OCAxNy42ODQ0IDYzLjUxNDggMTkuMzMxN0w2My40NTk4IDIzLjgwMDNDNjMuNDU5OCAyNS4wNjg5IDYzLjUxNDggMjUuOTk2NyA2My42NDI5IDI2LjYwMjZDNjMuNzUyOCAyNy4yMDg1IDYzLjk5MDggMjcuODcxMiA2NC4zMDIxIDI4LjU1MjhINjAuNjQwMkM2MC41MzA0IDI4LjMwNjcgNjAuNDIwNSAyNy45MjggNjAuMjkyMyAyNy40MzU3QzYwLjIzNzQgMjcuMjA4NSA2MC4xODI1IDI3LjA1NyA2MC4xNDU5IDI2Ljk4MTNDNTkuNTIzNCAyNy42MjUgNTguODQ1OSAyOC4wOTg0IDU4LjEzMTkgMjguNDIwM0M1Ny40MTc4IDI4Ljc0MjIgNTYuNjQ4OCAyOC44OTM3IDU1Ljg0MzIgMjguODkzN0M1NC40MTUxIDI4Ljg5MzcgNTMuMjc5OSAyOC40OTYgNTIuNDU2IDI3LjY4MThDNTEuNjMyMSAyNi44ODY2IDUxLjIxMSAyNS44NjQxIDUxLjIxMSAyNC42MTQ0QzUxLjIxMSAyMy44MDAzIDUxLjM5NDEgMjMuMDgwNyA1MS43Nzg1IDIyLjQzN0M1Mi4xNjMgMjEuODEyMSA1Mi42NzU3IDIxLjMwMDkgNTMuMzcxNCAyMC45NjAxQzU0LjA0ODkgMjAuNjM4MiA1NS4wMTkzIDIwLjMzNTIgNTYuMzAwOSAyMC4wNzAxQzU4LjAyMiAxOS43NDgzIDU5LjIzMDQgMTkuNDI2NCA1OS44ODk1IDE5LjE0MjNWMTguNzYzN0M1OS44ODk1IDE4LjAwNjMgNTkuNzA2NSAxNy40OTUgNTkuMzc2OSAxNy4xNzMyQzU5LjAyOSAxNi44NTEzIDU4LjM1MTYgMTYuNjgwOSA1Ny4zODEyIDE2LjY4MDlDNTYuNzIyIDE2LjY4MDkgNTYuMjA5NCAxNi44MzIzIDU1Ljg0MzIgMTcuMDk3NEM1NS40NDA0IDE3LjM4MTQgNTUuMTQ3NCAxNy44NTQ4IDU0LjkyNzcgMTguNTM2NFpNNTkuODg5NSAyMS42NDE3QzU5LjQxMzUgMjEuNzkzMiA1OC42NjI4IDIyLjAwMTUgNTcuNjM3NSAyMi4yMjg3QzU2LjYxMjIgMjIuNDU1OSA1NS45NTMxIDIyLjY4MzEgNTUuNjIzNSAyMi44OTE0QzU1LjE0NzQgMjMuMjUxMiA1NC44OTExIDIzLjY4NjYgNTQuODkxMSAyNC4yMzU3QzU0Ljg5MTEgMjQuNzg0OSA1NS4wNzQyIDI1LjIzOTMgNTUuNDc3IDI1LjYzNjlDNTUuODYxNSAyNi4wMzQ1IDU2LjMzNzUgMjYuMjIzOSA1Ni45NDE3IDI2LjIyMzlDNTcuNjE5MiAyNi4yMjM5IDU4LjI2IDI1Ljk5NjcgNTguODY0MiAyNS41NDIyQzU5LjMwMzYgMjUuMjAxNCA1OS41OTY2IDI0Ljc4NDkgNTkuNzQzMSAyNC4yNzM2QzU5LjgzNDYgMjMuOTUxNyA1OS44ODk1IDIzLjMwOCA1OS44ODk1IDIyLjM5OTFWMjEuNjQxN1pNNjUuNTQ3MSAxNC4wNjc5SDY3LjU5NzdWMTIuOTg4NkM2Ny41OTc3IDExLjc1NzkgNjcuNzI1OSAxMC44Njc5IDY3Ljk4MjIgMTAuMjYyQzY4LjIzODYgOS42NTYxMyA2OC42OTYzIDkuMTYzODMgNjkuMzczNyA4Ljc4NTE0QzcwLjA1MTIgOC40MDY0NSA3MC45MTE3IDguMjE3MSA3MS45MzcgOC4yMTcxQzcyLjk5OSA4LjIxNzEgNzQuMDQyNiA4LjM2ODU4IDc1LjA0OTYgOC43MDk0TDc0LjU3MzYgMTEuMzYwMkM3My45Njk0IDExLjIwODggNzMuMzgzNSAxMS4xMzMgNzIuODUyNSAxMS4xMzNDNzIuMzAzMiAxMS4xMzMgNzEuOTE4NyAxMS4yNjU2IDcxLjY2MjQgMTEuNTMwN0M3MS40MDYxIDExLjc5NTcgNzEuMzE0NSAxMi4yODggNzEuMzE0NSAxMy4wNDU0VjE0LjA2NzlINzQuMDc5MlYxNy4wNzg1SDcxLjMxNDVWMjguNTMzOUg2Ny42MTZWMTcuMDc4NUg2NS41NjU0VjE0LjA2NzlINjUuNTQ3MVpNNzQuNTE4NiAxNC4wNjc5SDc2LjU2OTNWMTIuOTg4NkM3Ni41NjkzIDExLjc1NzkgNzYuNjk3NCAxMC44Njc5IDc2Ljk1MzggMTAuMjYyQzc3LjIxMDEgOS42NTYxMyA3Ny42Njc4IDkuMTYzODMgNzguMzQ1MyA4Ljc4NTE0Qzc5LjAyMjcgOC40MDY0NSA3OS44ODMyIDguMjE3MSA4MC45MDg2IDguMjE3MUM4MS45NzA1IDguMjE3MSA4My4wMTQxIDguMzY4NTggODQuMDIxMSA4LjcwOTRMODMuNTQ1MSAxMS4zNjAyQzgyLjk0MDkgMTEuMjA4OCA4Mi4zNTUgMTEuMTMzIDgxLjgwNTcgMTEuMTMzQzgxLjI1NjQgMTEuMTMzIDgwLjg3MTkgMTEuMjY1NiA4MC42MTU2IDExLjUzMDdDODAuMzk1OSAxMS43OTU3IDgwLjI2NzcgMTIuMjg4IDgwLjI2NzcgMTMuMDQ1NFYxNC4wNjc5SDgzLjAzMjRWMTcuMDc4NUg4MC4yNjc3VjI4LjUzMzlINzYuNTY5M1YxNy4wNzg1SDc0LjUxODZWMTQuMDY3OVoiIGZpbGw9ImJsYWNrIi8+DQo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTk4LjY0OTggNS4yNDQ3N0M5Ny45NTQgMi43ODMyOCA5NS42NDcxIDIuNDA0NTkgOTMuNzI0NiAzLjc2Nzg4QzkxLjc0NzIgNS4xNjkwMyA5MC40Mjg5IDguMTk4NTcgOTEuMTA2NCAxMC42MjIyQzkxLjgwMjEgMTMuMDgzNyA5NC4xMDkxIDEzLjQ2MjQgOTYuMDMxNiAxMi4xMThDOTguMDA5IDEwLjcxNjkgOTkuMzI3MiA3LjY2ODQgOTguNjQ5OCA1LjI0NDc3WiIgZmlsbD0iI0YzNzU0MCIvPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05MS4xNDI4IDI3LjgxNDlDOTEuOTMwMSAyNy4xMTQzIDkyLjk3MzggMjYuNDUxNiA5My44MTYgMjUuODgzNkw5NS40NjM4IDI0LjgyMzJDOTcuODQ0IDIwLjAzMjggMTAxLjA0OCAxNS41NDUzIDEwNC40MTcgMTEuNDU1NEMxMDcuNDkzIDcuNjg3NDQgMTExLjA4MiAzLjc0OTA1IDExNSAwLjkwODg2TDExNC4zNDEgMEMxMTAuMTQ4IDIuMjkxMDggMTA2LjMwMyA1LjQxNTI5IDEwMi44NDIgOC43NjY3MUM5OS4xOTg5IDEyLjMwNzUgOTUuODQ4MyAxNi4yMjY5IDkzLjE1NjggMjAuNTgxOUw5My4wNDcgMjAuNzMzNEw5Mi4yNzggMTkuMDY3MUM5MS43MTA0IDE3Ljg1NTMgOTAuMTM1OCAxNC42NTU0IDg4LjU0MjkgMTQuNjU1NEM4Ni45NSAxNC42NTU0IDg1LjQzMDMgMTUuODI5MyA4NC4zMTM1IDE2Ljk0NjRDODUuMzAyMiAxNy4zMDYyIDg2LjEyNjEgMTcuOTg3OCA4Ni43ODUyIDE4LjgyMUM4Ny44MTA1IDIwLjA3MDYgODguNjM0NSAyMS43NzQ4IDg5LjI5MzYgMjMuMjcwNkw4OS45MTYxIDI0LjY3MTdDOTAuMzE4OSAyNS42NzUzIDkwLjgxMzMgMjYuNzkyNCA5MS4xNDI4IDI3LjgxNDlaIiBmaWxsPSIjRjM3NTQwIi8+DQo8L3N2Zz4NCg==';
|
|
38604
|
+
this.itemsPerRow = 4;
|
|
38605
|
+
this.iconTextVerticalMargin = 25;
|
|
38606
|
+
this.items = [[]];
|
|
38607
|
+
this.zIndex = 1;
|
|
38608
|
+
this.imageErrorResolverType = EnumImageResolverType.LOGO;
|
|
38609
|
+
this.headerHeight = 0;
|
|
38610
|
+
this.width = 400;
|
|
38611
|
+
this.layoutService.modulePanelWidth$.subscribe(x => this.width = x);
|
|
38612
|
+
}
|
|
38613
|
+
ngOnInit() {
|
|
38614
|
+
this.subscriptions.push(this.mls.lang$.subscribe(x => this.lang = x));
|
|
38615
|
+
this.subscriptions.push(this.authService.data$.subscribe(x => this.isRoot = !!x?.isRoot));
|
|
38616
|
+
this.scrollWidth = this.layoutService.modulePanelWidth$.value - this.layoutService.basicSpacing * 2;
|
|
38617
|
+
this.scrollHeight = window.innerHeight - this.layoutService.headerHeight$.value - this.layoutService.basicSpacing * 2;
|
|
38618
|
+
this.itemWidth = this.scrollWidth / 4;
|
|
38619
|
+
}
|
|
38620
|
+
transformTo2DArray(flatList) {
|
|
38621
|
+
const result = [];
|
|
38622
|
+
for (let i = 0; i < flatList.length; i += this.itemsPerRow) {
|
|
38623
|
+
const row = flatList.slice(i, i + this.itemsPerRow);
|
|
38624
|
+
// If the last row has fewer than itemsPerRow, pad it with undefineds
|
|
38625
|
+
while (row.length < this.itemsPerRow) {
|
|
38626
|
+
row.push(undefined);
|
|
37410
38627
|
}
|
|
37411
|
-
|
|
37412
|
-
this.value = this.checkedIds;
|
|
37413
|
-
this.onChange(this.checkedIds);
|
|
37414
|
-
this.markAsTouched();
|
|
37415
|
-
};
|
|
37416
|
-
/* start: THIS CODE SCOPE calculates toggledIds */
|
|
37417
|
-
if (this.checkInheritance) {
|
|
37418
|
-
// If true, all the nested items will be checked/unchecked
|
|
37419
|
-
this.recursiveService
|
|
37420
|
-
.nestedToggleCheck(e, newValue, this.showDissolved)
|
|
37421
|
-
.then((x) => {
|
|
37422
|
-
let currentCheckedKeys = this.organizationService.status$.value.checkedKeys || [];
|
|
37423
|
-
if (!!newValue) {
|
|
37424
|
-
x.map(item => {
|
|
37425
|
-
if (currentCheckedKeys.filter(i => i === item.toString()).length === 0) {
|
|
37426
|
-
currentCheckedKeys.push(item.toString());
|
|
37427
|
-
}
|
|
37428
|
-
});
|
|
37429
|
-
}
|
|
37430
|
-
else {
|
|
37431
|
-
currentCheckedKeys = currentCheckedKeys.filter(i => !x.includes(Number(i)));
|
|
37432
|
-
}
|
|
37433
|
-
this.organizationService.status$.next({
|
|
37434
|
-
...this.organizationService.status$.value,
|
|
37435
|
-
checkedKeys: currentCheckedKeys //x.map(item => item.toString())
|
|
37436
|
-
});
|
|
37437
|
-
// The ids have been changed
|
|
37438
|
-
toggledIds = x;
|
|
37439
|
-
// Now toggledIds were set. We call the function we declared
|
|
37440
|
-
changeValue();
|
|
37441
|
-
})
|
|
37442
|
-
.catch((x) => {
|
|
37443
|
-
console.error(x);
|
|
37444
|
-
});
|
|
37445
|
-
}
|
|
37446
|
-
else {
|
|
37447
|
-
// Otherwise we simply toggle check for current item only
|
|
37448
|
-
toggledIds = [e.id];
|
|
37449
|
-
// Now toggledIds were set. We call the function we declared
|
|
37450
|
-
changeValue();
|
|
38628
|
+
result.push(row);
|
|
37451
38629
|
}
|
|
37452
|
-
|
|
37453
|
-
// That is. Happy debugging!
|
|
37454
|
-
}
|
|
37455
|
-
onCheckIncludeDissolvedChange(value) {
|
|
37456
|
-
console.log("onCheckIncludeDissolvedChange", value);
|
|
38630
|
+
return result;
|
|
37457
38631
|
}
|
|
37458
|
-
|
|
37459
|
-
|
|
37460
|
-
|
|
37461
|
-
|
|
38632
|
+
ngAfterViewInit() {
|
|
38633
|
+
setTimeout(() => {
|
|
38634
|
+
this.designMode = localStorage.getItem('moduleDesignMode') === 'on';
|
|
38635
|
+
this.zIndex = this.domService.getMaxZIndex() + 1;
|
|
38636
|
+
// this.listenerFn = this.renderer.listen('window', 'click', (e: Event) => {
|
|
38637
|
+
// if (!this.designMode) {
|
|
38638
|
+
// if (this.container && !!!this.container.nativeElement.contains(e.target)) {
|
|
38639
|
+
// this.ahs.activeKey$.next(undefined);
|
|
38640
|
+
// }
|
|
38641
|
+
// }
|
|
38642
|
+
// });
|
|
38643
|
+
this.subscriptions.push(this.navigatorService.rootNavigatorItems$.subscribe(x => {
|
|
38644
|
+
// Transform the flat list into a 2D array
|
|
38645
|
+
this.items = this.transformTo2DArray(x);
|
|
38646
|
+
}));
|
|
38647
|
+
this.subscriptions.push(this.layoutService.headerHeight$.subscribe(x => {
|
|
38648
|
+
this.headerHeight = x;
|
|
38649
|
+
}));
|
|
38650
|
+
if (!!localStorage) {
|
|
38651
|
+
const activeRootMenuItemId = Number(localStorage.getItem('activeRootMenuItemId') || '0');
|
|
38652
|
+
this.navigatorService.activeRootMenuItemId$.next(activeRootMenuItemId);
|
|
38653
|
+
}
|
|
38654
|
+
if (window.innerWidth < this.layoutService.modulePanelWidth$.value) {
|
|
38655
|
+
this.layoutService.modulePanelWidth$.next(window.innerWidth);
|
|
38656
|
+
}
|
|
37462
38657
|
});
|
|
37463
38658
|
}
|
|
37464
|
-
|
|
37465
|
-
|
|
37466
|
-
|
|
37467
|
-
|
|
37468
|
-
|
|
37469
|
-
this.itemClick?.emit(e);
|
|
37470
|
-
if (this.accessorMode === EnumCoreOrgTreeaAccessorMode.CHECKED)
|
|
37471
|
-
return;
|
|
37472
|
-
let activeIds = [];
|
|
37473
|
-
this.data.map((item) => (item.active = false));
|
|
37474
|
-
if (this.accessorMode ===
|
|
37475
|
-
EnumCoreOrgTreeaAccessorMode.ACTIVATED_INHERITANCE ||
|
|
37476
|
-
!!!this.accessorMode) {
|
|
37477
|
-
// If true, all the nested items will be active, the others are inactive
|
|
37478
|
-
this.recursiveService
|
|
37479
|
-
.nestedResetActive(e, true)
|
|
37480
|
-
.then((x) => {
|
|
37481
|
-
activeIds = x;
|
|
37482
|
-
activeIds.sort();
|
|
37483
|
-
const newActiveKeys = [];
|
|
37484
|
-
activeIds.map((x) => newActiveKeys.push(x.toString()));
|
|
37485
|
-
this.organizationService.status$.next({
|
|
37486
|
-
...this.organizationService.status$.value,
|
|
37487
|
-
activeKeys: newActiveKeys,
|
|
37488
|
-
selectedKey: e.id.toString()
|
|
37489
|
-
});
|
|
37490
|
-
this.activeIds = activeIds;
|
|
37491
|
-
console.log(this.activeIds);
|
|
37492
|
-
this.onChange(activeIds);
|
|
37493
|
-
})
|
|
37494
|
-
.catch((x) => {
|
|
37495
|
-
console.error(x);
|
|
37496
|
-
});
|
|
38659
|
+
onDesignModeClick(e) {
|
|
38660
|
+
e.stopPropagation();
|
|
38661
|
+
if (localStorage.getItem('moduleDesignMode') === 'on') {
|
|
38662
|
+
localStorage.setItem('moduleDesignMode', 'off');
|
|
38663
|
+
this.designMode = false;
|
|
37497
38664
|
}
|
|
37498
38665
|
else {
|
|
37499
|
-
|
|
37500
|
-
|
|
37501
|
-
activeIds = [e.id];
|
|
37502
|
-
this.activeIds = activeIds;
|
|
37503
|
-
this.organizationService.status$.next({
|
|
37504
|
-
...this.organizationService.status$.value,
|
|
37505
|
-
activeKeys: [e.id.toString()],
|
|
37506
|
-
selectedKey: e.id.toString(),
|
|
37507
|
-
});
|
|
37508
|
-
this.onChange(activeIds);
|
|
37509
|
-
}
|
|
37510
|
-
const { detail } = event;
|
|
37511
|
-
if (detail === 2) {
|
|
37512
|
-
console.log('This was a dblclick');
|
|
37513
|
-
this.itemDoubleClick.emit(e);
|
|
38666
|
+
localStorage.setItem('moduleDesignMode', 'on');
|
|
38667
|
+
this.designMode = true;
|
|
37514
38668
|
}
|
|
37515
|
-
this.selectedItem = e;
|
|
37516
|
-
}
|
|
37517
|
-
onSearchChange(text) {
|
|
37518
|
-
this.search$.next(text);
|
|
37519
|
-
}
|
|
37520
|
-
onHiddenToolClick(e) {
|
|
37521
|
-
e.stopPropagation();
|
|
37522
|
-
this.hiddenToolClickStream$.next(crypto.randomUUID());
|
|
37523
38669
|
}
|
|
37524
38670
|
ngOnDestroy() {
|
|
37525
|
-
|
|
37526
|
-
|
|
37527
|
-
|
|
37528
|
-
this.subscriptions.map((x) => x?.unsubscribe());
|
|
37529
|
-
if (!!this.instanceNumber) {
|
|
37530
|
-
const tryToFind = this.organizationService.instances.filter((x) => x.instanceNumber === this.instanceNumber);
|
|
37531
|
-
if (!!tryToFind.length) {
|
|
37532
|
-
const newInstances = this.organizationService.instances.filter((x) => x.instanceNumber !== this.instanceNumber);
|
|
37533
|
-
this.organizationService.instances = newInstances;
|
|
37534
|
-
}
|
|
37535
|
-
}
|
|
38671
|
+
this.subscriptions.map(x => x?.unsubscribe());
|
|
38672
|
+
if (this.listenerFn)
|
|
38673
|
+
this.listenerFn();
|
|
37536
38674
|
}
|
|
37537
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type:
|
|
37538
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type:
|
|
37539
|
-
{
|
|
37540
|
-
provide: NG_VALUE_ACCESSOR,
|
|
37541
|
-
useExisting: forwardRef(() => CoreComTreeComponent),
|
|
37542
|
-
multi: true
|
|
37543
|
-
}
|
|
37544
|
-
], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true }, { propertyName: "displayContent", first: true, predicate: ["displayContent"], descendants: true }, { propertyName: "reducedIconWrapper", first: true, predicate: ["reducedIconWrapper"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-org-tree-container\" [class.full-width]=\"!!fullWidthMode\" *ngIf=\"!!data\" [ngStyle]=\"{\r\n position : 'relative',\r\n width: '100%',\r\n minWidth: '310px',\r\n height: height + 'px'\r\n }\">\r\n <div #displayContent class=\"custom-org-tree\">\r\n @if (showSearch) {\r\n <div class=\"core-org-tree-header d-flex-between\">\r\n <div class=\"m5\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"search\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"searchPlaceholder | translate: lang\" [class.full-width]=\"!!fullWidthMode\">\r\n </div>\r\n </div>\r\n }\r\n <ng-container>\r\n\r\n <div #scrollContainer class=\"scroll-container\" [ngStyle]=\"{\r\n height: height - layoutService.coreOrgTreeTopHeight * (showSearch ? 1 : 0) - layoutService.coreOrgTreeBottomHeight + 'px',\r\n overflow: 'scroll'\r\n }\">\r\n <div class=\"hidden-tool\" (click)=\"onHiddenToolClick($event)\"></div>\r\n <core-loading-surface [loading]=\"loading\" [height]=\"scrollContainerHeight\"></core-loading-surface>\r\n <!-- @for (root of dataFiltered; track root) { -->\r\n @for (root of data; track $index) {\r\n @defer(on viewport(scrollContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n } @placeholder() {\r\n Placeholder...\r\n } @loading() {\r\n Loading...\r\n } @error() {\r\n Error...\r\n }\r\n\r\n }\r\n </div>\r\n <div [ngStyle]=\"{\r\n display: 'block',\r\n position: 'absolute',\r\n bottom: '0px',\r\n left: '0px',\r\n right: '0px',\r\n height: layoutService.corePaginationHeight + 'px',\r\n paddingLeft: layoutService.basicSpacing + 'px',\r\n paddingRight: layoutService.basicSpacing + 'px',\r\n lineHeight: layoutService.corePaginationHeight + 'px',\r\n overflow: 'hidden'\r\n }\">\r\n <div [ngStyle]=\"{\r\n height: layoutService.corePaginationHeight + 'px',\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between'\r\n }\">\r\n <div>\r\n <core-checkbox [(ngModel)]=\"showDissolved\"\r\n (ngModelChange)=\"onCheckIncludeDissolvedChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS_ABBREVIATED'\"\r\n [tooltip]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS'\" tooltipPosition=\"above\"></core-checkbox>\r\n </div>\r\n @if (accessorMode === 'CHECKED') {\r\n <div class=\"check-inheritance-wrapper\">\r\n @if (showCheckInheritance) {\r\n <core-checkbox [(ngModel)]=\"checkInheritance\"\r\n (ngModelChange)=\"onCheckInheritanceChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.CHECK_INHERITANCE'\"></core-checkbox>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-id=\"context.id\" let-title=\"context.tree$Title\"\r\n let-highlighted=\"context.tree$Highlighted\" let-hasChildren=\"context.tree$HasChildren\"\r\n let-hasActiveChildren=\"context.tree$HasActiveChildren\" let-children=\"context.tree$Children\"\r\n let-expanded=\"context.tree$Expanded\" let-isActive=\"context.isActive\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-protected=\"context.protected\">\r\n\r\n @if ((!showDissolved && !!isActive) || (!!showDissolved)) {\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\">\r\n <!-- (click)=\"accessorMode !== 'CHECKED' ? onObjectClick(context, $event) : $event.preventDefault()\" -->\r\n <span (click)=\"onObjectClick(context, $event)\">\r\n @if ((!!showDissolved && !!hasChildren) || (!showDissolved && !!hasActiveChildren)) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context, $event)\"></i>\r\n }\r\n\r\n @if (accessorMode === 'CHECKED' && !protected) {\r\n <core-checkbox (onClick)=\"onItemCheck(context, $event)\" [inputValue]=\"checked\"\r\n [disabled]=\"disabled\"></core-checkbox>\r\n }\r\n <object [class.active]=\"accessorMode != 'CHECKED' && selectedKey===id.toString()\"\r\n [class.highlighted]=\"highlighted\" [class.dissolved]=\"!isActive\"\r\n [class.protected]=\"protected\" [appTooltip]=\"title\">\r\n {{ title }}\r\n </object>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n @if (!!expanded || !!fullRendering) {\r\n\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n\r\n }\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: CoreLoadingSurfaceComponent, selector: "core-loading-surface", inputs: ["loading", "height"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }] }); }
|
|
38675
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerComponent, deps: [{ token: MultiLanguageService }, { token: ApplicationHelpService }, { token: i0.Renderer2 }, { token: NavigatorService }, { token: LayoutService }, { token: DomService }, { token: MenuService }, { token: SysMenuService }, { token: AuthService }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38676
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: CoreRootMenuItemPickerComponent, isStandalone: true, selector: "core-root-menu-item-picker", inputs: { logoPath: "logoPath", itemsPerRow: "itemsPerRow", iconTextVerticalMargin: "iconTextVerticalMargin" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-root-menu-item-picker-container\" [ngStyle]=\"{\r\n zIndex: zIndex,\r\n}\">\r\n <div class=\"mudule-picker-header d-flex d-flex-between\" [ngStyle]=\"{\r\n height: 59 + 'px'\r\n }\">\r\n <div class=\"HEADER_LOGO\">\r\n <div class=\"logo-wrapper d-flex\">\r\n <img src=\"logoPath\" class=\"lg\" [ngStyle]=\"{\r\n width: '130px',\r\n height: '59px',\r\n transform: 'translate(0, -5px)'\r\n }\" appImageErrorResolver [type]=\"imageErrorResolverType\">\r\n </div>\r\n </div>\r\n @if (!!isRoot) {\r\n <i \r\n [class.feather-square]=\"!designMode\" \r\n [class.feather-play]=\"!!designMode\" \r\n class=\"stop-mode-icon\" \r\n (click)=\"onDesignModeClick($event)\"\r\n [appTooltip]=\"!designMode ? 'Chuy\u1EC3n sang ch\u1EBF \u0111\u1ED9 thi\u1EBFt k\u1EBF' : 'Chuy\u1EC3n v\u1EC1 ch\u1EBF \u0111\u1ED9 b\u00ECnh th\u01B0\u1EDDng'\"\r\n ></i>\r\n }\r\n </div>\r\n\r\n <div class=\"header-bottom\" [ngStyle]=\"{\r\n width: width + 'px'\r\n }\">\r\n <core-line></core-line>\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n\r\n <div class=\"scroll\" [ngStyle]=\"{\r\n width: width + 'px',\r\n height: scrollHeight + 'px'\r\n }\">\r\n @for (row of items; track $index) {\r\n <div class=\"menu-row\">\r\n @for (item of row; track $index) {\r\n <app-module-item [$item]=\"item\" [$width]=\"itemWidth\" [$height]=\"100\" [$iconTextVerticalMargin]=\"iconTextVerticalMargin\"></app-module-item>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-root-menu-item-picker-container .header-bottom{position:absolute;top:59px;left:0}.core-root-menu-item-picker-container .scroll{overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;-ms-overflow-style:none}.core-root-menu-item-picker-container .scroll::-webkit-scrollbar{display:none}.core-root-menu-item-picker-container .menu-row{display:flex;flex-wrap:nowrap;justify-content:space-between}.core-root-menu-item-picker-container .stop-mode-icon{cursor:pointer;width:24px;height:24px;font-size:24px}\n"], dependencies: [{ kind: "component", type: CoreLineComponent, selector: "core-line" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ModuleItemComponent, selector: "app-module-item", inputs: ["$item", "$itemPadding", "$width", "$height", "$iconTextVerticalMargin"] }, { kind: "directive", type: ImageErrorResolverDirective, selector: "[appImageErrorResolver]", inputs: ["type", "isFemale"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "showAnyway", "color", "backgroundColor", "position"] }] }); }
|
|
37545
38677
|
}
|
|
37546
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type:
|
|
38678
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerComponent, decorators: [{
|
|
37547
38679
|
type: Component,
|
|
37548
|
-
args: [{ selector: 'core-
|
|
37549
|
-
|
|
38680
|
+
args: [{ selector: 'core-root-menu-item-picker', imports: [
|
|
38681
|
+
CoreLineComponent,
|
|
37550
38682
|
NgStyle,
|
|
37551
|
-
|
|
37552
|
-
|
|
37553
|
-
TranslatePipe,
|
|
38683
|
+
ModuleItemComponent,
|
|
38684
|
+
ImageErrorResolverDirective,
|
|
37554
38685
|
TooltipDirective,
|
|
37555
|
-
],
|
|
37556
|
-
|
|
37557
|
-
provide: NG_VALUE_ACCESSOR,
|
|
37558
|
-
useExisting: forwardRef(() => CoreComTreeComponent),
|
|
37559
|
-
multi: true
|
|
37560
|
-
}
|
|
37561
|
-
], template: "<div #container class=\"core-org-tree-container\" [class.full-width]=\"!!fullWidthMode\" *ngIf=\"!!data\" [ngStyle]=\"{\r\n position : 'relative',\r\n width: '100%',\r\n minWidth: '310px',\r\n height: height + 'px'\r\n }\">\r\n <div #displayContent class=\"custom-org-tree\">\r\n @if (showSearch) {\r\n <div class=\"core-org-tree-header d-flex-between\">\r\n <div class=\"m5\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"search\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"searchPlaceholder | translate: lang\" [class.full-width]=\"!!fullWidthMode\">\r\n </div>\r\n </div>\r\n }\r\n <ng-container>\r\n\r\n <div #scrollContainer class=\"scroll-container\" [ngStyle]=\"{\r\n height: height - layoutService.coreOrgTreeTopHeight * (showSearch ? 1 : 0) - layoutService.coreOrgTreeBottomHeight + 'px',\r\n overflow: 'scroll'\r\n }\">\r\n <div class=\"hidden-tool\" (click)=\"onHiddenToolClick($event)\"></div>\r\n <core-loading-surface [loading]=\"loading\" [height]=\"scrollContainerHeight\"></core-loading-surface>\r\n <!-- @for (root of dataFiltered; track root) { -->\r\n @for (root of data; track $index) {\r\n @defer(on viewport(scrollContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n } @placeholder() {\r\n Placeholder...\r\n } @loading() {\r\n Loading...\r\n } @error() {\r\n Error...\r\n }\r\n\r\n }\r\n </div>\r\n <div [ngStyle]=\"{\r\n display: 'block',\r\n position: 'absolute',\r\n bottom: '0px',\r\n left: '0px',\r\n right: '0px',\r\n height: layoutService.corePaginationHeight + 'px',\r\n paddingLeft: layoutService.basicSpacing + 'px',\r\n paddingRight: layoutService.basicSpacing + 'px',\r\n lineHeight: layoutService.corePaginationHeight + 'px',\r\n overflow: 'hidden'\r\n }\">\r\n <div [ngStyle]=\"{\r\n height: layoutService.corePaginationHeight + 'px',\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between'\r\n }\">\r\n <div>\r\n <core-checkbox [(ngModel)]=\"showDissolved\"\r\n (ngModelChange)=\"onCheckIncludeDissolvedChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS_ABBREVIATED'\"\r\n [tooltip]=\"'UI.CORE_ORG_TREE.SHOW_OUTDATED_UNITS'\" tooltipPosition=\"above\"></core-checkbox>\r\n </div>\r\n @if (accessorMode === 'CHECKED') {\r\n <div class=\"check-inheritance-wrapper\">\r\n @if (showCheckInheritance) {\r\n <core-checkbox [(ngModel)]=\"checkInheritance\"\r\n (ngModelChange)=\"onCheckInheritanceChange($event)\"\r\n [text]=\"'UI.CORE_ORG_TREE.CHECK_INHERITANCE'\"></core-checkbox>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <ng-template #item let-context=\"context\" let-id=\"context.id\" let-title=\"context.tree$Title\"\r\n let-highlighted=\"context.tree$Highlighted\" let-hasChildren=\"context.tree$HasChildren\"\r\n let-hasActiveChildren=\"context.tree$HasActiveChildren\" let-children=\"context.tree$Children\"\r\n let-expanded=\"context.tree$Expanded\" let-isActive=\"context.isActive\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-protected=\"context.protected\">\r\n\r\n @if ((!showDissolved && !!isActive) || (!!showDissolved)) {\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\">\r\n <!-- (click)=\"accessorMode !== 'CHECKED' ? onObjectClick(context, $event) : $event.preventDefault()\" -->\r\n <span (click)=\"onObjectClick(context, $event)\">\r\n @if ((!!showDissolved && !!hasChildren) || (!showDissolved && !!hasActiveChildren)) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context, $event)\"></i>\r\n }\r\n\r\n @if (accessorMode === 'CHECKED' && !protected) {\r\n <core-checkbox (onClick)=\"onItemCheck(context, $event)\" [inputValue]=\"checked\"\r\n [disabled]=\"disabled\"></core-checkbox>\r\n }\r\n <object [class.active]=\"accessorMode != 'CHECKED' && selectedKey===id.toString()\"\r\n [class.highlighted]=\"highlighted\" [class.dissolved]=\"!isActive\"\r\n [class.protected]=\"protected\" [appTooltip]=\"title\">\r\n {{ title }}\r\n </object>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n @if (!!expanded || !!fullRendering) {\r\n\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n\r\n }\r\n }\r\n </ul>\r\n }\r\n </li>\r\n }\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</div>" }]
|
|
37562
|
-
}], ctorParameters: () => [{ type: AuthService }, { type: RecursiveService }, { type: MultiLanguageService }, { type: LayoutService }, { type: CoreOrgTreeService }, { type: AlertService }, { type: ComPartyService }], propDecorators: { lineColor: [{
|
|
37563
|
-
type: Input
|
|
37564
|
-
}], fullWidthMode: [{
|
|
37565
|
-
type: Input
|
|
37566
|
-
}], accessorMode: [{
|
|
37567
|
-
type: Input
|
|
37568
|
-
}], searchMode: [{
|
|
37569
|
-
type: Input
|
|
37570
|
-
}], fullRendering: [{
|
|
37571
|
-
type: Input
|
|
37572
|
-
}], height: [{
|
|
37573
|
-
type: Input
|
|
37574
|
-
}], disabledLoopExpand: [{
|
|
37575
|
-
type: Input
|
|
37576
|
-
}], showCheckInheritance: [{
|
|
38686
|
+
], template: "<div #container class=\"core-root-menu-item-picker-container\" [ngStyle]=\"{\r\n zIndex: zIndex,\r\n}\">\r\n <div class=\"mudule-picker-header d-flex d-flex-between\" [ngStyle]=\"{\r\n height: 59 + 'px'\r\n }\">\r\n <div class=\"HEADER_LOGO\">\r\n <div class=\"logo-wrapper d-flex\">\r\n <img src=\"logoPath\" class=\"lg\" [ngStyle]=\"{\r\n width: '130px',\r\n height: '59px',\r\n transform: 'translate(0, -5px)'\r\n }\" appImageErrorResolver [type]=\"imageErrorResolverType\">\r\n </div>\r\n </div>\r\n @if (!!isRoot) {\r\n <i \r\n [class.feather-square]=\"!designMode\" \r\n [class.feather-play]=\"!!designMode\" \r\n class=\"stop-mode-icon\" \r\n (click)=\"onDesignModeClick($event)\"\r\n [appTooltip]=\"!designMode ? 'Chuy\u1EC3n sang ch\u1EBF \u0111\u1ED9 thi\u1EBFt k\u1EBF' : 'Chuy\u1EC3n v\u1EC1 ch\u1EBF \u0111\u1ED9 b\u00ECnh th\u01B0\u1EDDng'\"\r\n ></i>\r\n }\r\n </div>\r\n\r\n <div class=\"header-bottom\" [ngStyle]=\"{\r\n width: width + 'px'\r\n }\">\r\n <core-line></core-line>\r\n </div>\r\n\r\n <div class=\"h15\"></div>\r\n\r\n <div class=\"scroll\" [ngStyle]=\"{\r\n width: width + 'px',\r\n height: scrollHeight + 'px'\r\n }\">\r\n @for (row of items; track $index) {\r\n <div class=\"menu-row\">\r\n @for (item of row; track $index) {\r\n <app-module-item [$item]=\"item\" [$width]=\"itemWidth\" [$height]=\"100\" [$iconTextVerticalMargin]=\"iconTextVerticalMargin\"></app-module-item>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n</div>", styles: [".core-root-menu-item-picker-container .header-bottom{position:absolute;top:59px;left:0}.core-root-menu-item-picker-container .scroll{overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;-ms-overflow-style:none}.core-root-menu-item-picker-container .scroll::-webkit-scrollbar{display:none}.core-root-menu-item-picker-container .menu-row{display:flex;flex-wrap:nowrap;justify-content:space-between}.core-root-menu-item-picker-container .stop-mode-icon{cursor:pointer;width:24px;height:24px;font-size:24px}\n"] }]
|
|
38687
|
+
}], ctorParameters: () => [{ type: MultiLanguageService }, { type: ApplicationHelpService }, { type: i0.Renderer2 }, { type: NavigatorService }, { type: LayoutService }, { type: DomService }, { type: MenuService }, { type: SysMenuService }, { type: AuthService }, { type: AppConfigService }], propDecorators: { logoPath: [{
|
|
37577
38688
|
type: Input
|
|
37578
|
-
}],
|
|
38689
|
+
}], itemsPerRow: [{
|
|
37579
38690
|
type: Input
|
|
37580
|
-
}],
|
|
38691
|
+
}], iconTextVerticalMargin: [{
|
|
37581
38692
|
type: Input
|
|
37582
|
-
}], itemDoubleClick: [{
|
|
37583
|
-
type: Output
|
|
37584
|
-
}], itemClick: [{
|
|
37585
|
-
type: Output
|
|
37586
38693
|
}], container: [{
|
|
37587
38694
|
type: ViewChild,
|
|
37588
38695
|
args: ['container']
|
|
37589
|
-
}], scrollContainer: [{
|
|
37590
|
-
type: ViewChild,
|
|
37591
|
-
args: ['scrollContainer']
|
|
37592
|
-
}], displayContent: [{
|
|
37593
|
-
type: ViewChild,
|
|
37594
|
-
args: ['displayContent']
|
|
37595
|
-
}], reducedIconWrapper: [{
|
|
37596
|
-
type: ViewChild,
|
|
37597
|
-
args: ['reducedIconWrapper']
|
|
37598
38696
|
}] } });
|
|
37599
38697
|
|
|
38698
|
+
class CoreRootMenuItemPickerService {
|
|
38699
|
+
constructor() { }
|
|
38700
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38701
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerService, providedIn: 'root' }); }
|
|
38702
|
+
}
|
|
38703
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: CoreRootMenuItemPickerService, decorators: [{
|
|
38704
|
+
type: Injectable,
|
|
38705
|
+
args: [{
|
|
38706
|
+
providedIn: 'root'
|
|
38707
|
+
}]
|
|
38708
|
+
}], ctorParameters: () => [] });
|
|
38709
|
+
|
|
37600
38710
|
class CoreComProfileComponent extends BaseComponent {
|
|
37601
38711
|
ngOnChanges(changes) {
|
|
37602
38712
|
this.cdr.markForCheck();
|
|
@@ -38026,11 +39136,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
38026
39136
|
const coreDocGenRoutes = [
|
|
38027
39137
|
{
|
|
38028
39138
|
path: 'template-list',
|
|
38029
|
-
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-
|
|
39139
|
+
loadComponent: () => import('./ngx-histaff-alpha-template-list.component-CVK_Ewx4.mjs').then(m => m.TemplateListComponent),
|
|
38030
39140
|
},
|
|
38031
39141
|
{
|
|
38032
39142
|
path: ":id",
|
|
38033
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-
|
|
39143
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-template-editor.component-CwYRUlbM.mjs').then(m => m.CoreTemplateEditorComponent),
|
|
38034
39144
|
canDeactivate: [CanDeactivateGuard]
|
|
38035
39145
|
},
|
|
38036
39146
|
{
|
|
@@ -38059,7 +39169,7 @@ const coreFormDesignRoutes = [
|
|
|
38059
39169
|
},
|
|
38060
39170
|
{
|
|
38061
39171
|
path: ':id',
|
|
38062
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-
|
|
39172
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-form-design.component-Jzy7HTBy.mjs').then(function (n) { return n.c; }).then(m => m.CoreFormDesignComponent)
|
|
38063
39173
|
}
|
|
38064
39174
|
];
|
|
38065
39175
|
|
|
@@ -38952,7 +40062,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
38952
40062
|
const coreNavigationTrackerRoutes = [
|
|
38953
40063
|
{
|
|
38954
40064
|
path: '',
|
|
38955
|
-
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-
|
|
40065
|
+
loadComponent: () => import('./ngx-histaff-alpha-tracker-studio.component-8tqyVAcU.mjs').then(m => m.TrackerStudioComponent)
|
|
38956
40066
|
}
|
|
38957
40067
|
];
|
|
38958
40068
|
|
|
@@ -41541,33 +42651,33 @@ const coreWorkflowRoutes = [
|
|
|
41541
42651
|
{
|
|
41542
42652
|
path: 'form-assign/:id',
|
|
41543
42653
|
outlet: "formAssignAux",
|
|
41544
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-
|
|
42654
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-form-assign.component-CRs1A8j_.mjs').then(m => m.WfFormAssignComponent),
|
|
41545
42655
|
canDeactivate: [CanDeactivateGuard]
|
|
41546
42656
|
}
|
|
41547
42657
|
]
|
|
41548
42658
|
},
|
|
41549
42659
|
{
|
|
41550
42660
|
path: 'global-config',
|
|
41551
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-
|
|
42661
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-global-config.component-yeFb4wxY.mjs').then(m => m.WfGlobalConfigComponent)
|
|
41552
42662
|
},
|
|
41553
42663
|
{
|
|
41554
42664
|
path: 'db-settings',
|
|
41555
|
-
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-
|
|
42665
|
+
loadComponent: () => import('./ngx-histaff-alpha-db-settings.component-CpjFcS3r.mjs').then(m => m.DbSettingsComponent)
|
|
41556
42666
|
},
|
|
41557
42667
|
{
|
|
41558
42668
|
path: 'workflow-consume',
|
|
41559
|
-
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-
|
|
42669
|
+
loadComponent: () => import('./ngx-histaff-alpha-core-workflow-consume.component-Fma_hNMb.mjs').then(m => m.CoreWorkflowConsumeComponent),
|
|
41560
42670
|
children: [
|
|
41561
42671
|
{
|
|
41562
42672
|
path: ':id',
|
|
41563
42673
|
outlet: "workflowConsume",
|
|
41564
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
42674
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-iX23HD-T.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
41565
42675
|
}
|
|
41566
42676
|
]
|
|
41567
42677
|
},
|
|
41568
42678
|
{
|
|
41569
42679
|
path: 'workflow-consume/:id',
|
|
41570
|
-
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-
|
|
42680
|
+
loadComponent: () => import('./ngx-histaff-alpha-live-form.component-iX23HD-T.mjs').then(function (n) { return n.l; }).then(m => m.LiveFormComponent),
|
|
41571
42681
|
},
|
|
41572
42682
|
{
|
|
41573
42683
|
path: 'workflow-group-edit/:id',
|
|
@@ -41577,17 +42687,17 @@ const coreWorkflowRoutes = [
|
|
|
41577
42687
|
},
|
|
41578
42688
|
{
|
|
41579
42689
|
path: 'design/:id',
|
|
41580
|
-
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-
|
|
42690
|
+
loadChildren: () => import('./ngx-histaff-alpha-design-wrapper.route-BPTxhFez.mjs').then(m => m.wfDesignWrapperRoutes),
|
|
41581
42691
|
},
|
|
41582
42692
|
]
|
|
41583
42693
|
},
|
|
41584
42694
|
{
|
|
41585
42695
|
path: 'react/:id',
|
|
41586
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-
|
|
42696
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-step-react.component-Bri0bRw3.mjs').then(m => m.WfInstanceStepReactComponent)
|
|
41587
42697
|
},
|
|
41588
42698
|
{
|
|
41589
42699
|
path: 'status/:id',
|
|
41590
|
-
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-
|
|
42700
|
+
loadComponent: () => import('./ngx-histaff-alpha-wf-instance-status.component-Jahj4MO-.mjs').then(m => m.WfInstanceStatusComponent)
|
|
41591
42701
|
}
|
|
41592
42702
|
];
|
|
41593
42703
|
|
|
@@ -43448,7 +44558,11 @@ class NavigatorComponent {
|
|
|
43448
44558
|
else if (this.menuClickedItem?.tree$Tier == 3) { //nếu là 3 cấp
|
|
43449
44559
|
array = x.filter(y => y.id == this.menuClickedItem.id);
|
|
43450
44560
|
arrayParrent = x.filter(y => y.id == this.menuClickedItem.tree$Parent);
|
|
44561
|
+
if (!arrayParrent.length)
|
|
44562
|
+
return;
|
|
43451
44563
|
let arrayGrandParrent = x.filter(z => z.id == arrayParrent[0].parent);
|
|
44564
|
+
if (!arrayGrandParrent.length)
|
|
44565
|
+
return;
|
|
43452
44566
|
let element = document.getElementById('main-menu-' + arrayParrent[0].id);
|
|
43453
44567
|
let element2 = document.getElementById('main-menu-' + arrayGrandParrent[0].id);
|
|
43454
44568
|
array[0].tree$Selected = true;
|
|
@@ -44208,5 +45322,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
44208
45322
|
* Generated bundle index. Do not edit.
|
|
44209
45323
|
*/
|
|
44210
45324
|
|
|
44211
|
-
export { CoreButtonGroupVnsComponent as $, AppService as A, BaseComponent as B, ChatService as C, DialogService as D, EnumCoreTablePipeType as E, FullscreenModalLoaderComponent as F, CoreDatePickerComponent as G, CoreFormControlSeekerComponent as H, ImageErrorResolverDirective as I, CoreCurrencyInputComponent as J, EnumActorSourceType as K, CoreParamControlComponent as L, MultiLanguageService as M, CoreRadioGroupComponent as N, GptService as O, ApplicationHelpService as P, HotKeysDirective as Q, EnumCorePageEditMode as R, SocketService as S, TranslatePipe as T, CoreFormComponent as U, NavigatorService as V, JsonService as W, AppConfigService as X, EnumCoreButtonVNSCode as Y, READONLY_WORKFLOW_FIELDS as Z, noneAutoClosedAlertOptions as _, CorePageListComponent as a, CommonHttpRequestService as a$, CoreStickerCollectionComponent as a0, HtmlTooltipDirective as a1, CoreControlNoFormArrayComponent as a2, EnumFormDesignMode as a3, CoreControlComponent as a4, JsonSafePipe as a5, CoreAttachmentComponent as a6, CoreMonthSelectorComponent as a7, EnumImageResolverType as a8, NormalizeHumanNamePipe as a9, EnumStyleButtonClass as aA, CanActivateFunctionUrlMapperGuard as aB, InitializationCanActivateFn as aC, InitializationCanMatchFn as aD, httpInterceptorProviders as aE, InterceptorSkipHeader as aF, appTypeInterceptor as aG, baseUrlInterceptor as aH, authInterceptor as aI, graphInterceptor as aJ, tokenInterceptor as aK, responseInterceptor as aL, timeZoneInterceptor as aM, cachingInterceptor as aN, langInterceptor as aO, EnumFilterOperator as aP, OnlineUsersComponent as aQ, ActionService as aR, AppInitializationService as aS, AuthService as aT, CacheService as aU, EnumSwUpdateVersionUpdatesEventType as aV, CheckForUpdateService as aW, EnumDeviceType as aX, EnumBrowserType as aY, EnumOsType as aZ, ClientService as a_, CoreIosSwitcherComponent as aa, SunnyRotatingComponent as ab, MapAppdemoToServerPipePipe as ac, MapAttachmentToServerPipe as ad, MapNewsfeedMediaToServerPipe as ae, StringHtmlPipe as af, UploadedFilenameCutoffPipe as ag, DialogStateComponent as ah, FooterComponent as ai, RightchatComponent as aj, WaittingScreenComponent as ak, longAlertOptions as al, attachmentOptions as am, CORE_VNS_BUTTONS as an, defaultPaging as ao, DESKTOP_SCREEN_HEDER_HEIGHT as ap, MOBILE_SCREEN_HEDER_HEIGHT as aq, themeBlue as ar, DATE_VALUE_ACCESSOR as as, DateValueAccessor as at, EnumDragType as au, EnumErrorType as av, EnumIconClass as aw, EnumProfileInfoSector as ax, EnumSignalRType as ay, EnumSortDirection as az, CoreCheckboxComponent as b, MutationViewComponent as b$, TLA_CONFIG as b0, ConfigService as b1, CoreTableService as b2, DndService as b3, DocxMergeService as b4, FilterKitService as b5, GrpcService as b6, HeaderService as b7, HistoryService as b8, HttpErrorHandler as b9, TopicPermissionService as bA, TopicTreeService as bB, UploadedFileService as bC, UrlService as bD, UserActivityService as bE, EvaluateDialogService as bF, EnumWorkScheduleViewMode as bG, WorkShiftDndService as bH, AtShiftPatternComponent as bI, AtShiftPatternApplyComponent as bJ, AtShiftPatternEditComponent as bK, AtWorksignComponent as bL, AtWorksignService as bM, FunctionComponent as bN, IndividualScheduleApplyComponent as bO, FunctionEditComponent as bP, FunctionIgnoreComponent as bQ, FunctionIgnoreEditComponent as bR, GroupFunctionComponent as bS, GroupFunctionEditComponent as bT, hrmSchemaRoutes as bU, InMemoryComponent as bV, LanguageComponent as bW, LanguageEditComponent as bX, MenuComponent as bY, MenuEditComponent as bZ, MutationLogComponent as b_, HubConnectionService as ba, IpServiceService as bb, LayoutService as bc, LiquidJsService as bd, MapService as be, MenuService as bf, MessageService as bg, ModalService as bh, OrganizationService as bi, PkceService as bj, PositionTransferService as bk, EnumNotificationDir as bl, NotificationActionType as bm, PushNotificationService as bn, RandomAvatarService as bo, RequestCache as bp, RequestCacheWithMap as bq, ResponseService as br, RoutingService as bs, EnumSsrsExpressFileExtension as bt, EnumSsrsExpressExportFormat as bu, SsrsExpressService as bv, StatisticService as bw, StatisticAuthService as bx, SysMenuService as by, TimeSheetService as bz, BaseEditComponent as c, CoreEmployeeSeekerComponent as c$, PaSalaryPolicyComponent as c0, PaSalaryPolicyEditComponent as c1, PortalRouteComponent as c2, ScheduleOverviewComponent as c3, simpleChatRoutes as c4, PortalRouteEditComponent as c5, SysOtherListComponent as c6, SysOtherListEditComponent as c7, SysOtherListTypeComponent as c8, SysOtherListTypeEditComponent as c9, NewlyCreatedTokenService as cA, CoreApiProgressComponent as cB, CoreButtonGroupComponent as cC, EnumCoreButtonCode as cD, ActionSvgEditComponent as cE, CoreButtonGroupService as cF, CoreButtonVnsComponent as cG, CoreCommonParamKitComponent as cH, CoreCompareDbPipelineComponent as cI, CoreCompositionState as cJ, CoreCompositionService as cK, CoreCompositionComponent as cL, CoreConfirmDialogComponent as cM, ConfirmDialogStateComponent as cN, CoreLazyMountComponent as cO, CoreRootMenuItemPickerComponent as cP, CoreRootMenuItemPickerService as cQ, ECoreTableToolCode as cR, ECoreTableToolClass as cS, CoreTableComponent as cT, CoreComProfileComponent as cU, CoreContractSeekerComponent as cV, CoreControlNoGridBufferComponent as cW, CoreControlNoSeekerComponent as cX, coreDocGenRoutes as cY, CoreDocgenToolbarComponent as cZ, CoreEmployeeScheduleComponent as c_, SysActionComponent as ca, SysActionEditComponent as cb, SysFunctionActionComponent as cc, SysFunctionActionEditComponent as cd, SysFunctionActionMapperComponent as ce, SysFunctionUrlMapperComponent as cf, FunctionEditService as cg, SysModuleComponent as ch, SysModuleEditComponent as ci, SysRouteAccessComponent as cj, liner_to_nested_array_script as ck, blob_to_base64_script as cl, AlertComponent as cm, EnumAlertType as cn, IAlertOptions as co, AnimatedTextService as cp, AnimatedTextComponent as cq, BaseDropdownComponent as cr, ButtonGroupModule as cs, ButtonGroupService as ct, ButtonGroupComponent as cu, EnumButtonCaptionCode as cv, CoreButtonComponent as cw, CoreAccordionComponent as cx, CoreAccordionService as cy, CoreActiveUserCountComponent as cz, EnumFormBaseContolType as d, CorePermissionActionsComponent as d$, EnumCoreFileUploaderType as d0, CoreFileUploaderComponent as d1, CoreFilterHubComponent as d2, CoreFilterHubService as d3, ControlBase as d4, Textbox as d5, CoreControlService as d6, CustomValidators as d7, URL_PATTERN as d8, coreFormDesignRoutes as d9, CoreOauthCallbackOffice365Component as dA, EnumCoreOrgTreeaAccessorMode as dB, EnumCoreOrgTreeaSearchMode as dC, CoreOrgTreeComponent as dD, CoreOrgTreeState as dE, CoreOrgTreeService as dF, CoreOrgUnitSeekerComponent as dG, CoreOrgchartflexComponent as dH, CoreOrgParamComponent as dI, EnumCorePageEditBootstrapClass as dJ, EnumCorePageEditFieldType as dK, CorePageEditService as dL, CorePageEditLiteComponent as dM, CorePageEditTabComponent as dN, EnumExType as dO, CorePageListService as dP, CorePageListState as dQ, CorePageListContentComponent as dR, EnumCoreViewItemType as dS, CorePageViewComponent as dT, CorePaginationComponent as dU, CorePaginationFullComponent as dV, CorePaginationFullService as dW, CoreFileFormatPickerComponent as dX, CorePermissionService as dY, EnumPermissionObjectType as dZ, CorePermissionComponent as d_, CoreFormTabComponent as da, CoreFormLiteComponent as db, CoreFormControlBaseComponent as dc, EnumCoreSeekerColumnJob as dd, EnumCoreSeekerColumnStaffProfile as de, EnumCoreSeekerColumnContract as df, EnumCoreSeekerColumnWorking as dg, EnumCoreSeekerColumnWage as dh, EnumCoreSeekerColumnPosition as di, EnumCoreSeekerColumnPositionConcurrent as dj, EnumCoreSeekerColumnAutoForm as dk, SeekerService as dl, CoreGridBufferComponent as dm, CoreHeaderParamsComponent as dn, CoreHelperComponent as dp, CoreLineComponent as dq, CoreLiquidWysiwygComponent as dr, CoreListComponent as ds, CoreListLazyComponent as dt, CoreLoadingSurfaceComponent as du, CoreMccComponent as dv, CoreMonthPickerComponent as dw, CoreNavigationTrackerComponent as dx, coreNavigationTrackerRoutes as dy, CoreOauthCallbackComponent as dz, CorePageEditComponent as e, StringService as e$, CorePositionConcurrentSeekerComponent as e0, CorePositionSeekerComponent as e1, CoreQrcodeComponent as e2, EnumOparator as e3, CoreQueryBuilderComponent as e4, CoreReducerIconComponent as e5, CoreRotatingTextComponent as e6, CoreRouteAccumulatorComponent as e7, CoreRoutingHistoryComponent as e8, CoreSalaryPolicyPickerComponent as e9, CoreD3Service as eA, CorePieComponent as eB, CoreScatterPlotComponent as eC, EnumHrComparisonCode as eD, EnumICoreStatisticWidgetDataType as eE, CoreStatisticWidgetComponent as eF, DecisionComponent as eG, EvaluateDialogComponent as eH, HuconcurrentlyComponent as eI, JobComponent as eJ, LanguageChangerComponent as eK, DEFAULT_SVG as eL, ItemComponent as eM, NavigatorComponent as eN, OtpInputComponent as eO, OtpInputService as eP, PageTitleComponent as eQ, PaginationComponent as eR, FilterPipe as eS, normalizeHumanName as eT, PositionComponent as eU, PositionEditService as eV, CoreDatetimeService as eW, FileService as eX, LongTaskService as eY, EnumRecursiveFields as eZ, RecursiveService as e_, CoreScrollComponent as ea, CoreScrollLazyComponent as eb, CoreSeenByComponent as ec, CoreShiftCardComponent as ed, CoreShiftCellComponent as ee, CoreShiftCollectionComponent as ef, CoreShiftStickerComponent as eg, STICKER_COLOR_SCHEMA as eh, CoreStatusStickerComponent as ei, CoreSubFormGroupComponent as ej, CoreTabListComponent as ek, CoreTagsComponent as el, CoreTopicPickerComponent as em, EnumCoreArticleCategoryTreeaAccessorMode as en, CoreTopicTreeComponent as eo, CoreTreeComponent as ep, EnumCoreTreeGridEditMode as eq, CoreTreeGridComponent as er, CoreWageSeekerComponent as es, CoreWorkingSeekerComponent as et, coreWorkflowRoutes as eu, CoreWorkflowBuilderComponent as ev, CoreWorkflowGroupEditComponent as ew, CoreYearPickerComponent as ex, CoreYearSelectorComponent as ey, EnumCoreD3ScaleType as ez, CorePageHeaderComponent as f, UnicodeService as f0, StaffProfileComponent as f1, ThreedotsComponent as f2, TooltipComponent as f3, UserActivityComponent as f4, WageComponent as f5, tooltip_directive as f6, coreStickerCollection_component as f7, dragReorder_directive as f8, CoreTabsComponent as g, CoreWorkflowService as h, EnumCoreFormControlSeekerSourceType as i, AlertService as j, CoreFormService as k, DbService as l, AiHintForColumnComponent as m, CoreWorkflowListComponent as n, TooltipDirective as o, DragReorderDirective as p, CanDeactivateGuard as q, TableCellPipe as r, MapAvatarToServerPipe as s, alertOptions as t, CoreTerminalSpinnerComponent as u, CoreFormDesignService as v, EnumWorkflowStepType as w, DomService as x, CoreDropdownComponent as y, CoreChecklistComponent as z };
|
|
44212
|
-
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-
|
|
45325
|
+
export { CoreButtonGroupVnsComponent as $, AppService as A, BaseComponent as B, ChatService as C, DialogService as D, EnumCoreTablePipeType as E, FullscreenModalLoaderComponent as F, CoreDatePickerComponent as G, CoreFormControlSeekerComponent as H, ImageErrorResolverDirective as I, CoreCurrencyInputComponent as J, EnumActorSourceType as K, CoreParamControlComponent as L, MultiLanguageService as M, CoreRadioGroupComponent as N, GptService as O, ApplicationHelpService as P, HotKeysDirective as Q, EnumCorePageEditMode as R, SocketService as S, TranslatePipe as T, CoreFormComponent as U, NavigatorService as V, JsonService as W, AppConfigService as X, EnumCoreButtonVNSCode as Y, READONLY_WORKFLOW_FIELDS as Z, noneAutoClosedAlertOptions as _, CorePageListComponent as a, CommonHttpRequestService as a$, CoreStickerCollectionComponent as a0, HtmlTooltipDirective as a1, CoreControlNoFormArrayComponent as a2, EnumFormDesignMode as a3, CoreControlComponent as a4, JsonSafePipe as a5, CoreAttachmentComponent as a6, CoreMonthSelectorComponent as a7, EnumImageResolverType as a8, NormalizeHumanNamePipe as a9, EnumStyleButtonClass as aA, CanActivateFunctionUrlMapperGuard as aB, InitializationCanActivateFn as aC, InitializationCanMatchFn as aD, httpInterceptorProviders as aE, InterceptorSkipHeader as aF, appTypeInterceptor as aG, baseUrlInterceptor as aH, authInterceptor as aI, graphInterceptor as aJ, tokenInterceptor as aK, responseInterceptor as aL, timeZoneInterceptor as aM, cachingInterceptor as aN, langInterceptor as aO, EnumFilterOperator as aP, OnlineUsersComponent as aQ, ActionService as aR, AppInitializationService as aS, AuthService as aT, CacheService as aU, EnumSwUpdateVersionUpdatesEventType as aV, CheckForUpdateService as aW, EnumDeviceType as aX, EnumBrowserType as aY, EnumOsType as aZ, ClientService as a_, CoreIosSwitcherComponent as aa, SunnyRotatingComponent as ab, MapAppdemoToServerPipePipe as ac, MapAttachmentToServerPipe as ad, MapNewsfeedMediaToServerPipe as ae, StringHtmlPipe as af, UploadedFilenameCutoffPipe as ag, DialogStateComponent as ah, FooterComponent as ai, RightchatComponent as aj, WaittingScreenComponent as ak, longAlertOptions as al, attachmentOptions as am, CORE_VNS_BUTTONS as an, defaultPaging as ao, DESKTOP_SCREEN_HEDER_HEIGHT as ap, MOBILE_SCREEN_HEDER_HEIGHT as aq, themeBlue as ar, DATE_VALUE_ACCESSOR as as, DateValueAccessor as at, EnumDragType as au, EnumErrorType as av, EnumIconClass as aw, EnumProfileInfoSector as ax, EnumSignalRType as ay, EnumSortDirection as az, CoreCheckboxComponent as b, MutationViewComponent as b$, TLA_CONFIG as b0, ConfigService as b1, CoreTableService as b2, DndService as b3, DocxMergeService as b4, FilterKitService as b5, GrpcService as b6, HeaderService as b7, HistoryService as b8, HttpErrorHandler as b9, TopicPermissionService as bA, TopicTreeService as bB, UploadedFileService as bC, UrlService as bD, UserActivityService as bE, EvaluateDialogService as bF, EnumWorkScheduleViewMode as bG, WorkShiftDndService as bH, AtShiftPatternComponent as bI, AtShiftPatternApplyComponent as bJ, AtShiftPatternEditComponent as bK, AtWorksignComponent as bL, AtWorksignService as bM, FunctionComponent as bN, IndividualScheduleApplyComponent as bO, FunctionEditComponent as bP, FunctionIgnoreComponent as bQ, FunctionIgnoreEditComponent as bR, GroupFunctionComponent as bS, GroupFunctionEditComponent as bT, hrmSchemaRoutes as bU, InMemoryComponent as bV, LanguageComponent as bW, LanguageEditComponent as bX, MenuComponent as bY, MenuEditComponent as bZ, MutationLogComponent as b_, HubConnectionService as ba, IpServiceService as bb, LayoutService as bc, LiquidJsService as bd, MapService as be, MenuService as bf, MessageService as bg, ModalService as bh, OrganizationService as bi, PkceService as bj, PositionTransferService as bk, EnumNotificationDir as bl, NotificationActionType as bm, PushNotificationService as bn, RandomAvatarService as bo, RequestCache as bp, RequestCacheWithMap as bq, ResponseService as br, RoutingService as bs, EnumSsrsExpressFileExtension as bt, EnumSsrsExpressExportFormat as bu, SsrsExpressService as bv, StatisticService as bw, StatisticAuthService as bx, SysMenuService as by, TimeSheetService as bz, BaseEditComponent as c, CoreDocgenToolbarComponent as c$, PaSalaryPolicyComponent as c0, PaSalaryPolicyEditComponent as c1, PortalRouteComponent as c2, ScheduleOverviewComponent as c3, simpleChatRoutes as c4, PortalRouteEditComponent as c5, SysOtherListComponent as c6, SysOtherListEditComponent as c7, SysOtherListTypeComponent as c8, SysOtherListTypeEditComponent as c9, NewlyCreatedTokenService as cA, CoreApiProgressComponent as cB, CoreButtonGroupComponent as cC, EnumCoreButtonCode as cD, ActionSvgEditComponent as cE, CoreButtonGroupService as cF, CoreButtonVnsComponent as cG, CoreComTreeComponent as cH, ComPartyService as cI, CoreCommonParamKitComponent as cJ, CoreCompareDbPipelineComponent as cK, CoreCompositionState as cL, CoreCompositionService as cM, CoreCompositionComponent as cN, CoreConfirmDialogComponent as cO, ConfirmDialogStateComponent as cP, CoreLazyMountComponent as cQ, CoreRootMenuItemPickerComponent as cR, CoreRootMenuItemPickerService as cS, ECoreTableToolCode as cT, ECoreTableToolClass as cU, CoreTableComponent as cV, CoreComProfileComponent as cW, CoreContractSeekerComponent as cX, CoreControlNoGridBufferComponent as cY, CoreControlNoSeekerComponent as cZ, coreDocGenRoutes as c_, SysActionComponent as ca, SysActionEditComponent as cb, SysFunctionActionComponent as cc, SysFunctionActionEditComponent as cd, SysFunctionActionMapperComponent as ce, SysFunctionUrlMapperComponent as cf, FunctionEditService as cg, SysModuleComponent as ch, SysModuleEditComponent as ci, SysRouteAccessComponent as cj, liner_to_nested_array_script as ck, blob_to_base64_script as cl, AlertComponent as cm, EnumAlertType as cn, IAlertOptions as co, AnimatedTextService as cp, AnimatedTextComponent as cq, BaseDropdownComponent as cr, ButtonGroupModule as cs, ButtonGroupService as ct, ButtonGroupComponent as cu, EnumButtonCaptionCode as cv, CoreButtonComponent as cw, CoreAccordionComponent as cx, CoreAccordionService as cy, CoreActiveUserCountComponent as cz, EnumFormBaseContolType as d, EnumPermissionObjectType as d$, CoreEmployeeScheduleComponent as d0, CoreEmployeeSeekerComponent as d1, EnumCoreFileUploaderType as d2, CoreFileUploaderComponent as d3, CoreFilterHubComponent as d4, CoreFilterHubService as d5, ControlBase as d6, Textbox as d7, CoreControlService as d8, CustomValidators as d9, coreNavigationTrackerRoutes as dA, CoreOauthCallbackComponent as dB, CoreOauthCallbackOffice365Component as dC, EnumCoreOrgTreeaAccessorMode as dD, EnumCoreOrgTreeaSearchMode as dE, CoreOrgTreeComponent as dF, CoreOrgTreeState as dG, CoreOrgTreeService as dH, CoreOrgUnitSeekerComponent as dI, CoreOrgchartflexComponent as dJ, CoreOrgParamComponent as dK, EnumCorePageEditBootstrapClass as dL, EnumCorePageEditFieldType as dM, CorePageEditService as dN, CorePageEditLiteComponent as dO, CorePageEditTabComponent as dP, EnumExType as dQ, CorePageListService as dR, CorePageListState as dS, CorePageListContentComponent as dT, EnumCoreViewItemType as dU, CorePageViewComponent as dV, CorePaginationComponent as dW, CorePaginationFullComponent as dX, CorePaginationFullService as dY, CoreFileFormatPickerComponent as dZ, CorePermissionService as d_, URL_PATTERN as da, coreFormDesignRoutes as db, CoreFormTabComponent as dc, CoreFormLiteComponent as dd, CoreFormControlBaseComponent as de, EnumCoreSeekerColumnJob as df, EnumCoreSeekerColumnStaffProfile as dg, EnumCoreSeekerColumnContract as dh, EnumCoreSeekerColumnWorking as di, EnumCoreSeekerColumnWage as dj, EnumCoreSeekerColumnPosition as dk, EnumCoreSeekerColumnPositionConcurrent as dl, EnumCoreSeekerColumnAutoForm as dm, SeekerService as dn, CoreGridBufferComponent as dp, CoreHeaderParamsComponent as dq, CoreHelperComponent as dr, CoreLineComponent as ds, CoreLiquidWysiwygComponent as dt, CoreListComponent as du, CoreListLazyComponent as dv, CoreLoadingSurfaceComponent as dw, CoreMccComponent as dx, CoreMonthPickerComponent as dy, CoreNavigationTrackerComponent as dz, CorePageEditComponent as e, EnumRecursiveFields as e$, CorePermissionComponent as e0, CorePermissionActionsComponent as e1, CorePositionConcurrentSeekerComponent as e2, CorePositionSeekerComponent as e3, CoreQrcodeComponent as e4, EnumOparator as e5, CoreQueryBuilderComponent as e6, CoreReducerIconComponent as e7, CoreRotatingTextComponent as e8, CoreRouteAccumulatorComponent as e9, CoreYearSelectorComponent as eA, EnumCoreD3ScaleType as eB, CoreD3Service as eC, CorePieComponent as eD, CoreScatterPlotComponent as eE, EnumHrComparisonCode as eF, EnumICoreStatisticWidgetDataType as eG, CoreStatisticWidgetComponent as eH, DecisionComponent as eI, EvaluateDialogComponent as eJ, HuconcurrentlyComponent as eK, JobComponent as eL, LanguageChangerComponent as eM, DEFAULT_SVG as eN, ItemComponent as eO, NavigatorComponent as eP, OtpInputComponent as eQ, OtpInputService as eR, PageTitleComponent as eS, PaginationComponent as eT, FilterPipe as eU, normalizeHumanName as eV, PositionComponent as eW, PositionEditService as eX, CoreDatetimeService as eY, FileService as eZ, LongTaskService as e_, CoreRoutingHistoryComponent as ea, CoreSalaryPolicyPickerComponent as eb, CoreScrollComponent as ec, CoreScrollLazyComponent as ed, CoreSeenByComponent as ee, CoreShiftCardComponent as ef, CoreShiftCellComponent as eg, CoreShiftCollectionComponent as eh, CoreShiftStickerComponent as ei, STICKER_COLOR_SCHEMA as ej, CoreStatusStickerComponent as ek, CoreSubFormGroupComponent as el, CoreTabListComponent as em, CoreTagsComponent as en, CoreTopicPickerComponent as eo, EnumCoreArticleCategoryTreeaAccessorMode as ep, CoreTopicTreeComponent as eq, CoreTreeComponent as er, EnumCoreTreeGridEditMode as es, CoreTreeGridComponent as et, CoreWageSeekerComponent as eu, CoreWorkingSeekerComponent as ev, coreWorkflowRoutes as ew, CoreWorkflowBuilderComponent as ex, CoreWorkflowGroupEditComponent as ey, CoreYearPickerComponent as ez, CorePageHeaderComponent as f, RecursiveService as f0, StringService as f1, UnicodeService as f2, StaffProfileComponent as f3, ThreedotsComponent as f4, TooltipComponent as f5, UserActivityComponent as f6, WageComponent as f7, tooltip_directive as f8, coreStickerCollection_component as f9, dragReorder_directive as fa, CoreTabsComponent as g, CoreWorkflowService as h, EnumCoreFormControlSeekerSourceType as i, AlertService as j, CoreFormService as k, DbService as l, AiHintForColumnComponent as m, CoreWorkflowListComponent as n, TooltipDirective as o, DragReorderDirective as p, CanDeactivateGuard as q, TableCellPipe as r, MapAvatarToServerPipe as s, alertOptions as t, CoreTerminalSpinnerComponent as u, CoreFormDesignService as v, EnumWorkflowStepType as w, DomService as x, CoreDropdownComponent as y, CoreChecklistComponent as z };
|
|
45326
|
+
//# sourceMappingURL=ngx-histaff-alpha-ngx-histaff-alpha-BJ3ZVba7.mjs.map
|