tnx-shared 5.3.242 → 5.3.243
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/tnx-shared.umd.js +1033 -335
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/components/autocomplete/autocomplete.component.d.ts +147 -0
- package/components/autocomplete/autocomplete.component.d.ts.map +1 -0
- package/components/autocomplete/autocomplete.component.ngfactory.d.ts.map +1 -0
- package/components/autocomplete/autocomplete.component.scss.ngstyle.d.ts.map +1 -0
- package/esm2015/components/autocomplete/autocomplete.component.js +708 -0
- package/esm2015/components/autocomplete-picker/autocomplete-picker.component.js +2 -2
- package/esm2015/tnx-shared.js +2 -1
- package/esm2015/tnx-shared.module.js +8 -8
- package/fesm2015/tnx-shared.js +1003 -304
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/tnx-shared.d.ts +1 -0
- package/tnx-shared.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +4 -4
- package/tnx-shared.module.d.ts.map +1 -1
package/fesm2015/tnx-shared.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, InjectionToken, Optional, Inject, Injector, Directive, Input, ViewChild, EventEmitter, Component, ContentChildren, TemplateRef, Output, ComponentFactoryResolver, ApplicationRef, ElementRef, isDevMode, ViewChildren, ContentChild, ViewContainerRef, ChangeDetectorRef, Pipe, LOCALE_ID, forwardRef, NgZone, HostListener, ChangeDetectionStrategy, ViewEncapsulation, NgModuleFactory, Compiler, Renderer2, NgModule } from '@angular/core';
|
|
2
|
+
import { Injectable, InjectionToken, Optional, Inject, Injector, Directive, Input, ViewChild, EventEmitter, Component, ContentChildren, TemplateRef, Output, ComponentFactoryResolver, ApplicationRef, ElementRef, isDevMode, ViewChildren, ContentChild, ViewContainerRef, ChangeDetectorRef, Pipe, LOCALE_ID, forwardRef, NgZone, HostListener, ChangeDetectionStrategy, ViewEncapsulation, NgModuleFactory, Compiler, Renderer2, IterableDiffers, NgModule } from '@angular/core';
|
|
3
3
|
import { Subject, ReplaySubject, forkJoin, from, combineLatest } from 'rxjs';
|
|
4
4
|
import { takeUntil, catchError, shareReplay, retry, map, mergeMap, debounceTime, distinctUntilChanged, distinct } from 'rxjs/operators';
|
|
5
5
|
import { __awaiter } from 'tslib';
|
|
@@ -15,7 +15,7 @@ import * as i4 from 'angular-oauth2-oidc';
|
|
|
15
15
|
import { OAuthService, OAuthModule } from 'angular-oauth2-oidc';
|
|
16
16
|
import { TranslateService, TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
17
17
|
import * as i1 from 'tn-custom-primeng/api';
|
|
18
|
-
import { MessageService, ConfirmationService } from 'tn-custom-primeng/api';
|
|
18
|
+
import { MessageService, ConfirmationService, PrimeTemplate, SharedModule } from 'tn-custom-primeng/api';
|
|
19
19
|
import * as i3$1 from '@angular/router';
|
|
20
20
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
21
21
|
import * as signalR from '@aspnet/signalr';
|
|
@@ -44,12 +44,11 @@ import { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';
|
|
|
44
44
|
import { OverlayPanelModule } from 'tn-custom-primeng/overlaypanel';
|
|
45
45
|
import { SidebarModule } from 'tn-custom-primeng/sidebar';
|
|
46
46
|
import { DialogModule } from 'tn-custom-primeng/dialog';
|
|
47
|
-
import { DomHandler } from 'tn-custom-primeng/dom';
|
|
47
|
+
import { DomHandler, ConnectedOverlayScrollHandler } from 'tn-custom-primeng/dom';
|
|
48
48
|
import { AngularSplitModule } from 'angular-split';
|
|
49
49
|
import { CurrencyMaskModule } from 'ng2-currency-mask';
|
|
50
50
|
import { DndModule } from 'ngx-drag-drop';
|
|
51
51
|
import { AccordionModule } from 'tn-custom-primeng/accordion';
|
|
52
|
-
import { AutoCompleteModule } from 'tn-custom-primeng/autocomplete';
|
|
53
52
|
import { BlockUIModule } from 'tn-custom-primeng/blockui';
|
|
54
53
|
import { BreadcrumbModule } from 'tn-custom-primeng/breadcrumb';
|
|
55
54
|
import { ButtonModule } from 'tn-custom-primeng/button';
|
|
@@ -86,8 +85,10 @@ import { TreeModule } from 'tn-custom-primeng/tree';
|
|
|
86
85
|
import { TriStateCheckboxModule } from 'tn-custom-primeng/tristatecheckbox';
|
|
87
86
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
88
87
|
import { toCanvas } from 'qrcode';
|
|
89
|
-
import { nanoid } from 'nanoid';
|
|
90
88
|
import { DragDropModule } from 'tn-custom-primeng/dragdrop';
|
|
89
|
+
import { RippleModule } from 'tn-custom-primeng/ripple';
|
|
90
|
+
import { UniqueComponentId, ObjectUtils } from 'tn-custom-primeng/utils';
|
|
91
|
+
import { nanoid } from 'nanoid';
|
|
91
92
|
|
|
92
93
|
class ComCtxConstants {
|
|
93
94
|
}
|
|
@@ -38800,7 +38801,7 @@ AutoCompletePickerComponent.decorators = [
|
|
|
38800
38801
|
{ type: Component, args: [{
|
|
38801
38802
|
// tslint:disable-next-line: component-selector
|
|
38802
38803
|
selector: 'autocomplete-picker',
|
|
38803
|
-
template: "<div class=\"p-inputgroup autocomplete-picker\" *ngIf=\"control\" [class.has-value]=\"hasValue\"\n [class.multiple]=\"control.multiple\" [class.disabled]=\"control.disabled\">\n <div style=\"width: calc(100% - 28px)\" [pTooltip]=\"tooltip\" tooltipPosition=\"top\">\n <p-autoComplete #autoComplete emptyMessage=\"Kh\u00F4ng c\u00F3 k\u1EBFt qu\u1EA3 n\u00E0o\" [ngClass]=\"'custom-autocomplete'\"\n [disabled]=\"disabled\" [placeholder]=\"control.placeholder\" [appendTo]=\"control.appendTo\"\n [suggestions]=\"results\" field=\"label\" [styleClass]=\"control.validators && control.required ? 'rq' : ''\"\n [multiple]=\"control.multiple\" [minLength]=\"2\" [(ngModel)]=\"selectedValueObject\"\n (onFocus)=\"handleFocus($event)\" (onBlur)=\"handleBlur($event)\" (completeMethod)=\"search($event)\"\n (onKeyUp)=\"handleKeyUp($event)\" (onSelect)=\"handleSelect($event)\" (onUnselect)=\"handleUnSelect($event)\">\n </p-autoComplete>\n </div>\n <span *ngIf=\"!control.multiple && !disabled && hasValue\" class=\"icon-clear\" (click)=\"clearValue()\"><i\n class=\"fas fa-times\"></i></span>\n <button class=\"custom-autocomplete-button\" *ngIf=\"control.usePicker\" [disabled]=\"disabled\" tabindex=\"-1\"\n (click)=\"showPickForm()\" pButton [pTooltip]=\"control.title\" icon=\"fas fa-external-link-alt\"\n type=\"button\"></button>\n</div>\n<tn-dialog #dialog *ngIf=\"showFormPicker\" styleClass=\"entity-picker-box-dialog no-padding\" [useDefaultScrollBar]=\"true\"\n [header]=\"control.title | translate\" [popupSize]=\"popupSize\" (onHide)=\"handleHide($event)\">\n <entity-picker-box #entityPickerBox [currentNode]=\"currentNode\" [control]=\"control\" [parentSetting]=\"setting\" [datasourceFieldFilter]=\"datasourceFieldFilter\"\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\n (onContentLeftInit)=\"handleContentLeftInit($event)\" (onContentRightInit)=\"handleContentRightInit($event)\"\n (onChanged)=\"handleChangeEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleHide($event)\"\n (onRowSelect)=\"handleRowSelect($event)\">\n </entity-picker-box>\n <ng-template #footer>\n <button type=\" button\" pButton class=\"p-button-text\" (click)=\"onClickSubmitButton($event, entityPickerBox)\"\n [label]=\"'Ho\u00E0n th\u00E0nh' | translate\" icon=\"pi pi-check\"></button>\n </ng-template>\n</tn-dialog>",
|
|
38804
|
+
template: "<div class=\"p-inputgroup autocomplete-picker\" *ngIf=\"control\" [class.has-value]=\"hasValue\"\n [class.multiple]=\"control.multiple\" [class.disabled]=\"control.disabled\">\n <div style=\"width: calc(100% - 28px)\" [pTooltip]=\"tooltip\" tooltipPosition=\"top\">\n <p-autoComplete #autoComplete emptyMessage=\"Kh\u00F4ng c\u00F3 k\u1EBFt qu\u1EA3 n\u00E0o\" [ngClass]=\"'custom-autocomplete'\"\n [disabled]=\"disabled\" [placeholder]=\"control.placeholder\" [appendTo]=\"control.appendTo\" [maxRowItem]=\"2\"\n [suggestions]=\"results\" field=\"label\" [styleClass]=\"control.validators && control.required ? 'rq' : ''\"\n [multiple]=\"control.multiple\" [minLength]=\"2\" [(ngModel)]=\"selectedValueObject\"\n (onFocus)=\"handleFocus($event)\" (onBlur)=\"handleBlur($event)\" (completeMethod)=\"search($event)\"\n (onKeyUp)=\"handleKeyUp($event)\" (onSelect)=\"handleSelect($event)\" (onUnselect)=\"handleUnSelect($event)\">\n </p-autoComplete>\n </div>\n <span *ngIf=\"!control.multiple && !disabled && hasValue\" class=\"icon-clear\" (click)=\"clearValue()\"><i\n class=\"fas fa-times\"></i></span>\n <button class=\"custom-autocomplete-button\" *ngIf=\"control.usePicker\" [disabled]=\"disabled\" tabindex=\"-1\"\n (click)=\"showPickForm()\" pButton [pTooltip]=\"control.title\" icon=\"fas fa-external-link-alt\"\n type=\"button\"></button>\n</div>\n<tn-dialog #dialog *ngIf=\"showFormPicker\" styleClass=\"entity-picker-box-dialog no-padding\" [useDefaultScrollBar]=\"true\"\n [header]=\"control.title | translate\" [popupSize]=\"popupSize\" (onHide)=\"handleHide($event)\">\n <entity-picker-box #entityPickerBox [currentNode]=\"currentNode\" [control]=\"control\" [parentSetting]=\"setting\" [datasourceFieldFilter]=\"datasourceFieldFilter\"\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\n (onContentLeftInit)=\"handleContentLeftInit($event)\" (onContentRightInit)=\"handleContentRightInit($event)\"\n (onChanged)=\"handleChangeEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleHide($event)\"\n (onRowSelect)=\"handleRowSelect($event)\">\n </entity-picker-box>\n <ng-template #footer>\n <button type=\" button\" pButton class=\"p-button-text\" (click)=\"onClickSubmitButton($event, entityPickerBox)\"\n [label]=\"'Ho\u00E0n th\u00E0nh' | translate\" icon=\"pi pi-check\"></button>\n </ng-template>\n</tn-dialog>",
|
|
38804
38805
|
providers: [
|
|
38805
38806
|
{
|
|
38806
38807
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -42976,6 +42977,1000 @@ ReferenceTextBoxComponent.propDecorators = {
|
|
|
42976
42977
|
onInit: [{ type: Output }]
|
|
42977
42978
|
};
|
|
42978
42979
|
|
|
42980
|
+
const AUTOCOMPLETE_VALUE_ACCESSOR = {
|
|
42981
|
+
provide: NG_VALUE_ACCESSOR,
|
|
42982
|
+
useExisting: forwardRef(() => AutoComplete),
|
|
42983
|
+
multi: true
|
|
42984
|
+
};
|
|
42985
|
+
class AutoComplete {
|
|
42986
|
+
constructor(el, renderer, cd, differs) {
|
|
42987
|
+
this.el = el;
|
|
42988
|
+
this.renderer = renderer;
|
|
42989
|
+
this.cd = cd;
|
|
42990
|
+
this.differs = differs;
|
|
42991
|
+
this.minLength = 1;
|
|
42992
|
+
this.delay = 300;
|
|
42993
|
+
this.type = 'text';
|
|
42994
|
+
this.autoZIndex = true;
|
|
42995
|
+
this.baseZIndex = 0;
|
|
42996
|
+
this.dropdownIcon = "pi pi-chevron-down";
|
|
42997
|
+
this.unique = true;
|
|
42998
|
+
this.completeOnFocus = false;
|
|
42999
|
+
this.completeMethod = new EventEmitter();
|
|
43000
|
+
this.onSelect = new EventEmitter();
|
|
43001
|
+
this.onUnselect = new EventEmitter();
|
|
43002
|
+
this.onFocus = new EventEmitter();
|
|
43003
|
+
this.onBlur = new EventEmitter();
|
|
43004
|
+
this.onDropdownClick = new EventEmitter();
|
|
43005
|
+
this.onClear = new EventEmitter();
|
|
43006
|
+
this.onKeyUp = new EventEmitter();
|
|
43007
|
+
this.onShow = new EventEmitter();
|
|
43008
|
+
this.onHide = new EventEmitter();
|
|
43009
|
+
this.scrollHeight = '200px';
|
|
43010
|
+
this.dropdownMode = 'blank';
|
|
43011
|
+
this.showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';
|
|
43012
|
+
this.hideTransitionOptions = '.1s linear';
|
|
43013
|
+
this.autocomplete = 'off';
|
|
43014
|
+
this.onModelChange = () => { };
|
|
43015
|
+
this.onModelTouched = () => { };
|
|
43016
|
+
this.showCountItem = false;
|
|
43017
|
+
this.overlayVisible = false;
|
|
43018
|
+
this.focus = false;
|
|
43019
|
+
this.inputFieldValue = null;
|
|
43020
|
+
this.differ = differs.find([]).create(null);
|
|
43021
|
+
this.listId = UniqueComponentId() + '_list';
|
|
43022
|
+
}
|
|
43023
|
+
set maxRowItem(value) {
|
|
43024
|
+
const rowHeight = 27;
|
|
43025
|
+
const padding = 7;
|
|
43026
|
+
this._maxHeighContainerItem = Math.round(value * 30.5) + 7;
|
|
43027
|
+
this._maxHeighContainerItemStr = this._maxHeighContainerItem.toString() + 'px';
|
|
43028
|
+
}
|
|
43029
|
+
get suggestions() {
|
|
43030
|
+
return this._suggestions;
|
|
43031
|
+
}
|
|
43032
|
+
set suggestions(val) {
|
|
43033
|
+
this._suggestions = val;
|
|
43034
|
+
this.handleSuggestionsChange();
|
|
43035
|
+
}
|
|
43036
|
+
ngAfterViewChecked() {
|
|
43037
|
+
//Use timeouts as since Angular 4.2, AfterViewChecked is broken and not called after panel is updated
|
|
43038
|
+
if (this.suggestionsUpdated && this.overlay && this.overlay.offsetParent) {
|
|
43039
|
+
setTimeout(() => {
|
|
43040
|
+
if (this.overlay) {
|
|
43041
|
+
this.alignOverlay();
|
|
43042
|
+
}
|
|
43043
|
+
}, 1);
|
|
43044
|
+
this.suggestionsUpdated = false;
|
|
43045
|
+
}
|
|
43046
|
+
if (this.highlightOptionChanged) {
|
|
43047
|
+
setTimeout(() => {
|
|
43048
|
+
if (this.overlay) {
|
|
43049
|
+
let listItem = DomHandler.findSingle(this.overlay, 'li.p-highlight');
|
|
43050
|
+
if (listItem) {
|
|
43051
|
+
DomHandler.scrollInView(this.overlay, listItem);
|
|
43052
|
+
}
|
|
43053
|
+
}
|
|
43054
|
+
}, 1);
|
|
43055
|
+
this.highlightOptionChanged = false;
|
|
43056
|
+
}
|
|
43057
|
+
if (this.multiContainerEL) {
|
|
43058
|
+
var lastItemSelected = DomHandler.findSingle(this.multiContainerEL.nativeElement, 'li:first-child');
|
|
43059
|
+
this.multiContainerEL.nativeElement.scrollTop = 10000;
|
|
43060
|
+
let rectParent = this.multiContainerEL.nativeElement.getBoundingClientRect();
|
|
43061
|
+
let rectLastItem = lastItemSelected.getBoundingClientRect();
|
|
43062
|
+
if (rectLastItem.y < rectParent.y) {
|
|
43063
|
+
this.showCountItem = true;
|
|
43064
|
+
}
|
|
43065
|
+
else {
|
|
43066
|
+
this.showCountItem = false;
|
|
43067
|
+
}
|
|
43068
|
+
}
|
|
43069
|
+
const countItem = DomHandler.findSingle(this.multiContainerEL.nativeElement, '.p-autocomplete-countItem');
|
|
43070
|
+
if (this.showCountItem && !countItem) {
|
|
43071
|
+
this.focusInput();
|
|
43072
|
+
}
|
|
43073
|
+
}
|
|
43074
|
+
handleSuggestionsChange() {
|
|
43075
|
+
if (this._suggestions != null && this.loading) {
|
|
43076
|
+
this.highlightOption = null;
|
|
43077
|
+
if (this._suggestions.length) {
|
|
43078
|
+
this.noResults = false;
|
|
43079
|
+
this.show();
|
|
43080
|
+
this.suggestionsUpdated = true;
|
|
43081
|
+
if (this.autoHighlight) {
|
|
43082
|
+
this.highlightOption = this._suggestions[0];
|
|
43083
|
+
}
|
|
43084
|
+
}
|
|
43085
|
+
else {
|
|
43086
|
+
this.noResults = true;
|
|
43087
|
+
if (this.emptyMessage) {
|
|
43088
|
+
this.show();
|
|
43089
|
+
this.suggestionsUpdated = true;
|
|
43090
|
+
}
|
|
43091
|
+
else {
|
|
43092
|
+
this.hide();
|
|
43093
|
+
}
|
|
43094
|
+
}
|
|
43095
|
+
this.loading = false;
|
|
43096
|
+
}
|
|
43097
|
+
}
|
|
43098
|
+
ngAfterContentInit() {
|
|
43099
|
+
this.templates.forEach((item) => {
|
|
43100
|
+
switch (item.getType()) {
|
|
43101
|
+
case 'item':
|
|
43102
|
+
this.itemTemplate = item.template;
|
|
43103
|
+
break;
|
|
43104
|
+
case 'selectedItem':
|
|
43105
|
+
this.selectedItemTemplate = item.template;
|
|
43106
|
+
break;
|
|
43107
|
+
default:
|
|
43108
|
+
this.itemTemplate = item.template;
|
|
43109
|
+
break;
|
|
43110
|
+
}
|
|
43111
|
+
});
|
|
43112
|
+
}
|
|
43113
|
+
writeValue(value) {
|
|
43114
|
+
this.value = value;
|
|
43115
|
+
this.filled = this.value && this.value != '';
|
|
43116
|
+
this.updateInputField();
|
|
43117
|
+
this.cd.markForCheck();
|
|
43118
|
+
}
|
|
43119
|
+
registerOnChange(fn) {
|
|
43120
|
+
this.onModelChange = fn;
|
|
43121
|
+
}
|
|
43122
|
+
registerOnTouched(fn) {
|
|
43123
|
+
this.onModelTouched = fn;
|
|
43124
|
+
}
|
|
43125
|
+
setDisabledState(val) {
|
|
43126
|
+
this.disabled = val;
|
|
43127
|
+
this.cd.markForCheck();
|
|
43128
|
+
}
|
|
43129
|
+
onInput(event) {
|
|
43130
|
+
// When an input element with a placeholder is clicked, the onInput event is invoked in IE.
|
|
43131
|
+
if (!this.inputKeyDown && DomHandler.isIE()) {
|
|
43132
|
+
return;
|
|
43133
|
+
}
|
|
43134
|
+
if (this.timeout) {
|
|
43135
|
+
clearTimeout(this.timeout);
|
|
43136
|
+
}
|
|
43137
|
+
let value = event.target.value;
|
|
43138
|
+
if (!this.multiple && !this.forceSelection) {
|
|
43139
|
+
this.onModelChange(value);
|
|
43140
|
+
}
|
|
43141
|
+
if (value.length === 0 && !this.multiple) {
|
|
43142
|
+
this.hide();
|
|
43143
|
+
this.onClear.emit(event);
|
|
43144
|
+
this.onModelChange(value);
|
|
43145
|
+
}
|
|
43146
|
+
if (value.length >= this.minLength) {
|
|
43147
|
+
this.timeout = setTimeout(() => {
|
|
43148
|
+
this.search(event, value);
|
|
43149
|
+
}, this.delay);
|
|
43150
|
+
}
|
|
43151
|
+
else {
|
|
43152
|
+
this.suggestions = null;
|
|
43153
|
+
this.hide();
|
|
43154
|
+
}
|
|
43155
|
+
this.updateFilledState();
|
|
43156
|
+
this.inputKeyDown = false;
|
|
43157
|
+
}
|
|
43158
|
+
onInputClick(event) {
|
|
43159
|
+
if (this.documentClickListener) {
|
|
43160
|
+
this.inputClick = true;
|
|
43161
|
+
}
|
|
43162
|
+
}
|
|
43163
|
+
search(event, query) {
|
|
43164
|
+
//allow empty string but not undefined or null
|
|
43165
|
+
if (query === undefined || query === null) {
|
|
43166
|
+
return;
|
|
43167
|
+
}
|
|
43168
|
+
this.loading = true;
|
|
43169
|
+
this.completeMethod.emit({
|
|
43170
|
+
originalEvent: event,
|
|
43171
|
+
query: query
|
|
43172
|
+
});
|
|
43173
|
+
}
|
|
43174
|
+
selectItem(option, focus = true) {
|
|
43175
|
+
if (this.forceSelectionUpdateModelTimeout) {
|
|
43176
|
+
clearTimeout(this.forceSelectionUpdateModelTimeout);
|
|
43177
|
+
this.forceSelectionUpdateModelTimeout = null;
|
|
43178
|
+
}
|
|
43179
|
+
if (this.multiple) {
|
|
43180
|
+
this.multiInputEL.nativeElement.value = '';
|
|
43181
|
+
this.value = this.value || [];
|
|
43182
|
+
if (!this.isSelected(option) || !this.unique) {
|
|
43183
|
+
this.value = [...this.value, option];
|
|
43184
|
+
this.onModelChange(this.value);
|
|
43185
|
+
}
|
|
43186
|
+
}
|
|
43187
|
+
else {
|
|
43188
|
+
this.inputEL.nativeElement.value = this.field ? ObjectUtils.resolveFieldData(option, this.field) || '' : option;
|
|
43189
|
+
this.value = option;
|
|
43190
|
+
this.onModelChange(this.value);
|
|
43191
|
+
}
|
|
43192
|
+
this.onSelect.emit(option);
|
|
43193
|
+
this.updateFilledState();
|
|
43194
|
+
if (focus) {
|
|
43195
|
+
this.itemClicked = true;
|
|
43196
|
+
this.focusInput();
|
|
43197
|
+
}
|
|
43198
|
+
}
|
|
43199
|
+
show() {
|
|
43200
|
+
if (this.multiInputEL || this.inputEL) {
|
|
43201
|
+
let hasFocus = this.multiple ?
|
|
43202
|
+
this.multiInputEL.nativeElement.ownerDocument.activeElement == this.multiInputEL.nativeElement :
|
|
43203
|
+
this.inputEL.nativeElement.ownerDocument.activeElement == this.inputEL.nativeElement;
|
|
43204
|
+
if (!this.overlayVisible && hasFocus) {
|
|
43205
|
+
this.overlayVisible = true;
|
|
43206
|
+
}
|
|
43207
|
+
}
|
|
43208
|
+
}
|
|
43209
|
+
onOverlayAnimationStart(event) {
|
|
43210
|
+
switch (event.toState) {
|
|
43211
|
+
case 'visible':
|
|
43212
|
+
this.overlay = event.element;
|
|
43213
|
+
this.appendOverlay();
|
|
43214
|
+
if (this.autoZIndex) {
|
|
43215
|
+
this.overlay.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));
|
|
43216
|
+
}
|
|
43217
|
+
this.alignOverlay();
|
|
43218
|
+
this.bindDocumentClickListener();
|
|
43219
|
+
this.bindDocumentResizeListener();
|
|
43220
|
+
this.bindScrollListener();
|
|
43221
|
+
this.onShow.emit(event);
|
|
43222
|
+
break;
|
|
43223
|
+
case 'void':
|
|
43224
|
+
this.onOverlayHide();
|
|
43225
|
+
break;
|
|
43226
|
+
}
|
|
43227
|
+
}
|
|
43228
|
+
onOverlayAnimationDone(event) {
|
|
43229
|
+
if (event.toState === 'void') {
|
|
43230
|
+
this._suggestions = null;
|
|
43231
|
+
}
|
|
43232
|
+
}
|
|
43233
|
+
appendOverlay() {
|
|
43234
|
+
if (this.appendTo) {
|
|
43235
|
+
if (this.appendTo === 'body')
|
|
43236
|
+
document.body.appendChild(this.overlay);
|
|
43237
|
+
else
|
|
43238
|
+
DomHandler.appendChild(this.overlay, this.appendTo);
|
|
43239
|
+
if (!this.overlay.style.minWidth) {
|
|
43240
|
+
this.overlay.style.minWidth = DomHandler.getWidth(this.el.nativeElement.children[0]) + 'px';
|
|
43241
|
+
}
|
|
43242
|
+
}
|
|
43243
|
+
}
|
|
43244
|
+
resolveFieldData(value) {
|
|
43245
|
+
return this.field ? ObjectUtils.resolveFieldData(value, this.field) : value;
|
|
43246
|
+
}
|
|
43247
|
+
restoreOverlayAppend() {
|
|
43248
|
+
if (this.overlay && this.appendTo) {
|
|
43249
|
+
this.el.nativeElement.appendChild(this.overlay);
|
|
43250
|
+
}
|
|
43251
|
+
}
|
|
43252
|
+
alignOverlay() {
|
|
43253
|
+
if (this.appendTo)
|
|
43254
|
+
DomHandler.absolutePosition(this.overlay, (this.multiple ? this.multiContainerEL.nativeElement : this.inputEL.nativeElement));
|
|
43255
|
+
else
|
|
43256
|
+
DomHandler.relativePosition(this.overlay, (this.multiple ? this.multiContainerEL.nativeElement : this.inputEL.nativeElement));
|
|
43257
|
+
}
|
|
43258
|
+
hide() {
|
|
43259
|
+
this.overlayVisible = false;
|
|
43260
|
+
this.cd.markForCheck();
|
|
43261
|
+
}
|
|
43262
|
+
handleDropdownClick(event) {
|
|
43263
|
+
if (!this.overlayVisible) {
|
|
43264
|
+
this.focusInput();
|
|
43265
|
+
let queryValue = this.multiple ? this.multiInputEL.nativeElement.value : this.inputEL.nativeElement.value;
|
|
43266
|
+
if (this.dropdownMode === 'blank')
|
|
43267
|
+
this.search(event, '');
|
|
43268
|
+
else if (this.dropdownMode === 'current')
|
|
43269
|
+
this.search(event, queryValue);
|
|
43270
|
+
this.onDropdownClick.emit({
|
|
43271
|
+
originalEvent: event,
|
|
43272
|
+
query: queryValue
|
|
43273
|
+
});
|
|
43274
|
+
}
|
|
43275
|
+
else {
|
|
43276
|
+
this.hide();
|
|
43277
|
+
}
|
|
43278
|
+
}
|
|
43279
|
+
focusInput() {
|
|
43280
|
+
if (this.multiple)
|
|
43281
|
+
this.multiInputEL.nativeElement.focus();
|
|
43282
|
+
else
|
|
43283
|
+
this.inputEL.nativeElement.focus();
|
|
43284
|
+
}
|
|
43285
|
+
removeItem(item) {
|
|
43286
|
+
let itemIndex = DomHandler.index(item);
|
|
43287
|
+
let removedValue = this.value[itemIndex];
|
|
43288
|
+
this.value = this.value.filter((val, i) => i != itemIndex);
|
|
43289
|
+
this.onModelChange(this.value);
|
|
43290
|
+
this.updateFilledState();
|
|
43291
|
+
this.onUnselect.emit(removedValue);
|
|
43292
|
+
}
|
|
43293
|
+
onKeydown(event) {
|
|
43294
|
+
if (this.overlayVisible) {
|
|
43295
|
+
let highlightItemIndex = this.findOptionIndex(this.highlightOption);
|
|
43296
|
+
switch (event.which) {
|
|
43297
|
+
//down
|
|
43298
|
+
case 40:
|
|
43299
|
+
if (highlightItemIndex != -1) {
|
|
43300
|
+
var nextItemIndex = highlightItemIndex + 1;
|
|
43301
|
+
if (nextItemIndex != (this.suggestions.length)) {
|
|
43302
|
+
this.highlightOption = this.suggestions[nextItemIndex];
|
|
43303
|
+
this.highlightOptionChanged = true;
|
|
43304
|
+
}
|
|
43305
|
+
}
|
|
43306
|
+
else {
|
|
43307
|
+
this.highlightOption = this.suggestions[0];
|
|
43308
|
+
}
|
|
43309
|
+
event.preventDefault();
|
|
43310
|
+
break;
|
|
43311
|
+
//up
|
|
43312
|
+
case 38:
|
|
43313
|
+
if (highlightItemIndex > 0) {
|
|
43314
|
+
let prevItemIndex = highlightItemIndex - 1;
|
|
43315
|
+
this.highlightOption = this.suggestions[prevItemIndex];
|
|
43316
|
+
this.highlightOptionChanged = true;
|
|
43317
|
+
}
|
|
43318
|
+
event.preventDefault();
|
|
43319
|
+
break;
|
|
43320
|
+
//enter
|
|
43321
|
+
case 13:
|
|
43322
|
+
if (this.highlightOption) {
|
|
43323
|
+
this.selectItem(this.highlightOption);
|
|
43324
|
+
this.hide();
|
|
43325
|
+
}
|
|
43326
|
+
event.preventDefault();
|
|
43327
|
+
break;
|
|
43328
|
+
//escape
|
|
43329
|
+
case 27:
|
|
43330
|
+
this.hide();
|
|
43331
|
+
event.preventDefault();
|
|
43332
|
+
break;
|
|
43333
|
+
//tab
|
|
43334
|
+
case 9:
|
|
43335
|
+
if (this.highlightOption) {
|
|
43336
|
+
this.selectItem(this.highlightOption);
|
|
43337
|
+
}
|
|
43338
|
+
this.hide();
|
|
43339
|
+
break;
|
|
43340
|
+
}
|
|
43341
|
+
}
|
|
43342
|
+
else {
|
|
43343
|
+
if (event.which === 40 && this.suggestions) {
|
|
43344
|
+
this.search(event, event.target.value);
|
|
43345
|
+
}
|
|
43346
|
+
}
|
|
43347
|
+
if (this.multiple) {
|
|
43348
|
+
switch (event.which) {
|
|
43349
|
+
//backspace
|
|
43350
|
+
case 8:
|
|
43351
|
+
if (this.value && this.value.length && !this.multiInputEL.nativeElement.value) {
|
|
43352
|
+
this.value = [...this.value];
|
|
43353
|
+
const removedValue = this.value.pop();
|
|
43354
|
+
this.onModelChange(this.value);
|
|
43355
|
+
this.updateFilledState();
|
|
43356
|
+
this.onUnselect.emit(removedValue);
|
|
43357
|
+
}
|
|
43358
|
+
break;
|
|
43359
|
+
}
|
|
43360
|
+
}
|
|
43361
|
+
this.inputKeyDown = true;
|
|
43362
|
+
}
|
|
43363
|
+
onKeyup(event) {
|
|
43364
|
+
this.onKeyUp.emit(event);
|
|
43365
|
+
}
|
|
43366
|
+
onInputFocus(event) {
|
|
43367
|
+
if (!this.itemClicked && this.completeOnFocus) {
|
|
43368
|
+
let queryValue = this.multiple ? this.multiInputEL.nativeElement.value : this.inputEL.nativeElement.value;
|
|
43369
|
+
this.search(event, queryValue);
|
|
43370
|
+
}
|
|
43371
|
+
this.focus = true;
|
|
43372
|
+
this.onFocus.emit(event);
|
|
43373
|
+
this.itemClicked = false;
|
|
43374
|
+
}
|
|
43375
|
+
onInputBlur(event) {
|
|
43376
|
+
this.focus = false;
|
|
43377
|
+
this.onModelTouched();
|
|
43378
|
+
this.onBlur.emit(event);
|
|
43379
|
+
}
|
|
43380
|
+
onInputChange(event) {
|
|
43381
|
+
if (this.forceSelection) {
|
|
43382
|
+
let valid = false;
|
|
43383
|
+
let inputValue = event.target.value.trim();
|
|
43384
|
+
if (this.suggestions) {
|
|
43385
|
+
for (let suggestion of this.suggestions) {
|
|
43386
|
+
let itemValue = this.field ? ObjectUtils.resolveFieldData(suggestion, this.field) : suggestion;
|
|
43387
|
+
if (itemValue && inputValue === itemValue.trim()) {
|
|
43388
|
+
valid = true;
|
|
43389
|
+
this.forceSelectionUpdateModelTimeout = setTimeout(() => {
|
|
43390
|
+
this.selectItem(suggestion, false);
|
|
43391
|
+
}, 250);
|
|
43392
|
+
break;
|
|
43393
|
+
}
|
|
43394
|
+
}
|
|
43395
|
+
}
|
|
43396
|
+
if (!valid) {
|
|
43397
|
+
if (this.multiple) {
|
|
43398
|
+
this.multiInputEL.nativeElement.value = '';
|
|
43399
|
+
}
|
|
43400
|
+
else {
|
|
43401
|
+
this.value = null;
|
|
43402
|
+
this.inputEL.nativeElement.value = '';
|
|
43403
|
+
}
|
|
43404
|
+
this.onClear.emit(event);
|
|
43405
|
+
this.onModelChange(this.value);
|
|
43406
|
+
}
|
|
43407
|
+
}
|
|
43408
|
+
}
|
|
43409
|
+
onInputPaste(event) {
|
|
43410
|
+
this.onKeydown(event);
|
|
43411
|
+
}
|
|
43412
|
+
isSelected(val) {
|
|
43413
|
+
let selected = false;
|
|
43414
|
+
if (this.value && this.value.length) {
|
|
43415
|
+
for (let i = 0; i < this.value.length; i++) {
|
|
43416
|
+
if (ObjectUtils.equals(this.value[i], val, this.dataKey)) {
|
|
43417
|
+
selected = true;
|
|
43418
|
+
break;
|
|
43419
|
+
}
|
|
43420
|
+
}
|
|
43421
|
+
}
|
|
43422
|
+
return selected;
|
|
43423
|
+
}
|
|
43424
|
+
findOptionIndex(option) {
|
|
43425
|
+
let index = -1;
|
|
43426
|
+
if (this.suggestions) {
|
|
43427
|
+
for (let i = 0; i < this.suggestions.length; i++) {
|
|
43428
|
+
if (ObjectUtils.equals(option, this.suggestions[i])) {
|
|
43429
|
+
index = i;
|
|
43430
|
+
break;
|
|
43431
|
+
}
|
|
43432
|
+
}
|
|
43433
|
+
}
|
|
43434
|
+
return index;
|
|
43435
|
+
}
|
|
43436
|
+
updateFilledState() {
|
|
43437
|
+
if (this.multiple)
|
|
43438
|
+
this.filled = (this.value && this.value.length) || (this.multiInputEL && this.multiInputEL.nativeElement && this.multiInputEL.nativeElement.value != '');
|
|
43439
|
+
else
|
|
43440
|
+
this.filled = (this.inputFieldValue && this.inputFieldValue != '') || (this.inputEL && this.inputEL.nativeElement && this.inputEL.nativeElement.value != '');
|
|
43441
|
+
;
|
|
43442
|
+
}
|
|
43443
|
+
updateInputField() {
|
|
43444
|
+
let formattedValue = this.value ? (this.field ? ObjectUtils.resolveFieldData(this.value, this.field) || '' : this.value) : '';
|
|
43445
|
+
this.inputFieldValue = formattedValue;
|
|
43446
|
+
if (this.inputEL && this.inputEL.nativeElement) {
|
|
43447
|
+
this.inputEL.nativeElement.value = formattedValue;
|
|
43448
|
+
}
|
|
43449
|
+
this.updateFilledState();
|
|
43450
|
+
}
|
|
43451
|
+
bindDocumentClickListener() {
|
|
43452
|
+
if (!this.documentClickListener) {
|
|
43453
|
+
const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';
|
|
43454
|
+
this.documentClickListener = this.renderer.listen(documentTarget, 'click', (event) => {
|
|
43455
|
+
if (event.which === 3) {
|
|
43456
|
+
return;
|
|
43457
|
+
}
|
|
43458
|
+
if (!this.inputClick && !this.isDropdownClick(event)) {
|
|
43459
|
+
this.hide();
|
|
43460
|
+
}
|
|
43461
|
+
this.inputClick = false;
|
|
43462
|
+
this.cd.markForCheck();
|
|
43463
|
+
});
|
|
43464
|
+
}
|
|
43465
|
+
}
|
|
43466
|
+
isDropdownClick(event) {
|
|
43467
|
+
if (this.dropdown) {
|
|
43468
|
+
let target = event.target;
|
|
43469
|
+
return (target === this.dropdownButton.nativeElement || target.parentNode === this.dropdownButton.nativeElement);
|
|
43470
|
+
}
|
|
43471
|
+
else {
|
|
43472
|
+
return false;
|
|
43473
|
+
}
|
|
43474
|
+
}
|
|
43475
|
+
unbindDocumentClickListener() {
|
|
43476
|
+
if (this.documentClickListener) {
|
|
43477
|
+
this.documentClickListener();
|
|
43478
|
+
this.documentClickListener = null;
|
|
43479
|
+
}
|
|
43480
|
+
}
|
|
43481
|
+
bindDocumentResizeListener() {
|
|
43482
|
+
this.documentResizeListener = this.onWindowResize.bind(this);
|
|
43483
|
+
window.addEventListener('resize', this.documentResizeListener);
|
|
43484
|
+
}
|
|
43485
|
+
unbindDocumentResizeListener() {
|
|
43486
|
+
if (this.documentResizeListener) {
|
|
43487
|
+
window.removeEventListener('resize', this.documentResizeListener);
|
|
43488
|
+
this.documentResizeListener = null;
|
|
43489
|
+
}
|
|
43490
|
+
}
|
|
43491
|
+
onWindowResize() {
|
|
43492
|
+
this.hide();
|
|
43493
|
+
}
|
|
43494
|
+
bindScrollListener() {
|
|
43495
|
+
if (!this.scrollHandler) {
|
|
43496
|
+
this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerEL.nativeElement, () => {
|
|
43497
|
+
if (this.overlayVisible) {
|
|
43498
|
+
this.hide();
|
|
43499
|
+
}
|
|
43500
|
+
});
|
|
43501
|
+
}
|
|
43502
|
+
this.scrollHandler.bindScrollListener();
|
|
43503
|
+
}
|
|
43504
|
+
unbindScrollListener() {
|
|
43505
|
+
if (this.scrollHandler) {
|
|
43506
|
+
this.scrollHandler.unbindScrollListener();
|
|
43507
|
+
}
|
|
43508
|
+
}
|
|
43509
|
+
onOverlayHide() {
|
|
43510
|
+
this.unbindDocumentClickListener();
|
|
43511
|
+
this.unbindDocumentResizeListener();
|
|
43512
|
+
this.unbindScrollListener();
|
|
43513
|
+
this.overlay = null;
|
|
43514
|
+
this.onHide.emit();
|
|
43515
|
+
}
|
|
43516
|
+
ngOnDestroy() {
|
|
43517
|
+
if (this.forceSelectionUpdateModelTimeout) {
|
|
43518
|
+
clearTimeout(this.forceSelectionUpdateModelTimeout);
|
|
43519
|
+
this.forceSelectionUpdateModelTimeout = null;
|
|
43520
|
+
}
|
|
43521
|
+
if (this.scrollHandler) {
|
|
43522
|
+
this.scrollHandler.destroy();
|
|
43523
|
+
this.scrollHandler = null;
|
|
43524
|
+
}
|
|
43525
|
+
this.restoreOverlayAppend();
|
|
43526
|
+
this.onOverlayHide();
|
|
43527
|
+
}
|
|
43528
|
+
showMore() {
|
|
43529
|
+
this._maxHeighContainerItemStrOld = this._maxHeighContainerItemStr;
|
|
43530
|
+
this._maxHeighContainerItemStr = '10000px';
|
|
43531
|
+
this.showCountItem = false;
|
|
43532
|
+
}
|
|
43533
|
+
showLess() {
|
|
43534
|
+
this._maxHeighContainerItemStr = this._maxHeighContainerItemStrOld;
|
|
43535
|
+
this._maxHeighContainerItemStrOld = null;
|
|
43536
|
+
this.showCountItem = true;
|
|
43537
|
+
}
|
|
43538
|
+
}
|
|
43539
|
+
AutoComplete.decorators = [
|
|
43540
|
+
{ type: Component, args: [{
|
|
43541
|
+
selector: 'p-autoComplete',
|
|
43542
|
+
template: `
|
|
43543
|
+
<span #container [ngClass]="{'p-autocomplete p-component':true,'p-autocomplete-dd':dropdown,'p-autocomplete-multiple':multiple}" [ngStyle]="style" [class]="styleClass">
|
|
43544
|
+
<input *ngIf="!multiple" #in [attr.type]="type" [attr.id]="inputId" [ngStyle]="inputStyle" [class]="inputStyleClass" [autocomplete]="autocomplete" [attr.required]="required" [attr.name]="name"
|
|
43545
|
+
class="p-autocomplete-input p-inputtext p-component" [ngClass]="{'p-autocomplete-dd-input':dropdown,'p-disabled': disabled}" [value]="inputFieldValue" aria-autocomplete="list" [attr.aria-controls]="listId" role="searchbox" [attr.aria-expanded]="overlayVisible" aria-haspopup="true" [attr.aria-activedescendant]="'p-highlighted-option'"
|
|
43546
|
+
(click)="onInputClick($event)" (input)="onInput($event)" (keydown)="onKeydown($event)" (keyup)="onKeyup($event)" [attr.autofocus]="autofocus" (focus)="onInputFocus($event)" (blur)="onInputBlur($event)" (change)="onInputChange($event)" (paste)="onInputPaste($event)"
|
|
43547
|
+
[attr.placeholder]="placeholder" [attr.size]="size" [attr.maxlength]="maxlength" [attr.tabindex]="tabindex" [readonly]="readonly" [disabled]="disabled" [attr.aria-label]="ariaLabel" [attr.aria-labelledby]="ariaLabelledBy" [attr.aria-required]="required"
|
|
43548
|
+
><ul *ngIf="multiple" #multiContainer class="p-autocomplete-multiple-container p-component p-inputtext" [ngClass]="{'p-disabled':disabled,'p-focus':focus}" (click)="multiIn.focus()" [style.max-height]="_maxHeighContainerItemStr">
|
|
43549
|
+
<li #token *ngFor="let val of value" class="p-autocomplete-token" [class.disabled]="val._disabled">
|
|
43550
|
+
<ng-container *ngTemplateOutlet="selectedItemTemplate; context: {$implicit: val}"></ng-container>
|
|
43551
|
+
<span *ngIf="!selectedItemTemplate" class="p-autocomplete-token-label">{{resolveFieldData(val)}}</span>
|
|
43552
|
+
<span *ngIf="!disabled && !val._disabled" class="p-autocomplete-token-icon pi pi-times-circle" (click)="removeItem(token)"></span>
|
|
43553
|
+
</li>
|
|
43554
|
+
<li class="p-autocomplete-token p-autocomplete-countItem" *ngIf="showCountItem && value " (click)="showMore()">Có {{value.length}} bản ghi ...</li>
|
|
43555
|
+
<!-- <ng-container *ngIf="value?.length > 10">
|
|
43556
|
+
<li class="p-autocomplete-token p-autocomplete-countItem" (click)="showMore()">
|
|
43557
|
+
Có {{value.length}} bản ghi ...
|
|
43558
|
+
</li>
|
|
43559
|
+
</ng-container> -->
|
|
43560
|
+
<li class="p-autocomplete-token p-autocomplete-countItem" *ngIf="_maxHeighContainerItemStrOld != null" (click)="showLess()"><span><i class="fas fa-arrow-up"></i></span><span>Thu lại</span></li>
|
|
43561
|
+
<li class="p-autocomplete-input-token">
|
|
43562
|
+
<input #multiIn [attr.type]="type" [attr.id]="inputId" [disabled]="disabled" [attr.placeholder]="(value&&value.length ? null : placeholder)" [attr.tabindex]="tabindex" [attr.maxlength]="maxlength" (input)="onInput($event)" (click)="onInputClick($event)"
|
|
43563
|
+
(keydown)="onKeydown($event)" [readonly]="readonly" (keyup)="onKeyup($event)" [attr.autofocus]="autofocus" (focus)="onInputFocus($event)" (blur)="onInputBlur($event)" (change)="onInputChange($event)" (paste)="onInputPaste($event)" [autocomplete]="autocomplete"
|
|
43564
|
+
[ngStyle]="inputStyle" [class]="inputStyleClass" [attr.aria-label]="ariaLabel" [attr.aria-labelledby]="ariaLabelledBy" [attr.aria-required]="required"
|
|
43565
|
+
aria-autocomplete="list" [attr.aria-controls]="listId" role="searchbox" [attr.aria-expanded]="overlayVisible" aria-haspopup="true" [attr.aria-activedescendant]="'p-highlighted-option'">
|
|
43566
|
+
</li>
|
|
43567
|
+
</ul>
|
|
43568
|
+
<i *ngIf="loading" class="p-autocomplete-loader pi pi-spinner pi-spin"></i><button #ddBtn type="button" pButton [icon]="dropdownIcon" class="p-autocomplete-dropdown" [disabled]="disabled" pRipple
|
|
43569
|
+
(click)="handleDropdownClick($event)" *ngIf="dropdown" [attr.tabindex]="tabindex"></button>
|
|
43570
|
+
<div #panel *ngIf="overlayVisible" [ngClass]="['p-autocomplete-panel p-component']" [style.max-height]="scrollHeight" [ngStyle]="panelStyle" [class]="panelStyleClass"
|
|
43571
|
+
[@overlayAnimation]="{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}" (@overlayAnimation.start)="onOverlayAnimationStart($event)" (@overlayAnimation.done)="onOverlayAnimationDone($event)" >
|
|
43572
|
+
<ul role="listbox" [attr.id]="listId" class="p-autocomplete-items">
|
|
43573
|
+
<li role="option" *ngFor="let option of suggestions; let idx = index" class="p-autocomplete-item" pRipple [ngClass]="{'p-highlight': (option === highlightOption)}" [id]="highlightOption == option ? 'p-highlighted-option':''" (click)="selectItem(option)">
|
|
43574
|
+
<span *ngIf="!itemTemplate">{{resolveFieldData(option)}}</span>
|
|
43575
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: {$implicit: option, index: idx}"></ng-container>
|
|
43576
|
+
</li>
|
|
43577
|
+
<li *ngIf="noResults && emptyMessage" class="p-autocomplete-emptymessage p-autocomplete-item">{{emptyMessage}}</li>
|
|
43578
|
+
</ul>
|
|
43579
|
+
</div>
|
|
43580
|
+
</span>
|
|
43581
|
+
`,
|
|
43582
|
+
animations: [
|
|
43583
|
+
trigger('overlayAnimation', [
|
|
43584
|
+
transition(':enter', [
|
|
43585
|
+
style({ opacity: 0, transform: 'scaleY(0.8)' }),
|
|
43586
|
+
animate('{{showTransitionParams}}')
|
|
43587
|
+
]),
|
|
43588
|
+
transition(':leave', [
|
|
43589
|
+
animate('{{hideTransitionParams}}', style({ opacity: 0 }))
|
|
43590
|
+
])
|
|
43591
|
+
])
|
|
43592
|
+
],
|
|
43593
|
+
host: {
|
|
43594
|
+
'[class.p-inputwrapper-filled]': 'filled',
|
|
43595
|
+
'[class.p-inputwrapper-focus]': 'focus && !disabled'
|
|
43596
|
+
},
|
|
43597
|
+
providers: [AUTOCOMPLETE_VALUE_ACCESSOR],
|
|
43598
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
43599
|
+
encapsulation: ViewEncapsulation.None,
|
|
43600
|
+
styles: [".p-autocomplete{display:inline-flex;position:relative}.p-autocomplete-loader{position:absolute;top:50%;margin-top:-.5rem}.p-autocomplete-dd .p-autocomplete-input{flex:1 1 auto;width:1%}.p-autocomplete-dd .p-autocomplete-input,.p-autocomplete-dd .p-autocomplete-multiple-container{border-top-right-radius:0;border-bottom-right-radius:0}.p-autocomplete-dd .p-autocomplete-dropdown{border-top-left-radius:0;border-bottom-left-radius:0}.p-autocomplete .p-autocomplete-panel{min-width:100%}.p-autocomplete-panel{position:absolute;overflow:auto}.p-autocomplete-items{margin:0;padding:0;list-style-type:none}.p-autocomplete-item{cursor:pointer;white-space:nowrap;position:relative;overflow:hidden}.p-autocomplete-multiple-container{margin:0;padding:0;list-style-type:none;cursor:text;overflow:hidden;display:flex;align-items:center;flex-wrap:wrap}.p-autocomplete-token{cursor:default;display:inline-flex;align-items:center;flex:0 0 auto;padding:.125em .5em;margin-right:.125em;border:0;font-size:.9em}.p-autocomplete-token-icon{cursor:pointer}.p-autocomplete-input-token{display:inline-block;vertical-align:middle;list-style-type:none;margin:0 0 0 .125em;padding:.25em .25em .25em 0}.p-autocomplete-input-token input{border:0;width:10em;outline:medium none;background-color:transparent;margin:0;padding:0;box-shadow:none;border-radius:0}.p-fluid .p-autocomplete{display:flex}.p-fluid .p-autocomplete-dd .p-autocomplete-input{width:1%}.p-autocomplete-countItem{background-color:#e1e1e1!important;box-sizing:border-box;display:inline-flex;align-items:center;cursor:pointer}"]
|
|
43601
|
+
},] }
|
|
43602
|
+
];
|
|
43603
|
+
AutoComplete.ctorParameters = () => [
|
|
43604
|
+
{ type: ElementRef },
|
|
43605
|
+
{ type: Renderer2 },
|
|
43606
|
+
{ type: ChangeDetectorRef },
|
|
43607
|
+
{ type: IterableDiffers }
|
|
43608
|
+
];
|
|
43609
|
+
AutoComplete.propDecorators = {
|
|
43610
|
+
minLength: [{ type: Input }],
|
|
43611
|
+
delay: [{ type: Input }],
|
|
43612
|
+
style: [{ type: Input }],
|
|
43613
|
+
panelStyle: [{ type: Input }],
|
|
43614
|
+
styleClass: [{ type: Input }],
|
|
43615
|
+
panelStyleClass: [{ type: Input }],
|
|
43616
|
+
inputStyle: [{ type: Input }],
|
|
43617
|
+
inputId: [{ type: Input }],
|
|
43618
|
+
inputStyleClass: [{ type: Input }],
|
|
43619
|
+
placeholder: [{ type: Input }],
|
|
43620
|
+
readonly: [{ type: Input }],
|
|
43621
|
+
disabled: [{ type: Input }],
|
|
43622
|
+
maxlength: [{ type: Input }],
|
|
43623
|
+
name: [{ type: Input }],
|
|
43624
|
+
required: [{ type: Input }],
|
|
43625
|
+
size: [{ type: Input }],
|
|
43626
|
+
appendTo: [{ type: Input }],
|
|
43627
|
+
autoHighlight: [{ type: Input }],
|
|
43628
|
+
forceSelection: [{ type: Input }],
|
|
43629
|
+
type: [{ type: Input }],
|
|
43630
|
+
autoZIndex: [{ type: Input }],
|
|
43631
|
+
baseZIndex: [{ type: Input }],
|
|
43632
|
+
ariaLabel: [{ type: Input }],
|
|
43633
|
+
ariaLabelledBy: [{ type: Input }],
|
|
43634
|
+
dropdownIcon: [{ type: Input }],
|
|
43635
|
+
unique: [{ type: Input }],
|
|
43636
|
+
completeOnFocus: [{ type: Input }],
|
|
43637
|
+
completeMethod: [{ type: Output }],
|
|
43638
|
+
onSelect: [{ type: Output }],
|
|
43639
|
+
onUnselect: [{ type: Output }],
|
|
43640
|
+
onFocus: [{ type: Output }],
|
|
43641
|
+
onBlur: [{ type: Output }],
|
|
43642
|
+
onDropdownClick: [{ type: Output }],
|
|
43643
|
+
onClear: [{ type: Output }],
|
|
43644
|
+
onKeyUp: [{ type: Output }],
|
|
43645
|
+
onShow: [{ type: Output }],
|
|
43646
|
+
onHide: [{ type: Output }],
|
|
43647
|
+
field: [{ type: Input }],
|
|
43648
|
+
scrollHeight: [{ type: Input }],
|
|
43649
|
+
dropdown: [{ type: Input }],
|
|
43650
|
+
dropdownMode: [{ type: Input }],
|
|
43651
|
+
multiple: [{ type: Input }],
|
|
43652
|
+
tabindex: [{ type: Input }],
|
|
43653
|
+
dataKey: [{ type: Input }],
|
|
43654
|
+
emptyMessage: [{ type: Input }],
|
|
43655
|
+
showTransitionOptions: [{ type: Input }],
|
|
43656
|
+
hideTransitionOptions: [{ type: Input }],
|
|
43657
|
+
autofocus: [{ type: Input }],
|
|
43658
|
+
autocomplete: [{ type: Input }],
|
|
43659
|
+
maxRowItem: [{ type: Input }],
|
|
43660
|
+
containerEL: [{ type: ViewChild, args: ['container',] }],
|
|
43661
|
+
inputEL: [{ type: ViewChild, args: ['in',] }],
|
|
43662
|
+
multiInputEL: [{ type: ViewChild, args: ['multiIn',] }],
|
|
43663
|
+
multiContainerEL: [{ type: ViewChild, args: ['multiContainer',] }],
|
|
43664
|
+
dropdownButton: [{ type: ViewChild, args: ['ddBtn',] }],
|
|
43665
|
+
templates: [{ type: ContentChildren, args: [PrimeTemplate,] }],
|
|
43666
|
+
suggestions: [{ type: Input }]
|
|
43667
|
+
};
|
|
43668
|
+
class AutoCompleteModule {
|
|
43669
|
+
}
|
|
43670
|
+
AutoCompleteModule.decorators = [
|
|
43671
|
+
{ type: NgModule, args: [{
|
|
43672
|
+
imports: [CommonModule, InputTextModule, ButtonModule, SharedModule, RippleModule],
|
|
43673
|
+
exports: [AutoComplete, SharedModule],
|
|
43674
|
+
declarations: [AutoComplete]
|
|
43675
|
+
},] }
|
|
43676
|
+
];
|
|
43677
|
+
|
|
43678
|
+
/* eslint-disable prefer-const */
|
|
43679
|
+
class HtmlPreviewComponent {
|
|
43680
|
+
constructor(gs, _commonService) {
|
|
43681
|
+
this.gs = gs;
|
|
43682
|
+
this._commonService = _commonService;
|
|
43683
|
+
this.control = new HtmlPreviewControlSchema();
|
|
43684
|
+
this.onChanged = new EventEmitter();
|
|
43685
|
+
this.content = '';
|
|
43686
|
+
this.id = '';
|
|
43687
|
+
this.id = this._commonService.guid();
|
|
43688
|
+
}
|
|
43689
|
+
// ngOnChanges(changes: SimpleChanges) {
|
|
43690
|
+
// if (changes['content']) {
|
|
43691
|
+
// this.renderMath();
|
|
43692
|
+
// }
|
|
43693
|
+
// }
|
|
43694
|
+
writeValue(obj) {
|
|
43695
|
+
if (obj) {
|
|
43696
|
+
this.content = obj;
|
|
43697
|
+
}
|
|
43698
|
+
else {
|
|
43699
|
+
this.content = '';
|
|
43700
|
+
}
|
|
43701
|
+
this.renderMath();
|
|
43702
|
+
}
|
|
43703
|
+
registerOnChange(fn) {
|
|
43704
|
+
this.onChange = fn;
|
|
43705
|
+
}
|
|
43706
|
+
registerOnTouched(fn) {
|
|
43707
|
+
this.onTouched = fn;
|
|
43708
|
+
}
|
|
43709
|
+
renderMath() {
|
|
43710
|
+
this.mathJaxObject = this.gs.nativeGlobal()['MathJax'];
|
|
43711
|
+
if (!this.mathJaxObject && !this.mathContent) {
|
|
43712
|
+
return;
|
|
43713
|
+
}
|
|
43714
|
+
setTimeout(() => {
|
|
43715
|
+
var _a, _b;
|
|
43716
|
+
const $this = this;
|
|
43717
|
+
const autoScrollBottom = !!((_a = $this.control) === null || _a === void 0 ? void 0 : _a.autoScrollBottom);
|
|
43718
|
+
const output = $this.mathContent.nativeElement;
|
|
43719
|
+
let content = ((_b = $this.content) === null || _b === void 0 ? void 0 : _b.trim()) || '';
|
|
43720
|
+
if (!$this.control.isHtml) {
|
|
43721
|
+
content = content.replace(/\n/g, '<br>');
|
|
43722
|
+
}
|
|
43723
|
+
output.innerHTML = content;
|
|
43724
|
+
if ($this.mathJaxObject.texReset) {
|
|
43725
|
+
$this.mathJaxObject.texReset();
|
|
43726
|
+
}
|
|
43727
|
+
if ($this.mathJaxObject.typesetClear) {
|
|
43728
|
+
$this.mathJaxObject.typesetClear();
|
|
43729
|
+
}
|
|
43730
|
+
if ($this.mathJaxObject.typesetPromise) {
|
|
43731
|
+
$this.mathJaxObject.typesetPromise([output]).catch(function (err) {
|
|
43732
|
+
output.innerHTML = '';
|
|
43733
|
+
output.appendChild(document.createTextNode(err.message));
|
|
43734
|
+
console.error(err);
|
|
43735
|
+
}).then(function () {
|
|
43736
|
+
var _a, _b, _c;
|
|
43737
|
+
// Do something after typeset
|
|
43738
|
+
if (autoScrollBottom) {
|
|
43739
|
+
const box = document.querySelector(`#math-preview-box-${$this.id}`);
|
|
43740
|
+
const elem = box.getElementsByClassName('ps--active-y')[0];
|
|
43741
|
+
if (elem) {
|
|
43742
|
+
elem.scrollTop = elem.scrollHeight;
|
|
43743
|
+
}
|
|
43744
|
+
}
|
|
43745
|
+
const value = (_c = (_b = (_a = document.getElementById(`mathPreview-${$this.id}`)) === null || _a === void 0 ? void 0 : _a.innerHTML) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
|
|
43746
|
+
$this.onChange(value);
|
|
43747
|
+
$this.onChanged.emit(value);
|
|
43748
|
+
});
|
|
43749
|
+
}
|
|
43750
|
+
return $this.mathJaxObject.startup.defaultPageReady ? $this.mathJaxObject.startup.defaultPageReady() : $this.mathJaxObject.startup.defaultPageReady;
|
|
43751
|
+
});
|
|
43752
|
+
}
|
|
43753
|
+
loadMathConfig() {
|
|
43754
|
+
var _a, _b, _c;
|
|
43755
|
+
const wd = this.gs.nativeGlobal();
|
|
43756
|
+
wd.MathJax = {
|
|
43757
|
+
'loader': { load: ['input/asciimath', 'output/chtml', 'ui/menu', 'output/svg', '[mml]/mml3'] },
|
|
43758
|
+
'tex': {
|
|
43759
|
+
inlineMath: [['$', '$'], ['\\(', '\\)']],
|
|
43760
|
+
processEscapes: true
|
|
43761
|
+
},
|
|
43762
|
+
'startup': {
|
|
43763
|
+
pageReady: () => this.renderMath()
|
|
43764
|
+
},
|
|
43765
|
+
'svg': {
|
|
43766
|
+
scale: 1,
|
|
43767
|
+
minScale: .5
|
|
43768
|
+
},
|
|
43769
|
+
'options': {
|
|
43770
|
+
enableMenu: !!((_a = this.control) === null || _a === void 0 ? void 0 : _a.useMathJaxMenu),
|
|
43771
|
+
menuOptions: {
|
|
43772
|
+
settings: {
|
|
43773
|
+
texHints: true,
|
|
43774
|
+
semantics: false,
|
|
43775
|
+
zoom: 'Double-Click',
|
|
43776
|
+
zscale: '200%',
|
|
43777
|
+
renderer: ((_b = this.control) === null || _b === void 0 ? void 0 : _b.mathJaxType) ? this.control.mathJaxType : 'CHTML',
|
|
43778
|
+
scale: 1,
|
|
43779
|
+
inTabOrder: true,
|
|
43780
|
+
assistiveMml: true,
|
|
43781
|
+
collapsible: false,
|
|
43782
|
+
explorer: false, // true if the expression explorer should be active
|
|
43783
|
+
},
|
|
43784
|
+
annotationTypes: {
|
|
43785
|
+
TeX: ['TeX', 'LaTeX', 'application/x-tex'],
|
|
43786
|
+
StarMath: ['StarMath 5.0'],
|
|
43787
|
+
Maple: ['Maple'],
|
|
43788
|
+
ContentMathML: ['MathML-Content', 'application/mathml-content+xml'],
|
|
43789
|
+
OpenMath: ['OpenMath']
|
|
43790
|
+
}
|
|
43791
|
+
}
|
|
43792
|
+
}
|
|
43793
|
+
};
|
|
43794
|
+
const script = document.createElement('script');
|
|
43795
|
+
if (((_c = this.control) === null || _c === void 0 ? void 0 : _c.mathJaxType) == 'SVG') {
|
|
43796
|
+
script.src = 'assets/vendor/mathjax/tex-mml-svg.js';
|
|
43797
|
+
}
|
|
43798
|
+
else {
|
|
43799
|
+
script.src = 'assets/vendor/mathjax/tex-mml-chtml.js';
|
|
43800
|
+
}
|
|
43801
|
+
script.setAttribute('id', 'MathJax-script');
|
|
43802
|
+
document.head.appendChild(script);
|
|
43803
|
+
}
|
|
43804
|
+
ngOnInit() {
|
|
43805
|
+
this.loadMathConfig();
|
|
43806
|
+
}
|
|
43807
|
+
}
|
|
43808
|
+
HtmlPreviewComponent.decorators = [
|
|
43809
|
+
{ type: Component, args: [{
|
|
43810
|
+
selector: 'html-preview',
|
|
43811
|
+
template: "<div class=\"preview-box\" id=\"math-preview-box-{{id}}\" [ngStyle]=\"{'height': control.height + 'px'}\">\n <tn-custom-scrollbar [showScrollHorizontal]=\"true\">\n <div #mathContent id=\"mathPreview-{{id}}\"></div>\n </tn-custom-scrollbar>\n</div>",
|
|
43812
|
+
providers: [
|
|
43813
|
+
ComponentContextService,
|
|
43814
|
+
{
|
|
43815
|
+
provide: NG_VALUE_ACCESSOR,
|
|
43816
|
+
useExisting: forwardRef(() => HtmlPreviewComponent),
|
|
43817
|
+
multi: true
|
|
43818
|
+
},
|
|
43819
|
+
],
|
|
43820
|
+
styles: ["::ng-deep html-preview .preview-box{border:1px solid #ced4da;padding:10px}"]
|
|
43821
|
+
},] }
|
|
43822
|
+
];
|
|
43823
|
+
HtmlPreviewComponent.ctorParameters = () => [
|
|
43824
|
+
{ type: GlobalService },
|
|
43825
|
+
{ type: CommonService }
|
|
43826
|
+
];
|
|
43827
|
+
HtmlPreviewComponent.propDecorators = {
|
|
43828
|
+
mathContent: [{ type: ViewChild, args: ['mathContent',] }],
|
|
43829
|
+
control: [{ type: Input }],
|
|
43830
|
+
onChanged: [{ type: Output }]
|
|
43831
|
+
};
|
|
43832
|
+
|
|
43833
|
+
class SettingAuthorizeButtonComponent extends DataListBase {
|
|
43834
|
+
constructor(_injector, _basePermissionService, _moduleConfigService) {
|
|
43835
|
+
super(_injector);
|
|
43836
|
+
this._injector = _injector;
|
|
43837
|
+
this._basePermissionService = _basePermissionService;
|
|
43838
|
+
this._moduleConfigService = _moduleConfigService;
|
|
43839
|
+
this.authorizeButtonKey = '';
|
|
43840
|
+
this.dataSource = [];
|
|
43841
|
+
this.appCode = '';
|
|
43842
|
+
}
|
|
43843
|
+
ngOnInit() {
|
|
43844
|
+
this.appCode = this._moduleConfigService.getConfig().appCode;
|
|
43845
|
+
this.setting.baseService = this._basePermissionService;
|
|
43846
|
+
this.customGetData = true;
|
|
43847
|
+
this.setting.hiddenAdvanceSearch = true;
|
|
43848
|
+
this.setting.hiddenHeader = true;
|
|
43849
|
+
this.setting.heightType = HeightType.dynamic;
|
|
43850
|
+
this.setting.hiddenOrderColumn = true;
|
|
43851
|
+
this.setting.hiddenFilterRow = true;
|
|
43852
|
+
this.setting.hiddenSettingWorkflow = true;
|
|
43853
|
+
this.setting.hiddenAuthorizeButton = true;
|
|
43854
|
+
this.setting.hiddenSettingPermission = true;
|
|
43855
|
+
this.setting.fixHeightTypeInDialog = false;
|
|
43856
|
+
this.setting.hiddenCheckbox = false;
|
|
43857
|
+
this.setting.showEditLink = false;
|
|
43858
|
+
this.setting.modelSchemas = [
|
|
43859
|
+
new ModelSchema({
|
|
43860
|
+
field: 'permissionCode',
|
|
43861
|
+
name: 'Mã',
|
|
43862
|
+
}),
|
|
43863
|
+
new ModelSchema({
|
|
43864
|
+
field: 'rawText',
|
|
43865
|
+
name: 'Tên',
|
|
43866
|
+
}),
|
|
43867
|
+
new ModelSchema({
|
|
43868
|
+
field: 'isAuthorize',
|
|
43869
|
+
name: 'Đã tạo quyền',
|
|
43870
|
+
}),
|
|
43871
|
+
new ModelSchema({
|
|
43872
|
+
field: 'ma1',
|
|
43873
|
+
name: 'Mã',
|
|
43874
|
+
}),
|
|
43875
|
+
];
|
|
43876
|
+
this.setting.cols = [
|
|
43877
|
+
new ColumnSchemaBase({ field: 'permissionCode', sort: false, showEditLink: false }),
|
|
43878
|
+
new ColumnSchemaBase({ field: 'rawText', width: '300px', sort: false }),
|
|
43879
|
+
new ColumnSchemaBase({ field: 'isAuthorize', dataType: DataType.boolean, width: '100px', sort: false }),
|
|
43880
|
+
];
|
|
43881
|
+
super.ngOnInit();
|
|
43882
|
+
}
|
|
43883
|
+
getDataCustom(gridInfo) {
|
|
43884
|
+
this.model.dataSource = this.dataSource;
|
|
43885
|
+
this.afterGetData();
|
|
43886
|
+
}
|
|
43887
|
+
addBasePermission(rowData) {
|
|
43888
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43889
|
+
const insertRes = yield this._basePermissionService.post(rowData);
|
|
43890
|
+
if (insertRes.success) {
|
|
43891
|
+
this._notifierService.showSuccess('Thêm quyền thành công');
|
|
43892
|
+
this.updateDataSource(insertRes.data);
|
|
43893
|
+
return;
|
|
43894
|
+
}
|
|
43895
|
+
this._notifierService.showWarning('Có lỗi trong quá trình xử lý, vui lòng thử lại');
|
|
43896
|
+
});
|
|
43897
|
+
}
|
|
43898
|
+
deleteBasePermission(rowData) {
|
|
43899
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43900
|
+
this._notifierService.showConfirm('Xác nhận xóa quyền').then((res) => __awaiter(this, void 0, void 0, function* () {
|
|
43901
|
+
if (!res)
|
|
43902
|
+
return;
|
|
43903
|
+
const deleteRes = yield this._basePermissionService.delete(rowData.id);
|
|
43904
|
+
if (deleteRes.success) {
|
|
43905
|
+
this._notifierService.showSuccess('Xóa quyền thành công');
|
|
43906
|
+
this.updateDataSource(rowData.id, true);
|
|
43907
|
+
return;
|
|
43908
|
+
}
|
|
43909
|
+
this._notifierService.showWarning(deleteRes.message);
|
|
43910
|
+
}));
|
|
43911
|
+
});
|
|
43912
|
+
}
|
|
43913
|
+
updateDataSource(id, isDeleted = false) {
|
|
43914
|
+
const currentRow = this.model.dataSource.find(p => p.id == id);
|
|
43915
|
+
if (!currentRow)
|
|
43916
|
+
return;
|
|
43917
|
+
if (isDeleted) {
|
|
43918
|
+
currentRow.id = this._commonService.guid();
|
|
43919
|
+
}
|
|
43920
|
+
currentRow.isAuthorize = !isDeleted;
|
|
43921
|
+
this.afterGetData();
|
|
43922
|
+
}
|
|
43923
|
+
afterGetData() {
|
|
43924
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43925
|
+
this._unmarkLoading();
|
|
43926
|
+
if (!this.model.dataSource.length)
|
|
43927
|
+
return;
|
|
43928
|
+
this.model.dataSource.forEach(item => {
|
|
43929
|
+
item.name = item.rawText;
|
|
43930
|
+
item.code = item.permissionCode;
|
|
43931
|
+
item.moduleCode = this.appCode;
|
|
43932
|
+
});
|
|
43933
|
+
});
|
|
43934
|
+
}
|
|
43935
|
+
ngOnDestroy() {
|
|
43936
|
+
var _a;
|
|
43937
|
+
const buttonSetting = JSON.parse(sessionStorage.getItem(ComCtxConstants.LOCALSTORAGE_KEY.BUTTON_AUTHORIZE) || '{}');
|
|
43938
|
+
buttonSetting[_a = this.authorizeButtonKey] || (buttonSetting[_a] = []);
|
|
43939
|
+
this.model.dataSource.forEach(rowData => {
|
|
43940
|
+
var _a;
|
|
43941
|
+
const buttonItem = (_a = buttonSetting[this.authorizeButtonKey]) === null || _a === void 0 ? void 0 : _a.find(p => p.code == rowData.code);
|
|
43942
|
+
if (rowData.isAuthorize && !buttonItem) {
|
|
43943
|
+
buttonSetting[this.authorizeButtonKey].push({
|
|
43944
|
+
id: rowData.id,
|
|
43945
|
+
code: rowData.code,
|
|
43946
|
+
});
|
|
43947
|
+
}
|
|
43948
|
+
else if (!rowData.isAuthorize && buttonItem) {
|
|
43949
|
+
const index = buttonSetting[this.authorizeButtonKey].indexOf(buttonItem);
|
|
43950
|
+
buttonSetting[this.authorizeButtonKey].splice(index, 1);
|
|
43951
|
+
}
|
|
43952
|
+
});
|
|
43953
|
+
sessionStorage.setItem(ComCtxConstants.LOCALSTORAGE_KEY.BUTTON_AUTHORIZE, JSON.stringify(buttonSetting));
|
|
43954
|
+
}
|
|
43955
|
+
}
|
|
43956
|
+
SettingAuthorizeButtonComponent.decorators = [
|
|
43957
|
+
{ type: Component, args: [{
|
|
43958
|
+
selector: 'settings-authorize-button',
|
|
43959
|
+
template: "<crud-list #crudList [menuButtons]=\"getMenuButtons\" [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\n [hiddenAdd]=\"true\" [hiddenDelete]=\"true\" [hiddenCopyLink]=\"true\" (onReload)=\"_triggerProcessData($event)\"\n (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\" (onCopyLink)=\"_copyLink($event)\"\n (onCopyLinkMultiple)=\"_copyLinkMultiple()\">\n <ng-template #function let-rowData=\"rowData\">\n <button *ngIf=\"!rowData.isAuthorize\" class=\"p-button-rounded p-button-text p-button-info link-or-action\"\n type=\"button\" pButton icon=\"pi pi-plus\" pTooltip=\"Th\u00EAm m\u1EDBi\" (click)=\"addBasePermission(rowData)\"></button>\n <button *ngIf=\"rowData.isAuthorize\"\n class=\"p-button-rounded p-button-text p-button-danger p-button-info link-or-action\" type=\"button\" pButton\n icon=\"pi pi-trash\" pTooltip=\"X\u00F3a\" (click)=\"deleteBasePermission(rowData)\"></button>\n </ng-template>\n</crud-list>",
|
|
43960
|
+
providers: [ComponentContextService],
|
|
43961
|
+
styles: [""]
|
|
43962
|
+
},] }
|
|
43963
|
+
];
|
|
43964
|
+
SettingAuthorizeButtonComponent.ctorParameters = () => [
|
|
43965
|
+
{ type: Injector },
|
|
43966
|
+
{ type: BasePermissionService },
|
|
43967
|
+
{ type: ModuleConfigService }
|
|
43968
|
+
];
|
|
43969
|
+
SettingAuthorizeButtonComponent.propDecorators = {
|
|
43970
|
+
authorizeButtonKey: [{ type: Input }],
|
|
43971
|
+
dataSource: [{ type: Input }]
|
|
43972
|
+
};
|
|
43973
|
+
|
|
42979
43974
|
class SettingsRowComponent extends ComponentBase {
|
|
42980
43975
|
constructor(_injector, _domService, _userService) {
|
|
42981
43976
|
super(_injector);
|
|
@@ -43296,147 +44291,6 @@ SettingsWorkflowComponent.propDecorators = {
|
|
|
43296
44291
|
parentSetting: [{ type: Input }]
|
|
43297
44292
|
};
|
|
43298
44293
|
|
|
43299
|
-
class SettingAuthorizeButtonComponent extends DataListBase {
|
|
43300
|
-
constructor(_injector, _basePermissionService, _moduleConfigService) {
|
|
43301
|
-
super(_injector);
|
|
43302
|
-
this._injector = _injector;
|
|
43303
|
-
this._basePermissionService = _basePermissionService;
|
|
43304
|
-
this._moduleConfigService = _moduleConfigService;
|
|
43305
|
-
this.authorizeButtonKey = '';
|
|
43306
|
-
this.dataSource = [];
|
|
43307
|
-
this.appCode = '';
|
|
43308
|
-
}
|
|
43309
|
-
ngOnInit() {
|
|
43310
|
-
this.appCode = this._moduleConfigService.getConfig().appCode;
|
|
43311
|
-
this.setting.baseService = this._basePermissionService;
|
|
43312
|
-
this.customGetData = true;
|
|
43313
|
-
this.setting.hiddenAdvanceSearch = true;
|
|
43314
|
-
this.setting.hiddenHeader = true;
|
|
43315
|
-
this.setting.heightType = HeightType.dynamic;
|
|
43316
|
-
this.setting.hiddenOrderColumn = true;
|
|
43317
|
-
this.setting.hiddenFilterRow = true;
|
|
43318
|
-
this.setting.hiddenSettingWorkflow = true;
|
|
43319
|
-
this.setting.hiddenAuthorizeButton = true;
|
|
43320
|
-
this.setting.hiddenSettingPermission = true;
|
|
43321
|
-
this.setting.fixHeightTypeInDialog = false;
|
|
43322
|
-
this.setting.hiddenCheckbox = false;
|
|
43323
|
-
this.setting.showEditLink = false;
|
|
43324
|
-
this.setting.modelSchemas = [
|
|
43325
|
-
new ModelSchema({
|
|
43326
|
-
field: 'permissionCode',
|
|
43327
|
-
name: 'Mã',
|
|
43328
|
-
}),
|
|
43329
|
-
new ModelSchema({
|
|
43330
|
-
field: 'rawText',
|
|
43331
|
-
name: 'Tên',
|
|
43332
|
-
}),
|
|
43333
|
-
new ModelSchema({
|
|
43334
|
-
field: 'isAuthorize',
|
|
43335
|
-
name: 'Đã tạo quyền',
|
|
43336
|
-
}),
|
|
43337
|
-
new ModelSchema({
|
|
43338
|
-
field: 'ma1',
|
|
43339
|
-
name: 'Mã',
|
|
43340
|
-
}),
|
|
43341
|
-
];
|
|
43342
|
-
this.setting.cols = [
|
|
43343
|
-
new ColumnSchemaBase({ field: 'permissionCode', sort: false, showEditLink: false }),
|
|
43344
|
-
new ColumnSchemaBase({ field: 'rawText', width: '300px', sort: false }),
|
|
43345
|
-
new ColumnSchemaBase({ field: 'isAuthorize', dataType: DataType.boolean, width: '100px', sort: false }),
|
|
43346
|
-
];
|
|
43347
|
-
super.ngOnInit();
|
|
43348
|
-
}
|
|
43349
|
-
getDataCustom(gridInfo) {
|
|
43350
|
-
this.model.dataSource = this.dataSource;
|
|
43351
|
-
this.afterGetData();
|
|
43352
|
-
}
|
|
43353
|
-
addBasePermission(rowData) {
|
|
43354
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43355
|
-
const insertRes = yield this._basePermissionService.post(rowData);
|
|
43356
|
-
if (insertRes.success) {
|
|
43357
|
-
this._notifierService.showSuccess('Thêm quyền thành công');
|
|
43358
|
-
this.updateDataSource(insertRes.data);
|
|
43359
|
-
return;
|
|
43360
|
-
}
|
|
43361
|
-
this._notifierService.showWarning('Có lỗi trong quá trình xử lý, vui lòng thử lại');
|
|
43362
|
-
});
|
|
43363
|
-
}
|
|
43364
|
-
deleteBasePermission(rowData) {
|
|
43365
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43366
|
-
this._notifierService.showConfirm('Xác nhận xóa quyền').then((res) => __awaiter(this, void 0, void 0, function* () {
|
|
43367
|
-
if (!res)
|
|
43368
|
-
return;
|
|
43369
|
-
const deleteRes = yield this._basePermissionService.delete(rowData.id);
|
|
43370
|
-
if (deleteRes.success) {
|
|
43371
|
-
this._notifierService.showSuccess('Xóa quyền thành công');
|
|
43372
|
-
this.updateDataSource(rowData.id, true);
|
|
43373
|
-
return;
|
|
43374
|
-
}
|
|
43375
|
-
this._notifierService.showWarning(deleteRes.message);
|
|
43376
|
-
}));
|
|
43377
|
-
});
|
|
43378
|
-
}
|
|
43379
|
-
updateDataSource(id, isDeleted = false) {
|
|
43380
|
-
const currentRow = this.model.dataSource.find(p => p.id == id);
|
|
43381
|
-
if (!currentRow)
|
|
43382
|
-
return;
|
|
43383
|
-
if (isDeleted) {
|
|
43384
|
-
currentRow.id = this._commonService.guid();
|
|
43385
|
-
}
|
|
43386
|
-
currentRow.isAuthorize = !isDeleted;
|
|
43387
|
-
this.afterGetData();
|
|
43388
|
-
}
|
|
43389
|
-
afterGetData() {
|
|
43390
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43391
|
-
this._unmarkLoading();
|
|
43392
|
-
if (!this.model.dataSource.length)
|
|
43393
|
-
return;
|
|
43394
|
-
this.model.dataSource.forEach(item => {
|
|
43395
|
-
item.name = item.rawText;
|
|
43396
|
-
item.code = item.permissionCode;
|
|
43397
|
-
item.moduleCode = this.appCode;
|
|
43398
|
-
});
|
|
43399
|
-
});
|
|
43400
|
-
}
|
|
43401
|
-
ngOnDestroy() {
|
|
43402
|
-
var _a;
|
|
43403
|
-
const buttonSetting = JSON.parse(sessionStorage.getItem(ComCtxConstants.LOCALSTORAGE_KEY.BUTTON_AUTHORIZE) || '{}');
|
|
43404
|
-
buttonSetting[_a = this.authorizeButtonKey] || (buttonSetting[_a] = []);
|
|
43405
|
-
this.model.dataSource.forEach(rowData => {
|
|
43406
|
-
var _a;
|
|
43407
|
-
const buttonItem = (_a = buttonSetting[this.authorizeButtonKey]) === null || _a === void 0 ? void 0 : _a.find(p => p.code == rowData.code);
|
|
43408
|
-
if (rowData.isAuthorize && !buttonItem) {
|
|
43409
|
-
buttonSetting[this.authorizeButtonKey].push({
|
|
43410
|
-
id: rowData.id,
|
|
43411
|
-
code: rowData.code,
|
|
43412
|
-
});
|
|
43413
|
-
}
|
|
43414
|
-
else if (!rowData.isAuthorize && buttonItem) {
|
|
43415
|
-
const index = buttonSetting[this.authorizeButtonKey].indexOf(buttonItem);
|
|
43416
|
-
buttonSetting[this.authorizeButtonKey].splice(index, 1);
|
|
43417
|
-
}
|
|
43418
|
-
});
|
|
43419
|
-
sessionStorage.setItem(ComCtxConstants.LOCALSTORAGE_KEY.BUTTON_AUTHORIZE, JSON.stringify(buttonSetting));
|
|
43420
|
-
}
|
|
43421
|
-
}
|
|
43422
|
-
SettingAuthorizeButtonComponent.decorators = [
|
|
43423
|
-
{ type: Component, args: [{
|
|
43424
|
-
selector: 'settings-authorize-button',
|
|
43425
|
-
template: "<crud-list #crudList [menuButtons]=\"getMenuButtons\" [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\n [hiddenAdd]=\"true\" [hiddenDelete]=\"true\" [hiddenCopyLink]=\"true\" (onReload)=\"_triggerProcessData($event)\"\n (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\" (onCopyLink)=\"_copyLink($event)\"\n (onCopyLinkMultiple)=\"_copyLinkMultiple()\">\n <ng-template #function let-rowData=\"rowData\">\n <button *ngIf=\"!rowData.isAuthorize\" class=\"p-button-rounded p-button-text p-button-info link-or-action\"\n type=\"button\" pButton icon=\"pi pi-plus\" pTooltip=\"Th\u00EAm m\u1EDBi\" (click)=\"addBasePermission(rowData)\"></button>\n <button *ngIf=\"rowData.isAuthorize\"\n class=\"p-button-rounded p-button-text p-button-danger p-button-info link-or-action\" type=\"button\" pButton\n icon=\"pi pi-trash\" pTooltip=\"X\u00F3a\" (click)=\"deleteBasePermission(rowData)\"></button>\n </ng-template>\n</crud-list>",
|
|
43426
|
-
providers: [ComponentContextService],
|
|
43427
|
-
styles: [""]
|
|
43428
|
-
},] }
|
|
43429
|
-
];
|
|
43430
|
-
SettingAuthorizeButtonComponent.ctorParameters = () => [
|
|
43431
|
-
{ type: Injector },
|
|
43432
|
-
{ type: BasePermissionService },
|
|
43433
|
-
{ type: ModuleConfigService }
|
|
43434
|
-
];
|
|
43435
|
-
SettingAuthorizeButtonComponent.propDecorators = {
|
|
43436
|
-
authorizeButtonKey: [{ type: Input }],
|
|
43437
|
-
dataSource: [{ type: Input }]
|
|
43438
|
-
};
|
|
43439
|
-
|
|
43440
44294
|
class SettingsComponent extends ComponentBase {
|
|
43441
44295
|
constructor(_injector, _domService, _userService) {
|
|
43442
44296
|
super(_injector);
|
|
@@ -47057,161 +47911,6 @@ FileSizePipe.decorators = [
|
|
|
47057
47911
|
},] }
|
|
47058
47912
|
];
|
|
47059
47913
|
|
|
47060
|
-
/* eslint-disable prefer-const */
|
|
47061
|
-
class HtmlPreviewComponent {
|
|
47062
|
-
constructor(gs, _commonService) {
|
|
47063
|
-
this.gs = gs;
|
|
47064
|
-
this._commonService = _commonService;
|
|
47065
|
-
this.control = new HtmlPreviewControlSchema();
|
|
47066
|
-
this.onChanged = new EventEmitter();
|
|
47067
|
-
this.content = '';
|
|
47068
|
-
this.id = '';
|
|
47069
|
-
this.id = this._commonService.guid();
|
|
47070
|
-
}
|
|
47071
|
-
// ngOnChanges(changes: SimpleChanges) {
|
|
47072
|
-
// if (changes['content']) {
|
|
47073
|
-
// this.renderMath();
|
|
47074
|
-
// }
|
|
47075
|
-
// }
|
|
47076
|
-
writeValue(obj) {
|
|
47077
|
-
if (obj) {
|
|
47078
|
-
this.content = obj;
|
|
47079
|
-
}
|
|
47080
|
-
else {
|
|
47081
|
-
this.content = '';
|
|
47082
|
-
}
|
|
47083
|
-
this.renderMath();
|
|
47084
|
-
}
|
|
47085
|
-
registerOnChange(fn) {
|
|
47086
|
-
this.onChange = fn;
|
|
47087
|
-
}
|
|
47088
|
-
registerOnTouched(fn) {
|
|
47089
|
-
this.onTouched = fn;
|
|
47090
|
-
}
|
|
47091
|
-
renderMath() {
|
|
47092
|
-
this.mathJaxObject = this.gs.nativeGlobal()['MathJax'];
|
|
47093
|
-
if (!this.mathJaxObject && !this.mathContent) {
|
|
47094
|
-
return;
|
|
47095
|
-
}
|
|
47096
|
-
setTimeout(() => {
|
|
47097
|
-
var _a, _b;
|
|
47098
|
-
const $this = this;
|
|
47099
|
-
const autoScrollBottom = !!((_a = $this.control) === null || _a === void 0 ? void 0 : _a.autoScrollBottom);
|
|
47100
|
-
const output = $this.mathContent.nativeElement;
|
|
47101
|
-
let content = ((_b = $this.content) === null || _b === void 0 ? void 0 : _b.trim()) || '';
|
|
47102
|
-
if (!$this.control.isHtml) {
|
|
47103
|
-
content = content.replace(/\n/g, '<br>');
|
|
47104
|
-
}
|
|
47105
|
-
output.innerHTML = content;
|
|
47106
|
-
if ($this.mathJaxObject.texReset) {
|
|
47107
|
-
$this.mathJaxObject.texReset();
|
|
47108
|
-
}
|
|
47109
|
-
if ($this.mathJaxObject.typesetClear) {
|
|
47110
|
-
$this.mathJaxObject.typesetClear();
|
|
47111
|
-
}
|
|
47112
|
-
if ($this.mathJaxObject.typesetPromise) {
|
|
47113
|
-
$this.mathJaxObject.typesetPromise([output]).catch(function (err) {
|
|
47114
|
-
output.innerHTML = '';
|
|
47115
|
-
output.appendChild(document.createTextNode(err.message));
|
|
47116
|
-
console.error(err);
|
|
47117
|
-
}).then(function () {
|
|
47118
|
-
var _a, _b, _c;
|
|
47119
|
-
// Do something after typeset
|
|
47120
|
-
if (autoScrollBottom) {
|
|
47121
|
-
const box = document.querySelector(`#math-preview-box-${$this.id}`);
|
|
47122
|
-
const elem = box.getElementsByClassName('ps--active-y')[0];
|
|
47123
|
-
if (elem) {
|
|
47124
|
-
elem.scrollTop = elem.scrollHeight;
|
|
47125
|
-
}
|
|
47126
|
-
}
|
|
47127
|
-
const value = (_c = (_b = (_a = document.getElementById(`mathPreview-${$this.id}`)) === null || _a === void 0 ? void 0 : _a.innerHTML) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
|
|
47128
|
-
$this.onChange(value);
|
|
47129
|
-
$this.onChanged.emit(value);
|
|
47130
|
-
});
|
|
47131
|
-
}
|
|
47132
|
-
return $this.mathJaxObject.startup.defaultPageReady ? $this.mathJaxObject.startup.defaultPageReady() : $this.mathJaxObject.startup.defaultPageReady;
|
|
47133
|
-
});
|
|
47134
|
-
}
|
|
47135
|
-
loadMathConfig() {
|
|
47136
|
-
var _a, _b, _c;
|
|
47137
|
-
const wd = this.gs.nativeGlobal();
|
|
47138
|
-
wd.MathJax = {
|
|
47139
|
-
'loader': { load: ['input/asciimath', 'output/chtml', 'ui/menu', 'output/svg', '[mml]/mml3'] },
|
|
47140
|
-
'tex': {
|
|
47141
|
-
inlineMath: [['$', '$'], ['\\(', '\\)']],
|
|
47142
|
-
processEscapes: true
|
|
47143
|
-
},
|
|
47144
|
-
'startup': {
|
|
47145
|
-
pageReady: () => this.renderMath()
|
|
47146
|
-
},
|
|
47147
|
-
'svg': {
|
|
47148
|
-
scale: 1,
|
|
47149
|
-
minScale: .5
|
|
47150
|
-
},
|
|
47151
|
-
'options': {
|
|
47152
|
-
enableMenu: !!((_a = this.control) === null || _a === void 0 ? void 0 : _a.useMathJaxMenu),
|
|
47153
|
-
menuOptions: {
|
|
47154
|
-
settings: {
|
|
47155
|
-
texHints: true,
|
|
47156
|
-
semantics: false,
|
|
47157
|
-
zoom: 'Double-Click',
|
|
47158
|
-
zscale: '200%',
|
|
47159
|
-
renderer: ((_b = this.control) === null || _b === void 0 ? void 0 : _b.mathJaxType) ? this.control.mathJaxType : 'CHTML',
|
|
47160
|
-
scale: 1,
|
|
47161
|
-
inTabOrder: true,
|
|
47162
|
-
assistiveMml: true,
|
|
47163
|
-
collapsible: false,
|
|
47164
|
-
explorer: false, // true if the expression explorer should be active
|
|
47165
|
-
},
|
|
47166
|
-
annotationTypes: {
|
|
47167
|
-
TeX: ['TeX', 'LaTeX', 'application/x-tex'],
|
|
47168
|
-
StarMath: ['StarMath 5.0'],
|
|
47169
|
-
Maple: ['Maple'],
|
|
47170
|
-
ContentMathML: ['MathML-Content', 'application/mathml-content+xml'],
|
|
47171
|
-
OpenMath: ['OpenMath']
|
|
47172
|
-
}
|
|
47173
|
-
}
|
|
47174
|
-
}
|
|
47175
|
-
};
|
|
47176
|
-
const script = document.createElement('script');
|
|
47177
|
-
if (((_c = this.control) === null || _c === void 0 ? void 0 : _c.mathJaxType) == 'SVG') {
|
|
47178
|
-
script.src = 'assets/vendor/mathjax/tex-mml-svg.js';
|
|
47179
|
-
}
|
|
47180
|
-
else {
|
|
47181
|
-
script.src = 'assets/vendor/mathjax/tex-mml-chtml.js';
|
|
47182
|
-
}
|
|
47183
|
-
script.setAttribute('id', 'MathJax-script');
|
|
47184
|
-
document.head.appendChild(script);
|
|
47185
|
-
}
|
|
47186
|
-
ngOnInit() {
|
|
47187
|
-
this.loadMathConfig();
|
|
47188
|
-
}
|
|
47189
|
-
}
|
|
47190
|
-
HtmlPreviewComponent.decorators = [
|
|
47191
|
-
{ type: Component, args: [{
|
|
47192
|
-
selector: 'html-preview',
|
|
47193
|
-
template: "<div class=\"preview-box\" id=\"math-preview-box-{{id}}\" [ngStyle]=\"{'height': control.height + 'px'}\">\n <tn-custom-scrollbar [showScrollHorizontal]=\"true\">\n <div #mathContent id=\"mathPreview-{{id}}\"></div>\n </tn-custom-scrollbar>\n</div>",
|
|
47194
|
-
providers: [
|
|
47195
|
-
ComponentContextService,
|
|
47196
|
-
{
|
|
47197
|
-
provide: NG_VALUE_ACCESSOR,
|
|
47198
|
-
useExisting: forwardRef(() => HtmlPreviewComponent),
|
|
47199
|
-
multi: true
|
|
47200
|
-
},
|
|
47201
|
-
],
|
|
47202
|
-
styles: ["::ng-deep html-preview .preview-box{border:1px solid #ced4da;padding:10px}"]
|
|
47203
|
-
},] }
|
|
47204
|
-
];
|
|
47205
|
-
HtmlPreviewComponent.ctorParameters = () => [
|
|
47206
|
-
{ type: GlobalService },
|
|
47207
|
-
{ type: CommonService }
|
|
47208
|
-
];
|
|
47209
|
-
HtmlPreviewComponent.propDecorators = {
|
|
47210
|
-
mathContent: [{ type: ViewChild, args: ['mathContent',] }],
|
|
47211
|
-
control: [{ type: Input }],
|
|
47212
|
-
onChanged: [{ type: Output }]
|
|
47213
|
-
};
|
|
47214
|
-
|
|
47215
47914
|
function coreDeclaration() {
|
|
47216
47915
|
return [
|
|
47217
47916
|
AddressComponent,
|
|
@@ -47371,7 +48070,6 @@ function coreModuleImport() {
|
|
|
47371
48070
|
TranslateModule,
|
|
47372
48071
|
TreeModule,
|
|
47373
48072
|
ScrollPanelModule,
|
|
47374
|
-
AutoCompleteModule,
|
|
47375
48073
|
PaginatorModule,
|
|
47376
48074
|
BlockUIModule,
|
|
47377
48075
|
MenuModule,
|
|
@@ -47403,6 +48101,7 @@ function coreModuleImport() {
|
|
|
47403
48101
|
StepsModule,
|
|
47404
48102
|
ProgressSpinnerModule,
|
|
47405
48103
|
DndModule,
|
|
48104
|
+
AutoCompleteModule,
|
|
47406
48105
|
DragDropModule
|
|
47407
48106
|
];
|
|
47408
48107
|
}
|
|
@@ -47507,5 +48206,5 @@ class Pair {
|
|
|
47507
48206
|
* Generated bundle index. Do not edit.
|
|
47508
48207
|
*/
|
|
47509
48208
|
|
|
47510
|
-
export { AccessDeniedComponent, Action, ActionChoYKienBase, ActionThuHoiBase, ActionUpdateModel, AddressControlSchema, AddressService, AdvanceSearchData, AdvanceSearchSetting, AfterViewCheckedComponent, AnnouncementReadsService, AnnouncementsService, AppComponentBase, AppListService, ApplicationContextService, ApprovalPipe, ArrayPair, AtLeastOneRowTableValidator, AuthenService, AuthorizeDirective, AutoCompleteControlSchema, AutoCompletePickerControlSchema, AutocompleteDatasourceComponent, AvatarUploaderComponent, BaseMenuService, BaseModule, BaseService, BooleanFormatPipe, ButtonAction, ButtonControlSchema, ButtonPermission, ButtonPermissions, ButtonTextActionCongViec, CONFIG_CALENDAR_VIETNAMESE, CalculationEngineService, CanBoHoSoService, CanBo_HoSo_CoCauToChucService, CauHinhWorkflowService, CccdValidator, CellExcel, ChatBoxComponent, ChatSendMessageBoxComponent, CheckBoxListControlSchema, CheckControlVisibleService, CheckDuplicateFieldsValidator, CheckDuplicateValidator, CheckboxControlSchema, ChipsControlSchema, ClientV5Service, CoCauToChucControlSchema, CoCauToChucNewService, CoCauToChucPickerComponent, CoCauToChucPickerControlSchema, CoCauToChucPickerControlSchemaNew, CoCauToChucService, CodeValidator, ColorBlack, ColorControlSchema, ColorPickerControlSchema, ColorWhite, Column, ColumnSchemaBase, ColumnSetting, ColumnSettingDetail, ComCtxConstants, CommandType, CommonDashboardComponent, CommonErrorCode, CommonLibComponent, CommonSearchFormComponent, CommonService, CompareValidator, ComponentBase, ComponentBaseWithButton, ComponentConstants, ComponentContextService, ConditionalBuilderService, CongViecPickerControlSchema, CongViecService, ContainerSchema, ControlTreeNode, ControlType, ConvertMoneyToWordPipe, CoreConfigService, CrudBase, CrudFormComponent, CrudFormCustomFunction, CrudFormData, CrudFormSetting, CrudListComponent, CrudListConfig, CrudListCustomFunction, CrudListData, CrudListHelper, CrudListSetting, CrudService, CustomControlSchema, CustomRouterService, CustomizeUiModel, CustomizeUiService, DanhmucApiService, DataExcel, DataFormBase, DataListBase, DataSourceControlSchema, DataSourceGioiTinh, DataSourcePermissionBase, DataSourceWorkflowCoreStatus, DataType, DateCompareValidator, DateTimeControlSchema, DateTimeRangeControlSchema, DbOrganizationOrganizationService, DbOrganizationPositionService, Deadline, DeadlineType, DhvinhGuardService, DialogModel, DmChucVuService, DmLoaiCongViecService, DomService, DownloadLinkService, DropdownComponent, DropdownControlSchema, DropdownOptions, DummyWorkflowCode, DynamicComponentService, ENUM_DON_VI_HANH_CHINH, EXPLORER_TYPES, EXPORT_VERSION_V4, EXPORT_VERSION_V5, EditFileCommand, EditorControlSchema, EformService, EmailValidator, EntityMedataDataSetting, EntityMetadataService, EntityPickerColumn, EntityPickerControlSchema, EntityWorkflowHistoryService, EntityWorkflowType, EnumActionType, EnumAppSwitcherCode, EnumCanBo, EnumControlPickerType, EnumFileLayout, EnumGetRefType, EnumGioiTinh, EnumHocHamHocVi, EnumLoaiVanBanBase$1 as EnumLoaiVanBanBase, EnumPermissionType, EnumProcessWorkflowType, EnumProperties, EnumStateType, EnumTargetType, EnumTypeSplash, EnumUserRule, EnumUserSource, EnumWFNhomTrangThai, EnumWorkflowCheckboxOption, EnumWorkflowCoreCodeSettingKey, EnumWorkflowHistoryStatus, ErrorType, EventData, EventType, ExactOneValueInTableValidator, ExportAllMode, ExportItem, ExportItemType, ExportItemsMode, ExportManyModel, ExportManyResultModel, ExportModel, ExportService, ExportWithoutTemplateModel, Extension, ExtensionsConst, FILE_TYPES, FederationService, FieldCheckboxCrudList, FieldColExpandCrudList, FieldColReorderCrudList, FieldDefineHasTask, FieldDefineIsTaskFormControl, FieldDefineIsWorkflowControl, FieldFunctionCrudList, FieldIndexInDataSource, FieldOrderCrudList, FieldRowSpan, FieldWorkflowCodeInCrudForm, FileDataService, FileExplorerService, FileExtensions, FileManagerComponent, FileManagerControlSchema, FileManagerMode, FileManagerSetting, FileObjectService, FilePickerDialogComponent, FilePickerSetting, FileType, FileTypeFlag, FileUploadComponent, FileUploadControlSchema, FileUploadMode, FileUploadSetting, FileV4Service, Filter, FolderService, FormControlBase, FormControlBaseWithService, FormSchemaBase, FormSchemaBaseWithService, FormState, Gender, GenerateLinkDownloadDTO, GenericGuardChildService, GenericGuardService, GlobalService, GmailCorrector, GridInfo, GuardService, GuardSvService, HeightType, HighPerformanceService, HighlightPipe, HoSoDoiTacService, HtmlFormatPipe, HtmlPreviewControlSchema, HttpOptions, ImageService, ImageUploaderControlSchema, Include, KeyFieldGetRefType, KeyFilterStateByMenuCongViec, KeyFlashShow, KeyFunctionReload, KeyValueComponent, KeyValueControlSchema, LabelSchema, LabelWFNhomTrangThai, LabelWorkflowCoreStatus, LengthValidator, ListHelperService, LoaiPhieuDeXuat, LocalCacheService, LowerCorrector, LstEmailValidator, MA_THONG_BAO_PHAN_HE, MaActionBatDauQuyTrinh, ManagerType, MaskControlSchema, MasterDataItem, MasterDataPipe, MasterDataService, MenuService, MenuSource, MergeConfigModel, MethodResult, ModelKySoDonVi, ModelSchema, ModuleConfigService, MultiTranslateHttpLoader, MultipleReferenceDataFormatPipe, NameValidator, NotificationObjectType, NotificationService, NotifierService, NotifierType, NumberCompareValidator, NumberOnlyValidator, NumberRangeControlSchema, Operator, OrganizationFormatPipe, OrganizationNameFormatPipe, OrganizationPickerControlSchema, OrganizationService, OrganizationsFormatPipe, PageInfo, PageSetting, Pair, PassportValidator, PasswordValidator, Pattern, PercentControlSchema, PermissionBase, PermissionConstant, PermissionName, PermissionService, PermissionStorage, PermissionTypes, PermissionUtilsComponent, PersonalSetting, PhanQuyenModel, PhoneNumberValidator, PhoneValidator, PopupSize, PositionService, PrintService, PublicFunction, QueryBuilderComponent, QueryBuilderGroupComponent, QueryBuilderRuleComponent, QueryGroup, QueryRule, RELOAD_FILE_LIST, RadioButtonListControlSchema, RandomDataService, RefField, ReferenceDataFormatPipe, ReferenceTextControlSchema, RegexSplitFieldByItem, ReponseResult, RequiredFieldsValidator, RequiredValidator, RowColorOption, RowExcel, SHARE_COMPONENT_ID, SHARE_EVENT, SafeHtmlPipe, SafeStylePipe, SafeUrlPipe, SameValueValidator, ScalarValueValidator, SchemaBase, SecurePipe, ServiceFileUploadComponent, ServiceRequestModel, ServiceRequestModelV5, SessionTypes, SharedFolderType, SignalRService, SimpleDicItem, SimpleDictionary, Sort, SortDirs, SpanControlSchema, SplashComponentComponent, StartupBusinessComponentBase, StateMachinesService, Status, StatusAction, StatusGroup, StatusOption, StatusOrg, StatusUser, StorageService, StorageUpdatedService, StringCompareOption, StringFormatPipe, SummaryPipe, SwitchControlSchema, TBL_DM_COSODAOTAO_CONSTS, TBL_DM_PHONGHOC_CONSTS, TBL_KTX_NGUOITHUE_HOSO, TBL_TS_PHIEUDEXUAT, TBL_TS_TAISANCODINH_CONSTS, TabViewData, TableSchema, TagSeparator, TaiLieuComponent, TaxCodeValidator, TemplateConstant, TemplateControlSchema, TemplateInstanceService, TemplateService, TemplateTextItem, TemplateTextMany, TemplateTextV4Service, TemplateType, TemplateV4Service, TenContainer, TextAlign, TextAreaControlSchema, TextControlSchema, TextControlSchemaWithService, TitleSchema, TnClientCommand, TnClientService, TnComponentConfig, TnCustomScrollbarComponent, TnDatePipe, TnMenu, TnMenuItem, TnReorderableColumnDirective, TnReorderableRowDirective, TnSortIcon, TnSortableColumnDirective, TnTreeTableToggler, TnUser, TnxSharedModule, TopicReloadCongViecV5, TopicReloadCountCongViecV5, TopicReloadNotification, TrangThaiMasterData, TrangThais, TreeDataOption, TreeListBase, TreeNode, TrimCorrector, TrimEndCorrector, TrimStartCorrector, TypeDanhMucAPI, UniqueFieldInTableValidator, UniqueNumberService, UpperCorrector, UserGroupRealService, UserGroupService, UserOnlineDetailsService, UserPickerControlSchema, UserPickerDialogComponent, UserPublicInfo, UserService, UserType, UserV5Service, Validation, ValueType, VanBanPickerControlSchema, ViewContainerRefDirective, VirtualBaseService, WfAction, WfItem, WfMachine, WfSchema, WorkflowConfigAdvance, WorkflowCoreStatusEnum, WorkflowFieldStateCode, WorkflowHistoryService, WorkflowPermissionDetailService, WorkflowService, WorkflowSetting, WorkflowSettingNew, WorkflowSettingsService, WorkflowTargetDefaultValue, WrapPickerControlSchema, addDay, addZero, appendDefaultFilter, clearAll, clone, cloneOld, coreDeclaration, coreModuleImport, coreProvider, dataSourceIcon, dateDiff, fileTypeSource, genQueryFromFilters, getDateFromStringDateVN, getDayOfWeek, getEnvironmentByName, getEnvironmentData, getListMenuByName, getMenuData, getMonday, getStringDate, getStringDateTime, getStringDateVN, getStringDateVNLocal, getTimeSpan, isArray, isBoolean, isDate, isFunction, isLiteralObject, isNumber, isObjectOld, isRegular, isSimpleType, isString, isValidDate, isValidTime, keyUserSurveyLocal, loadRemoteModule, loadRemotePageModule, mapProperty, maximumPageSize, mergeJSON, mergeJSONOld, moduleConfigFunc, monthDiff, multipleSort, romanize, ɵ0$2 as ɵ0, ɵ1$1 as ɵ1, ɵ2$1 as ɵ2, ɵ3, ɵ4, LoggerService as ɵa, DropdownService as ɵb, ImageUploaderComponent as ɵba, CheckBoxListComponent as ɵbb, CoCauToChucPickerListComponent as ɵbc, CoCauToChucPickerListNewComponent as ɵbd, FormBuilderComponent as ɵbe, DatetimePickerComponent as ɵbf, DatetimePickerRangeComponent as ɵbg, EntityPickerBoxComponent as ɵbh, EntityPickerDataComponent as ɵbi, EntityPickerSelectedComponent as ɵbj, EntityPickerComponent as ɵbk, EntityPickerSearchFormComponent as ɵbl, EntityPickerDialogComponent as ɵbm, EntityPickerTreeDataComponent as ɵbn, EntityPickerTreeSelectedComponent as ɵbo, EntityPermissionComponent as ɵbp, EquationEditorComponent as ɵbq, MaskComponent as ɵbr, NumberPickerRangeComponent as ɵbs, PagingNextBackOnlyComponent as ɵbt, RadioButtonListComponent as ɵbu, VanBanPickerComponent as ɵbv, VanBanDenService as ɵbw, VanBanDiService as ɵbx, VanBanPickerDialogComponent as ɵby, VanbanDiPickerComponent as ɵbz, EntityPickerService as ɵc, VanbanDenPickerComponent as ɵca, CongViecPickerComponent as ɵcb, SettingsComponent as ɵcc, SettingsRowComponent as ɵcd, ShareLinkByPermissionComponent as ɵce, TnCheckboxComponent as ɵcf, TnDialogComponent as ɵcg, TnColorPickerComponent as ɵch, TnTinymceComponent as ɵci, TnTabViewComponent as ɵcj, TableDetailFormComponent as ɵck, FileIconPipe as ɵcl, FileSizePipe as ɵcm, QuickAddFormComponent as ɵcn, PreventShiftTabDirective as ɵco, TnTemplateDirective as ɵcp, UserPickerComponent as ɵcq, UserPickerBoxComponent as ɵcr, CoCauToChucTestService as ɵcs, TnAppHelpComponent as ɵct, PathNameService as ɵcu, HelperCurrentPageComponent as ɵcv, TnAppNotificationListComponent as ɵcw, TnAppNotificationComponent as ɵcx, FolderFormComponent as ɵcy, FileFormComponent as ɵcz, ExceptionHandlerService as ɵd, FileViewerComponent as ɵda, FileVersionListComponent as ɵdb, ViewDetailComponent as ɵdc, ReferenceTextBoxComponent as ɵdd, QrCodeGeneratorComponent as ɵde, AddNewsComponent as ɵdf, ArticleService as ɵdg, NewsCategoryService as ɵdh, UniversalLinkProcessorComponent as ɵdi, SignatureDetailComponent as ɵdj, KySoSimDanhSachChuKyComponent as ɵdk, KySoSimChuKyUserService as ɵdl, FileKySoSimComponent as ɵdm, KySoSimSignPDFService as ɵdn, TaiLieuCuaToiComponent as ɵdo, KhaiThacTaiLieuDungChungComponent as ɵdp, DanhMucDungChungService as ɵdq, TnTemplateComponent as ɵdr, DropdownSettingFormComponent as ɵds, CheckReadyComponent as ɵdt, TnAccordionTabComponent as ɵdu, SettingsWorkflowComponent as ɵdv, SettingAuthorizeButtonComponent as ɵdw, BasePermissionService as ɵdx, SettingsWorkflowNo1Component as ɵdy, HtmlPreviewComponent as ɵdz, ListBase as ɵe, ListComponentBase as ɵf, TreeTableComponent as ɵg, NotFoundComponent as ɵh, SendAccessTokenInterceptor as ɵi, LogInterceptor as ɵj, PermissionUtilsInterceptor as ɵk, TraceInterceptor as ɵl, EntityPermissionService as ɵm, ChatService as ɵn, MyDriveService as ɵo, ContentsService as ɵp, StatusExtendsService as ɵq, MessageBoardService as ɵr, FileExplorerNewService as ɵs, FileVersionService as ɵt, FileManagerService as ɵu, DM_ChucVuService as ɵv, RoleService as ɵw, AddressComponent as ɵx, AdvanceSearchComponent as ɵy, AutoCompletePickerComponent as ɵz };
|
|
48209
|
+
export { AccessDeniedComponent, Action, ActionChoYKienBase, ActionThuHoiBase, ActionUpdateModel, AddressControlSchema, AddressService, AdvanceSearchData, AdvanceSearchSetting, AfterViewCheckedComponent, AnnouncementReadsService, AnnouncementsService, AppComponentBase, AppListService, ApplicationContextService, ApprovalPipe, ArrayPair, AtLeastOneRowTableValidator, AuthenService, AuthorizeDirective, AutoCompleteControlSchema, AutoCompletePickerControlSchema, AutocompleteDatasourceComponent, AvatarUploaderComponent, BaseMenuService, BaseModule, BaseService, BooleanFormatPipe, ButtonAction, ButtonControlSchema, ButtonPermission, ButtonPermissions, ButtonTextActionCongViec, CONFIG_CALENDAR_VIETNAMESE, CalculationEngineService, CanBoHoSoService, CanBo_HoSo_CoCauToChucService, CauHinhWorkflowService, CccdValidator, CellExcel, ChatBoxComponent, ChatSendMessageBoxComponent, CheckBoxListControlSchema, CheckControlVisibleService, CheckDuplicateFieldsValidator, CheckDuplicateValidator, CheckboxControlSchema, ChipsControlSchema, ClientV5Service, CoCauToChucControlSchema, CoCauToChucNewService, CoCauToChucPickerComponent, CoCauToChucPickerControlSchema, CoCauToChucPickerControlSchemaNew, CoCauToChucService, CodeValidator, ColorBlack, ColorControlSchema, ColorPickerControlSchema, ColorWhite, Column, ColumnSchemaBase, ColumnSetting, ColumnSettingDetail, ComCtxConstants, CommandType, CommonDashboardComponent, CommonErrorCode, CommonLibComponent, CommonSearchFormComponent, CommonService, CompareValidator, ComponentBase, ComponentBaseWithButton, ComponentConstants, ComponentContextService, ConditionalBuilderService, CongViecPickerControlSchema, CongViecService, ContainerSchema, ControlTreeNode, ControlType, ConvertMoneyToWordPipe, CoreConfigService, CrudBase, CrudFormComponent, CrudFormCustomFunction, CrudFormData, CrudFormSetting, CrudListComponent, CrudListConfig, CrudListCustomFunction, CrudListData, CrudListHelper, CrudListSetting, CrudService, CustomControlSchema, CustomRouterService, CustomizeUiModel, CustomizeUiService, DanhmucApiService, DataExcel, DataFormBase, DataListBase, DataSourceControlSchema, DataSourceGioiTinh, DataSourcePermissionBase, DataSourceWorkflowCoreStatus, DataType, DateCompareValidator, DateTimeControlSchema, DateTimeRangeControlSchema, DbOrganizationOrganizationService, DbOrganizationPositionService, Deadline, DeadlineType, DhvinhGuardService, DialogModel, DmChucVuService, DmLoaiCongViecService, DomService, DownloadLinkService, DropdownComponent, DropdownControlSchema, DropdownOptions, DummyWorkflowCode, DynamicComponentService, ENUM_DON_VI_HANH_CHINH, EXPLORER_TYPES, EXPORT_VERSION_V4, EXPORT_VERSION_V5, EditFileCommand, EditorControlSchema, EformService, EmailValidator, EntityMedataDataSetting, EntityMetadataService, EntityPickerColumn, EntityPickerControlSchema, EntityWorkflowHistoryService, EntityWorkflowType, EnumActionType, EnumAppSwitcherCode, EnumCanBo, EnumControlPickerType, EnumFileLayout, EnumGetRefType, EnumGioiTinh, EnumHocHamHocVi, EnumLoaiVanBanBase$1 as EnumLoaiVanBanBase, EnumPermissionType, EnumProcessWorkflowType, EnumProperties, EnumStateType, EnumTargetType, EnumTypeSplash, EnumUserRule, EnumUserSource, EnumWFNhomTrangThai, EnumWorkflowCheckboxOption, EnumWorkflowCoreCodeSettingKey, EnumWorkflowHistoryStatus, ErrorType, EventData, EventType, ExactOneValueInTableValidator, ExportAllMode, ExportItem, ExportItemType, ExportItemsMode, ExportManyModel, ExportManyResultModel, ExportModel, ExportService, ExportWithoutTemplateModel, Extension, ExtensionsConst, FILE_TYPES, FederationService, FieldCheckboxCrudList, FieldColExpandCrudList, FieldColReorderCrudList, FieldDefineHasTask, FieldDefineIsTaskFormControl, FieldDefineIsWorkflowControl, FieldFunctionCrudList, FieldIndexInDataSource, FieldOrderCrudList, FieldRowSpan, FieldWorkflowCodeInCrudForm, FileDataService, FileExplorerService, FileExtensions, FileManagerComponent, FileManagerControlSchema, FileManagerMode, FileManagerSetting, FileObjectService, FilePickerDialogComponent, FilePickerSetting, FileType, FileTypeFlag, FileUploadComponent, FileUploadControlSchema, FileUploadMode, FileUploadSetting, FileV4Service, Filter, FolderService, FormControlBase, FormControlBaseWithService, FormSchemaBase, FormSchemaBaseWithService, FormState, Gender, GenerateLinkDownloadDTO, GenericGuardChildService, GenericGuardService, GlobalService, GmailCorrector, GridInfo, GuardService, GuardSvService, HeightType, HighPerformanceService, HighlightPipe, HoSoDoiTacService, HtmlFormatPipe, HtmlPreviewControlSchema, HttpOptions, ImageService, ImageUploaderControlSchema, Include, KeyFieldGetRefType, KeyFilterStateByMenuCongViec, KeyFlashShow, KeyFunctionReload, KeyValueComponent, KeyValueControlSchema, LabelSchema, LabelWFNhomTrangThai, LabelWorkflowCoreStatus, LengthValidator, ListHelperService, LoaiPhieuDeXuat, LocalCacheService, LowerCorrector, LstEmailValidator, MA_THONG_BAO_PHAN_HE, MaActionBatDauQuyTrinh, ManagerType, MaskControlSchema, MasterDataItem, MasterDataPipe, MasterDataService, MenuService, MenuSource, MergeConfigModel, MethodResult, ModelKySoDonVi, ModelSchema, ModuleConfigService, MultiTranslateHttpLoader, MultipleReferenceDataFormatPipe, NameValidator, NotificationObjectType, NotificationService, NotifierService, NotifierType, NumberCompareValidator, NumberOnlyValidator, NumberRangeControlSchema, Operator, OrganizationFormatPipe, OrganizationNameFormatPipe, OrganizationPickerControlSchema, OrganizationService, OrganizationsFormatPipe, PageInfo, PageSetting, Pair, PassportValidator, PasswordValidator, Pattern, PercentControlSchema, PermissionBase, PermissionConstant, PermissionName, PermissionService, PermissionStorage, PermissionTypes, PermissionUtilsComponent, PersonalSetting, PhanQuyenModel, PhoneNumberValidator, PhoneValidator, PopupSize, PositionService, PrintService, PublicFunction, QueryBuilderComponent, QueryBuilderGroupComponent, QueryBuilderRuleComponent, QueryGroup, QueryRule, RELOAD_FILE_LIST, RadioButtonListControlSchema, RandomDataService, RefField, ReferenceDataFormatPipe, ReferenceTextControlSchema, RegexSplitFieldByItem, ReponseResult, RequiredFieldsValidator, RequiredValidator, RowColorOption, RowExcel, SHARE_COMPONENT_ID, SHARE_EVENT, SafeHtmlPipe, SafeStylePipe, SafeUrlPipe, SameValueValidator, ScalarValueValidator, SchemaBase, SecurePipe, ServiceFileUploadComponent, ServiceRequestModel, ServiceRequestModelV5, SessionTypes, SharedFolderType, SignalRService, SimpleDicItem, SimpleDictionary, Sort, SortDirs, SpanControlSchema, SplashComponentComponent, StartupBusinessComponentBase, StateMachinesService, Status, StatusAction, StatusGroup, StatusOption, StatusOrg, StatusUser, StorageService, StorageUpdatedService, StringCompareOption, StringFormatPipe, SummaryPipe, SwitchControlSchema, TBL_DM_COSODAOTAO_CONSTS, TBL_DM_PHONGHOC_CONSTS, TBL_KTX_NGUOITHUE_HOSO, TBL_TS_PHIEUDEXUAT, TBL_TS_TAISANCODINH_CONSTS, TabViewData, TableSchema, TagSeparator, TaiLieuComponent, TaxCodeValidator, TemplateConstant, TemplateControlSchema, TemplateInstanceService, TemplateService, TemplateTextItem, TemplateTextMany, TemplateTextV4Service, TemplateType, TemplateV4Service, TenContainer, TextAlign, TextAreaControlSchema, TextControlSchema, TextControlSchemaWithService, TitleSchema, TnClientCommand, TnClientService, TnComponentConfig, TnCustomScrollbarComponent, TnDatePipe, TnMenu, TnMenuItem, TnReorderableColumnDirective, TnReorderableRowDirective, TnSortIcon, TnSortableColumnDirective, TnTreeTableToggler, TnUser, TnxSharedModule, TopicReloadCongViecV5, TopicReloadCountCongViecV5, TopicReloadNotification, TrangThaiMasterData, TrangThais, TreeDataOption, TreeListBase, TreeNode, TrimCorrector, TrimEndCorrector, TrimStartCorrector, TypeDanhMucAPI, UniqueFieldInTableValidator, UniqueNumberService, UpperCorrector, UserGroupRealService, UserGroupService, UserOnlineDetailsService, UserPickerControlSchema, UserPickerDialogComponent, UserPublicInfo, UserService, UserType, UserV5Service, Validation, ValueType, VanBanPickerControlSchema, ViewContainerRefDirective, VirtualBaseService, WfAction, WfItem, WfMachine, WfSchema, WorkflowConfigAdvance, WorkflowCoreStatusEnum, WorkflowFieldStateCode, WorkflowHistoryService, WorkflowPermissionDetailService, WorkflowService, WorkflowSetting, WorkflowSettingNew, WorkflowSettingsService, WorkflowTargetDefaultValue, WrapPickerControlSchema, addDay, addZero, appendDefaultFilter, clearAll, clone, cloneOld, coreDeclaration, coreModuleImport, coreProvider, dataSourceIcon, dateDiff, fileTypeSource, genQueryFromFilters, getDateFromStringDateVN, getDayOfWeek, getEnvironmentByName, getEnvironmentData, getListMenuByName, getMenuData, getMonday, getStringDate, getStringDateTime, getStringDateVN, getStringDateVNLocal, getTimeSpan, isArray, isBoolean, isDate, isFunction, isLiteralObject, isNumber, isObjectOld, isRegular, isSimpleType, isString, isValidDate, isValidTime, keyUserSurveyLocal, loadRemoteModule, loadRemotePageModule, mapProperty, maximumPageSize, mergeJSON, mergeJSONOld, moduleConfigFunc, monthDiff, multipleSort, romanize, ɵ0$2 as ɵ0, ɵ1$1 as ɵ1, ɵ2$1 as ɵ2, ɵ3, ɵ4, LoggerService as ɵa, DropdownService as ɵb, ImageUploaderComponent as ɵba, CheckBoxListComponent as ɵbb, CoCauToChucPickerListComponent as ɵbc, CoCauToChucPickerListNewComponent as ɵbd, FormBuilderComponent as ɵbe, DatetimePickerComponent as ɵbf, DatetimePickerRangeComponent as ɵbg, EntityPickerBoxComponent as ɵbh, EntityPickerDataComponent as ɵbi, EntityPickerSelectedComponent as ɵbj, EntityPickerComponent as ɵbk, EntityPickerSearchFormComponent as ɵbl, EntityPickerDialogComponent as ɵbm, EntityPickerTreeDataComponent as ɵbn, EntityPickerTreeSelectedComponent as ɵbo, EntityPermissionComponent as ɵbp, EquationEditorComponent as ɵbq, MaskComponent as ɵbr, NumberPickerRangeComponent as ɵbs, PagingNextBackOnlyComponent as ɵbt, RadioButtonListComponent as ɵbu, VanBanPickerComponent as ɵbv, VanBanDenService as ɵbw, VanBanDiService as ɵbx, VanBanPickerDialogComponent as ɵby, VanbanDiPickerComponent as ɵbz, EntityPickerService as ɵc, VanbanDenPickerComponent as ɵca, CongViecPickerComponent as ɵcb, SettingsComponent as ɵcc, SettingsRowComponent as ɵcd, ShareLinkByPermissionComponent as ɵce, TnCheckboxComponent as ɵcf, TnDialogComponent as ɵcg, TnColorPickerComponent as ɵch, TnTinymceComponent as ɵci, TnTabViewComponent as ɵcj, TableDetailFormComponent as ɵck, FileIconPipe as ɵcl, FileSizePipe as ɵcm, QuickAddFormComponent as ɵcn, PreventShiftTabDirective as ɵco, TnTemplateDirective as ɵcp, UserPickerComponent as ɵcq, UserPickerBoxComponent as ɵcr, CoCauToChucTestService as ɵcs, TnAppHelpComponent as ɵct, PathNameService as ɵcu, HelperCurrentPageComponent as ɵcv, TnAppNotificationListComponent as ɵcw, TnAppNotificationComponent as ɵcx, FolderFormComponent as ɵcy, FileFormComponent as ɵcz, ExceptionHandlerService as ɵd, FileViewerComponent as ɵda, FileVersionListComponent as ɵdb, ViewDetailComponent as ɵdc, ReferenceTextBoxComponent as ɵdd, QrCodeGeneratorComponent as ɵde, AddNewsComponent as ɵdf, ArticleService as ɵdg, NewsCategoryService as ɵdh, UniversalLinkProcessorComponent as ɵdi, SignatureDetailComponent as ɵdj, KySoSimDanhSachChuKyComponent as ɵdk, KySoSimChuKyUserService as ɵdl, FileKySoSimComponent as ɵdm, KySoSimSignPDFService as ɵdn, TaiLieuCuaToiComponent as ɵdo, KhaiThacTaiLieuDungChungComponent as ɵdp, DanhMucDungChungService as ɵdq, TnTemplateComponent as ɵdr, DropdownSettingFormComponent as ɵds, CheckReadyComponent as ɵdt, TnAccordionTabComponent as ɵdu, SettingsWorkflowComponent as ɵdv, SettingAuthorizeButtonComponent as ɵdw, BasePermissionService as ɵdx, SettingsWorkflowNo1Component as ɵdy, HtmlPreviewComponent as ɵdz, ListBase as ɵe, AUTOCOMPLETE_VALUE_ACCESSOR as ɵea, AutoComplete as ɵeb, AutoCompleteModule as ɵec, ListComponentBase as ɵf, TreeTableComponent as ɵg, NotFoundComponent as ɵh, SendAccessTokenInterceptor as ɵi, LogInterceptor as ɵj, PermissionUtilsInterceptor as ɵk, TraceInterceptor as ɵl, EntityPermissionService as ɵm, ChatService as ɵn, MyDriveService as ɵo, ContentsService as ɵp, StatusExtendsService as ɵq, MessageBoardService as ɵr, FileExplorerNewService as ɵs, FileVersionService as ɵt, FileManagerService as ɵu, DM_ChucVuService as ɵv, RoleService as ɵw, AddressComponent as ɵx, AdvanceSearchComponent as ɵy, AutoCompletePickerComponent as ɵz };
|
|
47511
48210
|
//# sourceMappingURL=tnx-shared.js.map
|