ngx-histaff-alpha 2.2.8 → 2.2.9
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/esm2022/lib/app/libraries/core-button-group-vns/core-button-vns/core-button-vns.component.mjs +5 -6
- package/esm2022/lib/app/libraries/core-table/ICoreTableColumnItem.mjs +1 -1
- package/esm2022/lib/app/libraries/core-tree-grid/core-tree-grid/core-tree-grid.component.mjs +34 -12
- package/esm2022/lib/app/root/menu/menu/menu.component.mjs +27 -6
- package/esm2022/lib/app/services/core-table.service.mjs +75 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ngx-histaff-alpha.mjs +133 -19
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/libraries/core-table/ICoreTableColumnItem.d.ts +1 -0
- package/lib/app/libraries/core-tree-grid/core-tree-grid/core-tree-grid.component.d.ts +10 -3
- package/lib/app/root/menu/menu/menu.component.d.ts +7 -3
- package/lib/app/services/core-table.service.d.ts +13 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -3517,6 +3517,79 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
3517
3517
|
}]
|
|
3518
3518
|
}] });
|
|
3519
3519
|
|
|
3520
|
+
class CoreTableService {
|
|
3521
|
+
constructor() { }
|
|
3522
|
+
// each item of input array must have "headerGroup" property
|
|
3523
|
+
makeHeaderGroupsSeemless(input) {
|
|
3524
|
+
const output = [];
|
|
3525
|
+
const columnHeaders = [];
|
|
3526
|
+
let isValid = true;
|
|
3527
|
+
const inputHidden = input.filter(x => !!x.hidden);
|
|
3528
|
+
const inputVisible = input.filter(x => !x.hidden);
|
|
3529
|
+
for (let i = 0; i < inputVisible.length; i++) {
|
|
3530
|
+
const x = inputVisible[i];
|
|
3531
|
+
if (!!x.headerGroup && typeof (x.headerGroup) === 'string' && !!x.headerGroup.length) {
|
|
3532
|
+
if (!columnHeaders.filter(m => m === x.headerGroup).length) {
|
|
3533
|
+
columnHeaders.push(x.headerGroup);
|
|
3534
|
+
}
|
|
3535
|
+
}
|
|
3536
|
+
else {
|
|
3537
|
+
isValid = false;
|
|
3538
|
+
break;
|
|
3539
|
+
}
|
|
3540
|
+
}
|
|
3541
|
+
if (!!isValid) {
|
|
3542
|
+
inputHidden.map(h => {
|
|
3543
|
+
output.push(h);
|
|
3544
|
+
});
|
|
3545
|
+
columnHeaders.map(h => {
|
|
3546
|
+
const filter = input.filter(x => x.headerGroup === h);
|
|
3547
|
+
filter.map(f => output.push(f));
|
|
3548
|
+
});
|
|
3549
|
+
return output;
|
|
3550
|
+
}
|
|
3551
|
+
else {
|
|
3552
|
+
return input;
|
|
3553
|
+
}
|
|
3554
|
+
}
|
|
3555
|
+
getHeaderGroups(input) {
|
|
3556
|
+
const columnHeaders = [];
|
|
3557
|
+
let isValid = true;
|
|
3558
|
+
const inputVisible = input.filter(x => !x.hidden);
|
|
3559
|
+
for (let i = 0; i < inputVisible.length; i++) {
|
|
3560
|
+
const x = inputVisible[i];
|
|
3561
|
+
if (!!x.headerGroup && typeof (x.headerGroup) === 'string' && !!x.headerGroup.length && !!x.width) {
|
|
3562
|
+
if (!columnHeaders.filter(m => m.key === x.headerGroup).length) {
|
|
3563
|
+
columnHeaders.push({
|
|
3564
|
+
key: x.headerGroup,
|
|
3565
|
+
width: x.width
|
|
3566
|
+
});
|
|
3567
|
+
}
|
|
3568
|
+
}
|
|
3569
|
+
else {
|
|
3570
|
+
isValid = false;
|
|
3571
|
+
break;
|
|
3572
|
+
}
|
|
3573
|
+
}
|
|
3574
|
+
if (!!isValid) {
|
|
3575
|
+
const headerGroupObjects = [];
|
|
3576
|
+
// columnHeaders.map(x => )
|
|
3577
|
+
return headerGroupObjects;
|
|
3578
|
+
}
|
|
3579
|
+
else {
|
|
3580
|
+
return [];
|
|
3581
|
+
}
|
|
3582
|
+
}
|
|
3583
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3584
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreTableService, providedIn: 'root' }); }
|
|
3585
|
+
}
|
|
3586
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreTableService, decorators: [{
|
|
3587
|
+
type: Injectable,
|
|
3588
|
+
args: [{
|
|
3589
|
+
providedIn: 'root'
|
|
3590
|
+
}]
|
|
3591
|
+
}], ctorParameters: () => [] });
|
|
3592
|
+
|
|
3520
3593
|
class HeaderService {
|
|
3521
3594
|
toggleActive(keyword, searchActive) {
|
|
3522
3595
|
this.keyword = keyword;
|
|
@@ -4550,9 +4623,9 @@ class CoreButtonVnsComponent {
|
|
|
4550
4623
|
this.subscriptions.push(filter[0].mustBeHidden$.subscribe(mbh => this.hidden = mbh.includes(this.data.code)));
|
|
4551
4624
|
}
|
|
4552
4625
|
else {
|
|
4553
|
-
if (isDevMode()) {
|
|
4554
|
-
|
|
4555
|
-
}
|
|
4626
|
+
// if (isDevMode()) {
|
|
4627
|
+
// this.alertService.warn("Không tìm thấy instance number của nhóm nút", noneAutoClosedAlertOptions);
|
|
4628
|
+
// }
|
|
4556
4629
|
}
|
|
4557
4630
|
}
|
|
4558
4631
|
ngAfterViewInit() {
|
|
@@ -16624,15 +16697,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
16624
16697
|
}], ctorParameters: () => [{ type: DialogService }, { type: CoreFormService }] });
|
|
16625
16698
|
|
|
16626
16699
|
class CoreTreeGridComponent extends CoreFormControlBaseComponent {
|
|
16627
|
-
constructor(appService, recursiveService, mls, dialogService, coreControlService) {
|
|
16700
|
+
constructor(appService, recursiveService, mls, dialogService, coreControlService, coreTableService) {
|
|
16628
16701
|
super();
|
|
16629
16702
|
this.appService = appService;
|
|
16630
16703
|
this.recursiveService = recursiveService;
|
|
16631
16704
|
this.mls = mls;
|
|
16632
16705
|
this.dialogService = dialogService;
|
|
16633
16706
|
this.coreControlService = coreControlService;
|
|
16707
|
+
this.coreTableService = coreTableService;
|
|
16708
|
+
this.treeColumnWidth = 300;
|
|
16709
|
+
this.treeNodeLevelPadding = 15;
|
|
16634
16710
|
this.onRowDoubleClick = new EventEmitter();
|
|
16635
16711
|
this.onSubmitSuccess = new EventEmitter();
|
|
16712
|
+
this.totalWidth = 500;
|
|
16636
16713
|
this.subscriptions = [];
|
|
16637
16714
|
this.checkError$ = new BehaviorSubject(false);
|
|
16638
16715
|
this.status = {
|
|
@@ -16651,6 +16728,14 @@ class CoreTreeGridComponent extends CoreFormControlBaseComponent {
|
|
|
16651
16728
|
}
|
|
16652
16729
|
ngOnInit() {
|
|
16653
16730
|
this.form = this.coreControlService.toCoreTreeGridInRowFormGroup(this.columns);
|
|
16731
|
+
let newTotalWidth = this.treeColumnWidth;
|
|
16732
|
+
this.columns.map(x => newTotalWidth += x.width);
|
|
16733
|
+
this.totalWidth = newTotalWidth;
|
|
16734
|
+
this.headerGroupAvailable = !!this.columns.filter(x => !!x.headerGroup && typeof (x.headerGroup) === 'string' && !!x.headerGroup.length).length;
|
|
16735
|
+
if (this.headerGroupAvailable) {
|
|
16736
|
+
this.columns = this.coreTableService.makeHeaderGroupsSeemless(this.columns);
|
|
16737
|
+
//this.headerGroups = this.coreTableService.getHeaderGroups(this.columns);
|
|
16738
|
+
}
|
|
16654
16739
|
}
|
|
16655
16740
|
reload() {
|
|
16656
16741
|
this.subscriptions.push(this.appService.get(this.getFullListApi).subscribe(x => {
|
|
@@ -16666,7 +16751,7 @@ class CoreTreeGridComponent extends CoreFormControlBaseComponent {
|
|
|
16666
16751
|
ngAfterViewInit() {
|
|
16667
16752
|
setTimeout(() => {
|
|
16668
16753
|
this.container.nativeElement.style.setProperty('--tree-container-width', this.treeColumnWidth + 'px');
|
|
16669
|
-
let gridTotalWidth =
|
|
16754
|
+
let gridTotalWidth = 15; // default padding
|
|
16670
16755
|
this.columns.filter(x => !!!x.hidden).map(m => gridTotalWidth += m.width);
|
|
16671
16756
|
this.container.nativeElement.style.setProperty('--grid-total-width', gridTotalWidth + 'px');
|
|
16672
16757
|
this.subscriptions.push(this.mls.lang$.subscribe(x => this.lang = x));
|
|
@@ -16930,8 +17015,8 @@ class CoreTreeGridComponent extends CoreFormControlBaseComponent {
|
|
|
16930
17015
|
ngOnDestroy() {
|
|
16931
17016
|
this.subscriptions.map(x => x?.unsubscribe());
|
|
16932
17017
|
}
|
|
16933
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreTreeGridComponent, deps: [{ token: AppService }, { token: RecursiveService }, { token: MultiLanguageService }, { token: DialogService }, { token: CoreControlService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16934
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreTreeGridComponent, isStandalone: true, selector: "core-tree-grid", inputs: { keyField: "keyField", titleField: "titleField", parentField: "parentField", getFullListApi: "getFullListApi", treeColumnWidth: "treeColumnWidth", columns: "columns", crud: "crud" }, outputs: { onRowDoubleClick: "onRowDoubleClick", onSubmitSuccess: "onSubmitSuccess" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-tree-grid-container\">\r\n\r\n @if (loading) {\r\n <div class=\"loading-surface\">\r\n <div class=\"loading-wrapper\">\r\n <app-threedots></app-threedots>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"tree-grid-header\">\r\n <div class=\"tree-block-header\">\r\n <div class=\"header-cell-div\">\r\n {{ 'UI.CORE_TREE_GRID.TREE_BLOCK_HEADER' | translate: lang }}\r\n <core-button-group-vns [shownItems]=\"headerToolItems\"\r\n (buttonClick)=\"onHeaderToolClick($event)\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n @for (column of columns; track $index) {\r\n <div [class.hidden]=\"column.hidden\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n <div class=\"header-cell-div\">\r\n {{ column.caption | translate: lang }}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"tree-grid-content\" [class.edit-mode-activated]=\"editModeActivated\">\r\n @for (root of data; track $index) {\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 }\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-children=\"context.tree$Children\" let-expanded=\"context.tree$Expanded\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-tier=\"context.tree$Tier\">\r\n\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\"\r\n (click)=\"onRowClick(context, $event)\">\r\n <span [class.span-edit-mode-activated]=\"!!editModeActivated && pendingContext.id===id\">\r\n <div class=\"tree-item-tool\">\r\n <div class=\"tree-item-tool-wrapper\">\r\n <core-button-group-vns [shownItems]=\"toolItems\" [showCaption]=\"false\"\r\n (buttonClick)=\"onToolClick($event, context)\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n <div class=\"tree-item\">\r\n <div class=\"tree-item-div\" [attr.data-tier]=\"tier\">\r\n @if (!!children.length) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context)\"></i>\r\n }\r\n <object (click)=\"onObjectClick(context, $event)\">\r\n {{ title }}\r\n </object>\r\n </div>\r\n </div>\r\n <div class=\"tree-grid-row-wrapper\">\r\n <div class=\"tree-grid-row\">\r\n @if (!(!!editModeActivated && pendingContext?.id===id)) {\r\n @for (column of columns; track $index) {\r\n <div class=\"tree-grid-cell\" [class.hidden]=\"column.hidden\">\r\n <div class=\"cell-div\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n overflow: 'hidden',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n {{ !!column.translate ? (context[column.field] | translate: lang | tableCell:\r\n column.pipe : lang) :\r\n context[column.field] | tableCell: column.pipe : lang}}\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n @if (!!editModeActivated && pendingContext?.id===id) {\r\n <ng-container>\r\n @for (column of columns; track $index) {\r\n <div class=\"tree-grid-cell\" [class.hidden]=\"column.hidden\">\r\n <div class=\"cell-div\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n display: 'table',\r\n overflowY: 'visible',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n @if (!column.control) {\r\n <ng-container>\r\n {{ !!column.translate ? (context[column.field] | translate: lang | tableCell:\r\n column.pipe : lang) :\r\n context[column.field] | tableCell: column.pipe : lang}}\r\n </ng-container>\r\n } @else {\r\n <ng-container>\r\n <core-control [form]=\"form\" [control]=\"column.control!\"\r\n [checkError$]=\"checkError$\"></core-control>\r\n </ng-container>\r\n }\r\n\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n </ng-container>\r\n }\r\n </ul>\r\n }\r\n\r\n </li>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-tree-grid-container{--tree-container-width: 300px;--grid-total-width: 500px;--square-color: darkgray;--square-size: 20px;--step-padding: 2rem;--max-tier: 1;--row-height: 50px;--edit-mode-row-height: 120px;--edit-mode-row-bg: #dff6dd;--border-size: 5px;--header-height: 100px;--header-cell-padding: 5px;--content-cell-padding: 5px;--header-border-size: 1px}.core-tree-grid-container [data-tier=\"1\"]{--tier: 1}.core-tree-grid-container [data-tier=\"2\"]{--tier: 2}.core-tree-grid-container [data-tier=\"3\"]{--tier: 3}.core-tree-grid-container [data-tier=\"4\"]{--tier: 4}.core-tree-grid-container [data-tier=\"5\"]{--tier: 5}.core-tree-grid-container [data-tier=\"6\"]{--tier: 6}.core-tree-grid-container [data-tier=\"7\"]{--tier: 7}.core-tree-grid-container [data-tier=\"8\"]{--tier: 8}.core-tree-grid-container [data-tier=\"9\"]{--tier: 9}.core-tree-grid-container [data-tier=\"10\"]{--tier: 10}.core-tree-grid-container [data-tier=\"11\"]{--tier: 11}.core-tree-grid-container [data-tier=\"12\"]{--tier: 12}.core-tree-grid-container [data-tier=\"13\"]{--tier: 13}.core-tree-grid-container [data-tier=\"14\"]{--tier: 14}.core-tree-grid-container [data-tier=\"15\"]{--tier: 15}.core-tree-grid-container [data-tier=\"16\"]{--tier: 16}.core-tree-grid-container [data-tier=\"17\"]{--tier: 17}.core-tree-grid-container [data-tier=\"18\"]{--tier: 18}.core-tree-grid-container [data-tier=\"19\"]{--tier: 19}.core-tree-grid-container [data-tier=\"20\"]{--tier: 20}.core-tree-grid-container [data-tier=\"21\"]{--tier: 21}.core-tree-grid-container [data-tier=\"22\"]{--tier: 22}.core-tree-grid-container [data-tier=\"23\"]{--tier: 23}.core-tree-grid-container [data-tier=\"24\"]{--tier: 24}.core-tree-grid-container *{box-sizing:border-box}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.core-tree-grid-container .loading-surface{width:calc(100vw - var(--size-left-bar-current-width));height:100vh;position:fixed;top:0;left:var(--size-left-bar-current-width);background-color:#ffffff80;z-index:555}.core-tree-grid-container .loading-surface .loading-wrapper{width:calc(100vw - var(--size-left-bar-current-width));height:100vh;display:flex;align-items:center;justify-content:center}.core-tree-grid-container .tree-grid-content{margin-top:var(--header-cell-padding);background-color:#fff;position:relative}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span:not(.span-edit-mode-activated):hover .tree-item-tool{display:none}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span.span-edit-mode-activated{background-color:var(--edit-mode-row-bg)}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span.span-edit-mode-activated *:not(.expand-toggler,object){background-color:var(--edit-mode-row-bg)}.core-tree-grid-container .tree-grid-header{display:block;white-space:nowrap;height:var(--header-height);background-color:var(--color-bg-main)}.core-tree-grid-container .tree-grid-header>*{display:inline-block;padding:var(--header-cell-padding);border:solid var(--header-border-size) white}.core-tree-grid-container .tree-grid-header .hidden{display:none}.core-tree-grid-container .tree-grid-header .tree-block-header{width:calc(var(--tree-container-width) + var(--step-padding));height:var(--header-height)}.core-tree-grid-container .tree-grid-header .header-cell-div{width:100%;height:calc(var(--header-height) - 2 * var(--header-cell-padding) - 2 * var(--header-border-size));display:flex;align-items:center;justify-content:space-between;overflow:hidden;text-overflow:ellipsis}.core-tree-grid-container ul{display:table;table-layout:fixed;padding-left:var(--step-padding);margin-bottom:0;animation:fade-in 1s ease-out}.core-tree-grid-container ul.collapsed:not(.root){display:none}.core-tree-grid-container li{display:block;white-space:nowrap}.core-tree-grid-container li>span{display:table-row;position:relative}.core-tree-grid-container li>span .tree-item-tool{position:absolute;top:0;right:0;z-index:2;height:var(--row-height);display:none}.core-tree-grid-container li>span .tree-item-tool .tree-item-tool-wrapper{display:flex;align-items:center;justify-content:flex-end;height:var(--row-height)}.core-tree-grid-container li>span .tree-item{vertical-align:top;display:table-cell}.core-tree-grid-container li>span .tree-item .tree-item-div{width:calc(var(--tree-container-width) - (var(--tier) - 1) * var(--step-padding));display:flex;align-items:center;justify-content:flex-start;position:relative;height:var(--row-height)}.core-tree-grid-container li>span .tree-item .tree-item-div>i{color:var(--square-color);cursor:pointer;font-size:var(--square-size);width:var(--square-size);height:var(--square-size)}.core-tree-grid-container li>span .tree-item .tree-item-div>.expand-toggler{position:absolute;z-index:1;transform:translate(-100%) rotate(0);transition:.5s ease-out}.core-tree-grid-container li>span .tree-item .tree-item-div object{display:table-cell;cursor:pointer}.core-tree-grid-container li>span:hover .tree-item-tool{display:flex;align-items:center;justify-content:flex-end}.core-tree-grid-container li>span:hover:after{content:\"\";display:block;height:var(--row-height);position:absolute;width:calc(var(--tree-container-width) + var(--grid-total-width));background-color:#d3d3d3;opacity:.2;z-index:1;top:0;left:0}.core-tree-grid-container li>span .tree-grid-row-wrapper{display:inline-block;position:absolute}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row{display:inline-flex;background-color:#fff}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell{display:table-cell;height:var(--row-height)}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell .cell-div{cursor:pointer;overflow-x:hidden;overflow-y:visible;padding:var(--content-cell-padding);display:flex;align-items:center;height:var(--row-height)}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell.hidden{display:none}.core-tree-grid-container li>span.span-edit-mode-activated{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated:hover:after{display:none}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool{height:var(--edit-mode-row-height);display:flex}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool .tree-item-tool-wrapper{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool .tree-item-tool-wrapper i{width:24px;height:24px}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item .tree-item-div{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated .tree-grid-row-wrapper .tree-grid-cell{height:var(--edit-mode-row-height)!important}.core-tree-grid-container li>span.span-edit-mode-activated .tree-grid-row-wrapper .tree-grid-cell .cell-div{height:var(--edit-mode-row-height)!important}.core-tree-grid-container li.collapsed .tree-item-div .expand-toggler{transform:translate(-100%) rotate(-90deg)!important;transition:.5s ease-out!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "shownItems", "showCaption"], outputs: ["buttonClick"] }, { kind: "component", type: ThreedotsComponent, selector: "app-threedots" }] }); }
|
|
17018
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreTreeGridComponent, deps: [{ token: AppService }, { token: RecursiveService }, { token: MultiLanguageService }, { token: DialogService }, { token: CoreControlService }, { token: CoreTableService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17019
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreTreeGridComponent, isStandalone: true, selector: "core-tree-grid", inputs: { height: "height", columns: "columns", keyField: "keyField", titleField: "titleField", parentField: "parentField", getFullListApi: "getFullListApi", treeColumnWidth: "treeColumnWidth", treeNodeLevelPadding: "treeNodeLevelPadding", crud: "crud" }, outputs: { onRowDoubleClick: "onRowDoubleClick", onSubmitSuccess: "onSubmitSuccess" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-tree-grid-container\" [ngStyle]=\"{\r\n width: '100%',\r\n height: height + 'px',\r\n overflow: 'scroll'\r\n}\">\r\n\r\n @if (loading) {\r\n <div class=\"loading-surface\">\r\n <div class=\"loading-wrapper\">\r\n <app-threedots></app-threedots>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"tree-grid-header\" [ngStyle]=\"{\r\n width: totalWidth + 'px'\r\n }\">\r\n <div class=\"tree-block-header\" [ngStyle]=\"{\r\n width: treeColumnWidth + treeNodeLevelPadding + 'px'\r\n }\">\r\n <div class=\"header-cell-div\">\r\n {{ 'UI.CORE_TREE_GRID.TREE_BLOCK_HEADER' | translate: lang }}\r\n <core-button-group-vns [shownItems]=\"headerToolItems\"\r\n (buttonClick)=\"onHeaderToolClick($event)\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n @if (!!headerGroupAvailable && !!headerGroups && !!headerGroups.length) {\r\n @for (headerGroup of headerGroups; track $index) {\r\n \r\n }\r\n }\r\n @for (column of columns; track $index) {\r\n <div [class.hidden]=\"column.hidden\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n <div class=\"header-cell-div\">\r\n {{ column.caption | translate: lang }}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div #frontTreeContainer class=\"tree-grid-content front-container\" [class.edit-mode-activated]=\"editModeActivated\">\r\n @for (root of data; track $index) {\r\n @defer(on viewport(treeContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\" [ngStyle]=\"{\r\n paddingLeft: treeNodeLevelPadding + 'px'\r\n }\">\r\n <ng-container *ngTemplateOutlet=\"frontItem; context: { context: root }\"></ng-container>\r\n </ul>\r\n }\r\n }\r\n </div>\r\n\r\n <div #treeContainer class=\"tree-grid-content\" [class.edit-mode-activated]=\"editModeActivated\">\r\n @for (root of data; track $index) {\r\n @defer(on viewport(treeContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\" [ngStyle]=\"{\r\n paddingLeft: '0px'\r\n }\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n }\r\n }\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-children=\"context.tree$Children\" let-expanded=\"context.tree$Expanded\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-tier=\"context.tree$Tier\">\r\n\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\"\r\n (click)=\"onRowClick(context, $event)\">\r\n <span [class.span-edit-mode-activated]=\"!!editModeActivated && pendingContext.id===id\">\r\n\r\n <div class=\"tree-item\">\r\n <div class=\"tree-item-div\" [attr.data-tier]=\"tier\" [ngStyle]=\"{\r\n width: '0px',\r\n }\">\r\n </div>\r\n </div>\r\n <div class=\"tree-grid-row-wrapper\">\r\n <div class=\"tree-grid-row\">\r\n @if (!(!!editModeActivated && pendingContext?.id===id)) {\r\n @for (column of columns; track $index) {\r\n <div class=\"tree-grid-cell\" [class.hidden]=\"column.hidden\">\r\n <div class=\"cell-div\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n overflow: 'hidden',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n {{ !!column.translate ? (context[column.field] | translate: lang | tableCell:\r\n column.pipe : lang) :\r\n context[column.field] | tableCell: column.pipe : lang}}\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n @if (!!editModeActivated && pendingContext?.id===id) {\r\n <ng-container>\r\n @for (column of columns; track $index) {\r\n <div class=\"tree-grid-cell\" [class.hidden]=\"column.hidden\">\r\n <div class=\"cell-div\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n display: 'table',\r\n overflowY: 'visible',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n @if (!column.control) {\r\n <ng-container>\r\n {{ !!column.translate ? (context[column.field] | translate: lang | tableCell:\r\n column.pipe : lang) :\r\n context[column.field] | tableCell: column.pipe : lang}}\r\n </ng-container>\r\n } @else {\r\n <ng-container>\r\n <core-control [form]=\"form\" [control]=\"column.control!\"\r\n [checkError$]=\"checkError$\"></core-control>\r\n </ng-container>\r\n }\r\n\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n </span>\r\n @if (!!expanded && !!children.length) {\r\n <ul [class.collapsed]=\"!expanded\" [ngStyle]=\"{\r\n paddingLeft: '0px'\r\n }\">\r\n @for (child of children; track $index) {\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n </ng-container>\r\n }\r\n </ul>\r\n }\r\n\r\n </li>\r\n </ng-template>\r\n\r\n <ng-template #frontItem 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-children=\"context.tree$Children\" let-expanded=\"context.tree$Expanded\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-tier=\"context.tree$Tier\">\r\n\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\"\r\n (click)=\"onRowClick(context, $event)\">\r\n <span [class.span-edit-mode-activated]=\"!!editModeActivated && pendingContext.id===id\">\r\n\r\n <div class=\"tree-item\">\r\n <div class=\"tree-item-div\" [attr.data-tier]=\"tier\" [ngStyle]=\"{\r\n width: treeColumnWidth - (tier - 1) * treeNodeLevelPadding + 'px',\r\n }\">\r\n <div class=\"tree-item-tool\">\r\n <div class=\"tree-item-tool-wrapper\">\r\n <core-button-group-vns [shownItems]=\"toolItems\" [showCaption]=\"false\"\r\n (buttonClick)=\"onToolClick($event, context)\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n\r\n @if (!!children.length) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context)\"></i>\r\n }\r\n <object (click)=\"onObjectClick(context, $event)\">\r\n {{ title }}\r\n </object>\r\n </div>\r\n </div>\r\n\r\n </span>\r\n @if (!!expanded && !!children.length) {\r\n <ul [class.collapsed]=\"!expanded\" [ngStyle]=\"{\r\n paddingLeft: treeNodeLevelPadding + 'px'\r\n }\">\r\n @for (child of children; track $index) {\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"frontItem; context: { context: child }\"></ng-container>\r\n </ng-container>\r\n }\r\n </ul>\r\n }\r\n\r\n </li>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-tree-grid-container{--tree-container-width: 300px;--grid-total-width: 500px;--square-color: darkgray;--square-size: 20px;--max-tier: 1;--row-height: 50px;--edit-mode-row-height: 120px;--edit-mode-row-bg: #dff6dd;--border-size: 5px;--header-height: 100px;--header-cell-padding: 5px;--content-cell-padding: 5px;--header-border-size: 1px;white-space:nowrap}.core-tree-grid-container [data-tier=\"1\"]{--tier: 1}.core-tree-grid-container [data-tier=\"2\"]{--tier: 2}.core-tree-grid-container [data-tier=\"3\"]{--tier: 3}.core-tree-grid-container [data-tier=\"4\"]{--tier: 4}.core-tree-grid-container [data-tier=\"5\"]{--tier: 5}.core-tree-grid-container [data-tier=\"6\"]{--tier: 6}.core-tree-grid-container [data-tier=\"7\"]{--tier: 7}.core-tree-grid-container [data-tier=\"8\"]{--tier: 8}.core-tree-grid-container [data-tier=\"9\"]{--tier: 9}.core-tree-grid-container [data-tier=\"10\"]{--tier: 10}.core-tree-grid-container [data-tier=\"11\"]{--tier: 11}.core-tree-grid-container [data-tier=\"12\"]{--tier: 12}.core-tree-grid-container [data-tier=\"13\"]{--tier: 13}.core-tree-grid-container [data-tier=\"14\"]{--tier: 14}.core-tree-grid-container [data-tier=\"15\"]{--tier: 15}.core-tree-grid-container [data-tier=\"16\"]{--tier: 16}.core-tree-grid-container [data-tier=\"17\"]{--tier: 17}.core-tree-grid-container [data-tier=\"18\"]{--tier: 18}.core-tree-grid-container [data-tier=\"19\"]{--tier: 19}.core-tree-grid-container [data-tier=\"20\"]{--tier: 20}.core-tree-grid-container [data-tier=\"21\"]{--tier: 21}.core-tree-grid-container [data-tier=\"22\"]{--tier: 22}.core-tree-grid-container [data-tier=\"23\"]{--tier: 23}.core-tree-grid-container [data-tier=\"24\"]{--tier: 24}.core-tree-grid-container *{box-sizing:border-box!important}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.core-tree-grid-container .loading-surface{width:calc(100vw - var(--size-left-bar-current-width));height:100vh;position:fixed;top:0;left:var(--size-left-bar-current-width);background-color:#ffffff80;z-index:555}.core-tree-grid-container .loading-surface .loading-wrapper{width:calc(100vw - var(--size-left-bar-current-width));height:100vh;display:flex;align-items:center;justify-content:center}.core-tree-grid-container .tree-grid-content{margin-top:var(--header-cell-padding);background-color:#fff;display:inline-block;position:relative}.core-tree-grid-container .front-container{background-color:#fff;display:inline-block;position:sticky!important;left:0;z-index:2}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span:not(.span-edit-mode-activated):hover .tree-item-tool{display:none}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span.span-edit-mode-activated{background-color:var(--edit-mode-row-bg)}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span.span-edit-mode-activated *:not(.expand-toggler,object){background-color:var(--edit-mode-row-bg)}.core-tree-grid-container .tree-grid-header{display:block;position:sticky;top:0;left:0;z-index:3;white-space:nowrap;height:var(--header-height);background-color:var(--color-bg-main)}.core-tree-grid-container .tree-grid-header>*{box-sizing:border-box;display:inline-block;padding:var(--header-cell-padding);border:solid var(--header-border-size) white}.core-tree-grid-container .tree-grid-header .hidden{display:none}.core-tree-grid-container .tree-grid-header .tree-block-header{position:sticky;top:0;left:0;z-index:5;height:var(--header-height);background-color:var(--color-bg-main)}.core-tree-grid-container .tree-grid-header .header-cell-div{width:100%;height:calc(var(--header-height) - 2 * var(--header-cell-padding) - 2 * var(--header-border-size));display:flex;align-items:center;justify-content:space-between;overflow:hidden;text-overflow:ellipsis}.core-tree-grid-container ul{display:table;table-layout:fixed;margin-bottom:0;animation:fade-in 1s ease-out}.core-tree-grid-container ul.collapsed:not(.root){display:none}.core-tree-grid-container li{display:block;position:relative;white-space:nowrap}.core-tree-grid-container li>span{position:relative;display:table-row}.core-tree-grid-container li>span .tree-item-tool{position:absolute;top:0;right:0;z-index:3;height:var(--row-height);display:none}.core-tree-grid-container li>span .tree-item-tool .tree-item-tool-wrapper{display:flex;align-items:center;justify-content:flex-end;height:var(--row-height)}.core-tree-grid-container li>span .tree-item{vertical-align:top;display:table-cell}.core-tree-grid-container li>span .tree-item .tree-item-div{display:flex;align-items:center;justify-content:flex-start;position:relative;height:var(--row-height)}.core-tree-grid-container li>span .tree-item .tree-item-div>i{color:var(--square-color);cursor:pointer;font-size:var(--square-size);width:var(--square-size);height:var(--square-size)}.core-tree-grid-container li>span .tree-item .tree-item-div>.expand-toggler{position:absolute;z-index:1;transform:translate(-100%) rotate(0);transition:.5s ease-out}.core-tree-grid-container li>span .tree-item .tree-item-div object{display:table-cell;cursor:pointer}.core-tree-grid-container li>span:hover .tree-item-tool{display:flex;align-items:center;justify-content:flex-end}.core-tree-grid-container li>span:hover:after{content:\"\";display:block;height:var(--row-height);position:absolute;width:var(--grid-total-width);background-color:#d3d3d3;opacity:.2;z-index:1;top:0;left:0}.core-tree-grid-container li>span .tree-grid-row-wrapper{display:table-cell;position:relative}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row{display:inline-flex;background-color:#fff}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell{display:table-cell;height:var(--row-height)}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell .cell-div{cursor:pointer;overflow-x:hidden;overflow-y:visible;padding:var(--content-cell-padding);display:flex;align-items:center;height:var(--row-height)}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell.hidden{display:none}.core-tree-grid-container li>span.span-edit-mode-activated{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated:hover:after{display:none}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool{height:var(--edit-mode-row-height);display:flex}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool .tree-item-tool-wrapper{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool .tree-item-tool-wrapper i{width:24px;height:24px}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item .tree-item-div{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated .tree-grid-row-wrapper .tree-grid-cell{height:var(--edit-mode-row-height)!important}.core-tree-grid-container li>span.span-edit-mode-activated .tree-grid-row-wrapper .tree-grid-cell .cell-div{height:var(--edit-mode-row-height)!important}.core-tree-grid-container li.collapsed .tree-item-div .expand-toggler{transform:translate(-100%) rotate(-90deg)!important;transition:.5s ease-out!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: CoreControlComponent, selector: "core-control", inputs: ["control", "form", "checkError$", "rangeLimit"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreButtonGroupVnsComponent, selector: "core-button-group-vns", inputs: ["height", "instanceNumber", "forHeader", "shownItems", "showCaption"], outputs: ["buttonClick"] }, { kind: "component", type: ThreedotsComponent, selector: "app-threedots" }] }); }
|
|
16935
17020
|
}
|
|
16936
17021
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreTreeGridComponent, decorators: [{
|
|
16937
17022
|
type: Component,
|
|
@@ -16943,18 +17028,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
16943
17028
|
TableCellPipe,
|
|
16944
17029
|
CoreButtonGroupVnsComponent,
|
|
16945
17030
|
ThreedotsComponent,
|
|
16946
|
-
], template: "<div #container class=\"core-tree-grid-container\">\r\n\r\n @if (loading) {\r\n <div class=\"loading-surface\">\r\n <div class=\"loading-wrapper\">\r\n <app-threedots></app-threedots>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"tree-grid-header\">\r\n <div class=\"tree-block-header\">\r\n <div class=\"header-cell-div\">\r\n {{ 'UI.CORE_TREE_GRID.TREE_BLOCK_HEADER' | translate: lang }}\r\n <core-button-group-vns [shownItems]=\"headerToolItems\"\r\n (buttonClick)=\"onHeaderToolClick($event)\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n @for (column of columns; track $index) {\r\n <div [class.hidden]=\"column.hidden\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n <div class=\"header-cell-div\">\r\n {{ column.caption | translate: lang }}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"tree-grid-content\" [class.edit-mode-activated]=\"editModeActivated\">\r\n @for (root of data; track $index) {\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 }\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-children=\"context.tree$Children\" let-expanded=\"context.tree$Expanded\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-tier=\"context.tree$Tier\">\r\n\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\"\r\n (click)=\"onRowClick(context, $event)\">\r\n <span [class.span-edit-mode-activated]=\"!!editModeActivated && pendingContext.id===id\">\r\n <div class=\"tree-item-tool\">\r\n <div class=\"tree-item-tool-wrapper\">\r\n <core-button-group-vns [shownItems]=\"toolItems\" [showCaption]=\"false\"\r\n (buttonClick)=\"onToolClick($event, context)\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n <div class=\"tree-item\">\r\n <div class=\"tree-item-div\" [attr.data-tier]=\"tier\">\r\n @if (!!children.length) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context)\"></i>\r\n }\r\n <object (click)=\"onObjectClick(context, $event)\">\r\n {{ title }}\r\n </object>\r\n </div>\r\n </div>\r\n <div class=\"tree-grid-row-wrapper\">\r\n <div class=\"tree-grid-row\">\r\n @if (!(!!editModeActivated && pendingContext?.id===id)) {\r\n @for (column of columns; track $index) {\r\n <div class=\"tree-grid-cell\" [class.hidden]=\"column.hidden\">\r\n <div class=\"cell-div\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n overflow: 'hidden',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n {{ !!column.translate ? (context[column.field] | translate: lang | tableCell:\r\n column.pipe : lang) :\r\n context[column.field] | tableCell: column.pipe : lang}}\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n @if (!!editModeActivated && pendingContext?.id===id) {\r\n <ng-container>\r\n @for (column of columns; track $index) {\r\n <div class=\"tree-grid-cell\" [class.hidden]=\"column.hidden\">\r\n <div class=\"cell-div\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n display: 'table',\r\n overflowY: 'visible',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n @if (!column.control) {\r\n <ng-container>\r\n {{ !!column.translate ? (context[column.field] | translate: lang | tableCell:\r\n column.pipe : lang) :\r\n context[column.field] | tableCell: column.pipe : lang}}\r\n </ng-container>\r\n } @else {\r\n <ng-container>\r\n <core-control [form]=\"form\" [control]=\"column.control!\"\r\n [checkError$]=\"checkError$\"></core-control>\r\n </ng-container>\r\n }\r\n\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n </span>\r\n @if (!!children.length) {\r\n <ul [class.collapsed]=\" !!!expanded\">\r\n @for (child of children; track $index) {\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n </ng-container>\r\n }\r\n </ul>\r\n }\r\n\r\n </li>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-tree-grid-container{--tree-container-width: 300px;--grid-total-width: 500px;--square-color: darkgray;--square-size: 20px;--step-padding: 2rem;--max-tier: 1;--row-height: 50px;--edit-mode-row-height: 120px;--edit-mode-row-bg: #dff6dd;--border-size: 5px;--header-height: 100px;--header-cell-padding: 5px;--content-cell-padding: 5px;--header-border-size: 1px}.core-tree-grid-container [data-tier=\"1\"]{--tier: 1}.core-tree-grid-container [data-tier=\"2\"]{--tier: 2}.core-tree-grid-container [data-tier=\"3\"]{--tier: 3}.core-tree-grid-container [data-tier=\"4\"]{--tier: 4}.core-tree-grid-container [data-tier=\"5\"]{--tier: 5}.core-tree-grid-container [data-tier=\"6\"]{--tier: 6}.core-tree-grid-container [data-tier=\"7\"]{--tier: 7}.core-tree-grid-container [data-tier=\"8\"]{--tier: 8}.core-tree-grid-container [data-tier=\"9\"]{--tier: 9}.core-tree-grid-container [data-tier=\"10\"]{--tier: 10}.core-tree-grid-container [data-tier=\"11\"]{--tier: 11}.core-tree-grid-container [data-tier=\"12\"]{--tier: 12}.core-tree-grid-container [data-tier=\"13\"]{--tier: 13}.core-tree-grid-container [data-tier=\"14\"]{--tier: 14}.core-tree-grid-container [data-tier=\"15\"]{--tier: 15}.core-tree-grid-container [data-tier=\"16\"]{--tier: 16}.core-tree-grid-container [data-tier=\"17\"]{--tier: 17}.core-tree-grid-container [data-tier=\"18\"]{--tier: 18}.core-tree-grid-container [data-tier=\"19\"]{--tier: 19}.core-tree-grid-container [data-tier=\"20\"]{--tier: 20}.core-tree-grid-container [data-tier=\"21\"]{--tier: 21}.core-tree-grid-container [data-tier=\"22\"]{--tier: 22}.core-tree-grid-container [data-tier=\"23\"]{--tier: 23}.core-tree-grid-container [data-tier=\"24\"]{--tier: 24}.core-tree-grid-container *{box-sizing:border-box}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.core-tree-grid-container .loading-surface{width:calc(100vw - var(--size-left-bar-current-width));height:100vh;position:fixed;top:0;left:var(--size-left-bar-current-width);background-color:#ffffff80;z-index:555}.core-tree-grid-container .loading-surface .loading-wrapper{width:calc(100vw - var(--size-left-bar-current-width));height:100vh;display:flex;align-items:center;justify-content:center}.core-tree-grid-container .tree-grid-content{margin-top:var(--header-cell-padding);background-color:#fff;position:relative}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span:not(.span-edit-mode-activated):hover .tree-item-tool{display:none}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span.span-edit-mode-activated{background-color:var(--edit-mode-row-bg)}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span.span-edit-mode-activated *:not(.expand-toggler,object){background-color:var(--edit-mode-row-bg)}.core-tree-grid-container .tree-grid-header{display:block;white-space:nowrap;height:var(--header-height);background-color:var(--color-bg-main)}.core-tree-grid-container .tree-grid-header>*{display:inline-block;padding:var(--header-cell-padding);border:solid var(--header-border-size) white}.core-tree-grid-container .tree-grid-header .hidden{display:none}.core-tree-grid-container .tree-grid-header .tree-block-header{width:calc(var(--tree-container-width) + var(--step-padding));height:var(--header-height)}.core-tree-grid-container .tree-grid-header .header-cell-div{width:100%;height:calc(var(--header-height) - 2 * var(--header-cell-padding) - 2 * var(--header-border-size));display:flex;align-items:center;justify-content:space-between;overflow:hidden;text-overflow:ellipsis}.core-tree-grid-container ul{display:table;table-layout:fixed;padding-left:var(--step-padding);margin-bottom:0;animation:fade-in 1s ease-out}.core-tree-grid-container ul.collapsed:not(.root){display:none}.core-tree-grid-container li{display:block;white-space:nowrap}.core-tree-grid-container li>span{display:table-row;position:relative}.core-tree-grid-container li>span .tree-item-tool{position:absolute;top:0;right:0;z-index:2;height:var(--row-height);display:none}.core-tree-grid-container li>span .tree-item-tool .tree-item-tool-wrapper{display:flex;align-items:center;justify-content:flex-end;height:var(--row-height)}.core-tree-grid-container li>span .tree-item{vertical-align:top;display:table-cell}.core-tree-grid-container li>span .tree-item .tree-item-div{width:calc(var(--tree-container-width) - (var(--tier) - 1) * var(--step-padding));display:flex;align-items:center;justify-content:flex-start;position:relative;height:var(--row-height)}.core-tree-grid-container li>span .tree-item .tree-item-div>i{color:var(--square-color);cursor:pointer;font-size:var(--square-size);width:var(--square-size);height:var(--square-size)}.core-tree-grid-container li>span .tree-item .tree-item-div>.expand-toggler{position:absolute;z-index:1;transform:translate(-100%) rotate(0);transition:.5s ease-out}.core-tree-grid-container li>span .tree-item .tree-item-div object{display:table-cell;cursor:pointer}.core-tree-grid-container li>span:hover .tree-item-tool{display:flex;align-items:center;justify-content:flex-end}.core-tree-grid-container li>span:hover:after{content:\"\";display:block;height:var(--row-height);position:absolute;width:calc(var(--tree-container-width) + var(--grid-total-width));background-color:#d3d3d3;opacity:.2;z-index:1;top:0;left:0}.core-tree-grid-container li>span .tree-grid-row-wrapper{display:inline-block;position:absolute}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row{display:inline-flex;background-color:#fff}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell{display:table-cell;height:var(--row-height)}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell .cell-div{cursor:pointer;overflow-x:hidden;overflow-y:visible;padding:var(--content-cell-padding);display:flex;align-items:center;height:var(--row-height)}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell.hidden{display:none}.core-tree-grid-container li>span.span-edit-mode-activated{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated:hover:after{display:none}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool{height:var(--edit-mode-row-height);display:flex}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool .tree-item-tool-wrapper{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool .tree-item-tool-wrapper i{width:24px;height:24px}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item .tree-item-div{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated .tree-grid-row-wrapper .tree-grid-cell{height:var(--edit-mode-row-height)!important}.core-tree-grid-container li>span.span-edit-mode-activated .tree-grid-row-wrapper .tree-grid-cell .cell-div{height:var(--edit-mode-row-height)!important}.core-tree-grid-container li.collapsed .tree-item-div .expand-toggler{transform:translate(-100%) rotate(-90deg)!important;transition:.5s ease-out!important}\n"] }]
|
|
16947
|
-
}], ctorParameters: () => [{ type: AppService }, { type: RecursiveService }, { type: MultiLanguageService }, { type: DialogService }, { type: CoreControlService }], propDecorators: {
|
|
16948
|
-
type: Input
|
|
17031
|
+
], template: "<div #container class=\"core-tree-grid-container\" [ngStyle]=\"{\r\n width: '100%',\r\n height: height + 'px',\r\n overflow: 'scroll'\r\n}\">\r\n\r\n @if (loading) {\r\n <div class=\"loading-surface\">\r\n <div class=\"loading-wrapper\">\r\n <app-threedots></app-threedots>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"tree-grid-header\" [ngStyle]=\"{\r\n width: totalWidth + 'px'\r\n }\">\r\n <div class=\"tree-block-header\" [ngStyle]=\"{\r\n width: treeColumnWidth + treeNodeLevelPadding + 'px'\r\n }\">\r\n <div class=\"header-cell-div\">\r\n {{ 'UI.CORE_TREE_GRID.TREE_BLOCK_HEADER' | translate: lang }}\r\n <core-button-group-vns [shownItems]=\"headerToolItems\"\r\n (buttonClick)=\"onHeaderToolClick($event)\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n @if (!!headerGroupAvailable && !!headerGroups && !!headerGroups.length) {\r\n @for (headerGroup of headerGroups; track $index) {\r\n \r\n }\r\n }\r\n @for (column of columns; track $index) {\r\n <div [class.hidden]=\"column.hidden\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n <div class=\"header-cell-div\">\r\n {{ column.caption | translate: lang }}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div #frontTreeContainer class=\"tree-grid-content front-container\" [class.edit-mode-activated]=\"editModeActivated\">\r\n @for (root of data; track $index) {\r\n @defer(on viewport(treeContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\" [ngStyle]=\"{\r\n paddingLeft: treeNodeLevelPadding + 'px'\r\n }\">\r\n <ng-container *ngTemplateOutlet=\"frontItem; context: { context: root }\"></ng-container>\r\n </ul>\r\n }\r\n }\r\n </div>\r\n\r\n <div #treeContainer class=\"tree-grid-content\" [class.edit-mode-activated]=\"editModeActivated\">\r\n @for (root of data; track $index) {\r\n @defer(on viewport(treeContainer)) {\r\n <ul class=\"root\" [class.collapsed]=\"!!!root.tree$Expanded\" [ngStyle]=\"{\r\n paddingLeft: '0px'\r\n }\">\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: root }\"></ng-container>\r\n </ul>\r\n }\r\n }\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-children=\"context.tree$Children\" let-expanded=\"context.tree$Expanded\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-tier=\"context.tree$Tier\">\r\n\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\"\r\n (click)=\"onRowClick(context, $event)\">\r\n <span [class.span-edit-mode-activated]=\"!!editModeActivated && pendingContext.id===id\">\r\n\r\n <div class=\"tree-item\">\r\n <div class=\"tree-item-div\" [attr.data-tier]=\"tier\" [ngStyle]=\"{\r\n width: '0px',\r\n }\">\r\n </div>\r\n </div>\r\n <div class=\"tree-grid-row-wrapper\">\r\n <div class=\"tree-grid-row\">\r\n @if (!(!!editModeActivated && pendingContext?.id===id)) {\r\n @for (column of columns; track $index) {\r\n <div class=\"tree-grid-cell\" [class.hidden]=\"column.hidden\">\r\n <div class=\"cell-div\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n overflow: 'hidden',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n {{ !!column.translate ? (context[column.field] | translate: lang | tableCell:\r\n column.pipe : lang) :\r\n context[column.field] | tableCell: column.pipe : lang}}\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n @if (!!editModeActivated && pendingContext?.id===id) {\r\n <ng-container>\r\n @for (column of columns; track $index) {\r\n <div class=\"tree-grid-cell\" [class.hidden]=\"column.hidden\">\r\n <div class=\"cell-div\" [ngStyle]=\"\r\n {\r\n width: !!column.width ? column.width + 'px' : 'unset',\r\n display: 'table',\r\n overflowY: 'visible',\r\n textAlign: !!column.align ? column.align.toLowerCase() : 'unset'\r\n }\r\n \">\r\n @if (!column.control) {\r\n <ng-container>\r\n {{ !!column.translate ? (context[column.field] | translate: lang | tableCell:\r\n column.pipe : lang) :\r\n context[column.field] | tableCell: column.pipe : lang}}\r\n </ng-container>\r\n } @else {\r\n <ng-container>\r\n <core-control [form]=\"form\" [control]=\"column.control!\"\r\n [checkError$]=\"checkError$\"></core-control>\r\n </ng-container>\r\n }\r\n\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n </span>\r\n @if (!!expanded && !!children.length) {\r\n <ul [class.collapsed]=\"!expanded\" [ngStyle]=\"{\r\n paddingLeft: '0px'\r\n }\">\r\n @for (child of children; track $index) {\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"item; context: { context: child }\"></ng-container>\r\n </ng-container>\r\n }\r\n </ul>\r\n }\r\n\r\n </li>\r\n </ng-template>\r\n\r\n <ng-template #frontItem 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-children=\"context.tree$Children\" let-expanded=\"context.tree$Expanded\" let-active=\"context.tree$Active\"\r\n let-checked=\"context.tree$Checked\" let-tier=\"context.tree$Tier\">\r\n\r\n <li [class.has-children]=\"!!hasChildren\" [class.collapsed]=\"!!hasChildren && !!!expanded\"\r\n (click)=\"onRowClick(context, $event)\">\r\n <span [class.span-edit-mode-activated]=\"!!editModeActivated && pendingContext.id===id\">\r\n\r\n <div class=\"tree-item\">\r\n <div class=\"tree-item-div\" [attr.data-tier]=\"tier\" [ngStyle]=\"{\r\n width: treeColumnWidth - (tier - 1) * treeNodeLevelPadding + 'px',\r\n }\">\r\n <div class=\"tree-item-tool\">\r\n <div class=\"tree-item-tool-wrapper\">\r\n <core-button-group-vns [shownItems]=\"toolItems\" [showCaption]=\"false\"\r\n (buttonClick)=\"onToolClick($event, context)\"></core-button-group-vns>\r\n </div>\r\n </div>\r\n\r\n @if (!!children.length) {\r\n <i class=\"expand-toggler feather-chevron-down\" (click)=\"onExpandTogglerClick(context)\"></i>\r\n }\r\n <object (click)=\"onObjectClick(context, $event)\">\r\n {{ title }}\r\n </object>\r\n </div>\r\n </div>\r\n\r\n </span>\r\n @if (!!expanded && !!children.length) {\r\n <ul [class.collapsed]=\"!expanded\" [ngStyle]=\"{\r\n paddingLeft: treeNodeLevelPadding + 'px'\r\n }\">\r\n @for (child of children; track $index) {\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"frontItem; context: { context: child }\"></ng-container>\r\n </ng-container>\r\n }\r\n </ul>\r\n }\r\n\r\n </li>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-tree-grid-container{--tree-container-width: 300px;--grid-total-width: 500px;--square-color: darkgray;--square-size: 20px;--max-tier: 1;--row-height: 50px;--edit-mode-row-height: 120px;--edit-mode-row-bg: #dff6dd;--border-size: 5px;--header-height: 100px;--header-cell-padding: 5px;--content-cell-padding: 5px;--header-border-size: 1px;white-space:nowrap}.core-tree-grid-container [data-tier=\"1\"]{--tier: 1}.core-tree-grid-container [data-tier=\"2\"]{--tier: 2}.core-tree-grid-container [data-tier=\"3\"]{--tier: 3}.core-tree-grid-container [data-tier=\"4\"]{--tier: 4}.core-tree-grid-container [data-tier=\"5\"]{--tier: 5}.core-tree-grid-container [data-tier=\"6\"]{--tier: 6}.core-tree-grid-container [data-tier=\"7\"]{--tier: 7}.core-tree-grid-container [data-tier=\"8\"]{--tier: 8}.core-tree-grid-container [data-tier=\"9\"]{--tier: 9}.core-tree-grid-container [data-tier=\"10\"]{--tier: 10}.core-tree-grid-container [data-tier=\"11\"]{--tier: 11}.core-tree-grid-container [data-tier=\"12\"]{--tier: 12}.core-tree-grid-container [data-tier=\"13\"]{--tier: 13}.core-tree-grid-container [data-tier=\"14\"]{--tier: 14}.core-tree-grid-container [data-tier=\"15\"]{--tier: 15}.core-tree-grid-container [data-tier=\"16\"]{--tier: 16}.core-tree-grid-container [data-tier=\"17\"]{--tier: 17}.core-tree-grid-container [data-tier=\"18\"]{--tier: 18}.core-tree-grid-container [data-tier=\"19\"]{--tier: 19}.core-tree-grid-container [data-tier=\"20\"]{--tier: 20}.core-tree-grid-container [data-tier=\"21\"]{--tier: 21}.core-tree-grid-container [data-tier=\"22\"]{--tier: 22}.core-tree-grid-container [data-tier=\"23\"]{--tier: 23}.core-tree-grid-container [data-tier=\"24\"]{--tier: 24}.core-tree-grid-container *{box-sizing:border-box!important}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.core-tree-grid-container .loading-surface{width:calc(100vw - var(--size-left-bar-current-width));height:100vh;position:fixed;top:0;left:var(--size-left-bar-current-width);background-color:#ffffff80;z-index:555}.core-tree-grid-container .loading-surface .loading-wrapper{width:calc(100vw - var(--size-left-bar-current-width));height:100vh;display:flex;align-items:center;justify-content:center}.core-tree-grid-container .tree-grid-content{margin-top:var(--header-cell-padding);background-color:#fff;display:inline-block;position:relative}.core-tree-grid-container .front-container{background-color:#fff;display:inline-block;position:sticky!important;left:0;z-index:2}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span:not(.span-edit-mode-activated):hover .tree-item-tool{display:none}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span.span-edit-mode-activated{background-color:var(--edit-mode-row-bg)}.core-tree-grid-container .tree-grid-content.edit-mode-activated ul>li>span.span-edit-mode-activated *:not(.expand-toggler,object){background-color:var(--edit-mode-row-bg)}.core-tree-grid-container .tree-grid-header{display:block;position:sticky;top:0;left:0;z-index:3;white-space:nowrap;height:var(--header-height);background-color:var(--color-bg-main)}.core-tree-grid-container .tree-grid-header>*{box-sizing:border-box;display:inline-block;padding:var(--header-cell-padding);border:solid var(--header-border-size) white}.core-tree-grid-container .tree-grid-header .hidden{display:none}.core-tree-grid-container .tree-grid-header .tree-block-header{position:sticky;top:0;left:0;z-index:5;height:var(--header-height);background-color:var(--color-bg-main)}.core-tree-grid-container .tree-grid-header .header-cell-div{width:100%;height:calc(var(--header-height) - 2 * var(--header-cell-padding) - 2 * var(--header-border-size));display:flex;align-items:center;justify-content:space-between;overflow:hidden;text-overflow:ellipsis}.core-tree-grid-container ul{display:table;table-layout:fixed;margin-bottom:0;animation:fade-in 1s ease-out}.core-tree-grid-container ul.collapsed:not(.root){display:none}.core-tree-grid-container li{display:block;position:relative;white-space:nowrap}.core-tree-grid-container li>span{position:relative;display:table-row}.core-tree-grid-container li>span .tree-item-tool{position:absolute;top:0;right:0;z-index:3;height:var(--row-height);display:none}.core-tree-grid-container li>span .tree-item-tool .tree-item-tool-wrapper{display:flex;align-items:center;justify-content:flex-end;height:var(--row-height)}.core-tree-grid-container li>span .tree-item{vertical-align:top;display:table-cell}.core-tree-grid-container li>span .tree-item .tree-item-div{display:flex;align-items:center;justify-content:flex-start;position:relative;height:var(--row-height)}.core-tree-grid-container li>span .tree-item .tree-item-div>i{color:var(--square-color);cursor:pointer;font-size:var(--square-size);width:var(--square-size);height:var(--square-size)}.core-tree-grid-container li>span .tree-item .tree-item-div>.expand-toggler{position:absolute;z-index:1;transform:translate(-100%) rotate(0);transition:.5s ease-out}.core-tree-grid-container li>span .tree-item .tree-item-div object{display:table-cell;cursor:pointer}.core-tree-grid-container li>span:hover .tree-item-tool{display:flex;align-items:center;justify-content:flex-end}.core-tree-grid-container li>span:hover:after{content:\"\";display:block;height:var(--row-height);position:absolute;width:var(--grid-total-width);background-color:#d3d3d3;opacity:.2;z-index:1;top:0;left:0}.core-tree-grid-container li>span .tree-grid-row-wrapper{display:table-cell;position:relative}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row{display:inline-flex;background-color:#fff}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell{display:table-cell;height:var(--row-height)}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell .cell-div{cursor:pointer;overflow-x:hidden;overflow-y:visible;padding:var(--content-cell-padding);display:flex;align-items:center;height:var(--row-height)}.core-tree-grid-container li>span .tree-grid-row-wrapper .tree-grid-row .tree-grid-cell.hidden{display:none}.core-tree-grid-container li>span.span-edit-mode-activated{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated:hover:after{display:none}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool{height:var(--edit-mode-row-height);display:flex}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool .tree-item-tool-wrapper{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item-tool .tree-item-tool-wrapper i{width:24px;height:24px}.core-tree-grid-container li>span.span-edit-mode-activated .tree-item .tree-item-div{height:var(--edit-mode-row-height)}.core-tree-grid-container li>span.span-edit-mode-activated .tree-grid-row-wrapper .tree-grid-cell{height:var(--edit-mode-row-height)!important}.core-tree-grid-container li>span.span-edit-mode-activated .tree-grid-row-wrapper .tree-grid-cell .cell-div{height:var(--edit-mode-row-height)!important}.core-tree-grid-container li.collapsed .tree-item-div .expand-toggler{transform:translate(-100%) rotate(-90deg)!important;transition:.5s ease-out!important}\n"] }]
|
|
17032
|
+
}], ctorParameters: () => [{ type: AppService }, { type: RecursiveService }, { type: MultiLanguageService }, { type: DialogService }, { type: CoreControlService }, { type: CoreTableService }], propDecorators: { height: [{
|
|
17033
|
+
type: Input,
|
|
17034
|
+
args: [{ required: true }]
|
|
17035
|
+
}], columns: [{
|
|
17036
|
+
type: Input,
|
|
17037
|
+
args: [{ required: true }]
|
|
17038
|
+
}], keyField: [{
|
|
17039
|
+
type: Input,
|
|
17040
|
+
args: [{ required: true }]
|
|
16949
17041
|
}], titleField: [{
|
|
16950
|
-
type: Input
|
|
17042
|
+
type: Input,
|
|
17043
|
+
args: [{ required: true }]
|
|
16951
17044
|
}], parentField: [{
|
|
16952
|
-
type: Input
|
|
17045
|
+
type: Input,
|
|
17046
|
+
args: [{ required: true }]
|
|
16953
17047
|
}], getFullListApi: [{
|
|
16954
17048
|
type: Input
|
|
16955
17049
|
}], treeColumnWidth: [{
|
|
16956
17050
|
type: Input
|
|
16957
|
-
}],
|
|
17051
|
+
}], treeNodeLevelPadding: [{
|
|
16958
17052
|
type: Input
|
|
16959
17053
|
}], crud: [{
|
|
16960
17054
|
type: Input
|
|
@@ -16969,10 +17063,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
16969
17063
|
|
|
16970
17064
|
class MenuComponent {
|
|
16971
17065
|
/* End Properties being passed to CoreTreeGrid */
|
|
16972
|
-
constructor(router, route, appService) {
|
|
17066
|
+
constructor(router, route, appService, layoutService) {
|
|
16973
17067
|
this.router = router;
|
|
16974
17068
|
this.route = route;
|
|
16975
17069
|
this.appService = appService;
|
|
17070
|
+
this.layoutService = layoutService;
|
|
16976
17071
|
// For CorePageHeader
|
|
16977
17072
|
this.title = EnumTranslateKey.UI_COMPONENT_TITLE_SYS_MENU;
|
|
16978
17073
|
/**
|
|
@@ -16991,6 +17086,7 @@ class MenuComponent {
|
|
|
16991
17086
|
{
|
|
16992
17087
|
// Hiển thị cột 'id' là bắt buộc
|
|
16993
17088
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_COMMON_ID,
|
|
17089
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_GENERAL_INFORMATION,
|
|
16994
17090
|
field: 'id',
|
|
16995
17091
|
type: 'number',
|
|
16996
17092
|
align: 'right',
|
|
@@ -17008,6 +17104,7 @@ class MenuComponent {
|
|
|
17008
17104
|
{
|
|
17009
17105
|
// Nếu hiển thị cột 'tree$Path', ví dụ 1.59.163 => sinh tự động, không cần viết API
|
|
17010
17106
|
caption: EnumTranslateKey.UI_CORE_TREE_GRID_TREE_PATH,
|
|
17107
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_GENERAL_INFORMATION,
|
|
17011
17108
|
field: 'tree$Path',
|
|
17012
17109
|
type: 'string',
|
|
17013
17110
|
align: 'left',
|
|
@@ -17015,6 +17112,7 @@ class MenuComponent {
|
|
|
17015
17112
|
},
|
|
17016
17113
|
{
|
|
17017
17114
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_SYS_MENU_CODE,
|
|
17115
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_GENERAL_INFORMATION,
|
|
17018
17116
|
field: 'code',
|
|
17019
17117
|
type: 'string',
|
|
17020
17118
|
align: 'left',
|
|
@@ -17043,6 +17141,7 @@ class MenuComponent {
|
|
|
17043
17141
|
},
|
|
17044
17142
|
{
|
|
17045
17143
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_SYS_FUNCTION_NAME,
|
|
17144
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_GENERAL_INFORMATION,
|
|
17046
17145
|
field: 'functionName',
|
|
17047
17146
|
type: 'string',
|
|
17048
17147
|
align: 'left',
|
|
@@ -17071,6 +17170,7 @@ class MenuComponent {
|
|
|
17071
17170
|
},
|
|
17072
17171
|
{
|
|
17073
17172
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_COMMON_ORDER_NUMBER,
|
|
17173
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_GENERAL_INFORMATION,
|
|
17074
17174
|
field: 'orderNumber',
|
|
17075
17175
|
type: 'number',
|
|
17076
17176
|
align: 'right',
|
|
@@ -17093,6 +17193,7 @@ class MenuComponent {
|
|
|
17093
17193
|
},
|
|
17094
17194
|
{
|
|
17095
17195
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_SYS_MENU_ICON_CLASS,
|
|
17196
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_GENERAL_INFORMATION,
|
|
17096
17197
|
field: 'iconClass',
|
|
17097
17198
|
type: 'string',
|
|
17098
17199
|
align: 'left',
|
|
@@ -17115,6 +17216,7 @@ class MenuComponent {
|
|
|
17115
17216
|
},
|
|
17116
17217
|
{
|
|
17117
17218
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_SYS_MENU_URL,
|
|
17219
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_GENERAL_INFORMATION,
|
|
17118
17220
|
field: 'url',
|
|
17119
17221
|
type: 'string',
|
|
17120
17222
|
align: 'left',
|
|
@@ -17130,6 +17232,7 @@ class MenuComponent {
|
|
|
17130
17232
|
},
|
|
17131
17233
|
{
|
|
17132
17234
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_SYS_MENU_PARENT,
|
|
17235
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_GENERAL_INFORMATION,
|
|
17133
17236
|
field: 'parent',
|
|
17134
17237
|
type: 'number',
|
|
17135
17238
|
align: 'right',
|
|
@@ -17145,6 +17248,7 @@ class MenuComponent {
|
|
|
17145
17248
|
},
|
|
17146
17249
|
{
|
|
17147
17250
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_COMMON_CREATED_DATE,
|
|
17251
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_LOG_CHANGE_INFORMATION,
|
|
17148
17252
|
field: 'createdDate',
|
|
17149
17253
|
type: 'string',
|
|
17150
17254
|
align: 'left',
|
|
@@ -17153,6 +17257,7 @@ class MenuComponent {
|
|
|
17153
17257
|
},
|
|
17154
17258
|
{
|
|
17155
17259
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_COMMON_CREATED_BY,
|
|
17260
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_LOG_CHANGE_INFORMATION,
|
|
17156
17261
|
field: 'createdByUsername',
|
|
17157
17262
|
type: 'string',
|
|
17158
17263
|
align: 'left',
|
|
@@ -17160,6 +17265,7 @@ class MenuComponent {
|
|
|
17160
17265
|
},
|
|
17161
17266
|
{
|
|
17162
17267
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_COMMON_UPDATED_DATE,
|
|
17268
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_LOG_CHANGE_INFORMATION,
|
|
17163
17269
|
field: 'updatedDate',
|
|
17164
17270
|
type: 'string',
|
|
17165
17271
|
align: 'left',
|
|
@@ -17168,6 +17274,7 @@ class MenuComponent {
|
|
|
17168
17274
|
},
|
|
17169
17275
|
{
|
|
17170
17276
|
caption: EnumTranslateKey.UI_ENTITY_FIELD_CAPTION_COMMON_UPDATED_BY,
|
|
17277
|
+
headerGroup: EnumTranslateKey.TABLE_HEADER_GROUP_LOG_CHANGE_INFORMATION,
|
|
17171
17278
|
field: 'updatedByUsername',
|
|
17172
17279
|
type: 'string',
|
|
17173
17280
|
align: 'left',
|
|
@@ -17175,6 +17282,13 @@ class MenuComponent {
|
|
|
17175
17282
|
},
|
|
17176
17283
|
];
|
|
17177
17284
|
}
|
|
17285
|
+
ngOnInit() {
|
|
17286
|
+
this.treeGridHeight =
|
|
17287
|
+
window.innerHeight
|
|
17288
|
+
- this.layoutService.headerHeight
|
|
17289
|
+
- this.layoutService.corePageHeaderHeight
|
|
17290
|
+
- this.layoutService.basicSpacing * 2; // basically *1 is enough but *2 is a garanty
|
|
17291
|
+
}
|
|
17178
17292
|
ngAfterViewInit() {
|
|
17179
17293
|
this.subscriptions.push(this.appService.get(api.SYS_FUNCTION_READ_ALL).subscribe(x => {
|
|
17180
17294
|
if (x.ok && x.status === 200) {
|
|
@@ -17205,8 +17319,8 @@ class MenuComponent {
|
|
|
17205
17319
|
ngOnDestroy() {
|
|
17206
17320
|
this.subscriptions.push();
|
|
17207
17321
|
}
|
|
17208
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: MenuComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: AppService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17209
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: MenuComponent, isStandalone: true, selector: "app-menu", ngImport: i0, template: "<core-page-header [title]=\"title\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n<div class=\"menu-tree-grid-container\">\r\n <core-tree-grid [getFullListApi]=\"getFullListApi\" keyField=\"id\" titleField=\"code\" parentField=\"parent\"\r\n [treeColumnWidth]=\"400\" [columns]=\"columns\" [crud]=\"crud\"\r\n (onRowDoubleClick)=\"onRowDoubleClick($event)\"></core-tree-grid>\r\n</div>\r\n\r\n<router-outlet name=\"menuAux\"></router-outlet>", styles: [".menu-tree-grid-container{height:calc(var(--content-container-height) - var(--size-core-page-header-height) - var(--size-layout-block-cell-spacing) * 2);overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "component", type: CoreTreeGridComponent, selector: "core-tree-grid", inputs: ["keyField", "titleField", "parentField", "getFullListApi", "treeColumnWidth", "
|
|
17322
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: MenuComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: AppService }, { token: LayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17323
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: MenuComponent, isStandalone: true, selector: "app-menu", ngImport: i0, template: "<core-page-header [title]=\"title\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n<div class=\"menu-tree-grid-container\">\r\n <core-tree-grid [height]=\"treeGridHeight\" [getFullListApi]=\"getFullListApi\" keyField=\"id\" titleField=\"code\" parentField=\"parent\"\r\n [treeColumnWidth]=\"400\" [columns]=\"columns\" [crud]=\"crud\"\r\n (onRowDoubleClick)=\"onRowDoubleClick($event)\"></core-tree-grid>\r\n</div>\r\n\r\n<router-outlet name=\"menuAux\"></router-outlet>", styles: [".menu-tree-grid-container{height:calc(var(--content-container-height) - var(--size-core-page-header-height) - var(--size-layout-block-cell-spacing) * 2);overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "component", type: CoreTreeGridComponent, selector: "core-tree-grid", inputs: ["height", "columns", "keyField", "titleField", "parentField", "getFullListApi", "treeColumnWidth", "treeNodeLevelPadding", "crud"], outputs: ["onRowDoubleClick", "onSubmitSuccess"] }] }); }
|
|
17210
17324
|
}
|
|
17211
17325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: MenuComponent, decorators: [{
|
|
17212
17326
|
type: Component,
|
|
@@ -17215,8 +17329,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
17215
17329
|
RouterModule,
|
|
17216
17330
|
CorePageHeaderComponent,
|
|
17217
17331
|
CoreTreeGridComponent
|
|
17218
|
-
], template: "<core-page-header [title]=\"title\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n<div class=\"menu-tree-grid-container\">\r\n <core-tree-grid [getFullListApi]=\"getFullListApi\" keyField=\"id\" titleField=\"code\" parentField=\"parent\"\r\n [treeColumnWidth]=\"400\" [columns]=\"columns\" [crud]=\"crud\"\r\n (onRowDoubleClick)=\"onRowDoubleClick($event)\"></core-tree-grid>\r\n</div>\r\n\r\n<router-outlet name=\"menuAux\"></router-outlet>", styles: [".menu-tree-grid-container{height:calc(var(--content-container-height) - var(--size-core-page-header-height) - var(--size-layout-block-cell-spacing) * 2);overflow:auto}\n"] }]
|
|
17219
|
-
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: AppService }] });
|
|
17332
|
+
], template: "<core-page-header [title]=\"title\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n<div class=\"menu-tree-grid-container\">\r\n <core-tree-grid [height]=\"treeGridHeight\" [getFullListApi]=\"getFullListApi\" keyField=\"id\" titleField=\"code\" parentField=\"parent\"\r\n [treeColumnWidth]=\"400\" [columns]=\"columns\" [crud]=\"crud\"\r\n (onRowDoubleClick)=\"onRowDoubleClick($event)\"></core-tree-grid>\r\n</div>\r\n\r\n<router-outlet name=\"menuAux\"></router-outlet>", styles: [".menu-tree-grid-container{height:calc(var(--content-container-height) - var(--size-core-page-header-height) - var(--size-layout-block-cell-spacing) * 2);overflow:auto}\n"] }]
|
|
17333
|
+
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: AppService }, { type: LayoutService }] });
|
|
17220
17334
|
|
|
17221
17335
|
class MenuEditComponent extends BaseEditComponent {
|
|
17222
17336
|
constructor(dialogService) {
|
|
@@ -23894,5 +24008,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
23894
24008
|
* Generated bundle index. Do not edit.
|
|
23895
24009
|
*/
|
|
23896
24010
|
|
|
23897
|
-
export { AlertComponent, AlertService, AnimatedTextComponent, AnimatedTextService, AppConfigService, AppInitializationService, AppService, AuthService, BaseComponent, BaseDropdownComponent, BaseEditComponent, ButtonGroupComponent, ButtonGroupModule, ButtonGroupService, CORE_VNS_BUTTONS, CacheService, CanActivateFunctionUrlMapperGuard, CanDeactivateGuard, CheckForUpdateService, CommonHttpRequestService, ConfigService, ConfirmDialogStateComponent, ControlBase, CoreAccordionComponent, CoreAccordionService, CoreApiProgressComponent, CoreAttachmentComponent, CoreButtonComponent, CoreButtonGroupComponent, CoreButtonGroupService, CoreButtonGroupVnsComponent, CoreButtonVnsComponent, CoreCheckboxComponent, CoreChecklistComponent, CoreCommonParamKitComponent, CoreCompositionComponent, CoreCompositionService, CoreCompositionState, CoreConfirmDialogComponent, CoreContractSeekerComponent, CoreControlComponent, CoreControlNoGridBufferComponent, CoreControlNoSeekerComponent, CoreControlService, CoreCurrencyInputComponent, CoreDatePickerComponent, CoreDatetimeService, CoreDropdownComponent, CoreEmployeeSeekerComponent, CoreFileUploaderComponent, CoreFormComponent, CoreFormControlBaseComponent, CoreFormControlSeekerComponent, CoreFormLiteComponent, CoreFormService, CoreGridBufferComponent, CoreHeaderParamsComponent, CoreIosSwitcherComponent, CoreLineComponent, CoreListComponent, CoreListLazyComponent, CoreLoadingSurfaceComponent, CoreMccComponent, CoreMonthPickerComponent, CoreMonthSelectorComponent, CoreNavigationTrackerComponent, CoreOrgTreeComponent, CoreOrgTreeService, CoreOrgTreeState, CoreOrgUnitSeekerComponent, CoreOrgchartflexComponent, CorePageEditComponent, CorePageEditLiteComponent, CorePageEditService, CorePageHeaderComponent, CorePageListComponent, CorePageListContentComponent, CorePageListService, CorePageListState, CorePageViewComponent, CorePaginationComponent, CorePaginationFullComponent, CorePaginationFullService, CoreParamControlComponent, CorePermissionActionsComponent, CorePermissionComponent, CorePermissionService, CorePositionConcurrentSeekerComponent, CorePositionSeekerComponent, CoreQueryBuilderComponent, CoreRadioGroupComponent, CoreReducerIconComponent, CoreRoutingHistoryComponent, CoreScrollComponent, CoreScrollLazyComponent, CoreStatisticWidgetComponent, CoreStatusStickerComponent, CoreSubFormGroupComponent, CoreTableComponent, CoreTabsComponent, CoreTagsComponent, CoreTopicPickerComponent, CoreTopicTreeComponent, CoreTreeComponent, CoreTreeGridComponent, CoreWageSeekerComponent, CoreWorkingSeekerComponent, CoreYearPickerComponent, CustomValidators, DATE_VALUE_ACCESSOR, DESKTOP_SCREEN_HEDER_HEIGHT, DateValueAccessor, DecisionComponent, DialogService, DialogStateComponent, DomService, ECoreTableToolClass, ECoreTableToolCode, EnumAlertType, EnumButtonCaptionCode, EnumCoreArticleCategoryTreeaAccessorMode, EnumCoreButtonCode, EnumCoreButtonVNSCode, EnumCoreFileUploaderType, EnumCoreFormControlSeekerSourceType, EnumCoreOrgTreeaAccessorMode, EnumCorePageEditBootstrapClass, EnumCorePageEditFieldType, EnumCorePageEditMode, EnumCoreTablePipeType, EnumCoreViewItemType, EnumErrorType, EnumExType, EnumFilterOperator, EnumFormBaseContolType, EnumHrComparisonCode, EnumICoreStatisticWidgetDataType, EnumIconClass, EnumOparator, EnumPermissionObjectType, EnumProfileInfoSector, EnumRecursiveFields, EnumSignalRType, EnumSortDirection, EnumStyleButtonClass, EnumSwUpdateVersionUpdatesEventType, EvaluateDialogComponent, EvaluateDialogService, FileService, FilterPipe, FooterComponent, FullscreenModalLoaderComponent, FunctionComponent, FunctionEditComponent, FunctionEditService, FunctionIgnoreComponent, FunctionIgnoreEditComponent, GroupFunctionComponent, GroupFunctionEditComponent, GrpcService, HeaderService, HistoryService, HttpErrorHandler, HubConnectionService, HuconcurrentlyComponent, IAlertOptions, ImageErrorResolverDirective, InMemoryComponent, InitializationCanActivateFn, InitializationCanMatchFn, InterceptorSkipHeader, IpServiceService, ItemComponent, JobComponent, JsonService, LanguageChangerComponent, LanguageComponent, LanguageEditComponent, LayoutService, LongTaskService, MOBILE_SCREEN_HEDER_HEIGHT, MapAvatarToServerPipe, MapService, MenuComponent, MenuEditComponent, MenuService, MessageService, ModalService, MultiLanguageService, MutationLogComponent, MutationViewComponent, NavigatorComponent, NavigatorService, NgxHistaffAlphaComponent, NgxHistaffAlphaService, NormalizeHumanNamePipe, OnlineUsersComponent, OrganizationService, PageTitleComponent, PaginationComponent, PortalRouteComponent, PortalRouteEditComponent, PositionComponent, PositionEditService, PositionTransferService, PushNotificationService, RandomAvatarService, RecursiveService, RequestCache, RequestCacheWithMap, ResponseService, RightchatComponent, RoutingService, STICKER_COLOR_SCHEMA, SeekerService, SocketService, StaffProfileComponent, StatisticAuthService, StatisticService, StringService, SysActionComponent, SysActionEditComponent, SysFunctionActionComponent, SysFunctionActionEditComponent, SysFunctionActionMapperComponent, SysFunctionUrlMapperComponent, SysMenuService, SysModuleComponent, SysModuleEditComponent, TLA_CONFIG, TableCellPipe, Textbox, ThreedotsComponent, TimeSheetService, TooltipComponent, TooltipDirective, TopicPermissionService, TopicTreeService, TranslatePipe, UnicodeService, UrlService, UserActivityComponent, UserActivityService, WageComponent, WaittingScreenComponent, alertOptions, attachmentOptions, blob_to_base64_script, defaultPaging, httpInterceptorProviders, liner_to_nested_array_script, longAlertOptions, noneAutoClosedAlertOptions, normalizeHumanName, themeBlue };
|
|
24011
|
+
export { AlertComponent, AlertService, AnimatedTextComponent, AnimatedTextService, AppConfigService, AppInitializationService, AppService, AuthService, BaseComponent, BaseDropdownComponent, BaseEditComponent, ButtonGroupComponent, ButtonGroupModule, ButtonGroupService, CORE_VNS_BUTTONS, CacheService, CanActivateFunctionUrlMapperGuard, CanDeactivateGuard, CheckForUpdateService, CommonHttpRequestService, ConfigService, ConfirmDialogStateComponent, ControlBase, CoreAccordionComponent, CoreAccordionService, CoreApiProgressComponent, CoreAttachmentComponent, CoreButtonComponent, CoreButtonGroupComponent, CoreButtonGroupService, CoreButtonGroupVnsComponent, CoreButtonVnsComponent, CoreCheckboxComponent, CoreChecklistComponent, CoreCommonParamKitComponent, CoreCompositionComponent, CoreCompositionService, CoreCompositionState, CoreConfirmDialogComponent, CoreContractSeekerComponent, CoreControlComponent, CoreControlNoGridBufferComponent, CoreControlNoSeekerComponent, CoreControlService, CoreCurrencyInputComponent, CoreDatePickerComponent, CoreDatetimeService, CoreDropdownComponent, CoreEmployeeSeekerComponent, CoreFileUploaderComponent, CoreFormComponent, CoreFormControlBaseComponent, CoreFormControlSeekerComponent, CoreFormLiteComponent, CoreFormService, CoreGridBufferComponent, CoreHeaderParamsComponent, CoreIosSwitcherComponent, CoreLineComponent, CoreListComponent, CoreListLazyComponent, CoreLoadingSurfaceComponent, CoreMccComponent, CoreMonthPickerComponent, CoreMonthSelectorComponent, CoreNavigationTrackerComponent, CoreOrgTreeComponent, CoreOrgTreeService, CoreOrgTreeState, CoreOrgUnitSeekerComponent, CoreOrgchartflexComponent, CorePageEditComponent, CorePageEditLiteComponent, CorePageEditService, CorePageHeaderComponent, CorePageListComponent, CorePageListContentComponent, CorePageListService, CorePageListState, CorePageViewComponent, CorePaginationComponent, CorePaginationFullComponent, CorePaginationFullService, CoreParamControlComponent, CorePermissionActionsComponent, CorePermissionComponent, CorePermissionService, CorePositionConcurrentSeekerComponent, CorePositionSeekerComponent, CoreQueryBuilderComponent, CoreRadioGroupComponent, CoreReducerIconComponent, CoreRoutingHistoryComponent, CoreScrollComponent, CoreScrollLazyComponent, CoreStatisticWidgetComponent, CoreStatusStickerComponent, CoreSubFormGroupComponent, CoreTableComponent, CoreTableService, CoreTabsComponent, CoreTagsComponent, CoreTopicPickerComponent, CoreTopicTreeComponent, CoreTreeComponent, CoreTreeGridComponent, CoreWageSeekerComponent, CoreWorkingSeekerComponent, CoreYearPickerComponent, CustomValidators, DATE_VALUE_ACCESSOR, DESKTOP_SCREEN_HEDER_HEIGHT, DateValueAccessor, DecisionComponent, DialogService, DialogStateComponent, DomService, ECoreTableToolClass, ECoreTableToolCode, EnumAlertType, EnumButtonCaptionCode, EnumCoreArticleCategoryTreeaAccessorMode, EnumCoreButtonCode, EnumCoreButtonVNSCode, EnumCoreFileUploaderType, EnumCoreFormControlSeekerSourceType, EnumCoreOrgTreeaAccessorMode, EnumCorePageEditBootstrapClass, EnumCorePageEditFieldType, EnumCorePageEditMode, EnumCoreTablePipeType, EnumCoreViewItemType, EnumErrorType, EnumExType, EnumFilterOperator, EnumFormBaseContolType, EnumHrComparisonCode, EnumICoreStatisticWidgetDataType, EnumIconClass, EnumOparator, EnumPermissionObjectType, EnumProfileInfoSector, EnumRecursiveFields, EnumSignalRType, EnumSortDirection, EnumStyleButtonClass, EnumSwUpdateVersionUpdatesEventType, EvaluateDialogComponent, EvaluateDialogService, FileService, FilterPipe, FooterComponent, FullscreenModalLoaderComponent, FunctionComponent, FunctionEditComponent, FunctionEditService, FunctionIgnoreComponent, FunctionIgnoreEditComponent, GroupFunctionComponent, GroupFunctionEditComponent, GrpcService, HeaderService, HistoryService, HttpErrorHandler, HubConnectionService, HuconcurrentlyComponent, IAlertOptions, ImageErrorResolverDirective, InMemoryComponent, InitializationCanActivateFn, InitializationCanMatchFn, InterceptorSkipHeader, IpServiceService, ItemComponent, JobComponent, JsonService, LanguageChangerComponent, LanguageComponent, LanguageEditComponent, LayoutService, LongTaskService, MOBILE_SCREEN_HEDER_HEIGHT, MapAvatarToServerPipe, MapService, MenuComponent, MenuEditComponent, MenuService, MessageService, ModalService, MultiLanguageService, MutationLogComponent, MutationViewComponent, NavigatorComponent, NavigatorService, NgxHistaffAlphaComponent, NgxHistaffAlphaService, NormalizeHumanNamePipe, OnlineUsersComponent, OrganizationService, PageTitleComponent, PaginationComponent, PortalRouteComponent, PortalRouteEditComponent, PositionComponent, PositionEditService, PositionTransferService, PushNotificationService, RandomAvatarService, RecursiveService, RequestCache, RequestCacheWithMap, ResponseService, RightchatComponent, RoutingService, STICKER_COLOR_SCHEMA, SeekerService, SocketService, StaffProfileComponent, StatisticAuthService, StatisticService, StringService, SysActionComponent, SysActionEditComponent, SysFunctionActionComponent, SysFunctionActionEditComponent, SysFunctionActionMapperComponent, SysFunctionUrlMapperComponent, SysMenuService, SysModuleComponent, SysModuleEditComponent, TLA_CONFIG, TableCellPipe, Textbox, ThreedotsComponent, TimeSheetService, TooltipComponent, TooltipDirective, TopicPermissionService, TopicTreeService, TranslatePipe, UnicodeService, UrlService, UserActivityComponent, UserActivityService, WageComponent, WaittingScreenComponent, alertOptions, attachmentOptions, blob_to_base64_script, defaultPaging, httpInterceptorProviders, liner_to_nested_array_script, longAlertOptions, noneAutoClosedAlertOptions, normalizeHumanName, themeBlue };
|
|
23898
24012
|
//# sourceMappingURL=ngx-histaff-alpha.mjs.map
|