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.
@@ -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