ngx-histaff-alpha 5.0.4 → 5.0.6

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.
@@ -11391,6 +11391,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
11391
11391
  if (body.statusCode === 200 || x.body.statusCode == '200') {
11392
11392
  this.forceReloadingFlag$.next(!!!this.forceReloadingFlag$.value);
11393
11393
  activateRequest.ids = [];
11394
+ this.buttonGroupStatus?.mustBeHidden$.next(EMPTY_SELECTION_HIDDEN_BUTTON);
11394
11395
  }
11395
11396
  }
11396
11397
  }));
@@ -11414,6 +11415,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
11414
11415
  if (body.statusCode === 200 || x.body.statusCode == '200') {
11415
11416
  this.forceReloadingFlag$.next(!!!this.forceReloadingFlag$.value);
11416
11417
  inactivateRequest.ids = [];
11418
+ this.buttonGroupStatus?.mustBeHidden$.next(EMPTY_SELECTION_HIDDEN_BUTTON);
11417
11419
  }
11418
11420
  }
11419
11421
  }));
@@ -12172,7 +12174,7 @@ class CorePageListComponent extends CoreFormControlBaseComponent {
12172
12174
  useExisting: CorePageListComponent,
12173
12175
  },
12174
12176
  CorePageListState,
12175
- ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "corePageListContainer", first: true, predicate: ["corePageListContainer"], descendants: true }, { propertyName: "paginationContainer", first: true, predicate: ["paginationContainer"], descendants: true }, { propertyName: "fileImport", first: true, predicate: ["fileImport"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-page-list-container p-relative\" #corePageListContainer\r\n [ngStyle]=\"{ height: height + 'px' }\">\r\n\r\n @if (!hideHeader) {\r\n <core-page-header [instanceNumber]=\"corePageListInstanceNumber\" [title]=\"title\"\r\n (buttonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n [hideButtonGroup]=\"!!seekerMode || !!hideButtonGroup\"></core-page-header>\r\n }\r\n\r\n <input #fileImport type=\"file\" name=\"name\"\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n style=\"display: none;\" (change)='inputFile($event)' />\r\n\r\n <!--\r\n Khi \u0111\u00E3 t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao compositionHeight c\u1EE7a core-composition\r\n C\u1EA7n t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao coreTableHeight c\u1EE7a CoreTable\r\n N\u1EBFu ph\u1EA7n top c\u1EE7a composition c\u1ED1 \u0111\u1ECBnh (v\u00ED d\u1EE5 khi s\u1EED d\u1EE5ng CoreParamKit) th\u00EC ph\u00E9p tr\u1EEB \u0111\u01A1n gi\u1EA3n\r\n Nh\u01B0ng n\u1EBFu ph\u1EA7n top \u0111\u01B0\u1EE3c customize, ta ph\u1EA3i s\u1EED d\u1EE5ng extraManualOffset\r\n -->\r\n <core-composition [coreCompositionInstanceNumber]=\"corePageListInstanceNumber\" [top]=\"topPlace\"\r\n [left]=\"!!hideLeft? undefined :left\" [main]=\"coreTable\" [height]=\"compositionHeight\">\r\n </core-composition>\r\n\r\n <router-outlet name=\"corePageListAux\"></router-outlet>\r\n\r\n <!-- @if (!!tabMode && showFilterKit) {\r\n <div class = \"filter-kit-dropdown\" [ngStyle]=\"{\r\n zIndex: filterKitZIndex\r\n }\">\r\n <core-common-param-kit [hiddenMode]=\"true\" [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" [statusOptions$]=\"statusOptions$\" [showOrgParam]=\"showOrgParam\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\" [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"></core-common-param-kit>\r\n </div>\r\n } -->\r\n\r\n @if (!disableFilterHub && showFilter && !!paramRows) {\r\n <core-filter-hub [paramRows]=\"paramRows\"></core-filter-hub>\r\n }\r\n\r\n</div>\r\n\r\n<ng-template #topPlace>\r\n\r\n @if (!tabMode) {\r\n @if (!!showParamKit) {\r\n <div>\r\n <core-common-param-kit [hiddenMode]=\"false\" [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" [statusOptions$]=\"statusOptions$\" [showOrgParam]=\"showOrgParam\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\" [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"></core-common-param-kit>\r\n </div>\r\n }\r\n\r\n <!-- @if (enableFilterKit) {\r\n <core-filter-kit \r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" \r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" \r\n [statusOptions$]=\"statusOptions$\" \r\n [showOrgParam]=\"showOrgParam\"\r\n [showOrgParamDropdown]=\"showOrgParamDropdown\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\"\r\n [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"\r\n ></core-filter-kit> \r\n } -->\r\n } @else {\r\n <core-tabs [headers]=\"tabHeaders\" [contents]=\"[]\" [height]=\"45\" [headerLineHeight]=\"45\"\r\n (onHeaderClick)=\"onCoreTabsHeaderClick($event)\">\r\n </core-tabs>\r\n <!-- <core-filter-kit \r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" \r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" \r\n [statusOptions$]=\"statusOptions$\" \r\n [showOrgParam]=\"showOrgParam\"\r\n [showOrgParamDropdown]=\"showOrgParamDropdown\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\"\r\n [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"\r\n ></core-filter-kit> -->\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"top\">\r\n </ng-container>\r\n\r\n</ng-template>\r\n\r\n<ng-template #coreTable>\r\n\r\n <div [class.opacity0]=\"!!!geometricDone\">\r\n\r\n <!--\r\n Khi \u0111\u00E3 t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao compositionHeight c\u1EE7a core-composition\r\n C\u1EA7n t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao coreTableHeight c\u1EE7a CoreTable\r\n N\u1EBFu ph\u1EA7n top c\u1EE7a composition c\u1ED1 \u0111\u1ECBnh (v\u00ED d\u1EE5 khi s\u1EED d\u1EE5ng CoreParamKit) th\u00EC ph\u00E9p tr\u1EEB \u0111\u01A1n gi\u1EA3n\r\n Nh\u01B0ng n\u1EBFu ph\u1EA7n top \u0111\u01B0\u1EE3c customize, ta ph\u1EA3i s\u1EED d\u1EE5ng extraManualOffset\r\n\r\n C\u1EA7n t\u00EDnh tableHeight nh\u01B0 th\u1EBF n\u00E0o?\r\n -->\r\n <core-table #coreTableAlone width=\"100%\" [height]=\"tableHeight\" [rowHeight]=\"rowHeight || '46px'\" [wrap]=\"wrap\"\r\n [primaryKey]=\"primaryKey\"\r\n [columns]=\"columns\" [data]=\"list\" [showCheckbox]=\"!!!hideCheck\" headerHeight=\"60px\"\r\n [showTools]=\"showListInlineTools\" [tools]=\"inlineTools\" (onToolClick)=\"onToolClick($event)\"\r\n (onRowClick)=\"onRowClick($event)\" (onRowDoubleClick)=\"onRowDoubleClick($event)\"\r\n (onSelectedIdsChange)=\"onSelectedIdsChange($event)\" (onSelectedDataChange)=\"onSelectedDataChange($event)\"\r\n [frozen]=\"frozen || 1\" (onSearching)=\"onSearching($event)\"\r\n (onColumnCaptionClick)=\"onColumnCaptionClick($event)\"\r\n [corePageListInstanceNumber]=\"corePageListInstanceNumber\" [loading]=\"loading\"\r\n [columnSearchDefaultOpen]=\"columnSearchDefaultOpen\" [lazyLoading]=\"true\" [headerWrap]=\"headerWrap\"\r\n [headerFirstRowHeight]=\"headerFirstRowHeight\" [noPaddingCell]=\"noPaddingCell\"\r\n [disableHighlightOnClick]=\"disableHighlightOnClick\" [primaryKey]=\"primaryKey\"\r\n [autoColumnFitAvailableSpace]=\"autoColumnFitAvailableSpace\"\r\n [checkboxExplicity]=\"checkboxExplicity\"\r\n ></core-table>\r\n\r\n <div class=\"d-flex d-flex-between pagination-wrapper w-100\" #paginationContainer>\r\n <core-pagination-full [height]=\"paginationHeight\" [currentPage$]=\"currentPage$\" [pageSize$]=\"pageSize$\"\r\n [pageCount]=\"pageCount\" [innerBodyCount$]=\"innerBodyCount$\" [pagination$]=\"pagination$\"\r\n [loading]=\"loading\" [fixedPageSize]=\"fixedPageSize\" [background]=\"'#848484'\"></core-pagination-full>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<core-api-progress *ngIf=\"longApiRunning\" (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n\r\n<app-fullscreen-modal-loader *ngIf=\"prefetchLoading\"></app-fullscreen-modal-loader>", styles: [".core-page-list-container{--height: auto;box-sizing:border-box!important;border:none!important;height:var(--height)}.core-page-list-container *{box-sizing:border-box}.core-page-list-container .column-caption{text-align:center}.core-page-list-container core-pagination-full{width:100%}.core-page-list-container .filter-kit-dropdown{top:120px;right:120px;position:fixed;box-shadow:0 1rem 3rem #0000002e}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: CoreTableComponent, selector: "core-table", inputs: ["id", "width", "height", "showCheckbox", "checkboxSize", "outerButtons", "showTools", "tools", "checkingResetFlag", "borderRadius", "headerColor", "headerBackgroundColor", "headerWrap", "headerFirstRowHeight", "headerSecondRowHeight", "wrap", "allowCellScrollY", "loading", "rowHeight", "frozen", "footer", "columns", "data", "selectedIds", "corePageListInstanceNumber", "disableHighlightOnClick", "freeMode", "searchSwitchDisabled", "disableSorting", "inlineToolItems", "columnSearchDefaultOpen", "lazyLoading", "primaryKey", "rowHoverBgColor", "noPaddingCell", "autoColumnFitAvailableSpace", "checkboxExplicity"], outputs: ["onSearching", "onToolClick", "onRowClick", "onRowDoubleClick", "onSelectedIdsChange", "onSelectedDataChange", "onColumnCaptionClick"] }, { kind: "component", type: CorePaginationFullComponent, selector: "core-pagination-full", inputs: ["currentPage$", "height", "pageCount", "loading", "showAdd", "background", "pageSize$", "innerBodyCount$", "pagination$", "fixedPageSize"], outputs: ["onClickAdd", "onCurrentPageChange", "onSizeChange"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "component", type: CoreCompositionComponent, selector: "core-composition", inputs: ["coreCompositionInstanceNumber", "top", "left", "leftWidth", "main", "height", "defaultResizeOff"] }, { kind: "component", type: CoreCommonParamKitComponent, selector: "core-common-param-kit", inputs: ["hiddenMode", "enableTimeZoneConverterForDateTimePeriodParameters", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "showOrgParam", "showOrgParamDropdown", "hideDatePeriodComparison", "hideStatusInclusion", "hideGeneralSearch", "statusOptions$"], outputs: ["onChange"] }, { kind: "component", type: CoreApiProgressComponent, selector: "core-api-progress", outputs: ["onClose"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "component", type: CoreTabsComponent, selector: "core-tabs", inputs: ["headers", "contents", "headerTools", "height", "headerLineHeight"], outputs: ["onHeaderClick", "onToolItemClick"] }, { kind: "component", type: CoreFilterHubComponent, selector: "core-filter-hub", inputs: ["paramRows", "showButton"], outputs: ["onButtonClick"] }] }); }
12177
+ ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "corePageListContainer", first: true, predicate: ["corePageListContainer"], descendants: true }, { propertyName: "paginationContainer", first: true, predicate: ["paginationContainer"], descendants: true }, { propertyName: "fileImport", first: true, predicate: ["fileImport"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #container class=\"core-page-list-container p-relative\" #corePageListContainer\r\n [ngStyle]=\"{ height: height + 'px' }\">\r\n\r\n @if (!hideHeader) {\r\n <core-page-header [instanceNumber]=\"corePageListInstanceNumber\" [title]=\"title\"\r\n (buttonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n [hideButtonGroup]=\"!!seekerMode || !!hideButtonGroup\"></core-page-header>\r\n }\r\n\r\n <input #fileImport type=\"file\" name=\"name\"\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n style=\"display: none;\" (change)='inputFile($event)' />\r\n\r\n <!--\r\n Khi \u0111\u00E3 t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao compositionHeight c\u1EE7a core-composition\r\n C\u1EA7n t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao coreTableHeight c\u1EE7a CoreTable\r\n N\u1EBFu ph\u1EA7n top c\u1EE7a composition c\u1ED1 \u0111\u1ECBnh (v\u00ED d\u1EE5 khi s\u1EED d\u1EE5ng CoreParamKit) th\u00EC ph\u00E9p tr\u1EEB \u0111\u01A1n gi\u1EA3n\r\n Nh\u01B0ng n\u1EBFu ph\u1EA7n top \u0111\u01B0\u1EE3c customize, ta ph\u1EA3i s\u1EED d\u1EE5ng extraManualOffset\r\n -->\r\n <core-composition [coreCompositionInstanceNumber]=\"corePageListInstanceNumber\" [top]=\"topPlace\"\r\n [left]=\"!!hideLeft? undefined :left\" [main]=\"coreTable\" [height]=\"compositionHeight\">\r\n </core-composition>\r\n\r\n <router-outlet name=\"corePageListAux\"></router-outlet>\r\n\r\n @if (!disableFilterHub && showFilter && !!paramRows) {\r\n <core-filter-hub [paramRows]=\"paramRows\"></core-filter-hub>\r\n }\r\n\r\n</div>\r\n\r\n<ng-template #topPlace>\r\n\r\n @if (!tabMode) {\r\n @if (!!showParamKit) {\r\n <div>\r\n <core-common-param-kit [hiddenMode]=\"false\" [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" [statusOptions$]=\"statusOptions$\" [showOrgParam]=\"showOrgParam\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\" [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"></core-common-param-kit>\r\n </div>\r\n }\r\n\r\n } @else {\r\n <core-tabs [headers]=\"tabHeaders\" [contents]=\"[]\" [height]=\"45\" [headerLineHeight]=\"45\"\r\n (onHeaderClick)=\"onCoreTabsHeaderClick($event)\">\r\n </core-tabs>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"top\">\r\n </ng-container>\r\n\r\n</ng-template>\r\n\r\n<ng-template #coreTable>\r\n\r\n <div [class.opacity0]=\"!!!geometricDone\">\r\n\r\n <!--\r\n Khi \u0111\u00E3 t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao compositionHeight c\u1EE7a core-composition\r\n C\u1EA7n t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao coreTableHeight c\u1EE7a CoreTable\r\n N\u1EBFu ph\u1EA7n top c\u1EE7a composition c\u1ED1 \u0111\u1ECBnh (v\u00ED d\u1EE5 khi s\u1EED d\u1EE5ng CoreParamKit) th\u00EC ph\u00E9p tr\u1EEB \u0111\u01A1n gi\u1EA3n\r\n Nh\u01B0ng n\u1EBFu ph\u1EA7n top \u0111\u01B0\u1EE3c customize, ta ph\u1EA3i s\u1EED d\u1EE5ng extraManualOffset\r\n\r\n C\u1EA7n t\u00EDnh tableHeight nh\u01B0 th\u1EBF n\u00E0o?\r\n -->\r\n <core-table #coreTableAlone width=\"100%\" [height]=\"tableHeight\" [rowHeight]=\"rowHeight || '46px'\" [wrap]=\"wrap\"\r\n [primaryKey]=\"primaryKey\"\r\n [columns]=\"columns\" [data]=\"list\" [showCheckbox]=\"!!!hideCheck\" headerHeight=\"60px\"\r\n [showTools]=\"showListInlineTools\" [tools]=\"inlineTools\" (onToolClick)=\"onToolClick($event)\"\r\n (onRowClick)=\"onRowClick($event)\" (onRowDoubleClick)=\"onRowDoubleClick($event)\"\r\n (onSelectedIdsChange)=\"onSelectedIdsChange($event)\" (onSelectedDataChange)=\"onSelectedDataChange($event)\"\r\n [frozen]=\"frozen || 1\" (onSearching)=\"onSearching($event)\"\r\n (onColumnCaptionClick)=\"onColumnCaptionClick($event)\"\r\n [corePageListInstanceNumber]=\"corePageListInstanceNumber\" [loading]=\"loading\"\r\n [columnSearchDefaultOpen]=\"columnSearchDefaultOpen\" [lazyLoading]=\"true\" [headerWrap]=\"headerWrap\"\r\n [headerFirstRowHeight]=\"headerFirstRowHeight\" [noPaddingCell]=\"noPaddingCell\"\r\n [disableHighlightOnClick]=\"disableHighlightOnClick\" [primaryKey]=\"primaryKey\"\r\n [autoColumnFitAvailableSpace]=\"autoColumnFitAvailableSpace\"\r\n [checkboxExplicity]=\"checkboxExplicity\"\r\n ></core-table>\r\n\r\n <div class=\"d-flex d-flex-between pagination-wrapper w-100\" #paginationContainer>\r\n <core-pagination-full [height]=\"paginationHeight\" [currentPage$]=\"currentPage$\" [pageSize$]=\"pageSize$\"\r\n [pageCount]=\"pageCount\" [innerBodyCount$]=\"innerBodyCount$\" [pagination$]=\"pagination$\"\r\n [loading]=\"loading\" [fixedPageSize]=\"fixedPageSize\" [background]=\"'#848484'\"></core-pagination-full>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<core-api-progress *ngIf=\"longApiRunning\" (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n\r\n<app-fullscreen-modal-loader *ngIf=\"prefetchLoading\"></app-fullscreen-modal-loader>", styles: [".core-page-list-container{--height: auto;box-sizing:border-box!important;border:none!important;height:var(--height)}.core-page-list-container *{box-sizing:border-box}.core-page-list-container .column-caption{text-align:center}.core-page-list-container core-pagination-full{width:100%}.core-page-list-container .filter-kit-dropdown{top:120px;right:120px;position:fixed;box-shadow:0 1rem 3rem #0000002e}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: CoreTableComponent, selector: "core-table", inputs: ["id", "width", "height", "showCheckbox", "checkboxSize", "outerButtons", "showTools", "tools", "checkingResetFlag", "borderRadius", "headerColor", "headerBackgroundColor", "headerWrap", "headerFirstRowHeight", "headerSecondRowHeight", "wrap", "allowCellScrollY", "loading", "rowHeight", "frozen", "footer", "columns", "data", "selectedIds", "corePageListInstanceNumber", "disableHighlightOnClick", "freeMode", "searchSwitchDisabled", "disableSorting", "inlineToolItems", "columnSearchDefaultOpen", "lazyLoading", "primaryKey", "rowHoverBgColor", "noPaddingCell", "autoColumnFitAvailableSpace", "checkboxExplicity"], outputs: ["onSearching", "onToolClick", "onRowClick", "onRowDoubleClick", "onSelectedIdsChange", "onSelectedDataChange", "onColumnCaptionClick"] }, { kind: "component", type: CorePaginationFullComponent, selector: "core-pagination-full", inputs: ["currentPage$", "height", "pageCount", "loading", "showAdd", "background", "pageSize$", "innerBodyCount$", "pagination$", "fixedPageSize"], outputs: ["onClickAdd", "onCurrentPageChange", "onSizeChange"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "component", type: CoreCompositionComponent, selector: "core-composition", inputs: ["coreCompositionInstanceNumber", "top", "left", "leftWidth", "main", "height", "defaultResizeOff"] }, { kind: "component", type: CoreCommonParamKitComponent, selector: "core-common-param-kit", inputs: ["hiddenMode", "enableTimeZoneConverterForDateTimePeriodParameters", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "showOrgParam", "showOrgParamDropdown", "hideDatePeriodComparison", "hideStatusInclusion", "hideGeneralSearch", "statusOptions$"], outputs: ["onChange"] }, { kind: "component", type: CoreApiProgressComponent, selector: "core-api-progress", outputs: ["onClose"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }, { kind: "component", type: CoreTabsComponent, selector: "core-tabs", inputs: ["headers", "contents", "headerTools", "height", "headerLineHeight"], outputs: ["onHeaderClick", "onToolItemClick"] }, { kind: "component", type: CoreFilterHubComponent, selector: "core-filter-hub", inputs: ["paramRows", "showButton"], outputs: ["onButtonClick"] }] }); }
12176
12178
  }
12177
12179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CorePageListComponent, decorators: [{
12178
12180
  type: Component,
@@ -12196,7 +12198,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
12196
12198
  useExisting: CorePageListComponent,
12197
12199
  },
12198
12200
  CorePageListState,
12199
- ], template: "<div #container class=\"core-page-list-container p-relative\" #corePageListContainer\r\n [ngStyle]=\"{ height: height + 'px' }\">\r\n\r\n @if (!hideHeader) {\r\n <core-page-header [instanceNumber]=\"corePageListInstanceNumber\" [title]=\"title\"\r\n (buttonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n [hideButtonGroup]=\"!!seekerMode || !!hideButtonGroup\"></core-page-header>\r\n }\r\n\r\n <input #fileImport type=\"file\" name=\"name\"\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n style=\"display: none;\" (change)='inputFile($event)' />\r\n\r\n <!--\r\n Khi \u0111\u00E3 t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao compositionHeight c\u1EE7a core-composition\r\n C\u1EA7n t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao coreTableHeight c\u1EE7a CoreTable\r\n N\u1EBFu ph\u1EA7n top c\u1EE7a composition c\u1ED1 \u0111\u1ECBnh (v\u00ED d\u1EE5 khi s\u1EED d\u1EE5ng CoreParamKit) th\u00EC ph\u00E9p tr\u1EEB \u0111\u01A1n gi\u1EA3n\r\n Nh\u01B0ng n\u1EBFu ph\u1EA7n top \u0111\u01B0\u1EE3c customize, ta ph\u1EA3i s\u1EED d\u1EE5ng extraManualOffset\r\n -->\r\n <core-composition [coreCompositionInstanceNumber]=\"corePageListInstanceNumber\" [top]=\"topPlace\"\r\n [left]=\"!!hideLeft? undefined :left\" [main]=\"coreTable\" [height]=\"compositionHeight\">\r\n </core-composition>\r\n\r\n <router-outlet name=\"corePageListAux\"></router-outlet>\r\n\r\n <!-- @if (!!tabMode && showFilterKit) {\r\n <div class = \"filter-kit-dropdown\" [ngStyle]=\"{\r\n zIndex: filterKitZIndex\r\n }\">\r\n <core-common-param-kit [hiddenMode]=\"true\" [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" [statusOptions$]=\"statusOptions$\" [showOrgParam]=\"showOrgParam\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\" [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"></core-common-param-kit>\r\n </div>\r\n } -->\r\n\r\n @if (!disableFilterHub && showFilter && !!paramRows) {\r\n <core-filter-hub [paramRows]=\"paramRows\"></core-filter-hub>\r\n }\r\n\r\n</div>\r\n\r\n<ng-template #topPlace>\r\n\r\n @if (!tabMode) {\r\n @if (!!showParamKit) {\r\n <div>\r\n <core-common-param-kit [hiddenMode]=\"false\" [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" [statusOptions$]=\"statusOptions$\" [showOrgParam]=\"showOrgParam\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\" [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"></core-common-param-kit>\r\n </div>\r\n }\r\n\r\n <!-- @if (enableFilterKit) {\r\n <core-filter-kit \r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" \r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" \r\n [statusOptions$]=\"statusOptions$\" \r\n [showOrgParam]=\"showOrgParam\"\r\n [showOrgParamDropdown]=\"showOrgParamDropdown\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\"\r\n [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"\r\n ></core-filter-kit> \r\n } -->\r\n } @else {\r\n <core-tabs [headers]=\"tabHeaders\" [contents]=\"[]\" [height]=\"45\" [headerLineHeight]=\"45\"\r\n (onHeaderClick)=\"onCoreTabsHeaderClick($event)\">\r\n </core-tabs>\r\n <!-- <core-filter-kit \r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" \r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" \r\n [statusOptions$]=\"statusOptions$\" \r\n [showOrgParam]=\"showOrgParam\"\r\n [showOrgParamDropdown]=\"showOrgParamDropdown\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\"\r\n [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"\r\n ></core-filter-kit> -->\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"top\">\r\n </ng-container>\r\n\r\n</ng-template>\r\n\r\n<ng-template #coreTable>\r\n\r\n <div [class.opacity0]=\"!!!geometricDone\">\r\n\r\n <!--\r\n Khi \u0111\u00E3 t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao compositionHeight c\u1EE7a core-composition\r\n C\u1EA7n t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao coreTableHeight c\u1EE7a CoreTable\r\n N\u1EBFu ph\u1EA7n top c\u1EE7a composition c\u1ED1 \u0111\u1ECBnh (v\u00ED d\u1EE5 khi s\u1EED d\u1EE5ng CoreParamKit) th\u00EC ph\u00E9p tr\u1EEB \u0111\u01A1n gi\u1EA3n\r\n Nh\u01B0ng n\u1EBFu ph\u1EA7n top \u0111\u01B0\u1EE3c customize, ta ph\u1EA3i s\u1EED d\u1EE5ng extraManualOffset\r\n\r\n C\u1EA7n t\u00EDnh tableHeight nh\u01B0 th\u1EBF n\u00E0o?\r\n -->\r\n <core-table #coreTableAlone width=\"100%\" [height]=\"tableHeight\" [rowHeight]=\"rowHeight || '46px'\" [wrap]=\"wrap\"\r\n [primaryKey]=\"primaryKey\"\r\n [columns]=\"columns\" [data]=\"list\" [showCheckbox]=\"!!!hideCheck\" headerHeight=\"60px\"\r\n [showTools]=\"showListInlineTools\" [tools]=\"inlineTools\" (onToolClick)=\"onToolClick($event)\"\r\n (onRowClick)=\"onRowClick($event)\" (onRowDoubleClick)=\"onRowDoubleClick($event)\"\r\n (onSelectedIdsChange)=\"onSelectedIdsChange($event)\" (onSelectedDataChange)=\"onSelectedDataChange($event)\"\r\n [frozen]=\"frozen || 1\" (onSearching)=\"onSearching($event)\"\r\n (onColumnCaptionClick)=\"onColumnCaptionClick($event)\"\r\n [corePageListInstanceNumber]=\"corePageListInstanceNumber\" [loading]=\"loading\"\r\n [columnSearchDefaultOpen]=\"columnSearchDefaultOpen\" [lazyLoading]=\"true\" [headerWrap]=\"headerWrap\"\r\n [headerFirstRowHeight]=\"headerFirstRowHeight\" [noPaddingCell]=\"noPaddingCell\"\r\n [disableHighlightOnClick]=\"disableHighlightOnClick\" [primaryKey]=\"primaryKey\"\r\n [autoColumnFitAvailableSpace]=\"autoColumnFitAvailableSpace\"\r\n [checkboxExplicity]=\"checkboxExplicity\"\r\n ></core-table>\r\n\r\n <div class=\"d-flex d-flex-between pagination-wrapper w-100\" #paginationContainer>\r\n <core-pagination-full [height]=\"paginationHeight\" [currentPage$]=\"currentPage$\" [pageSize$]=\"pageSize$\"\r\n [pageCount]=\"pageCount\" [innerBodyCount$]=\"innerBodyCount$\" [pagination$]=\"pagination$\"\r\n [loading]=\"loading\" [fixedPageSize]=\"fixedPageSize\" [background]=\"'#848484'\"></core-pagination-full>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<core-api-progress *ngIf=\"longApiRunning\" (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n\r\n<app-fullscreen-modal-loader *ngIf=\"prefetchLoading\"></app-fullscreen-modal-loader>", styles: [".core-page-list-container{--height: auto;box-sizing:border-box!important;border:none!important;height:var(--height)}.core-page-list-container *{box-sizing:border-box}.core-page-list-container .column-caption{text-align:center}.core-page-list-container core-pagination-full{width:100%}.core-page-list-container .filter-kit-dropdown{top:120px;right:120px;position:fixed;box-shadow:0 1rem 3rem #0000002e}\n"] }]
12201
+ ], template: "<div #container class=\"core-page-list-container p-relative\" #corePageListContainer\r\n [ngStyle]=\"{ height: height + 'px' }\">\r\n\r\n @if (!hideHeader) {\r\n <core-page-header [instanceNumber]=\"corePageListInstanceNumber\" [title]=\"title\"\r\n (buttonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n [hideButtonGroup]=\"!!seekerMode || !!hideButtonGroup\"></core-page-header>\r\n }\r\n\r\n <input #fileImport type=\"file\" name=\"name\"\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n style=\"display: none;\" (change)='inputFile($event)' />\r\n\r\n <!--\r\n Khi \u0111\u00E3 t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao compositionHeight c\u1EE7a core-composition\r\n C\u1EA7n t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao coreTableHeight c\u1EE7a CoreTable\r\n N\u1EBFu ph\u1EA7n top c\u1EE7a composition c\u1ED1 \u0111\u1ECBnh (v\u00ED d\u1EE5 khi s\u1EED d\u1EE5ng CoreParamKit) th\u00EC ph\u00E9p tr\u1EEB \u0111\u01A1n gi\u1EA3n\r\n Nh\u01B0ng n\u1EBFu ph\u1EA7n top \u0111\u01B0\u1EE3c customize, ta ph\u1EA3i s\u1EED d\u1EE5ng extraManualOffset\r\n -->\r\n <core-composition [coreCompositionInstanceNumber]=\"corePageListInstanceNumber\" [top]=\"topPlace\"\r\n [left]=\"!!hideLeft? undefined :left\" [main]=\"coreTable\" [height]=\"compositionHeight\">\r\n </core-composition>\r\n\r\n <router-outlet name=\"corePageListAux\"></router-outlet>\r\n\r\n @if (!disableFilterHub && showFilter && !!paramRows) {\r\n <core-filter-hub [paramRows]=\"paramRows\"></core-filter-hub>\r\n }\r\n\r\n</div>\r\n\r\n<ng-template #topPlace>\r\n\r\n @if (!tabMode) {\r\n @if (!!showParamKit) {\r\n <div>\r\n <core-common-param-kit [hiddenMode]=\"false\" [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" [statusOptions$]=\"statusOptions$\" [showOrgParam]=\"showOrgParam\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\" [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"></core-common-param-kit>\r\n </div>\r\n }\r\n\r\n } @else {\r\n <core-tabs [headers]=\"tabHeaders\" [contents]=\"[]\" [height]=\"45\" [headerLineHeight]=\"45\"\r\n (onHeaderClick)=\"onCoreTabsHeaderClick($event)\">\r\n </core-tabs>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"top\">\r\n </ng-container>\r\n\r\n</ng-template>\r\n\r\n<ng-template #coreTable>\r\n\r\n <div [class.opacity0]=\"!!!geometricDone\">\r\n\r\n <!--\r\n Khi \u0111\u00E3 t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao compositionHeight c\u1EE7a core-composition\r\n C\u1EA7n t\u00EDnh \u0111\u01B0\u1EE3c ch\u00EDnh x\u00E1c chi\u1EC1u cao coreTableHeight c\u1EE7a CoreTable\r\n N\u1EBFu ph\u1EA7n top c\u1EE7a composition c\u1ED1 \u0111\u1ECBnh (v\u00ED d\u1EE5 khi s\u1EED d\u1EE5ng CoreParamKit) th\u00EC ph\u00E9p tr\u1EEB \u0111\u01A1n gi\u1EA3n\r\n Nh\u01B0ng n\u1EBFu ph\u1EA7n top \u0111\u01B0\u1EE3c customize, ta ph\u1EA3i s\u1EED d\u1EE5ng extraManualOffset\r\n\r\n C\u1EA7n t\u00EDnh tableHeight nh\u01B0 th\u1EBF n\u00E0o?\r\n -->\r\n <core-table #coreTableAlone width=\"100%\" [height]=\"tableHeight\" [rowHeight]=\"rowHeight || '46px'\" [wrap]=\"wrap\"\r\n [primaryKey]=\"primaryKey\"\r\n [columns]=\"columns\" [data]=\"list\" [showCheckbox]=\"!!!hideCheck\" headerHeight=\"60px\"\r\n [showTools]=\"showListInlineTools\" [tools]=\"inlineTools\" (onToolClick)=\"onToolClick($event)\"\r\n (onRowClick)=\"onRowClick($event)\" (onRowDoubleClick)=\"onRowDoubleClick($event)\"\r\n (onSelectedIdsChange)=\"onSelectedIdsChange($event)\" (onSelectedDataChange)=\"onSelectedDataChange($event)\"\r\n [frozen]=\"frozen || 1\" (onSearching)=\"onSearching($event)\"\r\n (onColumnCaptionClick)=\"onColumnCaptionClick($event)\"\r\n [corePageListInstanceNumber]=\"corePageListInstanceNumber\" [loading]=\"loading\"\r\n [columnSearchDefaultOpen]=\"columnSearchDefaultOpen\" [lazyLoading]=\"true\" [headerWrap]=\"headerWrap\"\r\n [headerFirstRowHeight]=\"headerFirstRowHeight\" [noPaddingCell]=\"noPaddingCell\"\r\n [disableHighlightOnClick]=\"disableHighlightOnClick\" [primaryKey]=\"primaryKey\"\r\n [autoColumnFitAvailableSpace]=\"autoColumnFitAvailableSpace\"\r\n [checkboxExplicity]=\"checkboxExplicity\"\r\n ></core-table>\r\n\r\n <div class=\"d-flex d-flex-between pagination-wrapper w-100\" #paginationContainer>\r\n <core-pagination-full [height]=\"paginationHeight\" [currentPage$]=\"currentPage$\" [pageSize$]=\"pageSize$\"\r\n [pageCount]=\"pageCount\" [innerBodyCount$]=\"innerBodyCount$\" [pagination$]=\"pagination$\"\r\n [loading]=\"loading\" [fixedPageSize]=\"fixedPageSize\" [background]=\"'#848484'\"></core-pagination-full>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<core-api-progress *ngIf=\"longApiRunning\" (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n\r\n<app-fullscreen-modal-loader *ngIf=\"prefetchLoading\"></app-fullscreen-modal-loader>", styles: [".core-page-list-container{--height: auto;box-sizing:border-box!important;border:none!important;height:var(--height)}.core-page-list-container *{box-sizing:border-box}.core-page-list-container .column-caption{text-align:center}.core-page-list-container core-pagination-full{width:100%}.core-page-list-container .filter-kit-dropdown{top:120px;right:120px;position:fixed;box-shadow:0 1rem 3rem #0000002e}\n"] }]
12200
12202
  }], ctorParameters: () => [{ type: CorePageListService }, { type: CorePageListState }, { type: CorePageEditService }, { type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: MultiLanguageService }, { type: AlertService }, { type: AuthService }, { type: AppService }, { type: DialogService }, { type: RoutingService }, { type: LongTaskService }, { type: LayoutService }, { type: CoreCompositionService }, { type: CoreButtonGroupService }, { type: JsonService }, { type: WorkShiftDndService }, { type: DomService }, { type: FilterKitService }, { type: CoreFilterHubService }, { type: CoreTableService }], propDecorators: { normalMode: [{
12201
12203
  type: Input
12202
12204
  }], hideHeader: [{
@@ -21013,7 +21015,8 @@ class AtShiftPatternComponent extends BaseEditComponent {
21013
21015
  queryListRelativePath: '/api/AtShiftPattern/QueryList',
21014
21016
  };
21015
21017
  this.crud = {
21016
- deleteIds: '/api/AtShiftPattern/DeleteIds'
21018
+ deleteIds: '/api/AtShiftPattern/DeleteIds',
21019
+ toggleActiveIds: '/api/AtShiftPattern/ToggleActiveIds'
21017
21020
  };
21018
21021
  this.columns = [
21019
21022
  {
@@ -21023,6 +21026,13 @@ class AtShiftPatternComponent extends BaseEditComponent {
21023
21026
  type: 'number',
21024
21027
  align: 'center'
21025
21028
  },
21029
+ {
21030
+ caption: EnumTranslateKey.UI_COMMON_EMPTY_STRING,
21031
+ field: 'status',
21032
+ type: 'string',
21033
+ align: 'center',
21034
+ width: 120
21035
+ },
21026
21036
  {
21027
21037
  caption: 'UI_ENTITY_FIELD_CAPTION_AT_SHIFT_PATTERN_PATTERN_TYPE',
21028
21038
  field: 'patternType',
@@ -21083,6 +21093,10 @@ class AtShiftPatternComponent extends BaseEditComponent {
21083
21093
  }
21084
21094
  ngAfterViewInit() {
21085
21095
  setTimeout(() => {
21096
+ const tryFilter = this.columns.filter(x => x.field === 'status');
21097
+ if (!!tryFilter.length) {
21098
+ tryFilter[0].templateRef = this.sticker;
21099
+ }
21086
21100
  this.resolveSaveButton(true);
21087
21101
  this.subscriptions.push(this.rowClick$.pipe(filter(x => !!x), distinctUntilChanged()).subscribe(_ => {
21088
21102
  this.loadItem();
@@ -21147,19 +21161,23 @@ class AtShiftPatternComponent extends BaseEditComponent {
21147
21161
  this.atShiftPatternService.activePattern$.next(undefined);
21148
21162
  }
21149
21163
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: AtShiftPatternComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: AtShiftPatternComponent, isStandalone: true, selector: "core-at-shift-pattern", usesInheritance: true, ngImport: i0, template: "<div class=\"core-at-shift-pattern-container\">\r\n\r\n <!-- <core-page-header [title]=\"title\" (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header> -->\r\n\r\n <div class=\"d-flex d-flex-between content-wrapper\">\r\n <div class=\"list-block\">\r\n <core-page-list [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [autoResizeWithWindow]=\"true\" [checkboxExplicity]=\"true\"\r\n (listChange)=\"onListChange($event)\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\" (rowClick)=\"rowClick($event)\"></core-page-list>\r\n </div>\r\n\r\n @if (!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"anim-block\">\r\n <div class=\"alert is-success\">\r\n <p class=\"alert-title\"><span class=\"ti-light-bulb\" aria-hidden=\"true\"></span>\r\n @if (lang === 'vi') {\r\n G\u1EE2I \u00DD\r\n } @else {\r\n TIP\r\n }\r\n \r\n </p>\r\n\r\n <div>\r\n @if (lang === 'vi') {\r\n M\u1EABu x\u1EBFp ca l\u00E0 c\u00F4ng c\u1EE5 tr\u1EF1c quan v\u00E0 ti\u1EC7n l\u1EE3i gi\u00FAp ph\u00F2ng nh\u00E2n s\u1EF1 (HR) qu\u1EA3n l\u00FD v\u00E0 b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c\r\n cho nh\u00E2n vi\u00EAn m\u1ED9t c\u00E1ch hi\u1EC7u qu\u1EA3. M\u00E0n h\u00ECnh n\u00E0y \u0111\u01B0\u1EE3c thi\u1EBFt k\u1EBF \u0111\u1EC3 \u0111\u00E1p \u1EE9ng nhu c\u1EA7u l\u1EADp k\u1EBF ho\u1EA1ch c\u00F4ng\r\n vi\u1EC7c h\u00E0ng ng\u00E0y, h\u00E0ng tu\u1EA7n ho\u1EB7c theo chu k\u1EF3 c\u1EE5 th\u1EC3, \u0111\u1EA3m b\u1EA3o t\u00EDnh linh ho\u1EA1t v\u00E0 s\u1EF1 d\u1EC5 d\u00E0ng trong qu\u1EA3n\r\n l\u00FD.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo m\u1EABu tu\u1EA7n (WEEK)</b>:\r\n Cho ph\u00E9p HR b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c d\u1EF1a tr\u00EAn c\u00E1c th\u1EE9 trong tu\u1EA7n, v\u00ED d\u1EE5: th\u1EE9 Hai, th\u1EE9 Ba, v.v. Ph\u00F9 h\u1EE3p\r\n cho\r\n nh\u1EEFng chu k\u1EF3 l\u00E0m vi\u1EC7c l\u1EB7p l\u1EA1i \u0111\u1ECBnh k\u1EF3 (v\u00ED d\u1EE5: l\u1ECBch l\u00E0m vi\u1EC7c tu\u1EA7n).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo chu\u1ED7i ng\u00E0y (DAYS)</b>:\r\n D\u00E0nh cho c\u00E1c tr\u01B0\u1EDDng h\u1EE3p x\u1EBFp ca kh\u00F4ng c\u1ED1 \u0111\u1ECBnh theo th\u1EE9 trong tu\u1EA7n m\u00E0 d\u1EF1a tr\u00EAn m\u1ED9t chu\u1ED7i ng\u00E0y li\u00EAn\r\n t\u1EE5c. HR c\u00F3 th\u1EC3 ch\u1EC9 \u0111\u1ECBnh b\u1EAFt \u0111\u1EA7u t\u1EEB ng\u00E0y b\u1EA5t k\u1EF3 v\u00E0 thi\u1EBFt l\u1EADp c\u00E1c ca l\u00E0m vi\u1EC7c t\u01B0\u01A1ng \u1EE9ng.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n \u1EA4n F1 \u0111\u1EC3 c\u00F3 th\u00EAm chi ti\u1EBFt\r\n </div>\r\n } @else {\r\n Shift Scheduling Template is an intuitive and convenient tool to help HR departments effectively\r\n manage\r\n and assign work shifts for employees. This screen is designed to meet the needs of daily, weekly, or\r\n specific cycle-based work planning, ensuring flexibility and ease of management.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by weekly pattern (WEEK)</b>:\r\n Allows HR to assign work shifts based on days of the week, e.g., Monday, Tuesday, etc. This is\r\n suitable for recurring work cycles (e.g., weekly schedules).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by sequence of days (DAYS)</b>:\r\n Designed for cases where shifts are assigned based on a continuous sequence of days rather than\r\n specific days of the week. HR can specify any start date and set up corresponding work shifts.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n Press F1 for more details\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"detail-block\">\r\n <div class=\"details-wrapper\">\r\n <div class=\"details-title\">\r\n \u2728 {{ (atShiftPatternService.activePattern$ | async)?.code }}\r\n </div>\r\n <core-at-shift-pattern-detail\r\n [data$]=\"atShiftPatternService.activePattern$\" (onCellChange)=\"onCellChange($event)\"></core-at-shift-pattern-detail>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n\r\n @if (!!loading) {\r\n <app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n }\r\n\r\n</div>", styles: [".core-at-shift-pattern-container .list-block{width:50vw}.core-at-shift-pattern-container .anim-container{height:calc(100vh - 60px);display:flex;align-items:flex-start;justify-content:flex-end}.core-at-shift-pattern-container .anim-block,.core-at-shift-pattern-container .detail-block{margin-left:15px;padding-top:50px;display:flex}.core-at-shift-pattern-container .anim-block{width:100%;flex-direction:column;align-items:center;justify-content:space-around}.core-at-shift-pattern-container .detail-block{width:100%;align-items:flex-start;justify-content:center}.core-at-shift-pattern-container .details-wrapper{background-color:bisque;padding:0 15px 15px;width:100%;overflow-x:scroll}.core-at-shift-pattern-container .details-wrapper .details-title{height:40px;display:flex;align-items:center;justify-content:flex-start;font-weight:700}.core-at-shift-pattern-container .details-wrapper .col-md-4{min-width:280px}.core-at-shift-pattern-container .content-wrapper{align-items:flex-start}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "useTheseColumns", "hideOrgTree", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub", "autoColumnFitAvailableSpace", "ignoredDefaultActions", "checkboxExplicity"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }, { kind: "component", type: AtShiftPatternDetailComponent, selector: "core-at-shift-pattern-detail", inputs: ["data$"], outputs: ["onCellChange"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }] }); }
21164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: AtShiftPatternComponent, isStandalone: true, selector: "core-at-shift-pattern", viewQueries: [{ propertyName: "sticker", first: true, predicate: ["sticker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"core-at-shift-pattern-container\">\r\n\r\n <!-- <core-page-header [title]=\"title\" (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header> -->\r\n\r\n <div class=\"d-flex d-flex-between content-wrapper\">\r\n <div class=\"list-block\">\r\n <core-page-list [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [autoResizeWithWindow]=\"true\" [checkboxExplicity]=\"true\"\r\n (listChange)=\"onListChange($event)\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\" (rowClick)=\"rowClick($event)\"></core-page-list>\r\n </div>\r\n\r\n @if (!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"anim-block\">\r\n <div class=\"alert is-success\">\r\n <p class=\"alert-title\"><span class=\"ti-light-bulb\" aria-hidden=\"true\"></span>\r\n @if (lang === 'vi') {\r\n G\u1EE2I \u00DD\r\n } @else {\r\n TIP\r\n }\r\n \r\n </p>\r\n\r\n <div>\r\n @if (lang === 'vi') {\r\n M\u1EABu x\u1EBFp ca l\u00E0 c\u00F4ng c\u1EE5 tr\u1EF1c quan v\u00E0 ti\u1EC7n l\u1EE3i gi\u00FAp ph\u00F2ng nh\u00E2n s\u1EF1 (HR) qu\u1EA3n l\u00FD v\u00E0 b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c\r\n cho nh\u00E2n vi\u00EAn m\u1ED9t c\u00E1ch hi\u1EC7u qu\u1EA3. M\u00E0n h\u00ECnh n\u00E0y \u0111\u01B0\u1EE3c thi\u1EBFt k\u1EBF \u0111\u1EC3 \u0111\u00E1p \u1EE9ng nhu c\u1EA7u l\u1EADp k\u1EBF ho\u1EA1ch c\u00F4ng\r\n vi\u1EC7c h\u00E0ng ng\u00E0y, h\u00E0ng tu\u1EA7n ho\u1EB7c theo chu k\u1EF3 c\u1EE5 th\u1EC3, \u0111\u1EA3m b\u1EA3o t\u00EDnh linh ho\u1EA1t v\u00E0 s\u1EF1 d\u1EC5 d\u00E0ng trong qu\u1EA3n\r\n l\u00FD.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo m\u1EABu tu\u1EA7n (WEEK)</b>:\r\n Cho ph\u00E9p HR b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c d\u1EF1a tr\u00EAn c\u00E1c th\u1EE9 trong tu\u1EA7n, v\u00ED d\u1EE5: th\u1EE9 Hai, th\u1EE9 Ba, v.v. Ph\u00F9 h\u1EE3p\r\n cho\r\n nh\u1EEFng chu k\u1EF3 l\u00E0m vi\u1EC7c l\u1EB7p l\u1EA1i \u0111\u1ECBnh k\u1EF3 (v\u00ED d\u1EE5: l\u1ECBch l\u00E0m vi\u1EC7c tu\u1EA7n).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo chu\u1ED7i ng\u00E0y (DAYS)</b>:\r\n D\u00E0nh cho c\u00E1c tr\u01B0\u1EDDng h\u1EE3p x\u1EBFp ca kh\u00F4ng c\u1ED1 \u0111\u1ECBnh theo th\u1EE9 trong tu\u1EA7n m\u00E0 d\u1EF1a tr\u00EAn m\u1ED9t chu\u1ED7i ng\u00E0y li\u00EAn\r\n t\u1EE5c. HR c\u00F3 th\u1EC3 ch\u1EC9 \u0111\u1ECBnh b\u1EAFt \u0111\u1EA7u t\u1EEB ng\u00E0y b\u1EA5t k\u1EF3 v\u00E0 thi\u1EBFt l\u1EADp c\u00E1c ca l\u00E0m vi\u1EC7c t\u01B0\u01A1ng \u1EE9ng.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n \u1EA4n F1 \u0111\u1EC3 c\u00F3 th\u00EAm chi ti\u1EBFt\r\n </div>\r\n } @else {\r\n Shift Scheduling Template is an intuitive and convenient tool to help HR departments effectively\r\n manage\r\n and assign work shifts for employees. This screen is designed to meet the needs of daily, weekly, or\r\n specific cycle-based work planning, ensuring flexibility and ease of management.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by weekly pattern (WEEK)</b>:\r\n Allows HR to assign work shifts based on days of the week, e.g., Monday, Tuesday, etc. This is\r\n suitable for recurring work cycles (e.g., weekly schedules).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by sequence of days (DAYS)</b>:\r\n Designed for cases where shifts are assigned based on a continuous sequence of days rather than\r\n specific days of the week. HR can specify any start date and set up corresponding work shifts.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n Press F1 for more details\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"detail-block\">\r\n <div class=\"details-wrapper\">\r\n <div class=\"details-title\">\r\n \u2728 {{ (atShiftPatternService.activePattern$ | async)?.code }}\r\n </div>\r\n <core-at-shift-pattern-detail\r\n [data$]=\"atShiftPatternService.activePattern$\" (onCellChange)=\"onCellChange($event)\"></core-at-shift-pattern-detail>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n\r\n @if (!!loading) {\r\n <app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n }\r\n\r\n <ng-template #sticker let-code=\"context.status\">\r\n <core-status-sticker [code]=\"code\" [isTrueCode]=\"true\"></core-status-sticker>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-at-shift-pattern-container .list-block{width:50vw}.core-at-shift-pattern-container .anim-container{height:calc(100vh - 60px);display:flex;align-items:flex-start;justify-content:flex-end}.core-at-shift-pattern-container .anim-block,.core-at-shift-pattern-container .detail-block{margin-left:15px;padding-top:50px;display:flex}.core-at-shift-pattern-container .anim-block{width:100%;flex-direction:column;align-items:center;justify-content:space-around}.core-at-shift-pattern-container .detail-block{width:100%;align-items:flex-start;justify-content:center}.core-at-shift-pattern-container .details-wrapper{background-color:bisque;padding:0 15px 15px;width:100%;overflow-x:scroll}.core-at-shift-pattern-container .details-wrapper .details-title{height:40px;display:flex;align-items:center;justify-content:flex-start;font-weight:700}.core-at-shift-pattern-container .details-wrapper .col-md-4{min-width:280px}.core-at-shift-pattern-container .content-wrapper{align-items:flex-start}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: CoreStatusStickerComponent, selector: "core-status-sticker", inputs: ["code", "caption", "width", "isTrueCode"] }, { kind: "component", type: CorePageListComponent, selector: "core-page-list", inputs: ["normalMode", "hideHeader", "hideButtonGroup", "seekerMode", "mccMode", "height", "headerWrap", "headerFirstRowHeight", "enableTimeZoneConverterForDateTimePeriodParameters", "showParamKit", "enableFilterKit", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "statusOptions$", "showOrgParam", "showOrgParamDropdown", "hideGeneralSearch", "hideDatePeriodComparison", "hideStatusInclusion", "filterOperators$", "camelCaseDtoStatusIdField", "gridStatusColumn", "title", "hasIdOfStringType", "hideCheck", "apiDefinition", "columns", "useTheseColumns", "hideOrgTree", "frozen", "inlineTools", "inlineToolItems", "editRoute", "crud", "showListInlineTools", "top", "left", "hideLeft", "outerParam$", "outerFilter$", "outerSort", "outerFilterOperators", "outerInOperators", "autoResizeWithWindow", "extraManualOffset", "wrap", "rowHeight", "selfResolveCorePageHeaderButtonClick", "clearData$", "deleteValidateFn", "generateTemplateRequest", "importPreviewPath", "columnSearchDefaultOpen", "fixedPageSize", "disableDoubleClick", "noPaddingCell", "disableHighlightOnClick", "loading$", "excludedIds$", "disableDialogInformationLines", "changeTracking", "primaryKey", "changedItems$", "tabMode", "paramRows", "disableFilterHub", "autoColumnFitAvailableSpace", "ignoredDefaultActions", "checkboxExplicity"], outputs: ["corePageHeaderButtonClick", "rowClick", "rowDoubleClick", "selectedIdsChange", "selectedDataChange", "onInstanceCreated", "onInputFileBase64DataReady", "listChange"] }, { kind: "component", type: AtShiftPatternDetailComponent, selector: "core-at-shift-pattern-detail", inputs: ["data$"], outputs: ["onCellChange"] }, { kind: "component", type: FullscreenModalLoaderComponent, selector: "app-fullscreen-modal-loader", inputs: ["content"] }] }); }
21151
21165
  }
21152
21166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: AtShiftPatternComponent, decorators: [{
21153
21167
  type: Component,
21154
21168
  args: [{ selector: 'core-at-shift-pattern', imports: [
21155
21169
  AsyncPipe,
21170
+ CoreStatusStickerComponent,
21156
21171
  CorePageHeaderComponent,
21157
21172
  CorePageListComponent,
21158
21173
  AtShiftPatternEditComponent,
21159
21174
  AtShiftPatternDetailComponent,
21160
21175
  FullscreenModalLoaderComponent
21161
- ], template: "<div class=\"core-at-shift-pattern-container\">\r\n\r\n <!-- <core-page-header [title]=\"title\" (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header> -->\r\n\r\n <div class=\"d-flex d-flex-between content-wrapper\">\r\n <div class=\"list-block\">\r\n <core-page-list [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [autoResizeWithWindow]=\"true\" [checkboxExplicity]=\"true\"\r\n (listChange)=\"onListChange($event)\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\" (rowClick)=\"rowClick($event)\"></core-page-list>\r\n </div>\r\n\r\n @if (!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"anim-block\">\r\n <div class=\"alert is-success\">\r\n <p class=\"alert-title\"><span class=\"ti-light-bulb\" aria-hidden=\"true\"></span>\r\n @if (lang === 'vi') {\r\n G\u1EE2I \u00DD\r\n } @else {\r\n TIP\r\n }\r\n \r\n </p>\r\n\r\n <div>\r\n @if (lang === 'vi') {\r\n M\u1EABu x\u1EBFp ca l\u00E0 c\u00F4ng c\u1EE5 tr\u1EF1c quan v\u00E0 ti\u1EC7n l\u1EE3i gi\u00FAp ph\u00F2ng nh\u00E2n s\u1EF1 (HR) qu\u1EA3n l\u00FD v\u00E0 b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c\r\n cho nh\u00E2n vi\u00EAn m\u1ED9t c\u00E1ch hi\u1EC7u qu\u1EA3. M\u00E0n h\u00ECnh n\u00E0y \u0111\u01B0\u1EE3c thi\u1EBFt k\u1EBF \u0111\u1EC3 \u0111\u00E1p \u1EE9ng nhu c\u1EA7u l\u1EADp k\u1EBF ho\u1EA1ch c\u00F4ng\r\n vi\u1EC7c h\u00E0ng ng\u00E0y, h\u00E0ng tu\u1EA7n ho\u1EB7c theo chu k\u1EF3 c\u1EE5 th\u1EC3, \u0111\u1EA3m b\u1EA3o t\u00EDnh linh ho\u1EA1t v\u00E0 s\u1EF1 d\u1EC5 d\u00E0ng trong qu\u1EA3n\r\n l\u00FD.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo m\u1EABu tu\u1EA7n (WEEK)</b>:\r\n Cho ph\u00E9p HR b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c d\u1EF1a tr\u00EAn c\u00E1c th\u1EE9 trong tu\u1EA7n, v\u00ED d\u1EE5: th\u1EE9 Hai, th\u1EE9 Ba, v.v. Ph\u00F9 h\u1EE3p\r\n cho\r\n nh\u1EEFng chu k\u1EF3 l\u00E0m vi\u1EC7c l\u1EB7p l\u1EA1i \u0111\u1ECBnh k\u1EF3 (v\u00ED d\u1EE5: l\u1ECBch l\u00E0m vi\u1EC7c tu\u1EA7n).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo chu\u1ED7i ng\u00E0y (DAYS)</b>:\r\n D\u00E0nh cho c\u00E1c tr\u01B0\u1EDDng h\u1EE3p x\u1EBFp ca kh\u00F4ng c\u1ED1 \u0111\u1ECBnh theo th\u1EE9 trong tu\u1EA7n m\u00E0 d\u1EF1a tr\u00EAn m\u1ED9t chu\u1ED7i ng\u00E0y li\u00EAn\r\n t\u1EE5c. HR c\u00F3 th\u1EC3 ch\u1EC9 \u0111\u1ECBnh b\u1EAFt \u0111\u1EA7u t\u1EEB ng\u00E0y b\u1EA5t k\u1EF3 v\u00E0 thi\u1EBFt l\u1EADp c\u00E1c ca l\u00E0m vi\u1EC7c t\u01B0\u01A1ng \u1EE9ng.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n \u1EA4n F1 \u0111\u1EC3 c\u00F3 th\u00EAm chi ti\u1EBFt\r\n </div>\r\n } @else {\r\n Shift Scheduling Template is an intuitive and convenient tool to help HR departments effectively\r\n manage\r\n and assign work shifts for employees. This screen is designed to meet the needs of daily, weekly, or\r\n specific cycle-based work planning, ensuring flexibility and ease of management.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by weekly pattern (WEEK)</b>:\r\n Allows HR to assign work shifts based on days of the week, e.g., Monday, Tuesday, etc. This is\r\n suitable for recurring work cycles (e.g., weekly schedules).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by sequence of days (DAYS)</b>:\r\n Designed for cases where shifts are assigned based on a continuous sequence of days rather than\r\n specific days of the week. HR can specify any start date and set up corresponding work shifts.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n Press F1 for more details\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"detail-block\">\r\n <div class=\"details-wrapper\">\r\n <div class=\"details-title\">\r\n \u2728 {{ (atShiftPatternService.activePattern$ | async)?.code }}\r\n </div>\r\n <core-at-shift-pattern-detail\r\n [data$]=\"atShiftPatternService.activePattern$\" (onCellChange)=\"onCellChange($event)\"></core-at-shift-pattern-detail>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n\r\n @if (!!loading) {\r\n <app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n }\r\n\r\n</div>", styles: [".core-at-shift-pattern-container .list-block{width:50vw}.core-at-shift-pattern-container .anim-container{height:calc(100vh - 60px);display:flex;align-items:flex-start;justify-content:flex-end}.core-at-shift-pattern-container .anim-block,.core-at-shift-pattern-container .detail-block{margin-left:15px;padding-top:50px;display:flex}.core-at-shift-pattern-container .anim-block{width:100%;flex-direction:column;align-items:center;justify-content:space-around}.core-at-shift-pattern-container .detail-block{width:100%;align-items:flex-start;justify-content:center}.core-at-shift-pattern-container .details-wrapper{background-color:bisque;padding:0 15px 15px;width:100%;overflow-x:scroll}.core-at-shift-pattern-container .details-wrapper .details-title{height:40px;display:flex;align-items:center;justify-content:flex-start;font-weight:700}.core-at-shift-pattern-container .details-wrapper .col-md-4{min-width:280px}.core-at-shift-pattern-container .content-wrapper{align-items:flex-start}\n"] }]
21162
- }] });
21176
+ ], template: "<div class=\"core-at-shift-pattern-container\">\r\n\r\n <!-- <core-page-header [title]=\"title\" (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header> -->\r\n\r\n <div class=\"d-flex d-flex-between content-wrapper\">\r\n <div class=\"list-block\">\r\n <core-page-list [apiDefinition]=\"apiDefinition\" [columns]=\"columns\" [editRoute]=\"editRoute\" [crud]=\"crud\"\r\n [title]=\"title\" [autoResizeWithWindow]=\"true\" [checkboxExplicity]=\"true\"\r\n (listChange)=\"onListChange($event)\"\r\n (corePageHeaderButtonClick)=\"onCorePageHeaderButtonClick($event)\"\r\n (onInstanceCreated)=\"onInstanceCreated($event)\" (rowClick)=\"rowClick($event)\"></core-page-list>\r\n </div>\r\n\r\n @if (!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"anim-block\">\r\n <div class=\"alert is-success\">\r\n <p class=\"alert-title\"><span class=\"ti-light-bulb\" aria-hidden=\"true\"></span>\r\n @if (lang === 'vi') {\r\n G\u1EE2I \u00DD\r\n } @else {\r\n TIP\r\n }\r\n \r\n </p>\r\n\r\n <div>\r\n @if (lang === 'vi') {\r\n M\u1EABu x\u1EBFp ca l\u00E0 c\u00F4ng c\u1EE5 tr\u1EF1c quan v\u00E0 ti\u1EC7n l\u1EE3i gi\u00FAp ph\u00F2ng nh\u00E2n s\u1EF1 (HR) qu\u1EA3n l\u00FD v\u00E0 b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c\r\n cho nh\u00E2n vi\u00EAn m\u1ED9t c\u00E1ch hi\u1EC7u qu\u1EA3. M\u00E0n h\u00ECnh n\u00E0y \u0111\u01B0\u1EE3c thi\u1EBFt k\u1EBF \u0111\u1EC3 \u0111\u00E1p \u1EE9ng nhu c\u1EA7u l\u1EADp k\u1EBF ho\u1EA1ch c\u00F4ng\r\n vi\u1EC7c h\u00E0ng ng\u00E0y, h\u00E0ng tu\u1EA7n ho\u1EB7c theo chu k\u1EF3 c\u1EE5 th\u1EC3, \u0111\u1EA3m b\u1EA3o t\u00EDnh linh ho\u1EA1t v\u00E0 s\u1EF1 d\u1EC5 d\u00E0ng trong qu\u1EA3n\r\n l\u00FD.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo m\u1EABu tu\u1EA7n (WEEK)</b>:\r\n Cho ph\u00E9p HR b\u1ED1 tr\u00ED ca l\u00E0m vi\u1EC7c d\u1EF1a tr\u00EAn c\u00E1c th\u1EE9 trong tu\u1EA7n, v\u00ED d\u1EE5: th\u1EE9 Hai, th\u1EE9 Ba, v.v. Ph\u00F9 h\u1EE3p\r\n cho\r\n nh\u1EEFng chu k\u1EF3 l\u00E0m vi\u1EC7c l\u1EB7p l\u1EA1i \u0111\u1ECBnh k\u1EF3 (v\u00ED d\u1EE5: l\u1ECBch l\u00E0m vi\u1EC7c tu\u1EA7n).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>X\u1EBFp ca theo chu\u1ED7i ng\u00E0y (DAYS)</b>:\r\n D\u00E0nh cho c\u00E1c tr\u01B0\u1EDDng h\u1EE3p x\u1EBFp ca kh\u00F4ng c\u1ED1 \u0111\u1ECBnh theo th\u1EE9 trong tu\u1EA7n m\u00E0 d\u1EF1a tr\u00EAn m\u1ED9t chu\u1ED7i ng\u00E0y li\u00EAn\r\n t\u1EE5c. HR c\u00F3 th\u1EC3 ch\u1EC9 \u0111\u1ECBnh b\u1EAFt \u0111\u1EA7u t\u1EEB ng\u00E0y b\u1EA5t k\u1EF3 v\u00E0 thi\u1EBFt l\u1EADp c\u00E1c ca l\u00E0m vi\u1EC7c t\u01B0\u01A1ng \u1EE9ng.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n \u1EA4n F1 \u0111\u1EC3 c\u00F3 th\u00EAm chi ti\u1EBFt\r\n </div>\r\n } @else {\r\n Shift Scheduling Template is an intuitive and convenient tool to help HR departments effectively\r\n manage\r\n and assign work shifts for employees. This screen is designed to meet the needs of daily, weekly, or\r\n specific cycle-based work planning, ensuring flexibility and ease of management.\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by weekly pattern (WEEK)</b>:\r\n Allows HR to assign work shifts based on days of the week, e.g., Monday, Tuesday, etc. This is\r\n suitable for recurring work cycles (e.g., weekly schedules).\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n <b style='color: gray;'>Schedule shifts by sequence of days (DAYS)</b>:\r\n Designed for cases where shifts are assigned based on a continuous sequence of days rather than\r\n specific days of the week. HR can specify any start date and set up corresponding work shifts.\r\n </div>\r\n\r\n <p></p>\r\n <div class=\"square-before\">\r\n Press F1 for more details\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n </div>\r\n }\r\n\r\n @if (!!(atShiftPatternService.activePattern$ | async)) {\r\n <div class=\"detail-block\">\r\n <div class=\"details-wrapper\">\r\n <div class=\"details-title\">\r\n \u2728 {{ (atShiftPatternService.activePattern$ | async)?.code }}\r\n </div>\r\n <core-at-shift-pattern-detail\r\n [data$]=\"atShiftPatternService.activePattern$\" (onCellChange)=\"onCellChange($event)\"></core-at-shift-pattern-detail>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n\r\n @if (!!loading) {\r\n <app-fullscreen-modal-loader></app-fullscreen-modal-loader>\r\n }\r\n\r\n <ng-template #sticker let-code=\"context.status\">\r\n <core-status-sticker [code]=\"code\" [isTrueCode]=\"true\"></core-status-sticker>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-at-shift-pattern-container .list-block{width:50vw}.core-at-shift-pattern-container .anim-container{height:calc(100vh - 60px);display:flex;align-items:flex-start;justify-content:flex-end}.core-at-shift-pattern-container .anim-block,.core-at-shift-pattern-container .detail-block{margin-left:15px;padding-top:50px;display:flex}.core-at-shift-pattern-container .anim-block{width:100%;flex-direction:column;align-items:center;justify-content:space-around}.core-at-shift-pattern-container .detail-block{width:100%;align-items:flex-start;justify-content:center}.core-at-shift-pattern-container .details-wrapper{background-color:bisque;padding:0 15px 15px;width:100%;overflow-x:scroll}.core-at-shift-pattern-container .details-wrapper .details-title{height:40px;display:flex;align-items:center;justify-content:flex-start;font-weight:700}.core-at-shift-pattern-container .details-wrapper .col-md-4{min-width:280px}.core-at-shift-pattern-container .content-wrapper{align-items:flex-start}\n"] }]
21177
+ }], propDecorators: { sticker: [{
21178
+ type: ViewChild,
21179
+ args: ['sticker']
21180
+ }] } });
21163
21181
 
21164
21182
  class ShiftPatternDndService {
21165
21183
  constructor() {
@@ -21556,7 +21574,6 @@ class AtShiftPatternApplyComponent {
21556
21574
  }
21557
21575
  setupDndSubscriptions() {
21558
21576
  const containerElement = this.dropzone?.nativeElement;
21559
- // containerElement.style.setProperty('--background-color', 'lightgrey');
21560
21577
  const dragenterEvent = fromEvent(containerElement, 'dragenter');
21561
21578
  const dragoverEvent = fromEvent(containerElement, 'dragover');
21562
21579
  const dropEvent = fromEvent(containerElement, 'drop');
@@ -21567,6 +21584,7 @@ class AtShiftPatternApplyComponent {
21567
21584
  if (this.dndService.dragType !== EnumDragType.SHIFT_PATTERN)
21568
21585
  return;
21569
21586
  this.isDraggingOverContainer = true;
21587
+ this.dropzoneInsider?.nativeElement?.style.setProperty('display', 'none');
21570
21588
  this.cleanUpSubsequentSubscriptions();
21571
21589
  this.dragOverElements.add(ev.target);
21572
21590
  containerElement.classList.add('valid-drop');
@@ -21582,10 +21600,10 @@ class AtShiftPatternApplyComponent {
21582
21600
  this.isDraggingOverContainer = false;
21583
21601
  containerElement.classList.remove('valid-drop');
21584
21602
  this.dropzone?.nativeElement.style.setProperty('background-color', 'lightgrey');
21603
+ this.dropzoneInsider?.nativeElement?.style.setProperty('display', 'block');
21585
21604
  const data = ev.dataTransfer?.getData('text/plain'); // Example data retrieval
21586
21605
  // Handle drop logic based on data
21587
21606
  if (data) {
21588
- //alert(this.shiftPatternDndService.draggingPattern$.value?.code)
21589
21607
  this.makePreviewData();
21590
21608
  }
21591
21609
  });
@@ -21601,6 +21619,7 @@ class AtShiftPatternApplyComponent {
21601
21619
  containerElement.classList.remove('valid-drop');
21602
21620
  }
21603
21621
  }
21622
+ this.dropzoneInsider?.nativeElement?.style.setProperty('display', 'block');
21604
21623
  if (this.dragOverElements.size === 0) {
21605
21624
  containerElement.classList.remove('valid-drop');
21606
21625
  }
@@ -21929,12 +21948,13 @@ class AtShiftPatternApplyComponent {
21929
21948
  this.subscriptions.map(x => x?.unsubscribe());
21930
21949
  }
21931
21950
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: AtShiftPatternApplyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21932
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: AtShiftPatternApplyComponent, isStandalone: true, selector: "core-at-shift-pattern-apply", viewQueries: [{ propertyName: "dropzone", first: true, predicate: ["dropzone"], descendants: true }], ngImport: i0, template: "<div class=\"core-at-shift-pattern-apply-container\">\r\n <core-page-header [title]=\"'UI_COMPONENT_TITLE_AT_SHIFT_PATTERN_APPLY'\" (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header>\r\n <div class=\"patterns_condition-n-preview\">\r\n <div class=\"collection-wrapper\">\r\n <core-at-pattern-collection [relativeMode]=\"true\"\r\n [height]=\"patternCollectionHeight\"></core-at-pattern-collection>\r\n </div>\r\n <div class=\"orgtree-wrapper\">\r\n <core-org-tree [(ngModel)]=\"orgIds\"></core-org-tree>\r\n </div>\r\n <div class=\"condition-n-preview fs13\">\r\n\r\n <div class=\"condition\">\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w200 mr15\">\r\n <label>K\u1EF3 c\u00F4ng</label>\r\n <div class=\"form-group vertical\">\r\n <core-month-selector [(ngModel)]=\"currentMonth\"\r\n (ngModelChange)=\"onCurrentMonthChange($event)\"></core-month-selector>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"startDate\" [rangeLimit]=\"dateRangeLimit\" (ngModelChange)=\"onStartDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"endDate\" [rangeLimit]=\"dateRangeLimit\" (ngModelChange)=\"onEndDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w250 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label>\u0110\u1ED1i t\u01B0\u1EE3ng nh\u00E2n vi\u00EAn</label>\r\n <core-checklist [paramMode]=\"true\" [(ngModel)]=\"empObjectIds\"\r\n [options$]=\"empObjOptions$\"></core-checklist>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y l\u1EC5'\" [(ngModel)]=\"ignoreHolidays\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w200 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y m\u1EABu tr\u1ED1ng'\" [(ngModel)]=\"ignoreEmptyCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'Ghi \u0111\u00E8 c\u00E1c ca ch\u1EC9nh tay'\" [(ngModel)]=\"overrideDaysContainingManuallyEditedCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"preview\">\r\n\r\n <div #dropzone id=\"dropzone\" [class.ready]=\"dropzoneReady\" [ngStyle]=\"{\r\n height: dropzoneHeight + 'px'\r\n }\">\r\n\r\n @if (!previewData || !previewData.length) {\r\n <div [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '100%',\r\n height: dropzoneHeight + 'px'\r\n }\">\r\n <h2 style=\"color: white;\">\r\n @if (lang === 'vi') {\r\n K\u00E9o th\u1EA3 m\u1EABu x\u1EBFp ca v\u00E0o \u0111\u00E2y...\r\n } @else {\r\n Drag and drop a pattern here...\r\n }\r\n \r\n </h2>\r\n </div>\r\n } @else {\r\n <div class=\"container mt60\">\r\n\r\n <div class=\"row gx-5 gy-5\">\r\n \r\n @for (dailyItem of previewData; track dailyItem.workingday) {\r\n <div [class]=\"colMdClass\">\r\n <div class=\"daily-item\">\r\n <div class=\"daily-item-header\" [class.saturday]=\"!!dailyItem?.isSaturday\" [class.sunday]=\"!!dailyItem?.isSunday\">\r\n <div class=\"workingday-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-calendar\"></i><span>{{ dailyItem.workingday | tableCell : 'DATE_LOCALIZED' : lang }}</span>\r\n </div>\r\n @if (!!dailyItem.holidayName) {\r\n <div class=\"holidayName-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-gift\"></i><span>{{ dailyItem.holidayName }}</span>\r\n </div>\r\n }\r\n </div>\r\n <core-shift-cell [ngModel]=\"dailyItem.shifts\" [$readOnly]=\"true\"></core-shift-cell>\r\n </div>\r\n </div>\r\n } \r\n \r\n </div>\r\n \r\n </div>\r\n \r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n @if (showStartOffset && !!activeAtShiftPattern && !!scopeStartDate && !!scopeEndDate) {\r\n <core-start-offset [pattern]=\"activeAtShiftPattern\" [scopeStartDate]=\"scopeStartDate\" [scopeEndDate]=\"scopeEndDate\" (onClose)=\"onCloseOffset($event)\"></core-start-offset>\r\n }\r\n\r\n @if (longApiRunning) {\r\n <core-api-progress (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n }\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".core-at-shift-pattern-apply-container .patterns_condition-n-preview{position:relative;vertical-align:top}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .collection-wrapper{display:block;position:absolute;left:0;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .orgtree-wrapper{display:block;position:absolute;left:240px;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{display:block;padding-left:555px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone{display:block;position:relative;width:100%;height:300px;overflow-y:auto}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item{background-color:#fff;margin:15px;width:258px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header{font-size:13px;padding:15px 15px 0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header i{margin-right:8px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.saturday{color:#07b7ee}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.sunday{color:#ef2b58}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone.ready{background-color:#d3d3d3}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{margin-left:15px}.core-at-shift-pattern-apply-container .w175{width:160px}.core-at-shift-pattern-apply-container .w180{width:180px}.core-at-shift-pattern-apply-container .w200{width:200px}.core-at-shift-pattern-apply-container .mt60{margin-top:60px}.core-at-shift-pattern-apply-container .fs13{font-size:13px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "readonly", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "component", type: CoreAtPatternCollectionComponent, selector: "core-at-pattern-collection", inputs: ["height", "relativeMode"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align"], outputs: ["onYearClick"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: StartOffsetComponent, selector: "core-start-offset", inputs: ["pattern", "scopeStartDate", "scopeEndDate"], outputs: ["onClose"] }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreApiProgressComponent, selector: "core-api-progress", outputs: ["onClose"] }] }); }
21951
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: AtShiftPatternApplyComponent, isStandalone: true, selector: "core-at-shift-pattern-apply", viewQueries: [{ propertyName: "dropzone", first: true, predicate: ["dropzone"], descendants: true }, { propertyName: "dropzoneInsider", first: true, predicate: ["dropzoneInsider"], descendants: true }], ngImport: i0, template: "<div class=\"core-at-shift-pattern-apply-container\">\r\n <core-page-header [title]=\"'UI_COMPONENT_TITLE_AT_SHIFT_PATTERN_APPLY'\"\r\n (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header>\r\n <div class=\"patterns_condition-n-preview\">\r\n <div class=\"collection-wrapper\">\r\n <core-at-pattern-collection [relativeMode]=\"true\"\r\n [height]=\"patternCollectionHeight\"></core-at-pattern-collection>\r\n </div>\r\n <div class=\"orgtree-wrapper\">\r\n <core-org-tree [(ngModel)]=\"orgIds\"></core-org-tree>\r\n </div>\r\n <div class=\"condition-n-preview fs13\">\r\n\r\n <div class=\"condition\">\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w200 mr15\">\r\n <label>K\u1EF3 c\u00F4ng</label>\r\n <div class=\"form-group vertical\">\r\n <core-month-selector [(ngModel)]=\"currentMonth\"\r\n (ngModelChange)=\"onCurrentMonthChange($event)\"></core-month-selector>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"startDate\" [rangeLimit]=\"dateRangeLimit\"\r\n (ngModelChange)=\"onStartDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"endDate\" [rangeLimit]=\"dateRangeLimit\"\r\n (ngModelChange)=\"onEndDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w250 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label>\u0110\u1ED1i t\u01B0\u1EE3ng nh\u00E2n vi\u00EAn</label>\r\n <core-checklist [paramMode]=\"true\" [(ngModel)]=\"empObjectIds\"\r\n [options$]=\"empObjOptions$\"></core-checklist>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y l\u1EC5'\" [(ngModel)]=\"ignoreHolidays\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w200 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y m\u1EABu tr\u1ED1ng'\"\r\n [(ngModel)]=\"ignoreEmptyCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'Ghi \u0111\u00E8 c\u00E1c ca ch\u1EC9nh tay'\"\r\n [(ngModel)]=\"overrideDaysContainingManuallyEditedCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"preview\">\r\n\r\n <div #dropzone id=\"dropzone\" [class.ready]=\"dropzoneReady\" [ngStyle]=\"{\r\n height: dropzoneHeight + 'px',\r\n padding: '15px',\r\n }\">\r\n\r\n @if ((shiftPatternDndService.draggingData$ | async) === '') {\r\n <div #dropzoneInsider>\r\n\r\n @if (!previewData || !previewData.length) {\r\n <div [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '100%',\r\n height: dropzoneHeight + 'px'\r\n }\">\r\n <h2 style=\"color: white;\">\r\n @if (lang === 'vi') {\r\n K\u00E9o th\u1EA3 m\u1EABu x\u1EBFp ca v\u00E0o \u0111\u00E2y...\r\n } @else {\r\n Drag and drop a pattern here...\r\n }\r\n \r\n </h2>\r\n </div>\r\n } @else {\r\n <div class=\"container mt60\">\r\n \r\n <div class=\"row gx-5 gy-5\">\r\n \r\n @for (dailyItem of previewData; track dailyItem.workingday) {\r\n \r\n <div [class]=\"colMdClass\">\r\n \r\n <div class=\"daily-item\">\r\n <div class=\"daily-item-header\" [class.saturday]=\"!!dailyItem?.isSaturday\"\r\n [class.sunday]=\"!!dailyItem?.isSunday\">\r\n <div class=\"workingday-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-calendar\"></i><span>{{ dailyItem.workingday |\r\n tableCell : 'DATE_LOCALIZED' : lang }}</span>\r\n </div>\r\n @if (!!dailyItem.holidayName) {\r\n <div class=\"holidayName-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-gift\"></i><span>{{ dailyItem.holidayName }}</span>\r\n </div>\r\n }\r\n </div>\r\n \r\n <core-shift-cell [ngModel]=\"dailyItem.shifts\"\r\n [$readOnly]=\"true\"></core-shift-cell>\r\n \r\n </div>\r\n </div>\r\n }\r\n \r\n </div>\r\n \r\n </div>\r\n }\r\n \r\n </div>\r\n \r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n @if (showStartOffset && !!activeAtShiftPattern && !!scopeStartDate && !!scopeEndDate) {\r\n <core-start-offset [pattern]=\"activeAtShiftPattern\" [scopeStartDate]=\"scopeStartDate\"\r\n [scopeEndDate]=\"scopeEndDate\" (onClose)=\"onCloseOffset($event)\"></core-start-offset>\r\n }\r\n\r\n @if (longApiRunning) {\r\n <core-api-progress (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n }\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".core-at-shift-pattern-apply-container .patterns_condition-n-preview{position:relative;vertical-align:top}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .collection-wrapper{display:block;position:absolute;left:0;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .orgtree-wrapper{display:block;position:absolute;left:240px;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{display:block;padding-left:555px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone{display:block;position:relative;width:100%;height:300px;overflow-y:auto}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item{background-color:#fff;margin:15px;width:258px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header{font-size:13px;padding:15px 15px 0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header i{margin-right:8px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.saturday{color:#07b7ee}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.sunday{color:#ef2b58}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone.ready{background-color:#d3d3d3}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{margin-left:15px}.core-at-shift-pattern-apply-container .w175{width:160px}.core-at-shift-pattern-apply-container .w180{width:180px}.core-at-shift-pattern-apply-container .w200{width:200px}.core-at-shift-pattern-apply-container .mt60{margin-top:60px}.core-at-shift-pattern-apply-container .fs13{font-size:13px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: ["enableTimeZoneConverter", "showPlaceholder", "popupWidth", "popupXPadding", "popupAlign", "rangeLimit", "readonly", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "component", type: CoreAtPatternCollectionComponent, selector: "core-at-pattern-collection", inputs: ["height", "relativeMode"] }, { kind: "component", type: CoreMonthSelectorComponent, selector: "core-month-selector", inputs: ["align"], outputs: ["onYearClick"] }, { kind: "component", type: CoreChecklistComponent, selector: "core-checklist", inputs: ["paramMode", "getByIdObject$", "shownFrom", "options$", "height", "placeholder", "loading", "readonly", "disabled"] }, { kind: "component", type: CoreShiftCellComponent, selector: "core-shift-cell", inputs: ["$readOnly", "$hideStarterPlusSign", "$hideStickersWhileDragover", "$backgroundColor"] }, { kind: "component", type: CoreOrgTreeComponent, selector: "core-org-tree", inputs: ["lineColor", "fullWidthMode", "accessorMode", "searchMode", "fullRendering", "height", "disabledLoopExpand", "showCheckInheritance", "excludedIds$", "stateIsolated$"], outputs: ["itemDoubleClick", "itemClick"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "component", type: StartOffsetComponent, selector: "core-start-offset", inputs: ["pattern", "scopeStartDate", "scopeEndDate"], outputs: ["onClose"] }, { kind: "pipe", type: TableCellPipe, name: "tableCell" }, { kind: "component", type: CoreApiProgressComponent, selector: "core-api-progress", outputs: ["onClose"] }] }); }
21933
21952
  }
21934
21953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: AtShiftPatternApplyComponent, decorators: [{
21935
21954
  type: Component,
21936
21955
  args: [{ selector: 'core-at-shift-pattern-apply', imports: [
21937
21956
  NgStyle,
21957
+ AsyncPipe,
21938
21958
  CoreDatePickerComponent,
21939
21959
  FormsModule,
21940
21960
  CorePageHeaderComponent,
@@ -21947,10 +21967,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
21947
21967
  StartOffsetComponent,
21948
21968
  TableCellPipe,
21949
21969
  CoreApiProgressComponent,
21950
- ], template: "<div class=\"core-at-shift-pattern-apply-container\">\r\n <core-page-header [title]=\"'UI_COMPONENT_TITLE_AT_SHIFT_PATTERN_APPLY'\" (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header>\r\n <div class=\"patterns_condition-n-preview\">\r\n <div class=\"collection-wrapper\">\r\n <core-at-pattern-collection [relativeMode]=\"true\"\r\n [height]=\"patternCollectionHeight\"></core-at-pattern-collection>\r\n </div>\r\n <div class=\"orgtree-wrapper\">\r\n <core-org-tree [(ngModel)]=\"orgIds\"></core-org-tree>\r\n </div>\r\n <div class=\"condition-n-preview fs13\">\r\n\r\n <div class=\"condition\">\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w200 mr15\">\r\n <label>K\u1EF3 c\u00F4ng</label>\r\n <div class=\"form-group vertical\">\r\n <core-month-selector [(ngModel)]=\"currentMonth\"\r\n (ngModelChange)=\"onCurrentMonthChange($event)\"></core-month-selector>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"startDate\" [rangeLimit]=\"dateRangeLimit\" (ngModelChange)=\"onStartDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"endDate\" [rangeLimit]=\"dateRangeLimit\" (ngModelChange)=\"onEndDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w250 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label>\u0110\u1ED1i t\u01B0\u1EE3ng nh\u00E2n vi\u00EAn</label>\r\n <core-checklist [paramMode]=\"true\" [(ngModel)]=\"empObjectIds\"\r\n [options$]=\"empObjOptions$\"></core-checklist>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y l\u1EC5'\" [(ngModel)]=\"ignoreHolidays\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w200 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y m\u1EABu tr\u1ED1ng'\" [(ngModel)]=\"ignoreEmptyCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'Ghi \u0111\u00E8 c\u00E1c ca ch\u1EC9nh tay'\" [(ngModel)]=\"overrideDaysContainingManuallyEditedCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"preview\">\r\n\r\n <div #dropzone id=\"dropzone\" [class.ready]=\"dropzoneReady\" [ngStyle]=\"{\r\n height: dropzoneHeight + 'px'\r\n }\">\r\n\r\n @if (!previewData || !previewData.length) {\r\n <div [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '100%',\r\n height: dropzoneHeight + 'px'\r\n }\">\r\n <h2 style=\"color: white;\">\r\n @if (lang === 'vi') {\r\n K\u00E9o th\u1EA3 m\u1EABu x\u1EBFp ca v\u00E0o \u0111\u00E2y...\r\n } @else {\r\n Drag and drop a pattern here...\r\n }\r\n \r\n </h2>\r\n </div>\r\n } @else {\r\n <div class=\"container mt60\">\r\n\r\n <div class=\"row gx-5 gy-5\">\r\n \r\n @for (dailyItem of previewData; track dailyItem.workingday) {\r\n <div [class]=\"colMdClass\">\r\n <div class=\"daily-item\">\r\n <div class=\"daily-item-header\" [class.saturday]=\"!!dailyItem?.isSaturday\" [class.sunday]=\"!!dailyItem?.isSunday\">\r\n <div class=\"workingday-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-calendar\"></i><span>{{ dailyItem.workingday | tableCell : 'DATE_LOCALIZED' : lang }}</span>\r\n </div>\r\n @if (!!dailyItem.holidayName) {\r\n <div class=\"holidayName-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-gift\"></i><span>{{ dailyItem.holidayName }}</span>\r\n </div>\r\n }\r\n </div>\r\n <core-shift-cell [ngModel]=\"dailyItem.shifts\" [$readOnly]=\"true\"></core-shift-cell>\r\n </div>\r\n </div>\r\n } \r\n \r\n </div>\r\n \r\n </div>\r\n \r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n @if (showStartOffset && !!activeAtShiftPattern && !!scopeStartDate && !!scopeEndDate) {\r\n <core-start-offset [pattern]=\"activeAtShiftPattern\" [scopeStartDate]=\"scopeStartDate\" [scopeEndDate]=\"scopeEndDate\" (onClose)=\"onCloseOffset($event)\"></core-start-offset>\r\n }\r\n\r\n @if (longApiRunning) {\r\n <core-api-progress (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n }\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".core-at-shift-pattern-apply-container .patterns_condition-n-preview{position:relative;vertical-align:top}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .collection-wrapper{display:block;position:absolute;left:0;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .orgtree-wrapper{display:block;position:absolute;left:240px;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{display:block;padding-left:555px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone{display:block;position:relative;width:100%;height:300px;overflow-y:auto}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item{background-color:#fff;margin:15px;width:258px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header{font-size:13px;padding:15px 15px 0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header i{margin-right:8px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.saturday{color:#07b7ee}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.sunday{color:#ef2b58}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone.ready{background-color:#d3d3d3}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{margin-left:15px}.core-at-shift-pattern-apply-container .w175{width:160px}.core-at-shift-pattern-apply-container .w180{width:180px}.core-at-shift-pattern-apply-container .w200{width:200px}.core-at-shift-pattern-apply-container .mt60{margin-top:60px}.core-at-shift-pattern-apply-container .fs13{font-size:13px}\n"] }]
21970
+ ], template: "<div class=\"core-at-shift-pattern-apply-container\">\r\n <core-page-header [title]=\"'UI_COMPONENT_TITLE_AT_SHIFT_PATTERN_APPLY'\"\r\n (buttonClick)=\"onCorePageHeaderButtonClick($event)\"></core-page-header>\r\n <div class=\"patterns_condition-n-preview\">\r\n <div class=\"collection-wrapper\">\r\n <core-at-pattern-collection [relativeMode]=\"true\"\r\n [height]=\"patternCollectionHeight\"></core-at-pattern-collection>\r\n </div>\r\n <div class=\"orgtree-wrapper\">\r\n <core-org-tree [(ngModel)]=\"orgIds\"></core-org-tree>\r\n </div>\r\n <div class=\"condition-n-preview fs13\">\r\n\r\n <div class=\"condition\">\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w200 mr15\">\r\n <label>K\u1EF3 c\u00F4ng</label>\r\n <div class=\"form-group vertical\">\r\n <core-month-selector [(ngModel)]=\"currentMonth\"\r\n (ngModelChange)=\"onCurrentMonthChange($event)\"></core-month-selector>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"startDate\" [rangeLimit]=\"dateRangeLimit\"\r\n (ngModelChange)=\"onStartDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w175 mr15\">\r\n <label></label>\r\n <div class=\"form-group vertical\">\r\n <core-date-picker [(ngModel)]=\"endDate\" [rangeLimit]=\"dateRangeLimit\"\r\n (ngModelChange)=\"onEndDateChange($event)\"></core-date-picker>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w250 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label>\u0110\u1ED1i t\u01B0\u1EE3ng nh\u00E2n vi\u00EAn</label>\r\n <core-checklist [paramMode]=\"true\" [(ngModel)]=\"empObjectIds\"\r\n [options$]=\"empObjOptions$\"></core-checklist>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex d-flex-start mb15 pd3\">\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y l\u1EC5'\" [(ngModel)]=\"ignoreHolidays\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w200 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'B\u1ECF qua ng\u00E0y m\u1EABu tr\u1ED1ng'\"\r\n [(ngModel)]=\"ignoreEmptyCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"param-wrapper w180 mr15\">\r\n <div class=\"form-group vertical\">\r\n <label></label>\r\n <core-checkbox [text]=\"'Ghi \u0111\u00E8 c\u00E1c ca ch\u1EC9nh tay'\"\r\n [(ngModel)]=\"overrideDaysContainingManuallyEditedCells\"></core-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"preview\">\r\n\r\n <div #dropzone id=\"dropzone\" [class.ready]=\"dropzoneReady\" [ngStyle]=\"{\r\n height: dropzoneHeight + 'px',\r\n padding: '15px',\r\n }\">\r\n\r\n @if ((shiftPatternDndService.draggingData$ | async) === '') {\r\n <div #dropzoneInsider>\r\n\r\n @if (!previewData || !previewData.length) {\r\n <div [ngStyle]=\"{\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '100%',\r\n height: dropzoneHeight + 'px'\r\n }\">\r\n <h2 style=\"color: white;\">\r\n @if (lang === 'vi') {\r\n K\u00E9o th\u1EA3 m\u1EABu x\u1EBFp ca v\u00E0o \u0111\u00E2y...\r\n } @else {\r\n Drag and drop a pattern here...\r\n }\r\n \r\n </h2>\r\n </div>\r\n } @else {\r\n <div class=\"container mt60\">\r\n \r\n <div class=\"row gx-5 gy-5\">\r\n \r\n @for (dailyItem of previewData; track dailyItem.workingday) {\r\n \r\n <div [class]=\"colMdClass\">\r\n \r\n <div class=\"daily-item\">\r\n <div class=\"daily-item-header\" [class.saturday]=\"!!dailyItem?.isSaturday\"\r\n [class.sunday]=\"!!dailyItem?.isSunday\">\r\n <div class=\"workingday-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-calendar\"></i><span>{{ dailyItem.workingday |\r\n tableCell : 'DATE_LOCALIZED' : lang }}</span>\r\n </div>\r\n @if (!!dailyItem.holidayName) {\r\n <div class=\"holidayName-wrapper d-flex d-flex-start\">\r\n <i class=\"feather-gift\"></i><span>{{ dailyItem.holidayName }}</span>\r\n </div>\r\n }\r\n </div>\r\n \r\n <core-shift-cell [ngModel]=\"dailyItem.shifts\"\r\n [$readOnly]=\"true\"></core-shift-cell>\r\n \r\n </div>\r\n </div>\r\n }\r\n \r\n </div>\r\n \r\n </div>\r\n }\r\n \r\n </div>\r\n \r\n }\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n @if (showStartOffset && !!activeAtShiftPattern && !!scopeStartDate && !!scopeEndDate) {\r\n <core-start-offset [pattern]=\"activeAtShiftPattern\" [scopeStartDate]=\"scopeStartDate\"\r\n [scopeEndDate]=\"scopeEndDate\" (onClose)=\"onCloseOffset($event)\"></core-start-offset>\r\n }\r\n\r\n @if (longApiRunning) {\r\n <core-api-progress (onClose)=\"onProgressWindowClose($event)\"></core-api-progress>\r\n }\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".core-at-shift-pattern-apply-container .patterns_condition-n-preview{position:relative;vertical-align:top}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .collection-wrapper{display:block;position:absolute;left:0;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .orgtree-wrapper{display:block;position:absolute;left:240px;top:0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{display:block;padding-left:555px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone{display:block;position:relative;width:100%;height:300px;overflow-y:auto}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item{background-color:#fff;margin:15px;width:258px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header{font-size:13px;padding:15px 15px 0}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header i{margin-right:8px}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.saturday{color:#07b7ee}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone .daily-item .daily-item-header.sunday{color:#ef2b58}.core-at-shift-pattern-apply-container .patterns_condition-n-preview #dropzone.ready{background-color:#d3d3d3}.core-at-shift-pattern-apply-container .patterns_condition-n-preview .condition-n-preview{margin-left:15px}.core-at-shift-pattern-apply-container .w175{width:160px}.core-at-shift-pattern-apply-container .w180{width:180px}.core-at-shift-pattern-apply-container .w200{width:200px}.core-at-shift-pattern-apply-container .mt60{margin-top:60px}.core-at-shift-pattern-apply-container .fs13{font-size:13px}\n"] }]
21951
21971
  }], propDecorators: { dropzone: [{
21952
21972
  type: ViewChild,
21953
21973
  args: ['dropzone']
21974
+ }], dropzoneInsider: [{
21975
+ type: ViewChild,
21976
+ args: ['dropzoneInsider']
21954
21977
  }] } });
21955
21978
 
21956
21979
  class CoreOrgParamComponent extends CoreFormControlBaseComponent {