tnx-shared 5.1.526 → 5.1.528

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.
@@ -3867,14 +3867,33 @@
3867
3867
  var d = new Date(year, month, 0);
3868
3868
  return d.getDate();
3869
3869
  };
3870
- CommonService.prototype.getDatasourceRangeYear = function (rangeYear) {
3870
+ CommonService.prototype.getDatasourceRangeYear = function (rangeYear, previousYear, nextYear) {
3871
3871
  if (rangeYear === void 0) { rangeYear = 5; }
3872
3872
  var dataSourceYear = [];
3873
- var i = 1;
3874
3873
  var currentYear = new Date().getFullYear();
3875
- for (var year = currentYear - rangeYear; year <= currentYear; year++) {
3876
- dataSourceYear.push({ id: year, ten: year }, { id: currentYear + i, ten: currentYear + i });
3877
- i++;
3874
+ var isPreviousYear = previousYear && previousYear > 0;
3875
+ var isNextYear = nextYear && nextYear > 0;
3876
+ if (isPreviousYear || isNextYear) {
3877
+ if (isPreviousYear) {
3878
+ for (var year = currentYear - previousYear; year < currentYear; year++) {
3879
+ dataSourceYear.push({ id: year, ten: year });
3880
+ }
3881
+ }
3882
+ if (isNextYear) {
3883
+ for (var year = currentYear; year <= currentYear + nextYear; year++) {
3884
+ dataSourceYear.push({ id: year, ten: year });
3885
+ }
3886
+ }
3887
+ else {
3888
+ dataSourceYear.push({ id: currentYear, ten: currentYear });
3889
+ }
3890
+ }
3891
+ else {
3892
+ var i = 1;
3893
+ for (var year = currentYear - rangeYear; year <= currentYear; year++) {
3894
+ dataSourceYear.push({ id: year, ten: year }, { id: currentYear + i, ten: currentYear + i });
3895
+ i++;
3896
+ }
3878
3897
  }
3879
3898
  return dataSourceYear.sort(function (a, b) { return b.id - a.id; });
3880
3899
  };
@@ -33266,7 +33285,7 @@
33266
33285
  CommonAppComponentComponent.decorators = [
33267
33286
  { type: i0.Component, args: [{
33268
33287
  selector: 'common-app-component',
33269
- template: "<ng-container *ngIf=\"!pageLoaded\">\n <ng-container [ngSwitch]=\"layoutLoadingPage\">\n <ng-container *ngSwitchDefault>\n <loading-page-v1></loading-page-v1>\n </ng-container>\n\n <!-- <ng-container *ngSwitchCase=\"EnumTypeSplash.NEW_V2\">\n <loading-page-v2></loading-page-v2>\n </ng-container> -->\n </ng-container>\n</ng-container>\n\n<div *ngIf=\"pageLoaded\" [style.display]=\"pageLoaded ? '' : 'none'\" class=\"layout-wrapper\"\n (click)=\"_commonService.onLayoutClick()\" [ngClass]=\"{'menu-layout-static': !_commonService.isOverlay(),\n 'menu-layout-overlay': _commonService.isOverlay(),\n 'layout-menu-overlay-active': _commonService.overlayMenuActive,\n 'menu-layout-horizontal': _commonService.isHorizontal(),\n 'menu-layout-slim': _commonService.isSlim(),\n 'layout-menu-static-desktop-inactive': _commonService.staticMenuDesktopInactive,\n 'layout-menu-static-desktop-active': !_commonService.staticMenuDesktopInactive,\n 'layout-menu-static-mobile-inactive': !_commonService.staticMenuMobileActive,\n 'layout-menu-static-mobile-active': _commonService.staticMenuMobileActive,\n 'layout-menu-static-inactive': _commonService.staticMenuDesktopInactive,\n 'layout-menu-static-active': _commonService.staticMenuMobileActive}\">\n\n <app-topbar *ngIf=\"_globalService.getHeaderState()\"></app-topbar>\n\n <div *ngIf=\"_globalService.getMenuState()\" class=\"layout-menu-container\"\n [ngClass]=\"{'layout-menu-dark':_commonService.darkMenu}\" (click)=\"_commonService.onMenuClick($event)\">\n <app-root-menu></app-root-menu>\n <div class=\"layout-menu-block\">\n <tn-custom-scrollbar #scrollbar [style]=\"{'padding-top': '16px'}\">\n <app-inline-profile *ngIf=\"_commonService.profileMode == 'inline' &&!_commonService.isHorizontal()\">\n </app-inline-profile>\n <app-menu [autoRenderMenu]=\"autoRenderMenu\" [reset]=\"_commonService.resetMenu\"\n (onMenuActive)=\"handleMenuActive($event)\"></app-menu>\n </tn-custom-scrollbar>\n </div>\n <div class=\"search-area layout-menu-search-area\">\n <p-autoComplete [(ngModel)]=\"searchMenuInput\" [style]=\"{'width':'100%'}\" [suggestions]=\"searchMenuResult\"\n (completeMethod)=\"onSearchMenu($event)\" [autoHighlight]=\"true\"\n [placeholder]=\"'T\u00ECm ki\u1EBFm ch\u1EE9c n\u0103ng' | translate\" [delay]=\"200\" [scrollHeight]=\"'400px'\"\n class=\"search-input\" [readonly]=\"!(menuModel && menuModel.length)\"\n (onSelect)=\"onSelectMenuSuggestion($event)\" field=\"label\">\n <ng-template let-item pTemplate=\"item\">\n <div innerHTML=\"{{ item.label | highlight : searchMenuInput}}\"></div>\n </ng-template>\n </p-autoComplete>\n <span class=\"icon-search\"><i class=\"pi pi-search\"></i></span>\n </div>\n </div>\n\n <div [class]=\"'layout-main'\" [ngClass]=\"{'no-header': _globalService.getHeaderState() ? false : true}\">\n <router-outlet></router-outlet>\n </div>\n\n <div class=\"layout-mask\"></div>\n <div #quickNoteBt *ngIf=\"!onlyShowMainContent && showQuickNote\" class=\"quick-note-button-holder\" cdkDrag\n cdkDragBoundary=\".layout-wrapper\" oncontextmenu=\"return false\" (cdkDragEnded)=\"quickNoteDropped($event)\"\n (cdkDragStarted)=\"quickNoteStarted($event)\">\n <a #quickNoteBt1 href=\"javascript:;\" class=\"all-note-button\" tabindex=\"0\" (click)=\"quickNoteShowAllNotes()\">\n <i class=\"fas fa-sticky-note\"></i></a>\n <a #quickNoteBt2 href=\"javascript:;\" class=\"setting-note-button\" tabindex=\"0\" (click)=\"quickNoteShowSettings()\">\n <i class=\"fas fa-cog\"></i></a>\n <a href=\"javascript:;\" (press)=\"quickNotePress($event)\" (pressup)=\"quickNotePressUp($event)\"\n class=\"quick-note-button\" tabindex=\"0\" (click)=\"quickNoteAddNote()\">\n <i class=\"fas fa-plus\"></i></a>\n </div>\n <div #pinnedNotes *ngIf=\"!onlyShowMainContent\" class=\"pinned-notes-holder\" cdkDrag cdkDragBoundary=\".layout-wrapper\"\n oncontextmenu=\"return false\" (cdkDragEnded)=\"pinnedNotesDropped($event)\"\n (cdkDragStarted)=\"pinnedNotesStarted($event)\">\n <div class=\"pinned-notes ui-g\" tabindex=\"0\">\n <div *ngIf=\"pinnedNotesMinimizeStatus\" class=\"pinned-notes-minimize-button\"\n (click)=\"pinnedNotesMinimize(pinnedNotesMinimizeStatus)\">\n <i class=\"pi pi-window-maximize\"></i>\n </div>\n <div *ngIf=\"pinnedNotesMaximizeStatus\" class=\" pinned-notes-minimize-button\"\n (click)=\"pinnedNotesMinimize(pinnedNotesMinimizeStatus)\">\n <i class=\"pi pi-window-minimize\"></i>\n </div>\n <div *ngFor=\"let note of pinnedNoteData\" class=\"pinned-note ui-g-12\">\n <div class=\"pinned-note-header-line\" [style.background-color]=\"note.colorCode\">\n </div>\n <div class=\"pinned-note-body\">\n <span class=\"pinned-note-line-title\" [style.paddingBottom]=\"note.titlePaddingBottom\">\n <div class=\"pinned-note-header-right\">\n <span class=\"pinned-note-header-time\">{{note.created | date: 'dd/MM'}}</span>\n <img src=\"../assets/layout/images/ico/unpin-1.ico\" class=\"pinned-note-header-button-unpin\"\n (click)=\"unPinNote(note)\">\n <i *ngIf=\"!note.isCompleted\" class=\"far fa-flag pinned-note-header-button-complete\"\n (click)=\"completeNote(note)\"></i>\n <i *ngIf=\"note.isCompleted\" class=\"fas fa-flag-checkered pinned-note-header-button-complete\"\n (click)=\"inCompleteNote(note)\"></i>\n </div>\n <div>{{note.name}}</div>\n </span>\n <div class=\"pinned-note-contents\" [style.display]=\"note.contentDisplay\">\n <span *ngFor=\"let content of note.contents\" class=\"pinned-note-line\">\n {{content}}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <report-queue [header]=\"'Xu\u1EA5t d\u1EEF li\u1EC7u'\">\n </report-queue>\n</div>\n<div class=\"waiting-box\" [class.show]=\"waiting\">\n <div class=\"overlay\"></div>\n <div class=\"content-loading\">\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n <div class=\"message-loading\">\n <span *ngFor=\"let x of messageWaiting\">{{x}}</span>\n </div>\n </div>\n</div>\n<p-toast [position]=\"'top-right'\" [autoZIndex]=\"true\"></p-toast>\n<p-confirmDialog #cd [closable]=\"false\">\n <p-footer>\n <button #okButton type=\"button\" pButton icon=\"pi pi-check\" class=\"p-button-rounded p-button-text\" label=\"\u0110\u1ED3ng \u00FD\"\n (keydown.shift.tab)=\"focusTrap($event, false)\" (click)=\"cd.accept()\"></button>\n <button *ngIf=\"showRejectConfirm\" #cancelButton type=\"button\" pButton\n class=\"p-button-rounded p-button-text p-button-secondary\" icon=\"pi pi-times\" label=\"B\u1ECF qua\"\n (keydown.tab)=\"focusTrap($event, true)\" (click)=\"cd.reject()\"></button>\n </p-footer>\n</p-confirmDialog>\n<!-- <user-action-manager></user-action-manager> -->\n<permission-utils *ngIf=\"rootData.showPermissionUtils\"></permission-utils>\n<ng-template #abc>\n <div>1</div>\n</ng-template>\n<ng-template #def>\n <div>2</div>\n</ng-template>",
33288
+ template: "<ng-container *ngIf=\"!pageLoaded\">\n <ng-container [ngSwitch]=\"layoutLoadingPage\">\n <ng-container *ngSwitchDefault>\n <loading-page-v1></loading-page-v1>\n </ng-container>\n\n <!-- <ng-container *ngSwitchCase=\"EnumTypeSplash.NEW_V2\">\n <loading-page-v2></loading-page-v2>\n </ng-container> -->\n </ng-container>\n</ng-container>\n\n<div *ngIf=\"pageLoaded\" [style.display]=\"pageLoaded ? '' : 'none'\" class=\"layout-wrapper\"\n (click)=\"_commonService.onLayoutClick()\" [ngClass]=\"{'menu-layout-static': !_commonService.isOverlay(),\n 'menu-layout-overlay': _commonService.isOverlay(),\n 'layout-menu-overlay-active': _commonService.overlayMenuActive,\n 'menu-layout-horizontal': _commonService.isHorizontal(),\n 'menu-layout-slim': _commonService.isSlim(),\n 'layout-menu-static-desktop-inactive': _commonService.staticMenuDesktopInactive,\n 'layout-menu-static-desktop-active': !_commonService.staticMenuDesktopInactive,\n 'layout-menu-static-mobile-inactive': !_commonService.staticMenuMobileActive,\n 'layout-menu-static-mobile-active': _commonService.staticMenuMobileActive,\n 'layout-menu-static-inactive': _commonService.staticMenuDesktopInactive,\n 'layout-menu-static-active': _commonService.staticMenuMobileActive}\">\n\n <app-topbar *ngIf=\"_globalService.getHeaderState()\"></app-topbar>\n\n <div *ngIf=\"_globalService.getMenuState()\" class=\"layout-menu-container\"\n [ngClass]=\"{'layout-menu-dark':_commonService.darkMenu}\" (click)=\"_commonService.onMenuClick($event)\">\n <app-root-menu></app-root-menu>\n <div class=\"layout-menu-block\">\n <tn-custom-scrollbar #scrollbar [style]=\"{'padding-top': '16px'}\">\n <app-inline-profile *ngIf=\"_commonService.profileMode == 'inline' &&!_commonService.isHorizontal()\">\n </app-inline-profile>\n <app-menu [autoRenderMenu]=\"autoRenderMenu\" [reset]=\"_commonService.resetMenu\"\n (onMenuActive)=\"handleMenuActive($event)\"></app-menu>\n </tn-custom-scrollbar>\n </div>\n <div class=\"search-area layout-menu-search-area\">\n <p-autoComplete [(ngModel)]=\"searchMenuInput\" [style]=\"{'width':'100%'}\" [suggestions]=\"searchMenuResult\"\n (completeMethod)=\"onSearchMenu($event)\" [autoHighlight]=\"true\"\n [placeholder]=\"'T\u00ECm ki\u1EBFm ch\u1EE9c n\u0103ng' | translate\" [delay]=\"200\" [scrollHeight]=\"'400px'\"\n class=\"search-input\" [readonly]=\"!(menuModel && menuModel.length)\"\n (onSelect)=\"onSelectMenuSuggestion($event)\" field=\"label\">\n <ng-template let-item pTemplate=\"item\">\n <div innerHTML=\"{{ item.label | highlight : searchMenuInput}}\"></div>\n </ng-template>\n </p-autoComplete>\n <span class=\"icon-search\"><i class=\"pi pi-search\"></i></span>\n </div>\n </div>\n\n <div [class]=\"'layout-main'\" [ngClass]=\"{'no-header': _globalService.getHeaderState() ? false : true}\">\n <router-outlet></router-outlet>\n </div>\n\n <div class=\"layout-mask\"></div>\n <!-- <div #quickNoteBt *ngIf=\"!onlyShowMainContent && showQuickNote\" class=\"quick-note-button-holder\" cdkDrag\n cdkDragBoundary=\".layout-wrapper\" oncontextmenu=\"return false\" (cdkDragEnded)=\"quickNoteDropped($event)\"\n (cdkDragStarted)=\"quickNoteStarted($event)\">\n <a #quickNoteBt1 href=\"javascript:;\" class=\"all-note-button\" tabindex=\"0\" (click)=\"quickNoteShowAllNotes()\">\n <i class=\"fas fa-sticky-note\"></i></a>\n <a #quickNoteBt2 href=\"javascript:;\" class=\"setting-note-button\" tabindex=\"0\" (click)=\"quickNoteShowSettings()\">\n <i class=\"fas fa-cog\"></i></a>\n <a href=\"javascript:;\" (press)=\"quickNotePress($event)\" (pressup)=\"quickNotePressUp($event)\"\n class=\"quick-note-button\" tabindex=\"0\" (click)=\"quickNoteAddNote()\">\n <i class=\"fas fa-plus\"></i></a>\n </div> -->\n <div #pinnedNotes *ngIf=\"!onlyShowMainContent\" class=\"pinned-notes-holder\" cdkDrag cdkDragBoundary=\".layout-wrapper\"\n oncontextmenu=\"return false\" (cdkDragEnded)=\"pinnedNotesDropped($event)\"\n (cdkDragStarted)=\"pinnedNotesStarted($event)\">\n <div class=\"pinned-notes ui-g\" tabindex=\"0\">\n <div *ngIf=\"pinnedNotesMinimizeStatus\" class=\"pinned-notes-minimize-button\"\n (click)=\"pinnedNotesMinimize(pinnedNotesMinimizeStatus)\">\n <i class=\"pi pi-window-maximize\"></i>\n </div>\n <div *ngIf=\"pinnedNotesMaximizeStatus\" class=\" pinned-notes-minimize-button\"\n (click)=\"pinnedNotesMinimize(pinnedNotesMinimizeStatus)\">\n <i class=\"pi pi-window-minimize\"></i>\n </div>\n <div *ngFor=\"let note of pinnedNoteData\" class=\"pinned-note ui-g-12\">\n <div class=\"pinned-note-header-line\" [style.background-color]=\"note.colorCode\">\n </div>\n <div class=\"pinned-note-body\">\n <span class=\"pinned-note-line-title\" [style.paddingBottom]=\"note.titlePaddingBottom\">\n <div class=\"pinned-note-header-right\">\n <span class=\"pinned-note-header-time\">{{note.created | date: 'dd/MM'}}</span>\n <img src=\"../assets/layout/images/ico/unpin-1.ico\" class=\"pinned-note-header-button-unpin\"\n (click)=\"unPinNote(note)\">\n <i *ngIf=\"!note.isCompleted\" class=\"far fa-flag pinned-note-header-button-complete\"\n (click)=\"completeNote(note)\"></i>\n <i *ngIf=\"note.isCompleted\" class=\"fas fa-flag-checkered pinned-note-header-button-complete\"\n (click)=\"inCompleteNote(note)\"></i>\n </div>\n <div>{{note.name}}</div>\n </span>\n <div class=\"pinned-note-contents\" [style.display]=\"note.contentDisplay\">\n <span *ngFor=\"let content of note.contents\" class=\"pinned-note-line\">\n {{content}}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <report-queue [header]=\"'Xu\u1EA5t d\u1EEF li\u1EC7u'\">\n </report-queue>\n</div>\n<div class=\"waiting-box\" [class.show]=\"waiting\">\n <div class=\"overlay\"></div>\n <div class=\"content-loading\">\n <div class=\"lds-ellipsis\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n <div class=\"message-loading\">\n <span *ngFor=\"let x of messageWaiting\">{{x}}</span>\n </div>\n </div>\n</div>\n<p-toast [position]=\"'top-right'\" [autoZIndex]=\"true\"></p-toast>\n<p-confirmDialog #cd [closable]=\"false\">\n <p-footer>\n <button #okButton type=\"button\" pButton icon=\"pi pi-check\" class=\"p-button-rounded p-button-text\" label=\"\u0110\u1ED3ng \u00FD\"\n (keydown.shift.tab)=\"focusTrap($event, false)\" (click)=\"cd.accept()\"></button>\n <button *ngIf=\"showRejectConfirm\" #cancelButton type=\"button\" pButton\n class=\"p-button-rounded p-button-text p-button-secondary\" icon=\"pi pi-times\" label=\"B\u1ECF qua\"\n (keydown.tab)=\"focusTrap($event, true)\" (click)=\"cd.reject()\"></button>\n </p-footer>\n</p-confirmDialog>\n<!-- <user-action-manager></user-action-manager> -->\n<permission-utils *ngIf=\"rootData.showPermissionUtils\"></permission-utils>\n<ng-template #abc>\n <div>1</div>\n</ng-template>\n<ng-template #def>\n <div>2</div>\n</ng-template>",
33270
33289
  providers: [ComponentContextService, EntityMetadataService],
33271
33290
  styles: [".layout-menu-search-area{position:relative}.icon-search{background-color:transparent;box-shadow:none;position:absolute;right:0;top:0;color:#888;width:30px;font-size:14px;height:100%;display:flex;align-items:center;justify-content:center}.layout-menu-static-inactive .search-area{margin-left:-303px}.layout-menu-container{overflow:hidden;display:flex;flex-direction:column;top:60px;bottom:0;height:auto}.layout-menu-block{display:flex;overflow:hidden;flex:1}.layout-menu-block>tn-custom-scrollbar{width:100%}::ng-deep .layout-menu-search-area .ui-inputtext{width:calc(100% + 1px);border-radius:0;border-color:#dadada;padding-right:40px}::ng-deep .layout-menu-search-area .ui-inputtext:not(:focus){box-shadow:none}::ng-deep .layout-menu-search-area input{width:100%;border-radius:0;border-left:0;border-right:0}::ng-deep .layout-menu-search-area .p-autocomplete-panel{max-width:100%}::ng-deep .layout-menu-search-area .p-autocomplete-item{white-space:normal}::ng-deep .layout-menu-search-area .p-autocomplete-item mark{background-color:var(--tn-primary-color);padding:0;color:#fff;border-radius:0}.waiting-box{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;display:none}.waiting-box .overlay{background-color:red;background-color:hsla(0,0%,42.7%,.5019607843137255);width:100%;height:100%}.waiting-box .content-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center}.waiting-box .content-loading .lds-ellipsis{display:inline-block;position:relative;width:80px;height:60px}.waiting-box .content-loading .lds-ellipsis div{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:#fff;animation-timing-function:cubic-bezier(0,1,1,0)}.waiting-box .content-loading .lds-ellipsis div:first-child{left:8px;animation:lds-ellipsis1 .6s infinite}.waiting-box .content-loading .lds-ellipsis div:nth-child(2){left:8px;animation:lds-ellipsis2 .6s infinite}.waiting-box .content-loading .lds-ellipsis div:nth-child(3){left:32px;animation:lds-ellipsis2 .6s infinite}.waiting-box .content-loading .lds-ellipsis div:nth-child(4){left:56px;animation:lds-ellipsis3 .6s infinite}.waiting-box .message-loading{font-size:1.75em}.waiting-box .message-loading span{color:#fff;animation:message-opacity 1s infinite;margin-right:1px}.waiting-box .message-loading span:last-child{margin-right:0}.waiting-box .message-loading span:nth-child(16n+1){animation-delay:0;animation-delay:0s}.waiting-box .message-loading span:nth-child(16n+2){animation-delay:.1s}.waiting-box .message-loading span:nth-child(16n+3){animation-delay:.2s}.waiting-box .message-loading span:nth-child(16n+4){animation-delay:.3s}.waiting-box .message-loading span:nth-child(16n+5){animation-delay:.4s}.waiting-box .message-loading span:nth-child(16n+6){animation-delay:.5s}.waiting-box .message-loading span:nth-child(16n+7){animation-delay:.6s}.waiting-box .message-loading span:nth-child(16n+8){animation-delay:.7s}.waiting-box .message-loading span:nth-child(16n+9){animation-delay:.8s}.waiting-box .message-loading span:nth-child(16n+10){animation-delay:.9s}.waiting-box .message-loading span:nth-child(16n+11){animation-delay:1s}.waiting-box .message-loading span:nth-child(16n+12){animation-delay:1.1s}.waiting-box .message-loading span:nth-child(16n+13){animation-delay:1.2s}.waiting-box .message-loading span:nth-child(16n+14){animation-delay:1.3s}.waiting-box .message-loading span:nth-child(16n+15){animation-delay:1.4s}.waiting-box .message-loading span:nth-child(16n+16){animation-delay:1.5s}.waiting-box.show{display:block}@keyframes lds-ellipsis1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0)}to{transform:translate(24px)}}@keyframes message-opacity{0%{opacity:1}50%{opacity:.5}to{opacity:1}}"]
33272
33291
  },] }