@sd-angular/core 0.0.1041 → 0.0.1045
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/assets/scss/quill-mention/quill-mention.css +55 -0
- package/assets/scss/sd-core.scss +1 -0
- package/autocomplete/src/lib/autocomplete.component.d.ts +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.js +4 -1
- package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-chip.umd.js +1 -1
- package/bundles/sd-angular-core-chip.umd.min.js +1 -1
- package/bundles/sd-angular-core-chip.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-comment.umd.js +17 -16
- package/bundles/sd-angular-core-comment.umd.js.map +1 -1
- package/bundles/sd-angular-core-comment.umd.min.js +2 -2
- package/bundles/sd-angular-core-comment.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.js +73 -18
- package/bundles/sd-angular-core-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.min.js +2 -2
- package/bundles/sd-angular-core-editor.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-form.umd.js +6 -4
- package/bundles/sd-angular-core-form.umd.js.map +1 -1
- package/bundles/sd-angular-core-form.umd.min.js +1 -1
- package/bundles/sd-angular-core-form.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-modal-custom.umd.js +487 -0
- package/bundles/sd-angular-core-modal-custom.umd.js.map +1 -0
- package/bundles/sd-angular-core-modal-custom.umd.min.js +16 -0
- package/bundles/sd-angular-core-modal-custom.umd.min.js.map +1 -0
- package/bundles/sd-angular-core-modal-resizable.umd.js +487 -0
- package/bundles/sd-angular-core-modal-resizable.umd.js.map +1 -0
- package/bundles/sd-angular-core-modal-resizable.umd.min.js +16 -0
- package/bundles/sd-angular-core-modal-resizable.umd.min.js.map +1 -0
- package/bundles/sd-angular-core-setting.umd.js +1 -1
- package/bundles/sd-angular-core-setting.umd.js.map +1 -1
- package/bundles/sd-angular-core-setting.umd.min.js +1 -1
- package/bundles/sd-angular-core-setting.umd.min.js.map +1 -1
- package/bundles/sd-angular-core.umd.js +4 -4
- package/bundles/sd-angular-core.umd.min.js +1 -1
- package/bundles/sd-angular-core.umd.min.js.map +1 -1
- package/chip/sd-angular-core-chip.metadata.json +1 -1
- package/comment/sd-angular-core-comment.metadata.json +1 -1
- package/comment/src/lib/comment.model.d.ts +11 -0
- package/editor/sd-angular-core-editor.metadata.json +1 -1
- package/editor/src/lib/editor.component.d.ts +17 -3
- package/esm2015/autocomplete/src/lib/autocomplete.component.js +6 -3
- package/esm2015/chip/src/lib/chip.component.js +1 -1
- package/esm2015/comment/src/lib/comment.component.js +5 -5
- package/esm2015/comment/src/lib/comment.model.js +1 -1
- package/esm2015/comment/src/lib/comment.module.js +3 -1
- package/esm2015/editor/src/lib/editor.component.js +70 -14
- package/esm2015/editor/src/lib/editor.module.js +4 -2
- package/esm2015/form/src/lib/form.module.js +4 -1
- package/esm2015/modal-custom/index.js +2 -0
- package/esm2015/modal-custom/sd-angular-core-modal-custom.js +5 -0
- package/esm2015/modal-custom/src/lib/modal-custom/modal-custom.component.js +123 -0
- package/esm2015/modal-custom/src/lib/modal-custom.module.js +30 -0
- package/esm2015/modal-custom/src/public-api.js +6 -0
- package/esm2015/modal-resizable/index.js +2 -0
- package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js +5 -0
- package/esm2015/modal-resizable/src/lib/modal-resizable/modal-resizable.component.js +123 -0
- package/esm2015/modal-resizable/src/lib/modal-resizable.module.js +30 -0
- package/esm2015/modal-resizable/src/public-api.js +6 -0
- package/esm2015/public-api.js +2 -1
- package/esm2015/setting/src/lib/setting.service.js +2 -2
- package/fesm2015/sd-angular-core-autocomplete.js +5 -2
- package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
- package/fesm2015/sd-angular-core-chip.js +1 -1
- package/fesm2015/sd-angular-core-comment.js +6 -4
- package/fesm2015/sd-angular-core-comment.js.map +1 -1
- package/fesm2015/sd-angular-core-editor.js +72 -15
- package/fesm2015/sd-angular-core-editor.js.map +1 -1
- package/fesm2015/sd-angular-core-form.js +3 -0
- package/fesm2015/sd-angular-core-form.js.map +1 -1
- package/fesm2015/sd-angular-core-modal-custom.js +161 -0
- package/fesm2015/sd-angular-core-modal-custom.js.map +1 -0
- package/fesm2015/sd-angular-core-modal-resizable.js +161 -0
- package/fesm2015/sd-angular-core-modal-resizable.js.map +1 -0
- package/fesm2015/sd-angular-core-setting.js +1 -1
- package/fesm2015/sd-angular-core-setting.js.map +1 -1
- package/fesm2015/sd-angular-core.js +1 -0
- package/fesm2015/sd-angular-core.js.map +1 -1
- package/form/sd-angular-core-form.metadata.json +1 -1
- package/modal-custom/index.d.ts +1 -0
- package/modal-custom/package.json +12 -0
- package/modal-custom/sd-angular-core-modal-custom.d.ts +4 -0
- package/modal-custom/sd-angular-core-modal-custom.metadata.json +1 -0
- package/modal-custom/src/lib/modal-custom/modal-custom.component.d.ts +31 -0
- package/modal-custom/src/lib/modal-custom.module.d.ts +2 -0
- package/modal-custom/src/public-api.d.ts +2 -0
- package/modal-resizable/index.d.ts +1 -0
- package/modal-resizable/package.json +12 -0
- package/modal-resizable/sd-angular-core-modal-resizable.d.ts +4 -0
- package/modal-resizable/sd-angular-core-modal-resizable.metadata.json +1 -0
- package/modal-resizable/src/lib/modal-resizable/modal-resizable.component.d.ts +31 -0
- package/modal-resizable/src/lib/modal-resizable.module.d.ts +2 -0
- package/modal-resizable/src/public-api.d.ts +2 -0
- package/package.json +3 -2
- package/public-api.d.ts +1 -0
- package/{sd-angular-core-0.0.1041.tgz → sd-angular-core-0.0.1045.tgz} +0 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
|
|
2
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, ComponentFactoryResolver, ApplicationRef, Injector, ChangeDetectorRef, ViewChild, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import { DomPortalOutlet, CdkPortal, PortalModule } from '@angular/cdk/portal';
|
|
4
|
+
import { v4 } from 'uuid';
|
|
5
|
+
import { SdLoadingService } from '@sd-angular/core/loading';
|
|
6
|
+
import $ from 'jquery';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
9
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
10
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
11
|
+
import { SdButtonModule } from '@sd-angular/core/button';
|
|
12
|
+
|
|
13
|
+
var _embeddedViewRef, _drawMiniumBar;
|
|
14
|
+
class SdModalCustom {
|
|
15
|
+
constructor(cfr, ar, injector, ref, loadingService) {
|
|
16
|
+
this.cfr = cfr;
|
|
17
|
+
this.ar = ar;
|
|
18
|
+
this.injector = injector;
|
|
19
|
+
this.ref = ref;
|
|
20
|
+
this.loadingService = loadingService;
|
|
21
|
+
this.id = `I${v4()}`;
|
|
22
|
+
this.width = '480px';
|
|
23
|
+
this.editingChanged = new EventEmitter();
|
|
24
|
+
_embeddedViewRef.set(this, void 0);
|
|
25
|
+
this.isEditing = false;
|
|
26
|
+
this.isOpened = false;
|
|
27
|
+
this.isHover = false;
|
|
28
|
+
this.isLoading = false;
|
|
29
|
+
this.isMinium = false;
|
|
30
|
+
this.open = () => {
|
|
31
|
+
this.ref.markForCheck();
|
|
32
|
+
this.isOpened = true;
|
|
33
|
+
// console.log('OPEN isMinium' + this.id, this.isMinium);
|
|
34
|
+
// tinh toan width maxium lần đầu khi không ở trạng thái minium
|
|
35
|
+
if (!$('#' + this.id).hasClass('c-minium')) {
|
|
36
|
+
setTimeout(() => {
|
|
37
|
+
const maxiumWidth = $('#' + this.id).width();
|
|
38
|
+
if (maxiumWidth > 0) {
|
|
39
|
+
$('#' + this.id).attr('data-width', maxiumWidth);
|
|
40
|
+
}
|
|
41
|
+
$('#' + this.id).removeClass('c-closed');
|
|
42
|
+
}, 100);
|
|
43
|
+
}
|
|
44
|
+
this.maxium();
|
|
45
|
+
};
|
|
46
|
+
this.close = () => {
|
|
47
|
+
this.ref.markForCheck();
|
|
48
|
+
this.isOpened = false;
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
$('#' + this.id).css({ width: '0px', right: '0px' }).removeClass('c-minium').addClass('c-closed');
|
|
51
|
+
}, 100);
|
|
52
|
+
this.stopLoading();
|
|
53
|
+
__classPrivateFieldGet(this, _drawMiniumBar).call(this);
|
|
54
|
+
};
|
|
55
|
+
this.minium = () => {
|
|
56
|
+
this.ref.markForCheck();
|
|
57
|
+
this.isMinium = true;
|
|
58
|
+
// console.log('MINIUM isMinium' + this.id, this.isMinium);
|
|
59
|
+
__classPrivateFieldGet(this, _drawMiniumBar).call(this);
|
|
60
|
+
};
|
|
61
|
+
this.maxium = () => {
|
|
62
|
+
this.ref.markForCheck();
|
|
63
|
+
this.isMinium = false;
|
|
64
|
+
// console.log('MAXIUM isMinium' + this.id, this.isMinium);
|
|
65
|
+
__classPrivateFieldGet(this, _drawMiniumBar).call(this);
|
|
66
|
+
};
|
|
67
|
+
_drawMiniumBar.set(this, () => {
|
|
68
|
+
setTimeout(() => {
|
|
69
|
+
let totalRight = 8;
|
|
70
|
+
const miniumWidth = 300;
|
|
71
|
+
$('.modal-custom').each((index, item) => {
|
|
72
|
+
if ($(item).hasClass('c-minium')) {
|
|
73
|
+
$(item).css({ width: 300 + 'px', right: totalRight + 'px' });
|
|
74
|
+
totalRight += miniumWidth + 8;
|
|
75
|
+
}
|
|
76
|
+
else if (!$(item).hasClass('c-closed')) {
|
|
77
|
+
const maxiumWidth = parseInt($(item).attr('data-width'), 0);
|
|
78
|
+
if (maxiumWidth > 0) {
|
|
79
|
+
$(item).css({ width: maxiumWidth + 'px', right: totalRight + 'px' });
|
|
80
|
+
totalRight += maxiumWidth + 8;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}, 100);
|
|
85
|
+
});
|
|
86
|
+
this.startLoading = () => {
|
|
87
|
+
this.isLoading = true;
|
|
88
|
+
this.loadingService.stop();
|
|
89
|
+
this.loadingService.start(`#${this.id}`);
|
|
90
|
+
};
|
|
91
|
+
this.stopLoading = () => {
|
|
92
|
+
this.isLoading = false;
|
|
93
|
+
this.loadingService.stop();
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
ngAfterViewInit() {
|
|
97
|
+
__classPrivateFieldSet(this, _embeddedViewRef, new DomPortalOutlet(document.body, this.cfr, this.ar, this.injector).attachTemplatePortal(this.portal));
|
|
98
|
+
}
|
|
99
|
+
ngOnDestroy() {
|
|
100
|
+
__classPrivateFieldGet(this, _embeddedViewRef).destroy();
|
|
101
|
+
}
|
|
102
|
+
toggleEditable() {
|
|
103
|
+
this.isEditing = !this.isEditing;
|
|
104
|
+
this.editingChanged.emit(this.isEditing);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
_embeddedViewRef = new WeakMap(), _drawMiniumBar = new WeakMap();
|
|
108
|
+
SdModalCustom.decorators = [
|
|
109
|
+
{ type: Component, args: [{
|
|
110
|
+
selector: 'sd-modal-custom',
|
|
111
|
+
template: "<ng-template cdkPortal>\r\n <div [id]=\"id\" class=\"modal-custom\" [ngStyle]=\"{'width': width}\"\r\n [ngClass]=\"{'modal-custom--active': isOpened,'modal-custom--loading': isLoading, 'c-minium': isMinium}\"\r\n (mouseover)=\"isHover = true\" (mouseout)=\"isHover = false\">\r\n <ng-container *ngIf=\"isOpened\">\r\n <div class=\"modal-custom__header media align-items-center\">\r\n <div class=\"modal-custom__title media-body\">\r\n <ng-content select=\"[sdTitle]\"></ng-content>\r\n </div>\r\n <button type=\"button\" class=\"c-action--white c-min\" (click)=\"minium()\" *ngIf=\"!isMinium\" mat-icon-button\r\n title=\"Thu nh\u1ECF\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"c-action--white c-max\" (click)=\"maxium()\" *ngIf=\"isMinium\" mat-icon-button\r\n title=\"Ph\u00F3ng to\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"c-action--white\" (click)=\"close()\" mat-icon-button title=\"\u0110\u00F3ng\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div *ngIf=\"isOpened\" class=\"modal-custom__body\">\r\n <div class=\"modal-custom__content\">\r\n <ng-content select=\"[sdBody]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"modal-custom__footer\">\r\n <ng-content select=\"[sdFooter]\"></ng-content>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</ng-template>",
|
|
112
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
113
|
+
styles: [".modal-custom{background-color:#fff;border-radius:4px 4px 0 0;bottom:0;box-shadow:0 .4px .8px rgba(0,0,0,.1),0 3px 6px rgba(0,0,0,.2);display:flex;flex-direction:column;opacity:0;pointer-events:none;position:fixed;right:12px;top:80px;transform:translate3d(0,100%,0);transition:all .3s ease-in-out;visibility:hidden;z-index:999}.modal-custom button.c-action--white:focus{outline:none!important}.modal-custom.c-minium-of-list{bottom:0;opacity:1;pointer-events:all;top:auto;transform:translateZ(0);visibility:visible}.modal-custom.c-minium{top:auto}.modal-custom.c-minium .modal-custom__body,.modal-custom.c-minium .modal-custom__footer{display:none}.c-action{color:#212121}.c-action:focus{outline:none}.c-action--white{color:#fff}.c-action--white.c-min{margin-bottom:-12px}.c-action--white.c-max{margin-top:-12px}.modal-custom__icon{background:transparent;border:0;color:#212121;outline:none;overflow:hidden}.modal-custom__icon .mat-icon{float:left}.modal-custom__header{background-color:#5d6165;border-radius:4px 4px 0 0;color:#fff;min-height:40px;padding:0 16px}.modal-custom__body{flex:1;position:relative}.modal-custom__content{bottom:0;left:0;overflow:auto;padding:8px 16px 16px;position:absolute;right:0;top:0}.modal-custom__footer{border-top:1px solid #dde0e5;padding:5px 0}.modal-custom-backdrop{background:none;border:0;bottom:0;height:100%;left:0;outline:none!important;position:fixed;right:0;top:0;transition:all .3s ease-in-out;width:100%;z-index:99}.modal-custom-backdrop--active{background-color:rgba(0,0,0,.4)}.modal-custom--active{opacity:1;pointer-events:all;transform:translateZ(0);visibility:visible}.modal-custom__title{font-size:14px;font-weight:500;line-height:20px}"]
|
|
114
|
+
},] }
|
|
115
|
+
];
|
|
116
|
+
SdModalCustom.ctorParameters = () => [
|
|
117
|
+
{ type: ComponentFactoryResolver },
|
|
118
|
+
{ type: ApplicationRef },
|
|
119
|
+
{ type: Injector },
|
|
120
|
+
{ type: ChangeDetectorRef },
|
|
121
|
+
{ type: SdLoadingService }
|
|
122
|
+
];
|
|
123
|
+
SdModalCustom.propDecorators = {
|
|
124
|
+
portal: [{ type: ViewChild, args: [CdkPortal,] }],
|
|
125
|
+
editable: [{ type: Input }],
|
|
126
|
+
width: [{ type: Input }],
|
|
127
|
+
editingChanged: [{ type: Output }]
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
class SdModalCustomModule {
|
|
131
|
+
}
|
|
132
|
+
SdModalCustomModule.decorators = [
|
|
133
|
+
{ type: NgModule, args: [{
|
|
134
|
+
imports: [
|
|
135
|
+
CommonModule,
|
|
136
|
+
MatIconModule,
|
|
137
|
+
MatDialogModule,
|
|
138
|
+
MatButtonModule,
|
|
139
|
+
SdButtonModule,
|
|
140
|
+
PortalModule
|
|
141
|
+
],
|
|
142
|
+
declarations: [
|
|
143
|
+
SdModalCustom
|
|
144
|
+
],
|
|
145
|
+
exports: [
|
|
146
|
+
SdModalCustom
|
|
147
|
+
],
|
|
148
|
+
providers: []
|
|
149
|
+
},] }
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
/*
|
|
153
|
+
* Public API Surface of superdev-angular-core
|
|
154
|
+
*/
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Generated bundle index. Do not edit.
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
export { SdModalCustom, SdModalCustomModule };
|
|
161
|
+
//# sourceMappingURL=sd-angular-core-modal-custom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sd-angular-core-modal-custom.js","sources":["../../../../projects/sd-core/modal-custom/src/lib/modal-custom/modal-custom.component.ts","../../../../projects/sd-core/modal-custom/src/lib/modal-custom.module.ts","../../../../projects/sd-core/modal-custom/src/public-api.ts","../../../../projects/sd-core/modal-custom/sd-angular-core-modal-custom.ts"],"sourcesContent":["import {\r\n Component,\r\n ViewChild,\r\n ComponentFactoryResolver,\r\n ApplicationRef,\r\n Injector,\r\n EmbeddedViewRef,\r\n AfterViewInit,\r\n OnDestroy,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport {CdkPortal, DomPortalOutlet} from '@angular/cdk/portal';\r\nimport * as uuid from 'uuid';\r\nimport {SdLoadingService} from '@sd-angular/core/loading';\r\nimport $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'sd-modal-custom',\r\n templateUrl: './modal-custom.component.html',\r\n styleUrls: ['./modal-custom.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdModalCustom implements AfterViewInit, OnDestroy {\r\n id = `I${uuid.v4()}`;\r\n @ViewChild(CdkPortal) portal: CdkPortal;\r\n @Input() editable: boolean;\r\n @Input() width = '480px';\r\n @Output() editingChanged = new EventEmitter<boolean>();\r\n #embeddedViewRef: EmbeddedViewRef<any>;\r\n isEditing = false;\r\n isOpened = false;\r\n isHover = false;\r\n isLoading = false;\r\n isMinium = false;\r\n\r\n constructor(\r\n private cfr: ComponentFactoryResolver,\r\n private ar: ApplicationRef,\r\n private injector: Injector,\r\n private ref: ChangeDetectorRef,\r\n private loadingService: SdLoadingService\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#embeddedViewRef = new DomPortalOutlet(\r\n document.body,\r\n this.cfr,\r\n this.ar,\r\n this.injector\r\n ).attachTemplatePortal(this.portal);\r\n }\r\n\r\n open = () => {\r\n this.ref.markForCheck();\r\n this.isOpened = true;\r\n // console.log('OPEN isMinium' + this.id, this.isMinium);\r\n\r\n // tinh toan width maxium lần đầu khi không ở trạng thái minium\r\n if (!$('#' + this.id).hasClass('c-minium')) {\r\n setTimeout(() => {\r\n const maxiumWidth = $('#' + this.id).width();\r\n if (maxiumWidth > 0) {\r\n $('#' + this.id).attr('data-width', maxiumWidth);\r\n }\r\n $('#' + this.id).removeClass('c-closed');\r\n }, 100);\r\n }\r\n\r\n this.maxium();\r\n }\r\n\r\n close = () => {\r\n this.ref.markForCheck();\r\n this.isOpened = false;\r\n setTimeout(() => {\r\n $('#' + this.id).css({width: '0px', right: '0px'}).removeClass('c-minium').addClass('c-closed');\r\n }, 100);\r\n this.stopLoading();\r\n\r\n this.#drawMiniumBar();\r\n }\r\n\r\n minium = () => {\r\n this.ref.markForCheck();\r\n this.isMinium = true;\r\n // console.log('MINIUM isMinium' + this.id, this.isMinium);\r\n this.#drawMiniumBar();\r\n }\r\n\r\n maxium = () => {\r\n this.ref.markForCheck();\r\n this.isMinium = false;\r\n // console.log('MAXIUM isMinium' + this.id, this.isMinium);\r\n this.#drawMiniumBar();\r\n }\r\n\r\n #drawMiniumBar = () => {\r\n setTimeout(() => {\r\n let totalRight = 8;\r\n const miniumWidth = 300;\r\n $('.modal-custom').each((index, item) => {\r\n if ($(item).hasClass('c-minium')) {\r\n $(item).css({width: 300 + 'px', right: totalRight + 'px'});\r\n totalRight += miniumWidth + 8;\r\n } else if (!$(item).hasClass('c-closed')) {\r\n const maxiumWidth = parseInt($(item).attr('data-width'), 0);\r\n if (maxiumWidth > 0) {\r\n $(item).css({width: maxiumWidth + 'px', right: totalRight + 'px'});\r\n totalRight += maxiumWidth + 8;\r\n }\r\n }\r\n\r\n });\r\n }, 100);\r\n\r\n }\r\n\r\n startLoading = () => {\r\n this.isLoading = true;\r\n this.loadingService.stop();\r\n this.loadingService.start(`#${this.id}`);\r\n }\r\n\r\n stopLoading = () => {\r\n this.isLoading = false;\r\n this.loadingService.stop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#embeddedViewRef.destroy();\r\n }\r\n\r\n toggleEditable() {\r\n this.isEditing = !this.isEditing;\r\n this.editingChanged.emit(this.isEditing);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { SdButtonModule } from '@sd-angular/core/button';\r\nimport { SdModalCustom } from './modal-custom/modal-custom.component';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n SdButtonModule,\r\n PortalModule\r\n ],\r\n declarations: [\r\n SdModalCustom\r\n ],\r\n exports: [\r\n SdModalCustom\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdModalCustomModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/modal-custom/modal-custom.component';\r\n\r\nexport * from './lib/modal-custom.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from 'tslib';
|
|
2
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, ComponentFactoryResolver, ApplicationRef, Injector, ChangeDetectorRef, ViewChild, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import { DomPortalOutlet, CdkPortal, PortalModule } from '@angular/cdk/portal';
|
|
4
|
+
import { v4 } from 'uuid';
|
|
5
|
+
import { SdLoadingService } from '@sd-angular/core/loading';
|
|
6
|
+
import $ from 'jquery';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
9
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
10
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
11
|
+
import { SdButtonModule } from '@sd-angular/core/button';
|
|
12
|
+
|
|
13
|
+
var _embeddedViewRef, _drawMiniumBar;
|
|
14
|
+
class SdModalResizable {
|
|
15
|
+
constructor(cfr, ar, injector, ref, loadingService) {
|
|
16
|
+
this.cfr = cfr;
|
|
17
|
+
this.ar = ar;
|
|
18
|
+
this.injector = injector;
|
|
19
|
+
this.ref = ref;
|
|
20
|
+
this.loadingService = loadingService;
|
|
21
|
+
this.id = `I${v4()}`;
|
|
22
|
+
this.width = '480px';
|
|
23
|
+
this.editingChanged = new EventEmitter();
|
|
24
|
+
_embeddedViewRef.set(this, void 0);
|
|
25
|
+
this.isEditing = false;
|
|
26
|
+
this.isOpened = false;
|
|
27
|
+
this.isHover = false;
|
|
28
|
+
this.isLoading = false;
|
|
29
|
+
this.isMinium = false;
|
|
30
|
+
this.open = () => {
|
|
31
|
+
this.ref.markForCheck();
|
|
32
|
+
this.isOpened = true;
|
|
33
|
+
// console.log('OPEN isMinium' + this.id, this.isMinium);
|
|
34
|
+
// tinh toan width maxium lần đầu khi không ở trạng thái minium
|
|
35
|
+
if (!$('#' + this.id).hasClass('c-minium')) {
|
|
36
|
+
setTimeout(() => {
|
|
37
|
+
const maxiumWidth = $('#' + this.id).width();
|
|
38
|
+
if (maxiumWidth > 0) {
|
|
39
|
+
$('#' + this.id).attr('data-width', maxiumWidth);
|
|
40
|
+
}
|
|
41
|
+
$('#' + this.id).removeClass('c-closed');
|
|
42
|
+
}, 100);
|
|
43
|
+
}
|
|
44
|
+
this.maxium();
|
|
45
|
+
};
|
|
46
|
+
this.close = () => {
|
|
47
|
+
this.ref.markForCheck();
|
|
48
|
+
this.isOpened = false;
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
$('#' + this.id).css({ width: '0px', right: '0px' }).removeClass('c-minium').addClass('c-closed');
|
|
51
|
+
}, 100);
|
|
52
|
+
this.stopLoading();
|
|
53
|
+
__classPrivateFieldGet(this, _drawMiniumBar).call(this);
|
|
54
|
+
};
|
|
55
|
+
this.minium = () => {
|
|
56
|
+
this.ref.markForCheck();
|
|
57
|
+
this.isMinium = true;
|
|
58
|
+
// console.log('MINIUM isMinium' + this.id, this.isMinium);
|
|
59
|
+
__classPrivateFieldGet(this, _drawMiniumBar).call(this);
|
|
60
|
+
};
|
|
61
|
+
this.maxium = () => {
|
|
62
|
+
this.ref.markForCheck();
|
|
63
|
+
this.isMinium = false;
|
|
64
|
+
// console.log('MAXIUM isMinium' + this.id, this.isMinium);
|
|
65
|
+
__classPrivateFieldGet(this, _drawMiniumBar).call(this);
|
|
66
|
+
};
|
|
67
|
+
_drawMiniumBar.set(this, () => {
|
|
68
|
+
setTimeout(() => {
|
|
69
|
+
let totalRight = 8;
|
|
70
|
+
const miniumWidth = 300;
|
|
71
|
+
$('.modal-custom').each((index, item) => {
|
|
72
|
+
if ($(item).hasClass('c-minium')) {
|
|
73
|
+
$(item).css({ width: 300 + 'px', right: totalRight + 'px' });
|
|
74
|
+
totalRight += miniumWidth + 8;
|
|
75
|
+
}
|
|
76
|
+
else if (!$(item).hasClass('c-closed')) {
|
|
77
|
+
const maxiumWidth = parseInt($(item).attr('data-width'), 0);
|
|
78
|
+
if (maxiumWidth > 0) {
|
|
79
|
+
$(item).css({ width: maxiumWidth + 'px', right: totalRight + 'px' });
|
|
80
|
+
totalRight += maxiumWidth + 8;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}, 100);
|
|
85
|
+
});
|
|
86
|
+
this.startLoading = () => {
|
|
87
|
+
this.isLoading = true;
|
|
88
|
+
this.loadingService.stop();
|
|
89
|
+
this.loadingService.start(`#${this.id}`);
|
|
90
|
+
};
|
|
91
|
+
this.stopLoading = () => {
|
|
92
|
+
this.isLoading = false;
|
|
93
|
+
this.loadingService.stop();
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
ngAfterViewInit() {
|
|
97
|
+
__classPrivateFieldSet(this, _embeddedViewRef, new DomPortalOutlet(document.body, this.cfr, this.ar, this.injector).attachTemplatePortal(this.portal));
|
|
98
|
+
}
|
|
99
|
+
ngOnDestroy() {
|
|
100
|
+
__classPrivateFieldGet(this, _embeddedViewRef).destroy();
|
|
101
|
+
}
|
|
102
|
+
toggleEditable() {
|
|
103
|
+
this.isEditing = !this.isEditing;
|
|
104
|
+
this.editingChanged.emit(this.isEditing);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
_embeddedViewRef = new WeakMap(), _drawMiniumBar = new WeakMap();
|
|
108
|
+
SdModalResizable.decorators = [
|
|
109
|
+
{ type: Component, args: [{
|
|
110
|
+
selector: 'sd-modal-resizable',
|
|
111
|
+
template: "<ng-template cdkPortal>\r\n <div [id]=\"id\" class=\"modal-custom\" [ngStyle]=\"{'width': width}\"\r\n [ngClass]=\"{'modal-custom--active': isOpened,'modal-custom--loading': isLoading, 'c-minium': isMinium}\"\r\n (mouseover)=\"isHover = true\" (mouseout)=\"isHover = false\">\r\n <ng-container *ngIf=\"isOpened\">\r\n <div class=\"modal-custom__header media align-items-center\">\r\n <div class=\"modal-custom__title media-body\">\r\n <ng-content select=\"[sdTitle]\"></ng-content>\r\n </div>\r\n <button type=\"button\" class=\"c-action--white c-min\" (click)=\"minium()\" *ngIf=\"!isMinium\" mat-icon-button\r\n title=\"Thu nh\u1ECF\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"c-action--white c-max\" (click)=\"maxium()\" *ngIf=\"isMinium\" mat-icon-button\r\n title=\"Ph\u00F3ng to\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"c-action--white\" (click)=\"close()\" mat-icon-button title=\"\u0110\u00F3ng\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div *ngIf=\"isOpened\" class=\"modal-custom__body\">\r\n <div class=\"modal-custom__content\">\r\n <ng-content select=\"[sdBody]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"modal-custom__footer\">\r\n <ng-content select=\"[sdFooter]\"></ng-content>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</ng-template>",
|
|
112
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
113
|
+
styles: [".modal-custom{background-color:#fff;border-radius:4px 4px 0 0;bottom:0;box-shadow:0 .4px .8px rgba(0,0,0,.1),0 3px 6px rgba(0,0,0,.2);display:flex;flex-direction:column;opacity:0;pointer-events:none;position:fixed;right:12px;top:80px;transform:translate3d(0,100%,0);transition:all .3s ease-in-out;visibility:hidden;z-index:999}.modal-custom button.c-action--white:focus{outline:none!important}.modal-custom.c-minium-of-list{bottom:0;opacity:1;pointer-events:all;top:auto;transform:translateZ(0);visibility:visible}.modal-custom.c-minium{top:auto}.modal-custom.c-minium .modal-custom__body,.modal-custom.c-minium .modal-custom__footer{display:none}.c-action{color:#212121}.c-action:focus{outline:none}.c-action--white{color:#fff}.c-action--white.c-min{margin-bottom:-12px}.c-action--white.c-max{margin-top:-12px}.modal-custom__icon{background:transparent;border:0;color:#212121;outline:none;overflow:hidden}.modal-custom__icon .mat-icon{float:left}.modal-custom__header{background-color:#5d6165;border-radius:4px 4px 0 0;color:#fff;min-height:40px;padding:0 16px}.modal-custom__body{flex:1;position:relative}.modal-custom__content{bottom:0;left:0;overflow:auto;padding:8px 16px 16px;position:absolute;right:0;top:0}.modal-custom__footer{border-top:1px solid #dde0e5;padding:5px 0}.modal-custom-backdrop{background:none;border:0;bottom:0;height:100%;left:0;outline:none!important;position:fixed;right:0;top:0;transition:all .3s ease-in-out;width:100%;z-index:99}.modal-custom-backdrop--active{background-color:rgba(0,0,0,.4)}.modal-custom--active{opacity:1;pointer-events:all;transform:translateZ(0);visibility:visible}.modal-custom__title{font-size:14px;font-weight:500;line-height:20px}"]
|
|
114
|
+
},] }
|
|
115
|
+
];
|
|
116
|
+
SdModalResizable.ctorParameters = () => [
|
|
117
|
+
{ type: ComponentFactoryResolver },
|
|
118
|
+
{ type: ApplicationRef },
|
|
119
|
+
{ type: Injector },
|
|
120
|
+
{ type: ChangeDetectorRef },
|
|
121
|
+
{ type: SdLoadingService }
|
|
122
|
+
];
|
|
123
|
+
SdModalResizable.propDecorators = {
|
|
124
|
+
portal: [{ type: ViewChild, args: [CdkPortal,] }],
|
|
125
|
+
editable: [{ type: Input }],
|
|
126
|
+
width: [{ type: Input }],
|
|
127
|
+
editingChanged: [{ type: Output }]
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
class SdModalResizableModule {
|
|
131
|
+
}
|
|
132
|
+
SdModalResizableModule.decorators = [
|
|
133
|
+
{ type: NgModule, args: [{
|
|
134
|
+
imports: [
|
|
135
|
+
CommonModule,
|
|
136
|
+
MatIconModule,
|
|
137
|
+
MatDialogModule,
|
|
138
|
+
MatButtonModule,
|
|
139
|
+
SdButtonModule,
|
|
140
|
+
PortalModule
|
|
141
|
+
],
|
|
142
|
+
declarations: [
|
|
143
|
+
SdModalResizable
|
|
144
|
+
],
|
|
145
|
+
exports: [
|
|
146
|
+
SdModalResizable
|
|
147
|
+
],
|
|
148
|
+
providers: []
|
|
149
|
+
},] }
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
/*
|
|
153
|
+
* Public API Surface of superdev-angular-core
|
|
154
|
+
*/
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Generated bundle index. Do not edit.
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
export { SdModalResizable, SdModalResizableModule };
|
|
161
|
+
//# sourceMappingURL=sd-angular-core-modal-resizable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sd-angular-core-modal-resizable.js","sources":["../../../../projects/sd-core/modal-resizable/src/lib/modal-resizable/modal-resizable.component.ts","../../../../projects/sd-core/modal-resizable/src/lib/modal-resizable.module.ts","../../../../projects/sd-core/modal-resizable/src/public-api.ts","../../../../projects/sd-core/modal-resizable/sd-angular-core-modal-resizable.ts"],"sourcesContent":["import {\r\n Component,\r\n ViewChild,\r\n ComponentFactoryResolver,\r\n ApplicationRef,\r\n Injector,\r\n EmbeddedViewRef,\r\n AfterViewInit,\r\n OnDestroy,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport {CdkPortal, DomPortalOutlet} from '@angular/cdk/portal';\r\nimport * as uuid from 'uuid';\r\nimport {SdLoadingService} from '@sd-angular/core/loading';\r\nimport $ from 'jquery';\r\n\r\n@Component({\r\n selector: 'sd-modal-resizable',\r\n templateUrl: './modal-resizable.component.html',\r\n styleUrls: ['./modal-resizable.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdModalResizable implements AfterViewInit, OnDestroy {\r\n id = `I${uuid.v4()}`;\r\n @ViewChild(CdkPortal) portal: CdkPortal;\r\n @Input() editable: boolean;\r\n @Input() width = '480px';\r\n @Output() editingChanged = new EventEmitter<boolean>();\r\n #embeddedViewRef: EmbeddedViewRef<any>;\r\n isEditing = false;\r\n isOpened = false;\r\n isHover = false;\r\n isLoading = false;\r\n isMinium = false;\r\n\r\n constructor(\r\n private cfr: ComponentFactoryResolver,\r\n private ar: ApplicationRef,\r\n private injector: Injector,\r\n private ref: ChangeDetectorRef,\r\n private loadingService: SdLoadingService\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#embeddedViewRef = new DomPortalOutlet(\r\n document.body,\r\n this.cfr,\r\n this.ar,\r\n this.injector\r\n ).attachTemplatePortal(this.portal);\r\n }\r\n\r\n open = () => {\r\n this.ref.markForCheck();\r\n this.isOpened = true;\r\n // console.log('OPEN isMinium' + this.id, this.isMinium);\r\n\r\n // tinh toan width maxium lần đầu khi không ở trạng thái minium\r\n if (!$('#' + this.id).hasClass('c-minium')) {\r\n setTimeout(() => {\r\n const maxiumWidth = $('#' + this.id).width();\r\n if (maxiumWidth > 0) {\r\n $('#' + this.id).attr('data-width', maxiumWidth);\r\n }\r\n $('#' + this.id).removeClass('c-closed');\r\n }, 100);\r\n }\r\n\r\n this.maxium();\r\n }\r\n\r\n close = () => {\r\n this.ref.markForCheck();\r\n this.isOpened = false;\r\n setTimeout(() => {\r\n $('#' + this.id).css({width: '0px', right: '0px'}).removeClass('c-minium').addClass('c-closed');\r\n }, 100);\r\n this.stopLoading();\r\n\r\n this.#drawMiniumBar();\r\n }\r\n\r\n minium = () => {\r\n this.ref.markForCheck();\r\n this.isMinium = true;\r\n // console.log('MINIUM isMinium' + this.id, this.isMinium);\r\n this.#drawMiniumBar();\r\n }\r\n\r\n maxium = () => {\r\n this.ref.markForCheck();\r\n this.isMinium = false;\r\n // console.log('MAXIUM isMinium' + this.id, this.isMinium);\r\n this.#drawMiniumBar();\r\n }\r\n\r\n #drawMiniumBar = () => {\r\n setTimeout(() => {\r\n let totalRight = 8;\r\n const miniumWidth = 300;\r\n $('.modal-custom').each((index, item) => {\r\n if ($(item).hasClass('c-minium')) {\r\n $(item).css({width: 300 + 'px', right: totalRight + 'px'});\r\n totalRight += miniumWidth + 8;\r\n } else if (!$(item).hasClass('c-closed')) {\r\n const maxiumWidth = parseInt($(item).attr('data-width'), 0);\r\n if (maxiumWidth > 0) {\r\n $(item).css({width: maxiumWidth + 'px', right: totalRight + 'px'});\r\n totalRight += maxiumWidth + 8;\r\n }\r\n }\r\n\r\n });\r\n }, 100);\r\n\r\n }\r\n\r\n startLoading = () => {\r\n this.isLoading = true;\r\n this.loadingService.stop();\r\n this.loadingService.start(`#${this.id}`);\r\n }\r\n\r\n stopLoading = () => {\r\n this.isLoading = false;\r\n this.loadingService.stop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#embeddedViewRef.destroy();\r\n }\r\n\r\n toggleEditable() {\r\n this.isEditing = !this.isEditing;\r\n this.editingChanged.emit(this.isEditing);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { SdButtonModule } from '@sd-angular/core/button';\r\nimport { SdModalResizable } from './modal-resizable/modal-resizable.component';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n SdButtonModule,\r\n PortalModule\r\n ],\r\n declarations: [\r\n SdModalResizable\r\n ],\r\n exports: [\r\n SdModalResizable\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdModalResizableModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/modal-resizable/modal-resizable.component';\r\n\r\nexport * from './lib/modal-resizable.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
@@ -198,7 +198,7 @@ class SdSettingService {
|
|
|
198
198
|
has,
|
|
199
199
|
remove,
|
|
200
200
|
subject: __classPrivateFieldGet(this, _subject)[hashKey],
|
|
201
|
-
observer: __classPrivateFieldGet(this, _subject)[hashKey]
|
|
201
|
+
observer: __classPrivateFieldGet(this, _subject)[hashKey]
|
|
202
202
|
};
|
|
203
203
|
}
|
|
204
204
|
createServer(key, option) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-setting.js","sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../projects/sd-core/setting/src/lib/setting.service.ts","../../../../projects/sd-core/setting/src/public-api.ts","../../../../projects/sd-core/setting/sd-angular-core-setting.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\nexport interface SdSettingOptionServer<T = any> {\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => T;\r\n set: (data: T) => void;\r\n has: () => boolean;\r\n remove: () => void;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface SdSettingServer<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOptionServer) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOptionServer) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOptionServer) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting, SdSettingServer, SdSettingOptionServer } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: BehaviorSubject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n \r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<T>(get());\r\n }\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(this.#subject[hashKey].getValue()))\r\n };\r\n }\r\n\r\n createServer<T = any>(key: string | object, option?: SdSettingOptionServer<T>): SdSettingServer<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<any>(option?.default);\r\n }\r\n const get = this.#getServer<T>(hashKey, option);\r\n const set = this.#setServer<T>(hashKey, option);\r\n const has = this.#hasServer(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(this.#subject[hashKey].getValue()), switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => T) => {\r\n return () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #getServer = <T = any>(key: string, option?: SdSettingOptionServer<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => void) => {\r\n return (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #setServer = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => boolean) => {\r\n return () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #hasServer = (key: string, option?: SdSettingOptionServer): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n\r\n #removeServer = (key: string, option?: SdSettingOptionServer): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n await this.configuration?.remove(key, option);\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/setting.model';\r\nexport * from './lib/setting.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-setting.js","sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../projects/sd-core/setting/src/lib/setting.service.ts","../../../../projects/sd-core/setting/src/public-api.ts","../../../../projects/sd-core/setting/sd-angular-core-setting.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\nexport interface SdSettingOptionServer<T = any> {\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => T;\r\n set: (data: T) => void;\r\n has: () => boolean;\r\n remove: () => void;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface SdSettingServer<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOptionServer) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOptionServer) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOptionServer) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting, SdSettingServer, SdSettingOptionServer } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: BehaviorSubject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n \r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<T>(get());\r\n }\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey]\r\n };\r\n }\r\n\r\n createServer<T = any>(key: string | object, option?: SdSettingOptionServer<T>): SdSettingServer<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<any>(option?.default);\r\n }\r\n const get = this.#getServer<T>(hashKey, option);\r\n const set = this.#setServer<T>(hashKey, option);\r\n const has = this.#hasServer(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(this.#subject[hashKey].getValue()), switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => T) => {\r\n return () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #getServer = <T = any>(key: string, option?: SdSettingOptionServer<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => void) => {\r\n return (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #setServer = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => boolean) => {\r\n return () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #hasServer = (key: string, option?: SdSettingOptionServer): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n\r\n #removeServer = (key: string, option?: SdSettingOptionServer): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n await this.configuration?.remove(key, option);\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/setting.model';\r\nexport * from './lib/setting.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import '@sd-angular/core/quick-action';
|
|
|
14
14
|
import '@sd-angular/core/image-preview';
|
|
15
15
|
import '@sd-angular/core/comment';
|
|
16
16
|
import '@sd-angular/core/filter';
|
|
17
|
+
import '@sd-angular/core/modal-resizable';
|
|
17
18
|
import { NgModule, Pipe, EventEmitter, Component, ViewEncapsulation, ChangeDetectorRef, Input, Output, ViewChild, Directive } from '@angular/core';
|
|
18
19
|
import { CommonModule, DatePipe, DecimalPipe } from '@angular/common';
|
|
19
20
|
import { HttpClientModule } from '@angular/common/http';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/pipes/sd-date.pipe.ts","../../../../projects/sd-core/src/lib/controls/date-picker-control/date-picker-control.component.ts","../../../../projects/sd-core/src/lib/controls/ckeditor-control/ckeditor-control.component.ts","../../../../projects/sd-core/src/lib/validators/min-date.validator.ts","../../../../projects/sd-core/src/lib/validators/max-date.validator.ts","../../../../projects/sd-core/src/lib/validators/custom.validator.ts","../../../../projects/sd-core/src/lib/validators/chip-min-item.validator.ts","../../../../projects/sd-core/src/lib/core.module.ts","../../../../projects/sd-core/src/sd-angular-core.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ],\r\n exports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'sdDate'\r\n})\r\nexport class SdDatePipe implements PipeTransform {\r\n transform(value: any, format: string): string {\r\n if (!Date.isDate(value)) {\r\n return value;\r\n }\r\n return Date.toFormat(value, format);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport $ from 'jquery';\r\nimport 'jquery-datetimepicker';\r\nimport { NgForm, NgModel } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n// Document: https://xdsoft.net/jqplugins/datetimepicker/\r\n\r\n@Component({\r\n selector: 'sd-date-picker-control',\r\n templateUrl: './date-picker-control.component.html',\r\n styleUrls: ['./date-picker-control.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DatePickerControlComponent implements OnDestroy, AfterViewInit {\r\n private isMobileOrTablet = false;\r\n private initialized = false;\r\n private pDate: any;\r\n pMinDate: any = null;\r\n pMaxDate: any = null;\r\n name = uuid.v4();\r\n @Input() form: NgForm;\r\n @Input() type: 'datetime' | 'date' | 'time' = 'datetime';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n @Input() set minDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMinDate = null;\r\n } else {\r\n this.pMinDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() set maxDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMaxDate = null;\r\n } else {\r\n this.pMaxDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm'); // this.datePipe.transform(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() validator: (value: any) => string | Promise<string>;\r\n @Output() sdChange = new EventEmitter();\r\n date: string;\r\n\r\n @Input() set model(val: any) {\r\n if (!Date.isDate(val)) {\r\n this.pDate = null;\r\n } else {\r\n if (this.type === 'datetime') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'date') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy');\r\n } else {\r\n this.pDate = Date.toFormat(val, 'HH:mm');\r\n }\r\n }\r\n if (this.initialized) {\r\n this.onChanges();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n @ViewChild('formModel') formModel: NgModel;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.form?.removeControl(this.formModel);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form?.addControl(this.formModel);\r\n this.onChanges();\r\n this.initialized = true;\r\n this.setOption();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onFocus = () => {\r\n if (this.isMobileOrTablet) {\r\n $(this.control.nativeElement).trigger('blur');\r\n }\r\n }\r\n\r\n private onChanges = () => {\r\n this.date = this.pDate;\r\n }\r\n\r\n private setOption() {\r\n if (this.initialized) {\r\n ($(this.control.nativeElement) as any).datetimepicker({\r\n datepicker: this.type === 'datetime' || this.type === 'date',\r\n timepicker: this.type === 'datetime' || this.type === 'time',\r\n format: this.type === 'datetime' ? 'd/m/Y H:i' : (this.type === 'date' ? 'd/m/Y' : 'H:i'),\r\n step: 15,\r\n minDate: this.pMinDate || undefined,\r\n maxDate: this.pMaxDate || undefined,\r\n scrollMonth: false,\r\n scrollTime: false,\r\n scrollInput: false,\r\n onChangeDateTime: (date: any) => {\r\n if (!date && !this.date) {\r\n return;\r\n }\r\n if (this.type === 'datetime') {\r\n date = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'time') {\r\n date = Date.toFormat(date, 'HH:mm');\r\n } else {\r\n date = Date.toFormat(date, 'dd/MM/yyyy');\r\n }\r\n if (!this.equal(date, this.date)) {\r\n this.model = this.parse(date);\r\n this.modelChange.emit(this.parse(date));\r\n this.sdChange.emit(this.parse(date));\r\n }\r\n this.ref.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private parse(date: any) {\r\n if (this.type === 'date') {\r\n return Date.parseFrom(date, 'dd/MM/yyyy');\r\n } else if (this.type === 'time') {\r\n return Date.parseFrom(date, 'HH:mm');\r\n }\r\n return Date.parseFrom(date, 'dd/MM/yyyy HH:mm');\r\n }\r\n private equal(date1: any, date2: any) {\r\n return Date.equal(this.parse(date1), this.parse(date2));\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sd-ckeditor-control',\r\n templateUrl: './ckeditor-control.component.html',\r\n styleUrls: [\r\n './ckeditor-control.component.css',\r\n ],\r\n})\r\nexport class CkeditorControlComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() set model(value: string) {\r\n this.cModel = value;\r\n this.ref.detectChanges();\r\n }\r\n @Input() set config(value: any) {\r\n this.cConfig = value;\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n // tslint:disable-next-line: no-output-native\r\n @Output() change = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n cModel: string;\r\n cConfig: any;\r\n editorUrl = '../../assets/ckeditor/ckeditor.js';\r\n\r\n constructor(private ref: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChange(value: any) {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n this.change.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMinDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMinDateValidator, multi: true }]\r\n})\r\nexport class SdMinDateValidator implements Validator {\r\n @Input('sdMinDate') minDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const minDate = this.minDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!minDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() < new Date(minDate).getTime()) {\r\n return {\r\n minDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMaxDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMaxDateValidator, multi: true }]\r\n})\r\nexport class SdMaxDateValidator implements Validator {\r\n @Input('sdMaxDate') maxDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const maxDate = this.maxDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!maxDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() > new Date(maxDate).getTime()) {\r\n return {\r\n maxDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdCustomValidator]',\r\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: SdCustomValidator, multi: true }]\r\n})\r\nexport class SdCustomValidator implements AsyncValidator {\r\n @Input('sdCustomValidator') func: (value: any) => string | Promise<string>;\r\n async validate(c: AbstractControl): Promise<ValidationErrors> {\r\n const value = c.value || null;\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdChipMinItem]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdChipMinItemValidator, multi: true }]\r\n})\r\nexport class SdChipMinItemValidator implements Validator {\r\n @Input('sdChipMinItem') func: () => string;\r\n validate(c: AbstractControl): ValidationErrors {\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func();\r\n if (result) {\r\n return {\r\n minItem: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\nimport { MaterialModule } from './material.module';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\n\r\nimport { SdDatePipe } from './pipes/sd-date.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { SdChartModule } from '@sd-angular/core/chart';\r\nimport { SdGridMaterialModule } from '@sd-angular/core/grid-material';\r\nimport { SdEditorModule } from '@sd-angular/core/editor';\r\nimport { SdKonvaModule } from '@sd-angular/core/konva';\r\nimport { DatePickerControlComponent } from './controls/date-picker-control/date-picker-control.component';\r\nimport { CkeditorControlComponent } from './controls/ckeditor-control/ckeditor-control.component';\r\nimport { SdMinDateValidator } from './validators/min-date.validator';\r\nimport { SdMaxDateValidator } from './validators/max-date.validator';\r\nimport { SdCustomValidator } from './validators/custom.validator';\r\nimport { SdChipMinItemValidator } from './validators/chip-min-item.validator';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CKEditorModule,\r\n DeviceDetectorModule.forRoot(),\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n DatePickerControlComponent,\r\n CkeditorControlComponent,\r\n // // Pipes\r\n SdDatePipe,\r\n // Validators\r\n SdMinDateValidator,\r\n SdMaxDateValidator,\r\n SdCustomValidator,\r\n SdChipMinItemValidator\r\n ],\r\n exports: [\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdEditorModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n // Controls\r\n DatePickerControlComponent,\r\n CkeditorControlComponent\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/pipes/sd-date.pipe.ts","../../../../projects/sd-core/src/lib/controls/date-picker-control/date-picker-control.component.ts","../../../../projects/sd-core/src/lib/controls/ckeditor-control/ckeditor-control.component.ts","../../../../projects/sd-core/src/lib/validators/min-date.validator.ts","../../../../projects/sd-core/src/lib/validators/max-date.validator.ts","../../../../projects/sd-core/src/lib/validators/custom.validator.ts","../../../../projects/sd-core/src/lib/validators/chip-min-item.validator.ts","../../../../projects/sd-core/src/lib/core.module.ts","../../../../projects/sd-core/src/sd-angular-core.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ],\r\n exports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'sdDate'\r\n})\r\nexport class SdDatePipe implements PipeTransform {\r\n transform(value: any, format: string): string {\r\n if (!Date.isDate(value)) {\r\n return value;\r\n }\r\n return Date.toFormat(value, format);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport $ from 'jquery';\r\nimport 'jquery-datetimepicker';\r\nimport { NgForm, NgModel } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n// Document: https://xdsoft.net/jqplugins/datetimepicker/\r\n\r\n@Component({\r\n selector: 'sd-date-picker-control',\r\n templateUrl: './date-picker-control.component.html',\r\n styleUrls: ['./date-picker-control.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DatePickerControlComponent implements OnDestroy, AfterViewInit {\r\n private isMobileOrTablet = false;\r\n private initialized = false;\r\n private pDate: any;\r\n pMinDate: any = null;\r\n pMaxDate: any = null;\r\n name = uuid.v4();\r\n @Input() form: NgForm;\r\n @Input() type: 'datetime' | 'date' | 'time' = 'datetime';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n @Input() set minDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMinDate = null;\r\n } else {\r\n this.pMinDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() set maxDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMaxDate = null;\r\n } else {\r\n this.pMaxDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm'); // this.datePipe.transform(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() validator: (value: any) => string | Promise<string>;\r\n @Output() sdChange = new EventEmitter();\r\n date: string;\r\n\r\n @Input() set model(val: any) {\r\n if (!Date.isDate(val)) {\r\n this.pDate = null;\r\n } else {\r\n if (this.type === 'datetime') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'date') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy');\r\n } else {\r\n this.pDate = Date.toFormat(val, 'HH:mm');\r\n }\r\n }\r\n if (this.initialized) {\r\n this.onChanges();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n @ViewChild('formModel') formModel: NgModel;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.form?.removeControl(this.formModel);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form?.addControl(this.formModel);\r\n this.onChanges();\r\n this.initialized = true;\r\n this.setOption();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onFocus = () => {\r\n if (this.isMobileOrTablet) {\r\n $(this.control.nativeElement).trigger('blur');\r\n }\r\n }\r\n\r\n private onChanges = () => {\r\n this.date = this.pDate;\r\n }\r\n\r\n private setOption() {\r\n if (this.initialized) {\r\n ($(this.control.nativeElement) as any).datetimepicker({\r\n datepicker: this.type === 'datetime' || this.type === 'date',\r\n timepicker: this.type === 'datetime' || this.type === 'time',\r\n format: this.type === 'datetime' ? 'd/m/Y H:i' : (this.type === 'date' ? 'd/m/Y' : 'H:i'),\r\n step: 15,\r\n minDate: this.pMinDate || undefined,\r\n maxDate: this.pMaxDate || undefined,\r\n scrollMonth: false,\r\n scrollTime: false,\r\n scrollInput: false,\r\n onChangeDateTime: (date: any) => {\r\n if (!date && !this.date) {\r\n return;\r\n }\r\n if (this.type === 'datetime') {\r\n date = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'time') {\r\n date = Date.toFormat(date, 'HH:mm');\r\n } else {\r\n date = Date.toFormat(date, 'dd/MM/yyyy');\r\n }\r\n if (!this.equal(date, this.date)) {\r\n this.model = this.parse(date);\r\n this.modelChange.emit(this.parse(date));\r\n this.sdChange.emit(this.parse(date));\r\n }\r\n this.ref.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private parse(date: any) {\r\n if (this.type === 'date') {\r\n return Date.parseFrom(date, 'dd/MM/yyyy');\r\n } else if (this.type === 'time') {\r\n return Date.parseFrom(date, 'HH:mm');\r\n }\r\n return Date.parseFrom(date, 'dd/MM/yyyy HH:mm');\r\n }\r\n private equal(date1: any, date2: any) {\r\n return Date.equal(this.parse(date1), this.parse(date2));\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sd-ckeditor-control',\r\n templateUrl: './ckeditor-control.component.html',\r\n styleUrls: [\r\n './ckeditor-control.component.css',\r\n ],\r\n})\r\nexport class CkeditorControlComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() set model(value: string) {\r\n this.cModel = value;\r\n this.ref.detectChanges();\r\n }\r\n @Input() set config(value: any) {\r\n this.cConfig = value;\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n // tslint:disable-next-line: no-output-native\r\n @Output() change = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n cModel: string;\r\n cConfig: any;\r\n editorUrl = '../../assets/ckeditor/ckeditor.js';\r\n\r\n constructor(private ref: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChange(value: any) {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n this.change.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMinDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMinDateValidator, multi: true }]\r\n})\r\nexport class SdMinDateValidator implements Validator {\r\n @Input('sdMinDate') minDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const minDate = this.minDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!minDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() < new Date(minDate).getTime()) {\r\n return {\r\n minDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMaxDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMaxDateValidator, multi: true }]\r\n})\r\nexport class SdMaxDateValidator implements Validator {\r\n @Input('sdMaxDate') maxDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const maxDate = this.maxDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!maxDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() > new Date(maxDate).getTime()) {\r\n return {\r\n maxDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdCustomValidator]',\r\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: SdCustomValidator, multi: true }]\r\n})\r\nexport class SdCustomValidator implements AsyncValidator {\r\n @Input('sdCustomValidator') func: (value: any) => string | Promise<string>;\r\n async validate(c: AbstractControl): Promise<ValidationErrors> {\r\n const value = c.value || null;\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdChipMinItem]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdChipMinItemValidator, multi: true }]\r\n})\r\nexport class SdChipMinItemValidator implements Validator {\r\n @Input('sdChipMinItem') func: () => string;\r\n validate(c: AbstractControl): ValidationErrors {\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func();\r\n if (result) {\r\n return {\r\n minItem: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\nimport { MaterialModule } from './material.module';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\n\r\nimport { SdDatePipe } from './pipes/sd-date.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { SdChartModule } from '@sd-angular/core/chart';\r\nimport { SdGridMaterialModule } from '@sd-angular/core/grid-material';\r\nimport { SdEditorModule } from '@sd-angular/core/editor';\r\nimport { SdKonvaModule } from '@sd-angular/core/konva';\r\nimport { DatePickerControlComponent } from './controls/date-picker-control/date-picker-control.component';\r\nimport { CkeditorControlComponent } from './controls/ckeditor-control/ckeditor-control.component';\r\nimport { SdMinDateValidator } from './validators/min-date.validator';\r\nimport { SdMaxDateValidator } from './validators/max-date.validator';\r\nimport { SdCustomValidator } from './validators/custom.validator';\r\nimport { SdChipMinItemValidator } from './validators/chip-min-item.validator';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CKEditorModule,\r\n DeviceDetectorModule.forRoot(),\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n DatePickerControlComponent,\r\n CkeditorControlComponent,\r\n // // Pipes\r\n SdDatePipe,\r\n // Validators\r\n SdMinDateValidator,\r\n SdMaxDateValidator,\r\n SdCustomValidator,\r\n SdChipMinItemValidator\r\n ],\r\n exports: [\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdEditorModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n // Controls\r\n DatePickerControlComponent,\r\n CkeditorControlComponent\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuid.v4"],"mappings":"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"}
|