@sd-angular/core 19.0.0-beta.83 → 19.0.0-beta.84
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/fesm2022/sd-angular-core-components-anchor-v2.mjs +9 -9
- package/fesm2022/sd-angular-core-components-anchor.mjs +12 -12
- package/fesm2022/sd-angular-core-components-avatar.mjs +3 -3
- package/fesm2022/sd-angular-core-components-badge.mjs +3 -3
- package/fesm2022/sd-angular-core-components-base.mjs +3 -3
- package/fesm2022/sd-angular-core-components-button.mjs +3 -3
- package/fesm2022/sd-angular-core-components-chart.mjs +12 -12
- package/fesm2022/sd-angular-core-components-code-editor.mjs +3 -3
- package/fesm2022/sd-angular-core-components-document-builder.mjs +6 -6
- package/fesm2022/sd-angular-core-components-editor.mjs +3 -3
- package/fesm2022/sd-angular-core-components-history.mjs +7 -7
- package/fesm2022/sd-angular-core-components-import-excel.mjs +10 -10
- package/fesm2022/sd-angular-core-components-mini-editor.mjs +3 -3
- package/fesm2022/sd-angular-core-components-modal.mjs +3 -3
- package/fesm2022/sd-angular-core-components-preview.mjs +3 -3
- package/fesm2022/sd-angular-core-components-query-builder.mjs +3 -3
- package/fesm2022/sd-angular-core-components-quick-action.mjs +3 -3
- package/fesm2022/sd-angular-core-components-section.mjs +6 -6
- package/fesm2022/sd-angular-core-components-side-drawer.mjs +3 -3
- package/fesm2022/sd-angular-core-components-tab-router.mjs +18 -18
- package/fesm2022/sd-angular-core-components-table.mjs +96 -96
- package/fesm2022/sd-angular-core-components-upload-file.mjs +15 -15
- package/fesm2022/sd-angular-core-components-view.mjs +3 -3
- package/fesm2022/sd-angular-core-components-workflow.mjs +198 -198
- package/fesm2022/sd-angular-core-directives.mjs +21 -21
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-checkbox.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +6 -6
- package/fesm2022/sd-angular-core-forms-chip.mjs +6 -6
- package/fesm2022/sd-angular-core-forms-date-range.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-date.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-datetime.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-directives.mjs +12 -12
- package/fesm2022/sd-angular-core-forms-input-number.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-input.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-label.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-radio.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-select.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-switch.mjs +3 -3
- package/fesm2022/sd-angular-core-forms-textarea.mjs +3 -3
- package/fesm2022/sd-angular-core-forms.mjs +4 -4
- package/fesm2022/sd-angular-core-handlers.mjs +3 -3
- package/fesm2022/sd-angular-core-interceptors.mjs +3 -3
- package/fesm2022/sd-angular-core-modules-auth.mjs +9 -9
- package/fesm2022/sd-angular-core-modules-authom.mjs +7 -7
- package/fesm2022/sd-angular-core-modules-keycloak.mjs +7 -7
- package/fesm2022/sd-angular-core-modules-layout.mjs +73 -73
- package/fesm2022/sd-angular-core-modules-permission.mjs +9 -9
- package/fesm2022/sd-angular-core-pipes.mjs +14 -14
- package/fesm2022/sd-angular-core-services-api.mjs +10 -10
- package/fesm2022/sd-angular-core-services-cache.mjs +3 -3
- package/fesm2022/sd-angular-core-services-confirm.mjs +6 -6
- package/fesm2022/sd-angular-core-services-docx.mjs +3 -3
- package/fesm2022/sd-angular-core-services-excel.mjs +3 -3
- package/fesm2022/sd-angular-core-services-firebase.mjs +3 -3
- package/fesm2022/sd-angular-core-services-license.mjs +3 -3
- package/fesm2022/sd-angular-core-services-loading.mjs +3 -3
- package/fesm2022/sd-angular-core-services-notify.mjs +9 -9
- package/fesm2022/sd-angular-core-services-storage.mjs +3 -3
- package/package.json +52 -52
- package/sd-angular-core-19.0.0-beta.84.tgz +0 -0
- package/sd-angular-core-19.0.0-beta.83.tgz +0 -0
|
@@ -784,10 +784,10 @@ class FormGenericService {
|
|
|
784
784
|
return '';
|
|
785
785
|
},
|
|
786
786
|
};
|
|
787
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
788
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
787
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FormGenericService, deps: [{ token: SD_WORKFLOW_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
788
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FormGenericService, providedIn: 'root' });
|
|
789
789
|
}
|
|
790
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
790
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: FormGenericService, decorators: [{
|
|
791
791
|
type: Injectable,
|
|
792
792
|
args: [{
|
|
793
793
|
providedIn: 'root',
|
|
@@ -822,10 +822,10 @@ class SdFormRenderService {
|
|
|
822
822
|
}
|
|
823
823
|
return reuslts;
|
|
824
824
|
};
|
|
825
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
826
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
825
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormRenderService, deps: [{ token: ComponentViewedPipe }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
826
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormRenderService, providedIn: 'root' });
|
|
827
827
|
}
|
|
828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
828
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormRenderService, decorators: [{
|
|
829
829
|
type: Injectable,
|
|
830
830
|
args: [{
|
|
831
831
|
providedIn: 'root',
|
|
@@ -904,11 +904,11 @@ class ComponentViewedPipe {
|
|
|
904
904
|
}
|
|
905
905
|
return '';
|
|
906
906
|
};
|
|
907
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
908
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
909
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
907
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ComponentViewedPipe, deps: [{ token: i1.SdFormatNumberPipe }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
908
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: ComponentViewedPipe, isStandalone: true, name: "componentViewed" });
|
|
909
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ComponentViewedPipe, providedIn: 'root' });
|
|
910
910
|
}
|
|
911
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
911
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ComponentViewedPipe, decorators: [{
|
|
912
912
|
type: Pipe,
|
|
913
913
|
args: [{
|
|
914
914
|
name: 'componentViewed',
|
|
@@ -983,10 +983,10 @@ class WhenExpressionPipe {
|
|
|
983
983
|
required: component?.validate?.required || this.#required(component, entity),
|
|
984
984
|
};
|
|
985
985
|
}
|
|
986
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
987
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
986
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: WhenExpressionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
987
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: WhenExpressionPipe, isStandalone: true, name: "whenExpression" });
|
|
988
988
|
}
|
|
989
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
989
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: WhenExpressionPipe, decorators: [{
|
|
990
990
|
type: Pipe,
|
|
991
991
|
args: [{
|
|
992
992
|
name: 'whenExpression',
|
|
@@ -1084,11 +1084,11 @@ class ExpressionQueryPipe {
|
|
|
1084
1084
|
}
|
|
1085
1085
|
return this.#generateQuery(condition);
|
|
1086
1086
|
}
|
|
1087
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1088
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
1089
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
1087
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionQueryPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1088
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: ExpressionQueryPipe, isStandalone: true, name: "expressionQuery" });
|
|
1089
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionQueryPipe, providedIn: 'root' });
|
|
1090
1090
|
}
|
|
1091
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1091
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionQueryPipe, decorators: [{
|
|
1092
1092
|
type: Pipe,
|
|
1093
1093
|
args: [{
|
|
1094
1094
|
name: 'expressionQuery',
|
|
@@ -1120,10 +1120,10 @@ class ExpressionViewPipe {
|
|
|
1120
1120
|
}
|
|
1121
1121
|
return `<div class="d-flex flex-row align-items-center" style="gap:8px ;flex-wrap: wrap ;word-wrap: break-word">${results.join('')}</div>`;
|
|
1122
1122
|
}
|
|
1123
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1124
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
1123
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionViewPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1124
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: ExpressionViewPipe, isStandalone: true, name: "expressionView" });
|
|
1125
1125
|
}
|
|
1126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionViewPipe, decorators: [{
|
|
1127
1127
|
type: Pipe,
|
|
1128
1128
|
args: [{
|
|
1129
1129
|
name: 'expressionView',
|
|
@@ -1220,11 +1220,11 @@ class ExpressionFeelPipe {
|
|
|
1220
1220
|
}
|
|
1221
1221
|
return result;
|
|
1222
1222
|
}
|
|
1223
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1224
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
1225
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
1223
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionFeelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1224
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: ExpressionFeelPipe, isStandalone: true, name: "expressionFeel" });
|
|
1225
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionFeelPipe, providedIn: 'root' });
|
|
1226
1226
|
}
|
|
1227
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionFeelPipe, decorators: [{
|
|
1228
1228
|
type: Pipe,
|
|
1229
1229
|
args: [{
|
|
1230
1230
|
name: 'expressionFeel',
|
|
@@ -1255,10 +1255,10 @@ class HtmlPipe {
|
|
|
1255
1255
|
const renderedHtml = StringUtilities.templateToDisplay(content, variables);
|
|
1256
1256
|
return this.sanitizer.sanitize(SecurityContext.HTML, renderedHtml) || '';
|
|
1257
1257
|
};
|
|
1258
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1259
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
1258
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HtmlPipe, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1259
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: HtmlPipe, isStandalone: true, name: "htmlPipe" });
|
|
1260
1260
|
}
|
|
1261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HtmlPipe, decorators: [{
|
|
1262
1262
|
type: Pipe,
|
|
1263
1263
|
args: [{
|
|
1264
1264
|
name: 'htmlPipe',
|
|
@@ -1276,10 +1276,10 @@ class HyperlinkPipe {
|
|
|
1276
1276
|
}
|
|
1277
1277
|
return StringUtilities.templateToDisplay(hyperlink, entity);
|
|
1278
1278
|
};
|
|
1279
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1280
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.
|
|
1279
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HyperlinkPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1280
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: HyperlinkPipe, isStandalone: true, name: "hyperlink" });
|
|
1281
1281
|
}
|
|
1282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HyperlinkPipe, decorators: [{
|
|
1283
1283
|
type: Pipe,
|
|
1284
1284
|
args: [{
|
|
1285
1285
|
name: 'hyperlink',
|
|
@@ -1365,10 +1365,10 @@ class TextfieldComponent {
|
|
|
1365
1365
|
this.ref.markForCheck();
|
|
1366
1366
|
}
|
|
1367
1367
|
};
|
|
1368
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1369
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1368
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextfieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1369
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TextfieldComponent, isStandalone: true, selector: "lib-textfield", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"], _validator: ["validator", "_validator"] }, ngImport: i0, template: "@if (component && entity) {\r\n <sd-input\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [maxlength]=\"component.validate?.maxlength\"\r\n [pattern]=\"component.validate?.pattern\"\r\n [patternErrorMessage]=\"component.validate?.patternErrorMessage\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-input>\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdInput, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1370
1370
|
}
|
|
1371
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1371
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextfieldComponent, decorators: [{
|
|
1372
1372
|
type: Component,
|
|
1373
1373
|
args: [{ selector: 'lib-textfield', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1374
1374
|
CommonModule,
|
|
@@ -1449,10 +1449,10 @@ class TextareaComponent {
|
|
|
1449
1449
|
ngOnDestroy() {
|
|
1450
1450
|
this.#subscription.unsubscribe();
|
|
1451
1451
|
}
|
|
1452
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1453
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1452
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextareaComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1453
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TextareaComponent, isStandalone: true, selector: "lib-textarea", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (component && entity) {\r\n <sd-textarea\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [maxlength]=\"component.validate?.maxlength\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-textarea>\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdTextarea, selector: "sd-textarea", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "rows", "hideInlineError", "required", "disabled", "viewed", "autoHeight", "maxlength", "pattern", "validator", "inlineError", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1454
1454
|
}
|
|
1455
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
1456
1456
|
type: Component,
|
|
1457
1457
|
args: [{ selector: 'lib-textarea', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1458
1458
|
CommonModule,
|
|
@@ -1530,12 +1530,12 @@ class ChipStringComponent {
|
|
|
1530
1530
|
ngOnDestroy() {
|
|
1531
1531
|
this.#subscription.unsubscribe();
|
|
1532
1532
|
}
|
|
1533
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1534
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1533
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipStringComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1534
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ChipStringComponent, isStandalone: true, selector: "lib-chip-string", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (component && entity) {\r\n @if (viewed || component.properties?.viewed) {\r\n <div class=\"text-black400\">{{ component.label || component.key }}</div>\r\n <div class=\"T14M\">{{ entity[component.key!] | componentViewed: entity : component | async }}</div>\r\n } @else {\r\n <sd-chip\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"></sd-chip>\r\n }\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: SdChip, selector: "sd-chip", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "placeholder", "removable", "hideInlineError", "model", "required", "min", "max", "addable", "disabled", "viewed", "hyperlink"], outputs: ["modelChange", "sdChange"] }, { kind: "pipe", type:
|
|
1535
1535
|
// Pipe cho phần viewed
|
|
1536
1536
|
ComponentViewedPipe, name: "componentViewed" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1537
1537
|
}
|
|
1538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipStringComponent, decorators: [{
|
|
1539
1539
|
type: Component,
|
|
1540
1540
|
args: [{ selector: 'lib-chip-string', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1541
1541
|
CommonModule,
|
|
@@ -1613,12 +1613,12 @@ class ChipCalendarComponent {
|
|
|
1613
1613
|
ngOnDestroy() {
|
|
1614
1614
|
this.#subscription.unsubscribe();
|
|
1615
1615
|
}
|
|
1616
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1617
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1616
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1617
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ChipCalendarComponent, isStandalone: true, selector: "lib-chip-calendar", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (component && entity) {\r\n @if (viewed || component.properties?.viewed) {\r\n <div class=\"text-black400\">{{ component.label || component.key }}</div>\r\n <div class=\"T14M\">{{ entity[component.key!] | componentViewed: entity : component | async }}</div>\r\n } @else {\r\n <sd-chip-calendar\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"></sd-chip-calendar>\r\n }\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: SdChipCalendar, selector: "sd-chip-calendar", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "placeholder", "removable", "hideInlineError", "model", "required", "min", "max", "disabled", "viewed", "hyperlink"], outputs: ["modelChange", "sdChange"] }, { kind: "pipe", type:
|
|
1618
1618
|
// Pipe cho phần viewed
|
|
1619
1619
|
ComponentViewedPipe, name: "componentViewed" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1620
1620
|
}
|
|
1621
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1621
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipCalendarComponent, decorators: [{
|
|
1622
1622
|
type: Component,
|
|
1623
1623
|
args: [{ selector: 'lib-chip-calendar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1624
1624
|
CommonModule,
|
|
@@ -1696,12 +1696,12 @@ class NumberComponent {
|
|
|
1696
1696
|
ngOnDestroy() {
|
|
1697
1697
|
this.#subscription.unsubscribe();
|
|
1698
1698
|
}
|
|
1699
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1700
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1699
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NumberComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1700
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: NumberComponent, isStandalone: true, selector: "lib-number", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (component && entity) {\r\n @if (viewed || component.properties?.viewed) {\r\n <div class=\"text-secondary\">{{ component.label || component.key }}</div>\r\n <div class=\"T16M\">{{ entity[component.key!] | componentViewed: entity : component | async }}</div>\r\n } @else {\r\n <sd-input-number\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [max]=\"component.validate?.max\"\r\n [min]=\"component.validate?.min\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-input-number>\r\n }\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: SdInputNumber, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "pipe", type:
|
|
1701
1701
|
// Pipe cho phần viewed
|
|
1702
1702
|
ComponentViewedPipe, name: "componentViewed" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1703
1703
|
}
|
|
1704
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1704
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NumberComponent, decorators: [{
|
|
1705
1705
|
type: Component,
|
|
1706
1706
|
args: [{ selector: 'lib-number', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1707
1707
|
CommonModule,
|
|
@@ -1794,10 +1794,10 @@ class DatetimeComponent {
|
|
|
1794
1794
|
this.router.navigate([path], { queryParams });
|
|
1795
1795
|
}
|
|
1796
1796
|
};
|
|
1797
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1798
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1797
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DatetimeComponent, deps: [{ token: i1$3.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1798
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: DatetimeComponent, isStandalone: true, selector: "lib-datetime", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (component && entity) {\r\n @if (subtype === 'date') {\r\n <sd-date\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [min]=\"component.validate?.min\"\r\n [max]=\"component.validate?.max\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-date>\r\n } @else {\r\n <sd-datetime\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [helperText]=\"component.helperText\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [min]=\"component.validate?.min\"\r\n [max]=\"component.validate?.max\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed || component.properties?.viewed\"></sd-datetime>\r\n }\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdDate, selector: "sd-date", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1799
1799
|
}
|
|
1800
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DatetimeComponent, decorators: [{
|
|
1801
1801
|
type: Component,
|
|
1802
1802
|
args: [{ selector: 'lib-datetime', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1803
1803
|
CommonModule,
|
|
@@ -1999,10 +1999,10 @@ class SelectComponent {
|
|
|
1999
1999
|
this.router.navigate([path], { queryParams });
|
|
2000
2000
|
}
|
|
2001
2001
|
};
|
|
2002
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2003
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
2002
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SelectComponent, deps: [{ token: i1$3.Router }, { token: i0.ChangeDetectorRef }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2003
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: SelectComponent, isStandalone: true, selector: "lib-select", inputs: { setVariables: "setVariables", _form: ["form", "_form"], _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"], _validator: ["validator", "_validator"] }, ngImport: i0, template: "@if (entity && component) {\r\n <sd-select\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key]\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [disabled]=\"disabled\"\r\n [items]=\"items\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n disabledField=\"disabled\"\r\n (sdChange)=\"onChanges()\"\r\n [multiple]=\"component.properties?.multiple\"\r\n [viewed]=\"viewed || component.properties?.viewed\"\r\n [hyperlink]=\"component.properties?.hyperlink | hyperlink: entity\"></sd-select>\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdSelect, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "pipe", type: HyperlinkPipe, name: "hyperlink" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2004
2004
|
}
|
|
2005
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2005
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SelectComponent, decorators: [{
|
|
2006
2006
|
type: Component,
|
|
2007
2007
|
args: [{ selector: 'lib-select', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2008
2008
|
CommonModule,
|
|
@@ -2133,10 +2133,10 @@ class RadioComponent {
|
|
|
2133
2133
|
this.router.navigate([path], { queryParams });
|
|
2134
2134
|
}
|
|
2135
2135
|
};
|
|
2136
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2137
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
2136
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RadioComponent, deps: [{ token: i1$3.Router }, { token: i0.ChangeDetectorRef }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2137
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: RadioComponent, isStandalone: true, selector: "lib-radio", inputs: { setVariables: "setVariables", _form: ["form", "_form"], _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (entity && component) {\r\n <sd-radio\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [name]=\"component.key\"\r\n [autoId]=\"component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [items]=\"items\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [display]=\"component.properties?.direction\"\r\n [viewed]=\"viewed || component.properties?.viewed\"\r\n [hyperlink]=\"component.properties?.hyperlink | hyperlink: entity\"></sd-radio>\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdRadio, selector: "sd-radio", inputs: ["autoId", "name", "form", "label", "placeholder", "display", "model", "items", "valueField", "displayField", "required", "inlineError", "disabled", "viewed", "hyperlink"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "pipe", type: HyperlinkPipe, name: "hyperlink" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2138
2138
|
}
|
|
2139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RadioComponent, decorators: [{
|
|
2140
2140
|
type: Component,
|
|
2141
2141
|
args: [{ selector: 'lib-radio', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2142
2142
|
CommonModule,
|
|
@@ -2226,10 +2226,10 @@ class UploadComponent {
|
|
|
2226
2226
|
upload = async () => {
|
|
2227
2227
|
return await this.sdUploadFile?.upload();
|
|
2228
2228
|
};
|
|
2229
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2230
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
2229
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: UploadComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2230
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: UploadComponent, isStandalone: true, selector: "lib-upload", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"], _validator: ["validator", "_validator"] }, viewQueries: [{ propertyName: "sdUploadFile", first: true, predicate: SdUploadFile, descendants: true }], ngImport: i0, template: "@if (component && entity) {\r\n @if (viewed || component.properties?.viewed) {\r\n <div class=\"text-secondary\">{{ component.label || component.key }}</div>\r\n <sd-upload-file\r\n [type]=\"component.properties?.type\"\r\n [form]=\"form\"\r\n [model]=\"entity[component.key!]\"\r\n align=\"left\"\r\n [args]=\"component.properties?.args\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n } @else {\r\n <sd-upload-file\r\n [type]=\"component.properties?.type\"\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [max]=\"component.properties?.max\"\r\n [maxSize]=\"component.properties?.maxSize\"\r\n [extensions]=\"component.properties?.extensions\"\r\n [args]=\"component.properties?.args\"\r\n align=\"left\"\r\n [required]=\"component.validate?.required || required\"\r\n [disabled]=\"disabled\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n }\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdUploadFile, selector: "sd-upload-file", inputs: ["args", "label", "key", "description", "previewWidth", "previewHeight", "align", "upload", "details", "download", "imageValidator", "maxSize", "maxWidth", "maxHeight", "scaleToPixel", "form", "name", "required", "type", "helperText", "max", "maxOfImage", "extensions", "disabled", "model"], outputs: ["loaded", "filesChanged", "modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2231
2231
|
}
|
|
2232
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: UploadComponent, decorators: [{
|
|
2233
2233
|
type: Component,
|
|
2234
2234
|
args: [{ selector: 'lib-upload', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, SdUploadFile], template: "@if (component && entity) {\r\n @if (viewed || component.properties?.viewed) {\r\n <div class=\"text-secondary\">{{ component.label || component.key }}</div>\r\n <sd-upload-file\r\n [type]=\"component.properties?.type\"\r\n [form]=\"form\"\r\n [model]=\"entity[component.key!]\"\r\n align=\"left\"\r\n [args]=\"component.properties?.args\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n } @else {\r\n <sd-upload-file\r\n [type]=\"component.properties?.type\"\r\n [form]=\"form\"\r\n [label]=\"component.label || component.key\"\r\n [(model)]=\"entity[component.key!]\"\r\n [max]=\"component.properties?.max\"\r\n [maxSize]=\"component.properties?.maxSize\"\r\n [extensions]=\"component.properties?.extensions\"\r\n [args]=\"component.properties?.args\"\r\n align=\"left\"\r\n [required]=\"component.validate?.required || required\"\r\n [disabled]=\"disabled\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n }\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"] }]
|
|
2235
2235
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { setVariables: [{
|
|
@@ -2607,10 +2607,10 @@ class TableComponent {
|
|
|
2607
2607
|
await Promise.all(this.uploadFiles.map(uploadFile => uploadFile.upload()));
|
|
2608
2608
|
}
|
|
2609
2609
|
};
|
|
2610
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2611
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
2610
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2611
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TableComponent, isStandalone: true, selector: "lib-table", inputs: { setVariables: "setVariables", form: "form", _component: ["component", "_component"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, viewQueries: [{ propertyName: "table", first: true, predicate: SdTable, descendants: true }, { propertyName: "sideDrawer", first: true, predicate: SdSideDrawer, descendants: true }, { propertyName: "uploadFiles", predicate: SdUploadFile, descendants: true }], ngImport: i0, template: "@if(component && tableOption) {\r\n <div style=\"width: 100%\">\r\n <sd-table [option]=\"tableOption\">\r\n @for(key of imageKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n type=\"image\"\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n @for(key of fileKeys; track key) {\r\n <ng-template [sdTableCellDef]=\"key\" let-item=\"item\">\r\n <sd-upload-file\r\n [model]=\"item[key]\"\r\n [args]=\"getArgs(key)\"\r\n (modelChange)=\"onFileUploadChange(item, key, $event)\"\r\n align=\"left\"\r\n disabled\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"></sd-upload-file>\r\n </ng-template>\r\n }\r\n </sd-table>\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-button\r\n prefixIcon=\"add\"\r\n color=\"primary\"\r\n (click)=\"onDetail()\"\r\n [title]=\"component.properties?.titleButtonCreate || 'Th\u00EAm m\u1EDBi'\"></sd-button>\r\n }\r\n @if(!viewed && !component.properties?.viewed) {\r\n <sd-side-drawer title=\"Chi ti\u1EBFt\" width=\"500px\">\r\n <div sdTitle>\r\n <span>T\u1EA1o m\u1EDBi/c\u1EADp nh\u1EADt</span>\r\n </div>\r\n <div sdBody class=\"c-table-create-update\">\r\n @if(!!component.columns?.length) {\r\n <div class=\"row mx-0\">\r\n @for(column of component.columns;track column.key) {\r\n @let validate = formRenderColumn[column.key].validate;\r\n <div class=\"col-12 px-0 mt-16\">\r\n @if(column.type === 'string') {\r\n <sd-input\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [pattern]=\"column.validate?.pattern\"\r\n [patternErrorMessage]=\"column.validate?.patternErrorMessage\"></sd-input>\r\n }@else if(column.type === 'number') {\r\n <sd-input-number\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"\r\n [min]=\"column.validate?.min\"></sd-input-number>\r\n }@else if(column.type === 'radio') {\r\n <sd-radio\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [name]=\"column.key\"\r\n [items]=\"column.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-radio>\r\n }@else if(column.type === 'values') {\r\n <sd-autocomplete\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [items]=\"columnValues[column.key]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [required]=\"validate?.required\"></sd-autocomplete>\r\n }@else if(column.type === 'date') {\r\n <sd-date\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-date>\r\n }@else if(column.type === 'datetime') {\r\n <sd-datetime\r\n [form]=\"form\"\r\n [label]=\"column.label\"\r\n [(model)]=\"row[column.key]\"\r\n [required]=\"validate?.required\"></sd-datetime>\r\n }@else if(column.type === 'image') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"image\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }@else if (column.type === 'file') {\r\n <sd-upload-file\r\n [label]=\"column.label\"\r\n type=\"file\"\r\n [(model)]=\"row[column.key]\"\r\n [args]=\"column.args\"\r\n previewWidth=\"50px\"\r\n previewHeight=\"50px\"\r\n align=\"left\"></sd-upload-file>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n </div>\r\n <div sdFooter class=\"text-right pr-16\">\r\n <sd-button title=\"L\u01B0u\" prefixIcon=\"save\" color=\"primary\" type=\"fill\" (click)=\"onAccept()\"></sd-button>\r\n </div>\r\n </sd-side-drawer>\r\n }\r\n </div>\r\n}\r\n\r\n", styles: [":host{display:contents}.c-table-create-update{background:#fff;margin:-16px;padding:16px;height:calc(100vh - 97px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SdInput, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber$1, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdAutocomplete, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdUploadFile, selector: "sd-upload-file", inputs: ["args", "label", "key", "description", "previewWidth", "previewHeight", "align", "upload", "details", "download", "imageValidator", "maxSize", "maxWidth", "maxHeight", "scaleToPixel", "form", "name", "required", "type", "helperText", "max", "maxOfImage", "extensions", "disabled", "model"], outputs: ["loaded", "filesChanged", "modelChange"] }, { kind: "component", type: SdTable, selector: "sd-table", inputs: ["autoId", "option"] }, { kind: "directive", type: SdTabelCellDefDirective, selector: "[sdTableCellDef]", inputs: ["sdTableCellDef"] }, { kind: "component", type: SdSideDrawer, selector: "sd-side-drawer", inputs: ["title", "width", "hideClose", "disableBackdropClose", "drawerClass"], outputs: ["sdClosed"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdRadio, selector: "sd-radio", inputs: ["autoId", "name", "form", "label", "placeholder", "display", "model", "items", "valueField", "displayField", "required", "inlineError", "disabled", "viewed", "hyperlink"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdDate, selector: "sd-date", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2612
2612
|
}
|
|
2613
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2613
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TableComponent, decorators: [{
|
|
2614
2614
|
type: Component,
|
|
2615
2615
|
args: [{ selector: 'lib-table', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2616
2616
|
CommonModule,
|
|
@@ -2788,10 +2788,10 @@ class HtmlComponent {
|
|
|
2788
2788
|
ngOnDestroy() {
|
|
2789
2789
|
this.#subscription.unsubscribe();
|
|
2790
2790
|
}
|
|
2791
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2792
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
2791
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HtmlComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2792
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: HtmlComponent, isStandalone: true, selector: "lib-html", inputs: { setVariables: "setVariables", _form: ["form", "_form"], _entity: ["entity", "_entity"], _hashedValues: ["hashedValues", "_hashedValues"], _component: ["component", "_component"], _viewed: ["viewed", "_viewed"] }, ngImport: i0, template: "@if (component && entity) {\r\n <div [innerHTML]=\"entity[key] | htmlPipe: entity[key] : component\"></div>\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"], dependencies: [{ kind: "pipe", type: HtmlPipe, name: "htmlPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2793
2793
|
}
|
|
2794
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2794
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HtmlComponent, decorators: [{
|
|
2795
2795
|
type: Component,
|
|
2796
2796
|
args: [{ selector: 'lib-html', changeDetection: ChangeDetectionStrategy.OnPush, imports: [HtmlPipe], template: "@if (component && entity) {\r\n <div [innerHTML]=\"entity[key] | htmlPipe: entity[key] : component\"></div>\r\n}\r\n", styles: [":host{display:contents;width:100%}\n"] }]
|
|
2797
2797
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FormGenericService }], propDecorators: { setVariables: [{
|
|
@@ -2858,10 +2858,10 @@ class LibItemComponent {
|
|
|
2858
2858
|
await this.itemUpload?.upload?.();
|
|
2859
2859
|
await this.itemTable?.upload?.();
|
|
2860
2860
|
};
|
|
2861
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2862
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
2861
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: LibItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2862
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: LibItemComponent, isStandalone: true, selector: "lib-item", inputs: { setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"], _component: ["component", "_component"], _disabled: ["disabled", "_disabled"], _required: ["required", "_required"], _viewed: ["viewed", "_viewed"], _validator: ["validator", "_validator"] }, viewQueries: [{ propertyName: "itemUpload", first: true, predicate: UploadComponent, descendants: true }, { propertyName: "itemTable", first: true, predicate: TableComponent, descendants: true }], ngImport: i0, template: "@if (entity && component) {\r\n @if (component.type === 'textfield') {\r\n <div [class]=\"col\">\r\n <lib-textfield\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [validator]=\"validator\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed\"></lib-textfield>\r\n </div>\r\n } @else if (component.type === 'textarea') {\r\n <div [class]=\"col\">\r\n <lib-textarea\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed\"></lib-textarea>\r\n </div>\r\n } @else if (component.type === 'chip-string') {\r\n <div [class]=\"col\">\r\n <lib-chip-string\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed\"></lib-chip-string>\r\n </div>\r\n } @else if (component.type === 'chip-calendar') {\r\n <div [class]=\"col\">\r\n <lib-chip-calendar\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed\"></lib-chip-calendar>\r\n </div>\r\n } @else if (component.type === 'number') {\r\n <div [class]=\"col\">\r\n <lib-number\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed\"></lib-number>\r\n </div>\r\n }\r\n @if (component.type === 'select') {\r\n <div [class]=\"col\">\r\n <lib-select\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [component]=\"component\"\r\n [entity]=\"entity\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [validator]=\"validator\"\r\n [viewed]=\"viewed\"></lib-select>\r\n </div>\r\n } @else if (component.type === 'radio') {\r\n <div [class]=\"col\">\r\n <lib-radio\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [component]=\"component\"\r\n [entity]=\"entity\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed\"></lib-radio>\r\n </div>\r\n } @else if (component.type === 'datetime') {\r\n <div [class]=\"col\">\r\n <lib-datetime\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [viewed]=\"viewed\"></lib-datetime>\r\n </div>\r\n } @else if (component.type === 'upload') {\r\n <div [class]=\"col\">\r\n <lib-upload\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [component]=\"component\"\r\n [entity]=\"entity\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [validator]=\"validator\"\r\n [viewed]=\"viewed\">\r\n </lib-upload>\r\n </div>\r\n } @else if (component.type === 'table') {\r\n <div [class]=\"col\">\r\n <lib-table [setVariables]=\"setVariables\" [component]=\"component\" [(model)]=\"entity[component.key!]\" [viewed]=\"viewed\"></lib-table>\r\n </div>\r\n } @else if (component.type === 'html') {\r\n <div [class]=\"col\">\r\n <lib-html [setVariables]=\"setVariables\" [form]=\"form\" [entity]=\"entity\" [component]=\"component\" [viewed]=\"viewed\"> </lib-html>\r\n </div>\r\n }\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: TextfieldComponent, selector: "lib-textfield", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed", "validator"] }, { kind: "component", type: TextareaComponent, selector: "lib-textarea", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed"] }, { kind: "component", type: ChipStringComponent, selector: "lib-chip-string", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed"] }, { kind: "component", type: ChipCalendarComponent, selector: "lib-chip-calendar", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed"] }, { kind: "component", type: NumberComponent, selector: "lib-number", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed"] }, { kind: "component", type: DatetimeComponent, selector: "lib-datetime", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed"] }, { kind: "component", type: SelectComponent, selector: "lib-select", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed", "validator"] }, { kind: "component", type: RadioComponent, selector: "lib-radio", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed"] }, { kind: "component", type: TableComponent, selector: "lib-table", inputs: ["setVariables", "form", "component", "required", "viewed", "model"], outputs: ["modelChange"] }, { kind: "component", type: UploadComponent, selector: "lib-upload", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed", "validator"] }, { kind: "component", type: HtmlComponent, selector: "lib-html", inputs: ["setVariables", "form", "entity", "hashedValues", "component", "viewed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2863
2863
|
}
|
|
2864
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2864
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: LibItemComponent, decorators: [{
|
|
2865
2865
|
type: Component,
|
|
2866
2866
|
args: [{ selector: 'lib-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
2867
2867
|
TextfieldComponent,
|
|
@@ -2949,10 +2949,10 @@ class VariableComponent {
|
|
|
2949
2949
|
ngOnDestroy() {
|
|
2950
2950
|
this.#subscription.unsubscribe();
|
|
2951
2951
|
}
|
|
2952
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
2953
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
2952
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: VariableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2953
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: VariableComponent, isStandalone: true, selector: "variable", inputs: { variables: "variables", setVariables: "setVariables", form: "form", _entity: ["entity", "_entity"] }, ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2954
2954
|
}
|
|
2955
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
2955
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: VariableComponent, decorators: [{
|
|
2956
2956
|
type: Component,
|
|
2957
2957
|
args: [{ selector: 'variable', changeDetection: ChangeDetectionStrategy.OnPush, template: "" }]
|
|
2958
2958
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { variables: [{
|
|
@@ -3099,10 +3099,10 @@ class SdFormRender extends SdBaseSecureComponent {
|
|
|
3099
3099
|
}
|
|
3100
3100
|
return messages;
|
|
3101
3101
|
};
|
|
3102
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3103
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3102
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormRender, deps: [{ token: i0.ChangeDetectorRef }, { token: SD_WORKFLOW_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Component });
|
|
3103
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: SdFormRender, isStandalone: true, selector: "sd-form-render", inputs: { form: "form", _configuration: ["configuration", "_configuration"], _default: ["defaultEntity", "_default"], _entity: ["entity", "_entity"], _properties: ["properties", "_properties"], _viewed: ["viewed", "_viewed"] }, viewQueries: [{ propertyName: "formRenderItems", predicate: LibItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (form && loadCompleted && hashedValues) {\r\n <div class=\"row mx-0\">\r\n @for (component of configuration.components; track component.id) {\r\n @let expression = hashedValues | whenExpression: component : formValue;\r\n @if (!expression.hidden) {\r\n @if (component.type === 'group') {\r\n @if (!!component.components.length) {\r\n <div class=\"col-12 mt-16\">\r\n <sd-section [title]=\"component.label\" [icon]=\"component.properties.icon\">\r\n <div class=\"row mx-0\">\r\n @for (childComponent of component.components; track childComponent.id) {\r\n @let childExpression = hashedValues | whenExpression: childComponent : formValue;\r\n @if (!childExpression.hidden) {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"childComponent\"\r\n [required]=\"childExpression.required\"\r\n [disabled]=\"childExpression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n </div>\r\n </sd-section>\r\n </div>\r\n }\r\n } @else {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"expression.required\"\r\n [disabled]=\"expression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n }\r\n <variable [variables]=\"configuration.variables\" [setVariables]=\"setVariables\" [form]=\"form\" [entity]=\"entity\" ></variable>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: LibItemComponent, selector: "lib-item", inputs: ["setVariables", "form", "entity", "component", "disabled", "required", "viewed", "validator"] }, { kind: "pipe", type: WhenExpressionPipe, name: "whenExpression" }, { kind: "component", type: VariableComponent, selector: "variable", inputs: ["variables", "setVariables", "form", "entity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3104
3104
|
}
|
|
3105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormRender, decorators: [{
|
|
3106
3106
|
type: Component,
|
|
3107
3107
|
args: [{ selector: 'sd-form-render', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, LibItemComponent, WhenExpressionPipe, VariableComponent], template: "@if (form && loadCompleted && hashedValues) {\r\n <div class=\"row mx-0\">\r\n @for (component of configuration.components; track component.id) {\r\n @let expression = hashedValues | whenExpression: component : formValue;\r\n @if (!expression.hidden) {\r\n @if (component.type === 'group') {\r\n @if (!!component.components.length) {\r\n <div class=\"col-12 mt-16\">\r\n <sd-section [title]=\"component.label\" [icon]=\"component.properties.icon\">\r\n <div class=\"row mx-0\">\r\n @for (childComponent of component.components; track childComponent.id) {\r\n @let childExpression = hashedValues | whenExpression: childComponent : formValue;\r\n @if (!childExpression.hidden) {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"childComponent\"\r\n [required]=\"childExpression.required\"\r\n [disabled]=\"childExpression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n </div>\r\n </sd-section>\r\n </div>\r\n }\r\n } @else {\r\n <lib-item\r\n [setVariables]=\"setVariables\"\r\n [form]=\"form\"\r\n [entity]=\"entity\"\r\n [component]=\"component\"\r\n [required]=\"expression.required\"\r\n [disabled]=\"expression.disabled\"\r\n [viewed]=\"viewed\"></lib-item>\r\n }\r\n }\r\n }\r\n <variable [variables]=\"configuration.variables\" [setVariables]=\"setVariables\" [form]=\"form\" [entity]=\"entity\" ></variable>\r\n </div>\r\n}\r\n", styles: [":host{display:contents}\n"] }]
|
|
3108
3108
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
@@ -3252,10 +3252,10 @@ class ExpressionBuilderComponent {
|
|
|
3252
3252
|
condition.value = DateUtilities$1.toFormat(condition.value, 'yyyy/MM/dd HH:mm:00');
|
|
3253
3253
|
}
|
|
3254
3254
|
};
|
|
3255
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3256
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: ExpressionBuilderComponent, isStandalone: true, selector: "expression-builder", inputs: { label: "label", _attributes: ["attributes", "_attributes"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange", sdChange: "sdChange", edit: "edit" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "<!-- <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ (model | expressionQuery) || '--' }}</a> -->\r\n<sd-input [label]=\"label\" style=\"width: 100%;\" [model]=\"(model | expressionQuery) || '--'\" disabled hideInlineError>\r\n <ng-template sdSuffixDef>\r\n <sd-button\r\n prefixIcon=\"edit\"\r\n color=\"primary\"\r\n (click)=\"onEdit()\"\r\n type=\"link\"></sd-button>\r\n </ng-template>\r\n</sd-input>\r\n@if (expression) {\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp bi\u1EC3u th\u1EE9c\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button\r\n prefixIcon=\"calculate\"\r\n class=\"mr-4\"\r\n title=\"Nh\u00F3m \u0111i\u1EC1u ki\u1EC7n\"\r\n color=\"primary\"\r\n (click)=\"addCombinator(expression.conditions)\"></sd-button>\r\n <sd-button\r\n prefixIcon=\"add\"\r\n title=\"\u0110i\u1EC1u ki\u1EC7n\"\r\n color=\"primary\"\r\n (click)=\"addCondition(expression.conditions)\"\r\n type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (conditionLv1 of expression.conditions; track conditionLv1.key; let idxLv1 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv1 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv1 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"expression.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv1.type === 'condition') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 200px\"\r\n [(model)]=\"conditionLv1.field\"\r\n [items]=\"attributes\"\r\n (sdChange)=\"onChangeAttribute(conditionLv1)\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv1.field!];\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 100px\"\r\n [(model)]=\"conditionLv1.operator\"\r\n [items]=\"attributeOperators[fieldAttribute?.type || 'string']\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"!fieldAttribute?.type\"\r\n required\r\n hideInlineError></sd-select>\r\n @if (\r\n !!fieldAttribute?.type && conditionLv1.operator && conditionLv1.operator !== 'NULL' && conditionLv1.operator !== 'NOT_NULL'\r\n ) {\r\n @if (fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input>\r\n } @else if (fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"conditionLv1.value\" hideInlineError></sd-input-number>\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"numberAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n } @else if (fieldAttribute.type === 'datetime' && conditionLv1.dayInfo) {\r\n <sd-select\r\n size=\"sm\"\r\n placeholder=\"Th\u1EDDi \u0111i\u1EC3m\"\r\n [form]=\"form\"\r\n style=\"width: 150px\"\r\n [items]=\"types\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv1.dayInfo.type\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n @if (conditionLv1.dayInfo.type === 'RELATED') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 80px\"\r\n [(model)]=\"conditionLv1.dayInfo.relatedValue\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n [min]=\"1\"\r\n required\r\n hideInlineError>\r\n </sd-input-number>\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [items]=\"previouses\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv1.dayInfo.related\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n } @else if (conditionLv1.dayInfo.type === 'DATETIME') {\r\n <sd-datetime\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-datetime>\r\n } @else if (conditionLv1.dayInfo.type === 'ATTRIBUTE') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"dateAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n } @else if (fieldAttribute.type === 'boolean') {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"[\r\n { value: true, display: fieldAttribute.displayOnTrue },\r\n { value: false, display: fieldAttribute.displayOnFalse }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-select>\r\n } @else if (fieldAttribute.type === 'values') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"fieldAttribute.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button class=\"ml-auto\" prefixIcon=\"delete\" tooltip=\"X\u00F3a\" (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n } @else if (conditionLv1.type === 'combinator') {\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button class=\"mr-4\" prefixIcon=\"delete\" tooltip=\"X\u00F3a\" (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n <sd-button\r\n prefixIcon=\"add\"\r\n title=\"\u0110i\u1EC1u ki\u1EC7n\"\r\n size=\"sm\"\r\n color=\"primary\"\r\n (click)=\"addCondition(conditionLv1.conditions)\"\r\n type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 2 -->\r\n @for (conditionLv2 of conditionLv1.conditions; track conditionLv2.key; let idxLv2 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv2 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv2 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"conditionLv1.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv2.type === 'condition') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 200px\"\r\n [(model)]=\"conditionLv2.field\"\r\n [items]=\"attributes\"\r\n (sdChange)=\"onChangeAttribute(conditionLv2)\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv2.field!];\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 100px\"\r\n [(model)]=\"conditionLv2.operator\"\r\n [items]=\"attributeOperators[fieldAttribute?.type || 'string']\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"!fieldAttribute?.type\"\r\n required\r\n hideInlineError></sd-select>\r\n @if (\r\n !!fieldAttribute?.type &&\r\n conditionLv2.operator &&\r\n conditionLv2.operator !== 'NULL' &&\r\n conditionLv2.operator !== 'NOT_NULL'\r\n ) {\r\n @if (fieldAttribute.type === 'string') {\r\n <sd-input\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n required\r\n hideInlineError></sd-input>\r\n } @else if (fieldAttribute.type === 'number') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n hideInlineError></sd-input-number>\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"numberAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n } @else if (fieldAttribute.type === 'datetime' && conditionLv2.dayInfo) {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n placeholder=\"Th\u1EDDi \u0111i\u1EC3m\"\r\n style=\"width: 150px\"\r\n [items]=\"types\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv2.dayInfo.type\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n @if (conditionLv2.dayInfo.type === 'RELATED') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 80px\"\r\n [(model)]=\"conditionLv2.dayInfo.relatedValue\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n [min]=\"1\"\r\n required\r\n hideInlineError>\r\n </sd-input-number>\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [items]=\"previouses\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv2.dayInfo.related\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n } @else if (conditionLv2.dayInfo.type === 'DATETIME') {\r\n <sd-datetime\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-datetime>\r\n } @else if (conditionLv2.dayInfo.type === 'ATTRIBUTE') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"dateAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n } @else if (fieldAttribute.type === 'boolean') {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"[\r\n { value: true, display: fieldAttribute.displayOnTrue },\r\n { value: false, display: fieldAttribute.displayOnFalse }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-select>\r\n } @else if (fieldAttribute.type === 'values') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"fieldAttribute.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(conditionLv1.conditions, idxLv1)\"></sd-button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdSelect$1, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "pipe", type: ExpressionQueryPipe, name: "expressionQuery" }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "directive", type: SdSuffixDefDirective, selector: "[sdSuffixDef]" }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3255
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionBuilderComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3256
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ExpressionBuilderComponent, isStandalone: true, selector: "expression-builder", inputs: { label: "label", _attributes: ["attributes", "_attributes"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange", sdChange: "sdChange", edit: "edit" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "<!-- <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ (model | expressionQuery) || '--' }}</a> -->\r\n<sd-input [label]=\"label\" style=\"width: 100%;\" [model]=\"(model | expressionQuery) || '--'\" disabled hideInlineError>\r\n <ng-template sdSuffixDef>\r\n <sd-button\r\n prefixIcon=\"edit\"\r\n color=\"primary\"\r\n (click)=\"onEdit()\"\r\n type=\"link\"></sd-button>\r\n </ng-template>\r\n</sd-input>\r\n@if (expression) {\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp bi\u1EC3u th\u1EE9c\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button\r\n prefixIcon=\"calculate\"\r\n class=\"mr-4\"\r\n title=\"Nh\u00F3m \u0111i\u1EC1u ki\u1EC7n\"\r\n color=\"primary\"\r\n (click)=\"addCombinator(expression.conditions)\"></sd-button>\r\n <sd-button\r\n prefixIcon=\"add\"\r\n title=\"\u0110i\u1EC1u ki\u1EC7n\"\r\n color=\"primary\"\r\n (click)=\"addCondition(expression.conditions)\"\r\n type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (conditionLv1 of expression.conditions; track conditionLv1.key; let idxLv1 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv1 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv1 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"expression.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv1.type === 'condition') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 200px\"\r\n [(model)]=\"conditionLv1.field\"\r\n [items]=\"attributes\"\r\n (sdChange)=\"onChangeAttribute(conditionLv1)\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv1.field!];\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 100px\"\r\n [(model)]=\"conditionLv1.operator\"\r\n [items]=\"attributeOperators[fieldAttribute?.type || 'string']\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"!fieldAttribute?.type\"\r\n required\r\n hideInlineError></sd-select>\r\n @if (\r\n !!fieldAttribute?.type && conditionLv1.operator && conditionLv1.operator !== 'NULL' && conditionLv1.operator !== 'NOT_NULL'\r\n ) {\r\n @if (fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input>\r\n } @else if (fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"conditionLv1.value\" hideInlineError></sd-input-number>\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"numberAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n } @else if (fieldAttribute.type === 'datetime' && conditionLv1.dayInfo) {\r\n <sd-select\r\n size=\"sm\"\r\n placeholder=\"Th\u1EDDi \u0111i\u1EC3m\"\r\n [form]=\"form\"\r\n style=\"width: 150px\"\r\n [items]=\"types\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv1.dayInfo.type\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n @if (conditionLv1.dayInfo.type === 'RELATED') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 80px\"\r\n [(model)]=\"conditionLv1.dayInfo.relatedValue\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n [min]=\"1\"\r\n required\r\n hideInlineError>\r\n </sd-input-number>\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [items]=\"previouses\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv1.dayInfo.related\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n } @else if (conditionLv1.dayInfo.type === 'DATETIME') {\r\n <sd-datetime\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv1)\"\r\n required\r\n hideInlineError>\r\n </sd-datetime>\r\n } @else if (conditionLv1.dayInfo.type === 'ATTRIBUTE') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"dateAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n } @else if (fieldAttribute.type === 'boolean') {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"[\r\n { value: true, display: fieldAttribute.displayOnTrue },\r\n { value: false, display: fieldAttribute.displayOnFalse }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-select>\r\n } @else if (fieldAttribute.type === 'values') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv1.value\"\r\n [items]=\"fieldAttribute.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button class=\"ml-auto\" prefixIcon=\"delete\" tooltip=\"X\u00F3a\" (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n } @else if (conditionLv1.type === 'combinator') {\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button class=\"mr-4\" prefixIcon=\"delete\" tooltip=\"X\u00F3a\" (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n <sd-button\r\n prefixIcon=\"add\"\r\n title=\"\u0110i\u1EC1u ki\u1EC7n\"\r\n size=\"sm\"\r\n color=\"primary\"\r\n (click)=\"addCondition(conditionLv1.conditions)\"\r\n type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 2 -->\r\n @for (conditionLv2 of conditionLv1.conditions; track conditionLv2.key; let idxLv2 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv2 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv2 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"conditionLv1.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv2.type === 'condition') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 200px\"\r\n [(model)]=\"conditionLv2.field\"\r\n [items]=\"attributes\"\r\n (sdChange)=\"onChangeAttribute(conditionLv2)\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv2.field!];\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 100px\"\r\n [(model)]=\"conditionLv2.operator\"\r\n [items]=\"attributeOperators[fieldAttribute?.type || 'string']\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"!fieldAttribute?.type\"\r\n required\r\n hideInlineError></sd-select>\r\n @if (\r\n !!fieldAttribute?.type &&\r\n conditionLv2.operator &&\r\n conditionLv2.operator !== 'NULL' &&\r\n conditionLv2.operator !== 'NOT_NULL'\r\n ) {\r\n @if (fieldAttribute.type === 'string') {\r\n <sd-input\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n required\r\n hideInlineError></sd-input>\r\n } @else if (fieldAttribute.type === 'number') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n hideInlineError></sd-input-number>\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"numberAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n } @else if (fieldAttribute.type === 'datetime' && conditionLv2.dayInfo) {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n placeholder=\"Th\u1EDDi \u0111i\u1EC3m\"\r\n style=\"width: 150px\"\r\n [items]=\"types\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv2.dayInfo.type\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n @if (conditionLv2.dayInfo.type === 'RELATED') {\r\n <sd-input-number\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"width: 80px\"\r\n [(model)]=\"conditionLv2.dayInfo.relatedValue\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n [min]=\"1\"\r\n required\r\n hideInlineError>\r\n </sd-input-number>\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [items]=\"previouses\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"conditionLv2.dayInfo.related\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-select>\r\n } @else if (conditionLv2.dayInfo.type === 'DATETIME') {\r\n <sd-datetime\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n (sdChange)=\"onChangeDateInfo(conditionLv2)\"\r\n required\r\n hideInlineError>\r\n </sd-datetime>\r\n } @else if (conditionLv2.dayInfo.type === 'ATTRIBUTE') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"dateAttributes\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n } @else if (fieldAttribute.type === 'boolean') {\r\n <sd-select\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"[\r\n { value: true, display: fieldAttribute.displayOnTrue },\r\n { value: false, display: fieldAttribute.displayOnFalse }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-select>\r\n } @else if (fieldAttribute.type === 'values') {\r\n <sd-autocomplete\r\n size=\"sm\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"conditionLv2.value\"\r\n [items]=\"fieldAttribute.values\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(conditionLv1.conditions, idxLv1)\"></sd-button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdSelect$1, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "pipe", type: ExpressionQueryPipe, name: "expressionQuery" }, { kind: "component", type: SdDatetime, selector: "sd-datetime", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "required", "disabled", "viewed", "inlineError", "hyperlink", "appearance", "floatLabel", "min", "minDate", "max", "maxDate", "model"], outputs: ["modelChange", "sdChange", "sdFocus"] }, { kind: "directive", type: SdSuffixDefDirective, selector: "[sdSuffixDef]" }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3257
3257
|
}
|
|
3258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ExpressionBuilderComponent, decorators: [{
|
|
3259
3259
|
type: Component,
|
|
3260
3260
|
args: [{ selector: 'expression-builder', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
3261
3261
|
SdInput$1,
|
|
@@ -3399,10 +3399,10 @@ class AttributeExpression {
|
|
|
3399
3399
|
}
|
|
3400
3400
|
return attributes;
|
|
3401
3401
|
};
|
|
3402
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3403
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3402
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeExpression, deps: [{ token: i0.ChangeDetectorRef }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3403
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: AttributeExpression, isStandalone: true, selector: "attribute-expression", inputs: { components: "components", variables: "variables", label: "label", _model: ["model", "_model"] }, outputs: { modelChange: "modelChange", sdChange: "sdChange" }, ngImport: i0, template: "\r\n\r\n<expression-builder class=\"d-block py-8\" [label]=\"label\" [(model)]=\"model\" [attributes]=\"attributes\" (sdChange)=\"onChange($event)\" (edit)=\"onEdit()\"></expression-builder>", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: ExpressionBuilderComponent, selector: "expression-builder", inputs: ["label", "attributes", "model"], outputs: ["modelChange", "sdChange", "edit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3404
3404
|
}
|
|
3405
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3405
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeExpression, decorators: [{
|
|
3406
3406
|
type: Component,
|
|
3407
3407
|
args: [{ selector: 'attribute-expression', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ExpressionBuilderComponent], template: "\r\n\r\n<expression-builder class=\"d-block py-8\" [label]=\"label\" [(model)]=\"model\" [attributes]=\"attributes\" (sdChange)=\"onChange($event)\" (edit)=\"onEdit()\"></expression-builder>", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"] }]
|
|
3408
3408
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FormGenericService }], propDecorators: { components: [{
|
|
@@ -3443,10 +3443,10 @@ class AttributeInputNumber {
|
|
|
3443
3443
|
onChange = (value) => {
|
|
3444
3444
|
this.modelChange.emit(value);
|
|
3445
3445
|
};
|
|
3446
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3447
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3446
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeInputNumber, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3447
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: AttributeInputNumber, isStandalone: true, selector: "attribute-input-number", inputs: { _label: ["label", "_label"], _disabled: ["disabled", "_disabled"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: "<!-- <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <sd-input-number\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [(model)]=\"model\"\r\n [disabled]=\"disabled\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-input-number>\r\n</div> -->\r\n<sd-input-number\r\n class=\"py-8\"\r\n [label]=\"label!\"\r\n [(model)]=\"model\"\r\n [disabled]=\"disabled\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-input-number>\r\n", dependencies: [{ kind: "component", type: SdInputNumber, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }] });
|
|
3448
3448
|
}
|
|
3449
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3449
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeInputNumber, decorators: [{
|
|
3450
3450
|
type: Component,
|
|
3451
3451
|
args: [{ selector: 'attribute-input-number', imports: [SdInputNumber], template: "<!-- <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <sd-input-number\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [(model)]=\"model\"\r\n [disabled]=\"disabled\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-input-number>\r\n</div> -->\r\n<sd-input-number\r\n class=\"py-8\"\r\n [label]=\"label!\"\r\n [(model)]=\"model\"\r\n [disabled]=\"disabled\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-input-number>\r\n" }]
|
|
3452
3452
|
}], propDecorators: { _label: [{
|
|
@@ -3485,10 +3485,10 @@ class AttributeInput {
|
|
|
3485
3485
|
this.modelChange.emit(value);
|
|
3486
3486
|
this.sdChange.emit(value);
|
|
3487
3487
|
};
|
|
3488
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3489
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3488
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3489
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: AttributeInput, isStandalone: true, selector: "attribute-input", inputs: { form: "form", _label: ["label", "_label"], _disabled: ["disabled", "_disabled"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange", sdChange: "sdChange" }, ngImport: i0, template: "<!-- <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <sd-input style=\"width: 200px\" size=\"sm\" [form]=\"form\" [(model)]=\"model\" [disabled]=\"disabled\" (sdChange)=\"onChange($event)\" hideInlineError></sd-input>\r\n</div> -->\r\n<sd-input class=\"py-8\" [label]=\"label!\" [form]=\"form\" [(model)]=\"model\" [disabled]=\"disabled\" (sdChange)=\"onChange($event)\" hideInlineError></sd-input>\r\n", dependencies: [{ kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }] });
|
|
3490
3490
|
}
|
|
3491
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3491
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeInput, decorators: [{
|
|
3492
3492
|
type: Component,
|
|
3493
3493
|
args: [{ selector: 'attribute-input', imports: [SdInput$1], template: "<!-- <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <sd-input style=\"width: 200px\" size=\"sm\" [form]=\"form\" [(model)]=\"model\" [disabled]=\"disabled\" (sdChange)=\"onChange($event)\" hideInlineError></sd-input>\r\n</div> -->\r\n<sd-input class=\"py-8\" [label]=\"label!\" [form]=\"form\" [(model)]=\"model\" [disabled]=\"disabled\" (sdChange)=\"onChange($event)\" hideInlineError></sd-input>\r\n" }]
|
|
3494
3494
|
}], propDecorators: { form: [{
|
|
@@ -3526,10 +3526,10 @@ class AttributeSwitch {
|
|
|
3526
3526
|
onChange = (value) => {
|
|
3527
3527
|
this.modelChange.emit(!!value);
|
|
3528
3528
|
};
|
|
3529
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3530
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3529
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeSwitch, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3530
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: AttributeSwitch, isStandalone: true, selector: "attribute-switch", inputs: { form: "form", _label: ["label", "_label"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: "<!-- <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <sd-switch size=\"sm\" [form]=\"form\" [(model)]=\"model\" (sdChange)=\"onChange($event)\" hideInlineError></sd-switch>\r\n</div> -->\r\n<sd-select\r\n class=\"py-8\"\r\n [label]=\"label!\"\r\n [form]=\"form\"\r\n [(model)]=\"model\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [items]=\"[\r\n { value: true, display: 'C\u00F3' },\r\n { value: false, display: 'Kh\u00F4ng' }\r\n ]\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-select>\r\n", dependencies: [{ kind: "component", type: SdSelect$1, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }] });
|
|
3531
3531
|
}
|
|
3532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3532
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeSwitch, decorators: [{
|
|
3533
3533
|
type: Component,
|
|
3534
3534
|
args: [{ selector: 'attribute-switch', imports: [SdSelect$1], template: "<!-- <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <sd-switch size=\"sm\" [form]=\"form\" [(model)]=\"model\" (sdChange)=\"onChange($event)\" hideInlineError></sd-switch>\r\n</div> -->\r\n<sd-select\r\n class=\"py-8\"\r\n [label]=\"label!\"\r\n [form]=\"form\"\r\n [(model)]=\"model\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [items]=\"[\r\n { value: true, display: 'C\u00F3' },\r\n { value: false, display: 'Kh\u00F4ng' }\r\n ]\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-select>\r\n" }]
|
|
3535
3535
|
}], propDecorators: { form: [{
|
|
@@ -3566,10 +3566,10 @@ class AttributeTemplate {
|
|
|
3566
3566
|
}
|
|
3567
3567
|
}
|
|
3568
3568
|
};
|
|
3569
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3570
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3569
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeTemplate, deps: [{ token: SD_WORKFLOW_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Component });
|
|
3570
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: AttributeTemplate, isStandalone: true, selector: "attribute-template", inputs: { _component: ["component", "_component"] }, outputs: { sdChange: "sdChange" }, ngImport: i0, template: "@if (templates.length) {\r\n <!-- <div class=\"d-flex align-items-center py-4\">\r\n <div class=\"T14M\" style=\"flex: 1\">D\u1EEF li\u1EC7u m\u1EABu</div>\r\n <sd-autocomplete\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [(model)]=\"component.template\"\r\n [items]=\"templates\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-autocomplete>\r\n </div> -->\r\n <sd-autocomplete\r\n class=\"py-8\"\r\n label=\"D\u1EEF li\u1EC7u m\u1EABu\"\r\n [(model)]=\"component.template\"\r\n [items]=\"templates\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-autocomplete>\r\n}\r\n", dependencies: [{ kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }] });
|
|
3571
3571
|
}
|
|
3572
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3572
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeTemplate, decorators: [{
|
|
3573
3573
|
type: Component,
|
|
3574
3574
|
args: [{ selector: 'attribute-template', imports: [SdAutocomplete$1], template: "@if (templates.length) {\r\n <!-- <div class=\"d-flex align-items-center py-4\">\r\n <div class=\"T14M\" style=\"flex: 1\">D\u1EEF li\u1EC7u m\u1EABu</div>\r\n <sd-autocomplete\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [(model)]=\"component.template\"\r\n [items]=\"templates\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-autocomplete>\r\n </div> -->\r\n <sd-autocomplete\r\n class=\"py-8\"\r\n label=\"D\u1EEF li\u1EC7u m\u1EABu\"\r\n [(model)]=\"component.template\"\r\n [items]=\"templates\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-autocomplete>\r\n}\r\n" }]
|
|
3575
3575
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -3605,10 +3605,10 @@ class AttributeTextarea {
|
|
|
3605
3605
|
this.modelChange.emit(value);
|
|
3606
3606
|
this.sdChange.emit(value);
|
|
3607
3607
|
};
|
|
3608
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3609
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
3608
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeTextarea, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3609
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: AttributeTextarea, isStandalone: true, selector: "attribute-textarea", inputs: { form: "form", _label: ["label", "_label"], _disabled: ["disabled", "_disabled"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange", sdChange: "sdChange" }, ngImport: i0, template: "<sd-textarea class=\"py-8\" [label]=\"label!\" [form]=\"form\" [(model)]=\"model\" [disabled]=\"disabled\" (sdChange)=\"onChange($event)\" hideInlineError></sd-textarea>", dependencies: [{ kind: "component", type: SdTextarea, selector: "sd-textarea", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "rows", "hideInlineError", "required", "disabled", "viewed", "autoHeight", "maxlength", "pattern", "validator", "inlineError", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange"] }] });
|
|
3610
3610
|
}
|
|
3611
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3611
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeTextarea, decorators: [{
|
|
3612
3612
|
type: Component,
|
|
3613
3613
|
args: [{ selector: 'attribute-textarea', imports: [SdTextarea], template: "<sd-textarea class=\"py-8\" [label]=\"label!\" [form]=\"form\" [(model)]=\"model\" [disabled]=\"disabled\" (sdChange)=\"onChange($event)\" hideInlineError></sd-textarea>" }]
|
|
3614
3614
|
}], propDecorators: { form: [{
|
|
@@ -3642,10 +3642,10 @@ class BuilderService {
|
|
|
3642
3642
|
// Debound 0.2s để tránh trigger liên tục
|
|
3643
3643
|
return this.#componentChanges.pipe(debounceTime(200));
|
|
3644
3644
|
}
|
|
3645
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3646
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
3645
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3646
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuilderService, providedIn: 'root' });
|
|
3647
3647
|
}
|
|
3648
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3648
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuilderService, decorators: [{
|
|
3649
3649
|
type: Injectable,
|
|
3650
3650
|
args: [{
|
|
3651
3651
|
providedIn: 'root',
|
|
@@ -3697,10 +3697,10 @@ class TextfieldAttribute {
|
|
|
3697
3697
|
this.ref.markForCheck();
|
|
3698
3698
|
}
|
|
3699
3699
|
};
|
|
3700
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3701
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3700
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextfieldAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3701
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TextfieldAttribute, isStandalone: true, selector: "textfield-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-textarea [form]=\"form\" label=\"G\u1EE3i \u00FD\" [(model)]=\"component.helperText\"></attribute-textarea>\r\n <attribute-input [form]=\"form\" label=\"Gi\u00E1 tr\u1ECB m\u1EB7c \u0111\u1ECBnh\" [(model)]=\"component.defaultValue\"></attribute-input>\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n <attribute-input-number label=\"K\u00FD t\u1EF1 t\u1ED1i \u0111a\" [(model)]=\"component.validate!.maxlength\"></attribute-input-number>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n <attribute-input label=\"Expression\" [(model)]=\"component.validate!.pattern\"></attribute-input>\r\n <attribute-input label=\"Expression message\" [(model)]=\"component.validate!.patternErrorMessage\"></attribute-input>\r\n </sd-section>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeInputNumber, selector: "attribute-input-number", inputs: ["label", "disabled", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeTextarea, selector: "attribute-textarea", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3702
3702
|
}
|
|
3703
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3703
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextfieldAttribute, decorators: [{
|
|
3704
3704
|
type: Component,
|
|
3705
3705
|
args: [{ selector: 'textfield-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeExpression, AttributeInput, AttributeInputNumber, AttributeSwitch, AttributeTextarea], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-textarea [form]=\"form\" label=\"G\u1EE3i \u00FD\" [(model)]=\"component.helperText\"></attribute-textarea>\r\n <attribute-input [form]=\"form\" label=\"Gi\u00E1 tr\u1ECB m\u1EB7c \u0111\u1ECBnh\" [(model)]=\"component.defaultValue\"></attribute-input>\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n <attribute-input-number label=\"K\u00FD t\u1EF1 t\u1ED1i \u0111a\" [(model)]=\"component.validate!.maxlength\"></attribute-input-number>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n <attribute-input label=\"Expression\" [(model)]=\"component.validate!.pattern\"></attribute-input>\r\n <attribute-input label=\"Expression message\" [(model)]=\"component.validate!.patternErrorMessage\"></attribute-input>\r\n </sd-section>\r\n}\r\n" }]
|
|
3706
3706
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -3741,10 +3741,10 @@ class TextFieldControl {
|
|
|
3741
3741
|
ngOnDestroy() {
|
|
3742
3742
|
this.#subscription.unsubscribe();
|
|
3743
3743
|
}
|
|
3744
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3745
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3744
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextFieldControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3745
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TextFieldControl, isStandalone: true, selector: "textfield-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">\r\n Your input text\r\n </div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\">{{component.defaultValue}}</div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative;padding:0 8px;color:#bfbfbf}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3746
3746
|
}
|
|
3747
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3747
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextFieldControl, decorators: [{
|
|
3748
3748
|
type: Component,
|
|
3749
3749
|
args: [{ selector: 'textfield-control', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">\r\n Your input text\r\n </div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\">{{component.defaultValue}}</div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative;padding:0 8px;color:#bfbfbf}\n"] }]
|
|
3750
3750
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -3797,10 +3797,10 @@ class TextareaAttribute {
|
|
|
3797
3797
|
this.ref.markForCheck();
|
|
3798
3798
|
}
|
|
3799
3799
|
};
|
|
3800
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3801
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3800
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextareaAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3801
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TextareaAttribute, isStandalone: true, selector: "textarea-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-textarea [form]=\"form\" label=\"G\u1EE3i \u00FD\" [(model)]=\"component.helperText\"></attribute-textarea>\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n <attribute-input-number label=\"K\u00FD t\u1EF1 t\u1ED1i \u0111a\" [(model)]=\"component.validate!.maxlength\"></attribute-input-number>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeInputNumber, selector: "attribute-input-number", inputs: ["label", "disabled", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeTextarea, selector: "attribute-textarea", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3802
3802
|
}
|
|
3803
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3803
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextareaAttribute, decorators: [{
|
|
3804
3804
|
type: Component,
|
|
3805
3805
|
args: [{ selector: 'textarea-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeInput, AttributeInputNumber, AttributeSwitch, AttributeExpression, AttributeTextarea], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-textarea [form]=\"form\" label=\"G\u1EE3i \u00FD\" [(model)]=\"component.helperText\"></attribute-textarea>\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n <attribute-input-number label=\"K\u00FD t\u1EF1 t\u1ED1i \u0111a\" [(model)]=\"component.validate!.maxlength\"></attribute-input-number>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n}\r\n" }]
|
|
3806
3806
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -3842,10 +3842,10 @@ class TextareaControl {
|
|
|
3842
3842
|
ngOnDestroy() {
|
|
3843
3843
|
this.#subscription.unsubscribe();
|
|
3844
3844
|
}
|
|
3845
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3846
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3845
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextareaControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3846
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TextareaControl, isStandalone: true, selector: "textarea-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">Your input text</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-textarea\"></div>\r\n </div>\r\n}\r\n", styles: [".c-textarea{width:100%;background:#fff;height:100px;border:1px solid #d3d3d3;border-radius:4px;position:relative}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3847
3847
|
}
|
|
3848
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3848
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TextareaControl, decorators: [{
|
|
3849
3849
|
type: Component,
|
|
3850
3850
|
args: [{ selector: 'textarea-control', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">Your input text</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-textarea\"></div>\r\n </div>\r\n}\r\n", styles: [".c-textarea{width:100%;background:#fff;height:100px;border:1px solid #d3d3d3;border-radius:4px;position:relative}\n"] }]
|
|
3851
3851
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -3882,10 +3882,10 @@ class ChipStringControl {
|
|
|
3882
3882
|
ngOnDestroy() {
|
|
3883
3883
|
this.#subscription.unsubscribe();
|
|
3884
3884
|
}
|
|
3885
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3886
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3885
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipStringControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3886
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ChipStringControl, isStandalone: true, selector: "chip-string-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">One, Two, Three</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\">\r\n <span class=\"c-chip\">One</span>\r\n <span class=\"c-chip\">Two</span>\r\n <span class=\"c-chip\">Three</span>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative}.c-chip{display:inline-block;padding:2px 8px;background:#e0e0e0;border-radius:16px;font-size:13px;line-height:20px;margin:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3887
3887
|
}
|
|
3888
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3888
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipStringControl, decorators: [{
|
|
3889
3889
|
type: Component,
|
|
3890
3890
|
args: [{ selector: 'chip-string-control', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">One, Two, Three</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\">\r\n <span class=\"c-chip\">One</span>\r\n <span class=\"c-chip\">Two</span>\r\n <span class=\"c-chip\">Three</span>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative}.c-chip{display:inline-block;padding:2px 8px;background:#e0e0e0;border-radius:16px;font-size:13px;line-height:20px;margin:2px}\n"] }]
|
|
3891
3891
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -3945,10 +3945,10 @@ class ChipStringAttribute {
|
|
|
3945
3945
|
onChanges = () => {
|
|
3946
3946
|
this.#changes.next();
|
|
3947
3947
|
};
|
|
3948
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3949
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3948
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipStringAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3949
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ChipStringAttribute, isStandalone: true, selector: "chip-string-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n @if (component.properties!.viewed) {\r\n <attribute-input label=\"Hyperlink\" [(model)]=\"component.properties!.hyperlink\"></attribute-input>\r\n }\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n @if (!component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n }\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3950
3950
|
}
|
|
3951
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3951
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipStringAttribute, decorators: [{
|
|
3952
3952
|
type: Component,
|
|
3953
3953
|
args: [{ selector: 'chip-string-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeInput, AttributeSwitch, AttributeExpression], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n @if (component.properties!.viewed) {\r\n <attribute-input label=\"Hyperlink\" [(model)]=\"component.properties!.hyperlink\"></attribute-input>\r\n }\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n @if (!component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n }\r\n}\r\n" }]
|
|
3954
3954
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -3991,10 +3991,10 @@ class ChipCalendarControl {
|
|
|
3991
3991
|
ngOnDestroy() {
|
|
3992
3992
|
this.#subscription.unsubscribe();
|
|
3993
3993
|
}
|
|
3994
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
3995
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
3994
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipCalendarControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3995
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ChipCalendarControl, isStandalone: true, selector: "chip-calendar-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">One, Two, Three</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\">\r\n <span class=\"c-chip\">One</span>\r\n <span class=\"c-chip\">Two</span>\r\n <span class=\"c-chip\">Three</span>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative}.c-chip{display:inline-block;padding:2px 8px;background:#e0e0e0;border-radius:16px;font-size:13px;line-height:20px;margin:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3996
3996
|
}
|
|
3997
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
3997
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipCalendarControl, decorators: [{
|
|
3998
3998
|
type: Component,
|
|
3999
3999
|
args: [{ selector: 'chip-calendar-control', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">One, Two, Three</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\">\r\n <span class=\"c-chip\">One</span>\r\n <span class=\"c-chip\">Two</span>\r\n <span class=\"c-chip\">Three</span>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative}.c-chip{display:inline-block;padding:2px 8px;background:#e0e0e0;border-radius:16px;font-size:13px;line-height:20px;margin:2px}\n"] }]
|
|
4000
4000
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -4054,10 +4054,10 @@ class ChipCalendarAttribute {
|
|
|
4054
4054
|
onChanges = () => {
|
|
4055
4055
|
this.#changes.next();
|
|
4056
4056
|
};
|
|
4057
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4058
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4057
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipCalendarAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4058
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ChipCalendarAttribute, isStandalone: true, selector: "chip-calendar-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n @if (component.properties!.viewed) {\r\n <attribute-input label=\"Hyperlink\" [(model)]=\"component.properties!.hyperlink\"></attribute-input>\r\n }\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n @if (!component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n }\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4059
4059
|
}
|
|
4060
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4060
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ChipCalendarAttribute, decorators: [{
|
|
4061
4061
|
type: Component,
|
|
4062
4062
|
args: [{ selector: 'chip-calendar-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeInput, AttributeSwitch, AttributeExpression], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n @if (component.properties!.viewed) {\r\n <attribute-input label=\"Hyperlink\" [(model)]=\"component.properties!.hyperlink\"></attribute-input>\r\n }\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n @if (!component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n }\r\n}\r\n" }]
|
|
4063
4063
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -4120,10 +4120,10 @@ class NumberAttribute {
|
|
|
4120
4120
|
this.ref.markForCheck();
|
|
4121
4121
|
}
|
|
4122
4122
|
};
|
|
4123
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4124
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4123
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NumberAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4124
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: NumberAttribute, isStandalone: true, selector: "number-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-textarea [form]=\"form\" label=\"G\u1EE3i \u00FD\" [(model)]=\"component.helperText\"></attribute-textarea>\r\n</sd-section>\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n <attribute-input-number label=\"Gi\u00E1 tr\u1ECB nh\u1ECF nh\u1EA5t\" [(model)]=\"component.validate!.min\"></attribute-input-number>\r\n <attribute-input-number label=\"Gi\u00E1 tr\u1ECB l\u1EDBn nh\u1EA5t\" [(model)]=\"component.validate!.max\"></attribute-input-number>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeInputNumber, selector: "attribute-input-number", inputs: ["label", "disabled", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeTextarea, selector: "attribute-textarea", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4125
4125
|
}
|
|
4126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NumberAttribute, decorators: [{
|
|
4127
4127
|
type: Component,
|
|
4128
4128
|
args: [{ selector: 'number-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeInput, AttributeInputNumber, AttributeSwitch, AttributeExpression, AttributeTextarea], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-textarea [form]=\"form\" label=\"G\u1EE3i \u00FD\" [(model)]=\"component.helperText\"></attribute-textarea>\r\n</sd-section>\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n <attribute-input-number label=\"Gi\u00E1 tr\u1ECB nh\u1ECF nh\u1EA5t\" [(model)]=\"component.validate!.min\"></attribute-input-number>\r\n <attribute-input-number label=\"Gi\u00E1 tr\u1ECB l\u1EDBn nh\u1EA5t\" [(model)]=\"component.validate!.max\"></attribute-input-number>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n}\r\n" }]
|
|
4129
4129
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -4167,10 +4167,10 @@ class NumberControl {
|
|
|
4167
4167
|
ngOnDestroy() {
|
|
4168
4168
|
this.#subscription.unsubscribe();
|
|
4169
4169
|
}
|
|
4170
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4171
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4170
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NumberControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4171
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: NumberControl, isStandalone: true, selector: "number-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">{{number}}</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\"></div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4172
4172
|
}
|
|
4173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: NumberControl, decorators: [{
|
|
4174
4174
|
type: Component,
|
|
4175
4175
|
args: [{ selector: 'number-control', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">{{number}}</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\"></div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative}\n"] }]
|
|
4176
4176
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -4205,10 +4205,10 @@ class DatetimeControl {
|
|
|
4205
4205
|
ngOnDestroy() {
|
|
4206
4206
|
this.#subscription.unsubscribe();
|
|
4207
4207
|
}
|
|
4208
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4209
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4208
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DatetimeControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4209
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: DatetimeControl, isStandalone: true, selector: "datetime-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">{{ component.subtype === 'datetime' ? datetime : date }}</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\">\r\n <svg viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;position:relative;border-radius:4px}.c-input svg{position:absolute;top:2px;right:3px;color:#999}.label{font-weight:500}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4210
4210
|
}
|
|
4211
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DatetimeControl, decorators: [{
|
|
4212
4212
|
type: Component,
|
|
4213
4213
|
args: [{ selector: 'datetime-control', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">{{ component.subtype === 'datetime' ? datetime : date }}</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input\">\r\n <svg viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentColor\" focusable=\"false\">\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;position:relative;border-radius:4px}.c-input svg{position:absolute;top:2px;right:3px;color:#999}.label{font-weight:500}\n"] }]
|
|
4214
4214
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -4253,10 +4253,10 @@ class AttributeSelect {
|
|
|
4253
4253
|
this.modelChange.emit(value);
|
|
4254
4254
|
this.sdChange.emit(value);
|
|
4255
4255
|
};
|
|
4256
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4257
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
4256
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4257
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: AttributeSelect, isStandalone: true, selector: "attribute-select", inputs: { form: "form", _label: ["label", "_label"], _disabled: ["disabled", "_disabled"], _multiple: ["multiple", "_multiple"], _items: ["items", "_items"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange", sdChange: "sdChange" }, ngImport: i0, template: "<!-- <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <sd-select\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [form]=\"form\"\r\n [(model)]=\"model\"\r\n [items]=\"items\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"disabled\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-select>\r\n</div> -->\r\n<sd-select\r\n class=\"py-8\"\r\n [label]=\"label!\"\r\n [form]=\"form\"\r\n [(model)]=\"model\"\r\n [items]=\"items\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"disabled\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-select>", dependencies: [{ kind: "component", type: SdSelect$1, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }] });
|
|
4258
4258
|
}
|
|
4259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeSelect, decorators: [{
|
|
4260
4260
|
type: Component,
|
|
4261
4261
|
args: [{ selector: 'attribute-select', imports: [SdSelect$1], template: "<!-- <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <sd-select\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [form]=\"form\"\r\n [(model)]=\"model\"\r\n [items]=\"items\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"disabled\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-select>\r\n</div> -->\r\n<sd-select\r\n class=\"py-8\"\r\n [label]=\"label!\"\r\n [form]=\"form\"\r\n [(model)]=\"model\"\r\n [items]=\"items\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [disabled]=\"disabled\"\r\n (sdChange)=\"onChange($event)\"\r\n hideInlineError></sd-select>" }]
|
|
4262
4262
|
}], propDecorators: { form: [{
|
|
@@ -4327,10 +4327,10 @@ class DatetimeAttribute {
|
|
|
4327
4327
|
this.ref.markForCheck();
|
|
4328
4328
|
}
|
|
4329
4329
|
};
|
|
4330
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4331
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4330
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DatetimeAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4331
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: DatetimeAttribute, isStandalone: true, selector: "datetime-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-select\r\n label=\"\u0110\u1ECBnh d\u1EA1ng\"\r\n [(model)]=\"component.subtype\"\r\n [items]=\"[\r\n { value: 'date', display: 'dd/MM/yyyy' },\r\n { value: 'datetime', display: 'dd/MM/yyyy HH:mm' }\r\n ]\"></attribute-select>\r\n <attribute-textarea [form]=\"form\" label=\"G\u1EE3i \u00FD\" [(model)]=\"component.helperText\"></attribute-textarea>\r\n</sd-section>\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch [form]=\"form\" label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeSelect, selector: "attribute-select", inputs: ["form", "label", "disabled", "multiple", "items", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeTextarea, selector: "attribute-textarea", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4332
4332
|
}
|
|
4333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: DatetimeAttribute, decorators: [{
|
|
4334
4334
|
type: Component,
|
|
4335
4335
|
args: [{ selector: 'datetime-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeInput, AttributeSwitch, AttributeSelect, AttributeExpression, AttributeTextarea], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-select\r\n label=\"\u0110\u1ECBnh d\u1EA1ng\"\r\n [(model)]=\"component.subtype\"\r\n [items]=\"[\r\n { value: 'date', display: 'dd/MM/yyyy' },\r\n { value: 'datetime', display: 'dd/MM/yyyy HH:mm' }\r\n ]\"></attribute-select>\r\n <attribute-textarea [form]=\"form\" label=\"G\u1EE3i \u00FD\" [(model)]=\"component.helperText\"></attribute-textarea>\r\n</sd-section>\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch [form]=\"form\" label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n}\r\n" }]
|
|
4336
4336
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -4409,10 +4409,10 @@ let BuildQueries$1 = class BuildQueries {
|
|
|
4409
4409
|
this.modal?.close();
|
|
4410
4410
|
this.ref.markForCheck();
|
|
4411
4411
|
};
|
|
4412
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4413
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4412
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuildQueries, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4413
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BuildQueries, isStandalone: true, selector: "build-queries", inputs: { components: "components", variables: "variables", label: "label", selections: "selections", _valuesKey: ["valuesKey", "_valuesKey"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "@if (!!selection?.queries?.items?.length) {\r\n <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <div style=\"width: 200px\" class=\"d-flex align-items-center\">\r\n <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ queryString }}</a>\r\n </div>\r\n </div>\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp gi\u00E1 tr\u1ECB truy v\u1EA5n\" width=\"400px\">\r\n <div class=\"c-builder\">\r\n @for (property of leftProperties; track property.value) {\r\n <div class=\"d-flex align-items-center py-8\" style=\"gap: 8px\">\r\n <div style=\"width: 150px\">\r\n <div class=\"text-secondary\">{{ property.value }}</div>\r\n <div class=\"T16M\">{{ property.display }}</div>\r\n </div>\r\n <sd-autocomplete\r\n label=\"Tr\u01B0\u1EDDng l\u1EA5y gi\u00E1 tr\u1ECB\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"model![property.value]\"\r\n [items]=\"rightProperties\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4414
4414
|
};
|
|
4415
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4415
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuildQueries$1, decorators: [{
|
|
4416
4416
|
type: Component,
|
|
4417
4417
|
args: [{ selector: 'build-queries', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdAutocomplete$1, SdButton, SdModal], template: "@if (!!selection?.queries?.items?.length) {\r\n <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <div style=\"width: 200px\" class=\"d-flex align-items-center\">\r\n <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ queryString }}</a>\r\n </div>\r\n </div>\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp gi\u00E1 tr\u1ECB truy v\u1EA5n\" width=\"400px\">\r\n <div class=\"c-builder\">\r\n @for (property of leftProperties; track property.value) {\r\n <div class=\"d-flex align-items-center py-8\" style=\"gap: 8px\">\r\n <div style=\"width: 150px\">\r\n <div class=\"text-secondary\">{{ property.value }}</div>\r\n <div class=\"T16M\">{{ property.display }}</div>\r\n </div>\r\n <sd-autocomplete\r\n label=\"Tr\u01B0\u1EDDng l\u1EA5y gi\u00E1 tr\u1ECB\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"model![property.value]\"\r\n [items]=\"rightProperties\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n hideInlineError></sd-autocomplete>\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"] }]
|
|
4418
4418
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { modal: [{
|
|
@@ -4524,10 +4524,10 @@ class BuildVariables {
|
|
|
4524
4524
|
this.modal?.close();
|
|
4525
4525
|
this.ref.markForCheck();
|
|
4526
4526
|
};
|
|
4527
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4528
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4527
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuildVariables, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4528
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BuildVariables, isStandalone: true, selector: "build-variables", inputs: { components: "components", variables: "variables", label: "label", selections: "selections", _valuesKey: ["valuesKey", "_valuesKey"], _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "@if (!!selection?.variables?.items?.length) {\r\n <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <div style=\"width: 200px\" class=\"d-flex align-items-center\">\r\n <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ queryString }}</a>\r\n </div>\r\n </div>\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp g\u00E1n gi\u00E1 tr\u1ECB khi thay \u0111\u1ED5i\" width=\"500px\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button prefixIcon=\"add\" title=\"Th\u00EAm tr\u01B0\u1EDDng\" color=\"primary\" (click)=\"addField()\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (item of items; track item.id; let idx = $index) {\r\n <div class=\"d-flex align-items-center py-8\" style=\"gap: 8px\">\r\n <sd-autocomplete\r\n label=\"Tr\u01B0\u1EDDng mu\u1ED1n g\u00E1n gi\u00E1 tr\u1ECB\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"item.key\"\r\n [items]=\"leftProperties\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n <sd-autocomplete\r\n label=\"Gi\u00E1 tr\u1ECB mu\u1ED1n g\u00E1n\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"item.value\"\r\n [items]=\"rightProperties\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4529
4529
|
}
|
|
4530
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4530
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuildVariables, decorators: [{
|
|
4531
4531
|
type: Component,
|
|
4532
4532
|
args: [{ selector: 'build-variables', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdAutocomplete$1, SdButton, SdModal], template: "@if (!!selection?.variables?.items?.length) {\r\n <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <div style=\"width: 200px\" class=\"d-flex align-items-center\">\r\n <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ queryString }}</a>\r\n </div>\r\n </div>\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp g\u00E1n gi\u00E1 tr\u1ECB khi thay \u0111\u1ED5i\" width=\"500px\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button prefixIcon=\"add\" title=\"Th\u00EAm tr\u01B0\u1EDDng\" color=\"primary\" (click)=\"addField()\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (item of items; track item.id; let idx = $index) {\r\n <div class=\"d-flex align-items-center py-8\" style=\"gap: 8px\">\r\n <sd-autocomplete\r\n label=\"Tr\u01B0\u1EDDng mu\u1ED1n g\u00E1n gi\u00E1 tr\u1ECB\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"item.key\"\r\n [items]=\"leftProperties\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n <sd-autocomplete\r\n label=\"Gi\u00E1 tr\u1ECB mu\u1ED1n g\u00E1n\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"item.value\"\r\n [items]=\"rightProperties\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"] }]
|
|
4533
4533
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { modal: [{
|
|
@@ -4622,10 +4622,10 @@ class AttributeSelection {
|
|
|
4622
4622
|
this.valuesChange.emit(this.values);
|
|
4623
4623
|
this.ref.markForCheck();
|
|
4624
4624
|
};
|
|
4625
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4626
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4625
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeSelection, deps: [{ token: i0.ChangeDetectorRef }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4626
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: AttributeSelection, isStandalone: true, selector: "attribute-selection", inputs: { components: "components", variables: "variables", component: "component", _valuesKey: ["valuesKey", "_valuesKey"], _values: ["values", "_values"] }, outputs: { valuesKeyChange: "valuesKeyChange", valuesChange: "valuesChange", sdChange: "sdChange" }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"D\u1EEF li\u1EC7u\" icon=\"format_list_bulleted\">\r\n @if (selections.length) {\r\n <div class=\"d-flex align-items-center py-4\">\r\n <div class=\"T14M\" style=\"flex: 1\">D\u1EEF li\u1EC7u API</div>\r\n <sd-autocomplete\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [(model)]=\"valuesKey\"\r\n [items]=\"selections\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n (sdChange)=\"onChangeValuesKey($event)\"\r\n hideInlineError></sd-autocomplete>\r\n </div>\r\n <!-- N\u1EBFu l\u00E0 select t\u1EEB API th\u00EC cho ph\u00E9p truy\u1EC1n th\u00EAm Query -->\r\n\r\n @if (component.type === 'select' && !!valuesKey) {\r\n <build-queries\r\n label=\"\u0110i\u1EC1u ki\u1EC7n truy v\u1EA5n\"\r\n [selections]=\"selections\"\r\n [valuesKey]=\"valuesKey\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.query\"></build-queries>\r\n <build-variables\r\n label=\"G\u00E1n gi\u00E1 tr\u1ECB\"\r\n [selections]=\"selections\"\r\n [valuesKey]=\"valuesKey\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.setVariables\"></build-variables>\r\n <!-- <div class=\"d-flex align-items-center py-4\">\r\n <div class=\"T14M\" style=\"flex: 1\">\u0110i\u1EC1u ki\u1EC7n truy v\u1EA5n</div>\r\n <sd-input style=\"width: 200px\" size=\"sm\" [(model)]=\"component.properties!.query\" hideInlineError></sd-input>\r\n </div> -->\r\n }\r\n }\r\n @if (!valuesKey) {\r\n <div class=\"d-flex flex-column\" style=\"gap: 4px\">\r\n <div class=\"T14M\">D\u1EEF li\u1EC7u t\u0129nh</div>\r\n @for (item of values; track item.value; let idx = $index) {\r\n <div class=\"d-flex align-items-end py-4\" style=\"gap: 4px\">\r\n <sd-input style=\"width: 200px\" size=\"sm\" [(model)]=\"item.value\" (sdChange)=\"onChangeValues()\" hideInlineError></sd-input>\r\n <sd-input style=\"width: 200px\" size=\"sm\" [(model)]=\"item.label\" (sdChange)=\"onChangeValues()\" hideInlineError></sd-input>\r\n <sd-button prefixIcon=\"delete\" (click)=\"removeItem(idx)\" color=\"error\"></sd-button>\r\n </div>\r\n }\r\n <sd-button prefixIcon=\"add\" title=\"Th\u00EAm d\u1EEF li\u1EC7u\" (click)=\"addItem()\" color=\"primary\"></sd-button>\r\n </div>\r\n }\r\n</sd-section>\r\n", dependencies: [{ kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: BuildQueries$1, selector: "build-queries", inputs: ["components", "variables", "label", "selections", "valuesKey", "model"], outputs: ["modelChange"] }, { kind: "component", type: BuildVariables, selector: "build-variables", inputs: ["components", "variables", "label", "selections", "valuesKey", "model"], outputs: ["modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4627
4627
|
}
|
|
4628
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4628
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeSelection, decorators: [{
|
|
4629
4629
|
type: Component,
|
|
4630
4630
|
args: [{ selector: 'attribute-selection', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdInput$1, SdAutocomplete$1, SdButton, SdSection, BuildQueries$1, BuildVariables], template: "<sd-section class=\"mt-8\" title=\"D\u1EEF li\u1EC7u\" icon=\"format_list_bulleted\">\r\n @if (selections.length) {\r\n <div class=\"d-flex align-items-center py-4\">\r\n <div class=\"T14M\" style=\"flex: 1\">D\u1EEF li\u1EC7u API</div>\r\n <sd-autocomplete\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [(model)]=\"valuesKey\"\r\n [items]=\"selections\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n (sdChange)=\"onChangeValuesKey($event)\"\r\n hideInlineError></sd-autocomplete>\r\n </div>\r\n <!-- N\u1EBFu l\u00E0 select t\u1EEB API th\u00EC cho ph\u00E9p truy\u1EC1n th\u00EAm Query -->\r\n\r\n @if (component.type === 'select' && !!valuesKey) {\r\n <build-queries\r\n label=\"\u0110i\u1EC1u ki\u1EC7n truy v\u1EA5n\"\r\n [selections]=\"selections\"\r\n [valuesKey]=\"valuesKey\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.query\"></build-queries>\r\n <build-variables\r\n label=\"G\u00E1n gi\u00E1 tr\u1ECB\"\r\n [selections]=\"selections\"\r\n [valuesKey]=\"valuesKey\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.setVariables\"></build-variables>\r\n <!-- <div class=\"d-flex align-items-center py-4\">\r\n <div class=\"T14M\" style=\"flex: 1\">\u0110i\u1EC1u ki\u1EC7n truy v\u1EA5n</div>\r\n <sd-input style=\"width: 200px\" size=\"sm\" [(model)]=\"component.properties!.query\" hideInlineError></sd-input>\r\n </div> -->\r\n }\r\n }\r\n @if (!valuesKey) {\r\n <div class=\"d-flex flex-column\" style=\"gap: 4px\">\r\n <div class=\"T14M\">D\u1EEF li\u1EC7u t\u0129nh</div>\r\n @for (item of values; track item.value; let idx = $index) {\r\n <div class=\"d-flex align-items-end py-4\" style=\"gap: 4px\">\r\n <sd-input style=\"width: 200px\" size=\"sm\" [(model)]=\"item.value\" (sdChange)=\"onChangeValues()\" hideInlineError></sd-input>\r\n <sd-input style=\"width: 200px\" size=\"sm\" [(model)]=\"item.label\" (sdChange)=\"onChangeValues()\" hideInlineError></sd-input>\r\n <sd-button prefixIcon=\"delete\" (click)=\"removeItem(idx)\" color=\"error\"></sd-button>\r\n </div>\r\n }\r\n <sd-button prefixIcon=\"add\" title=\"Th\u00EAm d\u1EEF li\u1EC7u\" (click)=\"addItem()\" color=\"primary\"></sd-button>\r\n </div>\r\n }\r\n</sd-section>\r\n" }]
|
|
4631
4631
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FormGenericService }], propDecorators: { components: [{
|
|
@@ -4703,10 +4703,10 @@ class SelectAttribute {
|
|
|
4703
4703
|
this.ref.markForCheck();
|
|
4704
4704
|
}
|
|
4705
4705
|
};
|
|
4706
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4707
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4706
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SelectAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4707
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: SelectAttribute, isStandalone: true, selector: "select-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-switch label=\"Ch\u1ECDn nhi\u1EC1u\" [(model)]=\"component.properties!.multiple\"></attribute-switch>\r\n @if (component.properties!.viewed) {\r\n <attribute-input label=\"Hyperlink\" [(model)]=\"component.properties!.hyperlink\"></attribute-input>\r\n }\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <attribute-selection\r\n [components]=\"components\"\r\n [component]=\"component\"\r\n [variables]=\"variables\"\r\n [(valuesKey)]=\"component.valuesKey\"\r\n [(values)]=\"component.values\"\r\n (valuesKeyChange)=\"onChanges()\"\r\n (valuesChange)=\"onChanges()\"></attribute-selection>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeSelection, selector: "attribute-selection", inputs: ["components", "variables", "component", "valuesKey", "values"], outputs: ["valuesKeyChange", "valuesChange", "sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4708
4708
|
}
|
|
4709
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4709
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SelectAttribute, decorators: [{
|
|
4710
4710
|
type: Component,
|
|
4711
4711
|
args: [{ selector: 'select-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeSelection, AttributeInput, AttributeSwitch, AttributeExpression], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-switch label=\"Ch\u1ECDn nhi\u1EC1u\" [(model)]=\"component.properties!.multiple\"></attribute-switch>\r\n @if (component.properties!.viewed) {\r\n <attribute-input label=\"Hyperlink\" [(model)]=\"component.properties!.hyperlink\"></attribute-input>\r\n }\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <attribute-selection\r\n [components]=\"components\"\r\n [component]=\"component\"\r\n [variables]=\"variables\"\r\n [(valuesKey)]=\"component.valuesKey\"\r\n [(values)]=\"component.values\"\r\n (valuesKeyChange)=\"onChanges()\"\r\n (valuesChange)=\"onChanges()\"></attribute-selection>\r\n}\r\n" }]
|
|
4712
4712
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -4748,10 +4748,10 @@ class SelectControl {
|
|
|
4748
4748
|
ngOnDestroy() {
|
|
4749
4749
|
this.#subscription.unsubscribe();
|
|
4750
4750
|
}
|
|
4751
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4752
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4751
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SelectControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4752
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: SelectControl, isStandalone: true, selector: "select-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">Your dropdown selection</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input c-select\">\r\n <svg width=\"8\" height=\"8\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n fill=\"currentColor\"\r\n stroke=\"currentColor\"\r\n stroke-width=\".5\"\r\n d=\"M7.75 1.336L4 6.125.258 1.335 0 1.54l4 5.125L8 1.54zm0 0\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative}.c-select svg{position:absolute;right:10px;top:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4753
4753
|
}
|
|
4754
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4754
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SelectControl, decorators: [{
|
|
4755
4755
|
type: Component,
|
|
4756
4756
|
args: [{ selector: 'select-control', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">Your dropdown selection</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-input c-select\">\r\n <svg width=\"8\" height=\"8\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n fill=\"currentColor\"\r\n stroke=\"currentColor\"\r\n stroke-width=\".5\"\r\n d=\"M7.75 1.336L4 6.125.258 1.335 0 1.54l4 5.125L8 1.54zm0 0\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n}\r\n", styles: [".c-input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;border-radius:4px;position:relative}.c-select svg{position:absolute;right:10px;top:10px}\n"] }]
|
|
4757
4757
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -4788,10 +4788,10 @@ class RadioControl {
|
|
|
4788
4788
|
ngOnDestroy() {
|
|
4789
4789
|
this.#subscription.unsubscribe();
|
|
4790
4790
|
}
|
|
4791
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4792
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4791
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RadioControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4792
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: RadioControl, isStandalone: true, selector: "radio-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">Your radio selection</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"c-radio-item d-flex flex-wrap align-items-center\">\r\n @if (component.values?.length) {\r\n <div class=\"d-flex\" [class.flex-column]=\"component.properties?.direction === 'column'\" style=\"gap: 8px\">\r\n @for (item of component.values; track item.value) {\r\n <div class=\"d-flex align-items-center my-4\">\r\n <div class=\"c-rd-ip mr-4\"></div>\r\n <div class=\"T12M\">{{ item.label }}</div>\r\n </div>\r\n }\r\n </div>\r\n } @else if (component.valuesKey) {\r\n <div class=\"T12R text-secondary\">{{ component.valuesKey }}</div>\r\n }\r\n </div>\r\n}\r\n", styles: [".c-radio-item .c-rd-ip{border:2px solid #828282;width:16px;height:16px;border-radius:11px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4793
4793
|
}
|
|
4794
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4794
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RadioControl, decorators: [{
|
|
4795
4795
|
type: Component,
|
|
4796
4796
|
args: [{ selector: 'radio-control', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">Your radio selection</div>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"c-radio-item d-flex flex-wrap align-items-center\">\r\n @if (component.values?.length) {\r\n <div class=\"d-flex\" [class.flex-column]=\"component.properties?.direction === 'column'\" style=\"gap: 8px\">\r\n @for (item of component.values; track item.value) {\r\n <div class=\"d-flex align-items-center my-4\">\r\n <div class=\"c-rd-ip mr-4\"></div>\r\n <div class=\"T12M\">{{ item.label }}</div>\r\n </div>\r\n }\r\n </div>\r\n } @else if (component.valuesKey) {\r\n <div class=\"T12R text-secondary\">{{ component.valuesKey }}</div>\r\n }\r\n </div>\r\n}\r\n", styles: [".c-radio-item .c-rd-ip{border:2px solid #828282;width:16px;height:16px;border-radius:11px}\n"] }]
|
|
4797
4797
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -4851,10 +4851,10 @@ class RadioAttribute {
|
|
|
4851
4851
|
onChanges = () => {
|
|
4852
4852
|
this.#changes.next();
|
|
4853
4853
|
};
|
|
4854
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4855
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4854
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RadioAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4855
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: RadioAttribute, isStandalone: true, selector: "radio-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n @if (component.properties!.viewed) {\r\n <attribute-input label=\"Hyperlink\" [(model)]=\"component.properties!.hyperlink\"></attribute-input>\r\n }\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n <attribute-select\r\n [form]=\"form\"\r\n label=\"B\u1ED1 c\u1EE5c\"\r\n [(model)]=\"component.properties!.direction\"\r\n [items]=\"[\r\n { value: 'row', display: 'Ngang' },\r\n { value: 'column', display: 'D\u1ECDc' }\r\n ]\"></attribute-select>\r\n </sd-section>\r\n @if (!component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n }\r\n <attribute-selection\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [component]=\"component\"\r\n [(valuesKey)]=\"component.valuesKey\"\r\n [(values)]=\"component.values\"\r\n (valuesKeyChange)=\"onChanges()\"\r\n (valuesChange)=\"onChanges()\"></attribute-selection>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeSelection, selector: "attribute-selection", inputs: ["components", "variables", "component", "valuesKey", "values"], outputs: ["valuesKeyChange", "valuesChange", "sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeSelect, selector: "attribute-select", inputs: ["form", "label", "disabled", "multiple", "items", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4856
4856
|
}
|
|
4857
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4857
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: RadioAttribute, decorators: [{
|
|
4858
4858
|
type: Component,
|
|
4859
4859
|
args: [{ selector: 'radio-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeSelection, AttributeInput, AttributeSwitch, AttributeSelect, AttributeExpression], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n @if (component.properties!.viewed) {\r\n <attribute-input label=\"Hyperlink\" [(model)]=\"component.properties!.hyperlink\"></attribute-input>\r\n }\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n <attribute-select\r\n [form]=\"form\"\r\n label=\"B\u1ED1 c\u1EE5c\"\r\n [(model)]=\"component.properties!.direction\"\r\n [items]=\"[\r\n { value: 'row', display: 'Ngang' },\r\n { value: 'column', display: 'D\u1ECDc' }\r\n ]\"></attribute-select>\r\n </sd-section>\r\n @if (!component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n }\r\n <attribute-selection\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [component]=\"component\"\r\n [(valuesKey)]=\"component.valuesKey\"\r\n [(values)]=\"component.values\"\r\n (valuesKeyChange)=\"onChanges()\"\r\n (valuesChange)=\"onChanges()\"></attribute-selection>\r\n}\r\n" }]
|
|
4860
4860
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -4874,10 +4874,10 @@ class CheckboxControl {
|
|
|
4874
4874
|
set _component(component) {
|
|
4875
4875
|
this.component = component;
|
|
4876
4876
|
}
|
|
4877
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4878
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4877
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CheckboxControl, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4878
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: CheckboxControl, isStandalone: true, selector: "checkbox-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">C\u00F3/Kh\u00F4ng</div>\r\n} @else {\r\n <div class=\"c-checkbox\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-box mr-4\"></div>\r\n <div class=\"T14R\">{{ component.label }}</div>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";.input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;position:relative}.c-checkbox .c-box{border:2px solid #828282;width:16px;height:16px;border-radius:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
4879
4879
|
}
|
|
4880
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4880
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CheckboxControl, decorators: [{
|
|
4881
4881
|
type: Component,
|
|
4882
4882
|
args: [{ selector: 'checkbox-control', imports: [CommonModule], template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <div class=\"T14M\">C\u00F3/Kh\u00F4ng</div>\r\n} @else {\r\n <div class=\"c-checkbox\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"c-box mr-4\"></div>\r\n <div class=\"T14R\">{{ component.label }}</div>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";.input{width:100%;background:#fff;height:30px;border:1px solid #d3d3d3;position:relative}.c-checkbox .c-box{border:2px solid #828282;width:16px;height:16px;border-radius:2px}\n"] }]
|
|
4883
4883
|
}], propDecorators: { _component: [{
|
|
@@ -4930,10 +4930,10 @@ class CheckboxAttribute {
|
|
|
4930
4930
|
this.ref.markForCheck();
|
|
4931
4931
|
}
|
|
4932
4932
|
};
|
|
4933
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
4934
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
4933
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CheckboxAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4934
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: CheckboxAttribute, isStandalone: true, selector: "checkbox-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n</sd-section>\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4935
4935
|
}
|
|
4936
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
4936
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CheckboxAttribute, decorators: [{
|
|
4937
4937
|
type: Component,
|
|
4938
4938
|
args: [{ selector: 'checkbox-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeInput, AttributeSwitch, AttributeExpression], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n</sd-section>\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n}\r\n" }]
|
|
4939
4939
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -5003,10 +5003,10 @@ class BuildQueries {
|
|
|
5003
5003
|
this.modal?.close();
|
|
5004
5004
|
this.ref.markForCheck();
|
|
5005
5005
|
};
|
|
5006
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5007
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5006
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuildQueries, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5007
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BuildQueries, isStandalone: true, selector: "build-queries", inputs: { label: "label", _queries: ["queries", "_queries"], components: "components", variables: "variables", _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "@if (!!leftProperties?.length) {\r\n <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <div style=\"width: 200px\" class=\"d-flex align-items-center\">\r\n <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ queryString }}</a>\r\n </div>\r\n </div>\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp gi\u00E1 tr\u1ECB truy v\u1EA5n\" width=\"400px\">\r\n <div class=\"c-builder\">\r\n @for (property of leftProperties; track property.value) {\r\n <div class=\"d-flex align-items-center py-8\" style=\"gap: 8px\">\r\n <div class=\"T14M\" style=\"width: 150px\">{{ property.display }}</div>\r\n <sd-autocomplete\r\n label=\"Tr\u01B0\u1EDDng l\u1EA5y gi\u00E1 tr\u1ECB\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"model![property.value]\"\r\n [items]=\"rightProperties\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5008
5008
|
}
|
|
5009
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5009
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BuildQueries, decorators: [{
|
|
5010
5010
|
type: Component,
|
|
5011
5011
|
args: [{ selector: 'build-queries', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdAutocomplete$1, SdButton, SdModal], template: "@if (!!leftProperties?.length) {\r\n <div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <div style=\"width: 200px\" class=\"d-flex align-items-center\">\r\n <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ queryString }}</a>\r\n </div>\r\n </div>\r\n <sd-modal title=\"Thi\u1EBFt l\u1EADp gi\u00E1 tr\u1ECB truy v\u1EA5n\" width=\"400px\">\r\n <div class=\"c-builder\">\r\n @for (property of leftProperties; track property.value) {\r\n <div class=\"d-flex align-items-center py-8\" style=\"gap: 8px\">\r\n <div class=\"T14M\" style=\"width: 150px\">{{ property.display }}</div>\r\n <sd-autocomplete\r\n label=\"Tr\u01B0\u1EDDng l\u1EA5y gi\u00E1 tr\u1ECB\"\r\n [form]=\"form\"\r\n style=\"flex: 1\"\r\n [(model)]=\"model![property.value]\"\r\n [items]=\"rightProperties\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError></sd-autocomplete>\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n </sd-modal>\r\n}\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"] }]
|
|
5012
5012
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { modal: [{
|
|
@@ -5104,10 +5104,10 @@ class HtmlAttribute {
|
|
|
5104
5104
|
this.ref.markForCheck();
|
|
5105
5105
|
}
|
|
5106
5106
|
};
|
|
5107
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5108
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5107
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HtmlAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: FormGenericService }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5108
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: HtmlAttribute, isStandalone: true, selector: "html-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, outputs: { attributeChanges: "attributeChanges" }, ngImport: i0, template: "@if (!component.properties!.hidden) {\r\n <sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-select\r\n label=\"D\u1EEF li\u1EC7u m\u1EABu\"\r\n [(model)]=\"component.template\"\r\n [items]=\"definitionHtmls\"\r\n (sdChange)=\"onChangeDefinition($event)\"></attribute-select>\r\n <attribute-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\"></attribute-input>\r\n <attribute-textarea [form]=\"form\" label=\"N\u1ED9i dung\" [(model)]=\"component.content\"></attribute-textarea>\r\n @if (component.properties?.queries?.length) {\r\n <build-queries\r\n label=\"\u0110i\u1EC1u ki\u1EC7n truy v\u1EA5n\"\r\n [queries]=\"component.properties?.queries\"\r\n [components]=\"components\"\r\n [variables]=\"variables\" \r\n [(model)]=\"component.properties!.query\"></build-queries>\r\n }\r\n </sd-section>\r\n @if (component.properties?.variables?.length) {\r\n <sd-section class=\"mt-8\" title=\"Tham s\u1ED1\" icon=\"format_list_bulleted\">\r\n @for (variable of component.properties?.variables; track variable.key) {\r\n <attribute-input [form]=\"form\" [label]=\"variable.label\" [(model)]=\"variable.value\"></attribute-input>\r\n }\r\n </sd-section>\r\n }\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n </sd-section>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSelect, selector: "attribute-select", inputs: ["form", "label", "disabled", "multiple", "items", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeTextarea, selector: "attribute-textarea", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: BuildQueries, selector: "build-queries", inputs: ["label", "queries", "components", "variables", "model"], outputs: ["modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5109
5109
|
}
|
|
5110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HtmlAttribute, decorators: [{
|
|
5111
5111
|
type: Component,
|
|
5112
5112
|
args: [{ selector: 'html-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeInput, AttributeSelect, AttributeExpression, AttributeTextarea, BuildQueries], template: "@if (!component.properties!.hidden) {\r\n <sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-select\r\n label=\"D\u1EEF li\u1EC7u m\u1EABu\"\r\n [(model)]=\"component.template\"\r\n [items]=\"definitionHtmls\"\r\n (sdChange)=\"onChangeDefinition($event)\"></attribute-select>\r\n <attribute-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\"></attribute-input>\r\n <attribute-textarea [form]=\"form\" label=\"N\u1ED9i dung\" [(model)]=\"component.content\"></attribute-textarea>\r\n @if (component.properties?.queries?.length) {\r\n <build-queries\r\n label=\"\u0110i\u1EC1u ki\u1EC7n truy v\u1EA5n\"\r\n [queries]=\"component.properties?.queries\"\r\n [components]=\"components\"\r\n [variables]=\"variables\" \r\n [(model)]=\"component.properties!.query\"></build-queries>\r\n }\r\n </sd-section>\r\n @if (component.properties?.variables?.length) {\r\n <sd-section class=\"mt-8\" title=\"Tham s\u1ED1\" icon=\"format_list_bulleted\">\r\n @for (variable of component.properties?.variables; track variable.key) {\r\n <attribute-input [form]=\"form\" [label]=\"variable.label\" [(model)]=\"variable.value\"></attribute-input>\r\n }\r\n </sd-section>\r\n }\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n </sd-section>\r\n}\r\n" }]
|
|
5113
5113
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FormGenericService }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -5165,10 +5165,10 @@ class HtmlControl {
|
|
|
5165
5165
|
ngOnDestroy() {
|
|
5166
5166
|
this.#subscription.unsubscribe();
|
|
5167
5167
|
}
|
|
5168
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5169
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5168
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HtmlControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5169
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: HtmlControl, isStandalone: true, selector: "html-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (!content) {\r\n <div class=\"c-html d-flex align-items-center justify-content-center\">\r\n <span class=\"material-icons\"> html </span>\r\n </div>\r\n} @else {\r\n <div [innerHTML]=\"hashed | htmlPipe: content: component\"></div>\r\n}\r\n", styles: [".c-html{height:70px;border:1px solid #d3d3d3;padding:10px;background-color:#f4f4f4}.c-html .material-icons{font-size:48px}\n"], dependencies: [{ kind: "pipe", type: HtmlPipe, name: "htmlPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5170
5170
|
}
|
|
5171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HtmlControl, decorators: [{
|
|
5172
5172
|
type: Component,
|
|
5173
5173
|
args: [{ selector: 'html-control', changeDetection: ChangeDetectionStrategy.OnPush, imports: [HtmlPipe], template: "@if (!content) {\r\n <div class=\"c-html d-flex align-items-center justify-content-center\">\r\n <span class=\"material-icons\"> html </span>\r\n </div>\r\n} @else {\r\n <div [innerHTML]=\"hashed | htmlPipe: content: component\"></div>\r\n}\r\n", styles: [".c-html{height:70px;border:1px solid #d3d3d3;padding:10px;background-color:#f4f4f4}.c-html .material-icons{font-size:48px}\n"] }]
|
|
5174
5174
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }, { type: FormGenericService }], propDecorators: { _component: [{
|
|
@@ -5236,10 +5236,10 @@ class AttributeParameter {
|
|
|
5236
5236
|
this.modal?.close();
|
|
5237
5237
|
this.ref.markForCheck();
|
|
5238
5238
|
};
|
|
5239
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5240
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5239
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeParameter, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5240
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: AttributeParameter, isStandalone: true, selector: "attribute-parameter", inputs: { components: "components", label: "label", _model: ["model", "_model"] }, outputs: { modelChange: "modelChange" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "<div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <div style=\"width: 200px\" class=\"d-flex align-items-center\">\r\n <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ queryString }}</a>\r\n </div>\r\n</div>\r\n<sd-modal title=\"G\u00E1n gi\u00E1 tr\u1ECB Tham s\u1ED1\" width=\"500px\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button prefixIcon=\"add\" title=\"Th\u00EAm tr\u01B0\u1EDDng\" color=\"primary\" (click)=\"addField()\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (item of items; track item.id; let idx = $index) {\r\n <div class=\"d-flex align-items-center py-8\" style=\"gap: 8px\">\r\n <sd-input label=\"T\u00EAn tham s\u1ED1\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"item.key\" required hideInlineError></sd-input>\r\n <sd-input label=\"Gi\u00E1 tr\u1ECB t\u01B0\u01A1ng \u1EE9ng\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"item.value\" required hideInlineError></sd-input>\r\n <div style=\"width: 32px; min-width: 32px\">\r\n <sd-button\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(idx)\"\r\n size=\"sm\"\r\n class=\"p-0\"\r\n ></sd-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "component", type: SdInput, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5241
5241
|
}
|
|
5242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeParameter, decorators: [{
|
|
5243
5243
|
type: Component,
|
|
5244
5244
|
args: [{ selector: 'attribute-parameter', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdButton, SdModal, SdInput], template: "<div class=\"d-flex align-items-center py-4\">\r\n @if (label) {\r\n <div class=\"T14R\" style=\"flex: 1\">{{ label }}</div>\r\n }\r\n <div style=\"width: 200px\" class=\"d-flex align-items-center\">\r\n <a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{ queryString }}</a>\r\n </div>\r\n</div>\r\n<sd-modal title=\"G\u00E1n gi\u00E1 tr\u1ECB Tham s\u1ED1\" width=\"500px\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button prefixIcon=\"add\" title=\"Th\u00EAm tr\u01B0\u1EDDng\" color=\"primary\" (click)=\"addField()\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (item of items; track item.id; let idx = $index) {\r\n <div class=\"d-flex align-items-center py-8\" style=\"gap: 8px\">\r\n <sd-input label=\"T\u00EAn tham s\u1ED1\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"item.key\" required hideInlineError></sd-input>\r\n <sd-input label=\"Gi\u00E1 tr\u1ECB t\u01B0\u01A1ng \u1EE9ng\" [form]=\"form\" style=\"flex: 1\" [(model)]=\"item.value\" required hideInlineError></sd-input>\r\n <div style=\"width: 32px; min-width: 32px\">\r\n <sd-button\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(idx)\"\r\n size=\"sm\"\r\n class=\"p-0\"\r\n ></sd-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"] }]
|
|
5245
5245
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { modal: [{
|
|
@@ -5323,10 +5323,10 @@ class UploadAttribute {
|
|
|
5323
5323
|
?.map(val => val?.trim())
|
|
5324
5324
|
?.filter(val => !!val) || [];
|
|
5325
5325
|
};
|
|
5326
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5327
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5326
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: UploadAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5327
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: UploadAttribute, isStandalone: true, selector: "upload-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-select\r\n label=\"Lo\u1EA1i\"\r\n [(model)]=\"component.properties!.type\"\r\n [items]=\"[\r\n { value: 'file', display: 'T\u1EC7p' },\r\n { value: 'image', display: '\u1EA2nh' }\r\n ]\"></attribute-select>\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n <attribute-input-number label=\"SL t\u1EC7p/\u1EA3nh t\u1ED1i \u0111a\" [(model)]=\"component.properties!.max\"></attribute-input-number>\r\n <attribute-input-number label=\"Dung l\u01B0\u1EE3ng (Mb)\" [(model)]=\"component.properties!.maxSize\"></attribute-input-number>\r\n @if (component.properties!.type === 'file') {\r\n <attribute-input label=\"\u0110\u1ECBnh d\u1EA1ng (VD: png,jpg ...)\" [model]=\"extension\" (modelChange)=\"onChangeExtension($event)\"></attribute-input>\r\n }\r\n @if (component.properties!.type === 'image') {\r\n <attribute-select label=\"Ngu\u1ED3n (mobile)\" [(model)]=\"component.properties!.source\" [items]=\"sources\"></attribute-select>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"Tham s\u1ED1\" icon=\"settings\">\r\n <attribute-parameter label=\"G\u00E1n tham s\u1ED1\" [components]=\"components\" [(model)]=\"component.properties!.args\"></attribute-parameter>\r\n </sd-section>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeInputNumber, selector: "attribute-input-number", inputs: ["label", "disabled", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeSelect, selector: "attribute-select", inputs: ["form", "label", "disabled", "multiple", "items", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeParameter, selector: "attribute-parameter", inputs: ["components", "label", "model"], outputs: ["modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5328
5328
|
}
|
|
5329
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5329
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: UploadAttribute, decorators: [{
|
|
5330
5330
|
type: Component,
|
|
5331
5331
|
args: [{ selector: 'upload-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeInput, AttributeInputNumber, AttributeSwitch, AttributeSelect, AttributeExpression, AttributeParameter], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n <attribute-select\r\n label=\"Lo\u1EA1i\"\r\n [(model)]=\"component.properties!.type\"\r\n [items]=\"[\r\n { value: 'file', display: 'T\u1EC7p' },\r\n { value: 'image', display: '\u1EA2nh' }\r\n ]\"></attribute-select>\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n <attribute-input-number label=\"SL t\u1EC7p/\u1EA3nh t\u1ED1i \u0111a\" [(model)]=\"component.properties!.max\"></attribute-input-number>\r\n <attribute-input-number label=\"Dung l\u01B0\u1EE3ng (Mb)\" [(model)]=\"component.properties!.maxSize\"></attribute-input-number>\r\n @if (component.properties!.type === 'file') {\r\n <attribute-input label=\"\u0110\u1ECBnh d\u1EA1ng (VD: png,jpg ...)\" [model]=\"extension\" (modelChange)=\"onChangeExtension($event)\"></attribute-input>\r\n }\r\n @if (component.properties!.type === 'image') {\r\n <attribute-select label=\"Ngu\u1ED3n (mobile)\" [(model)]=\"component.properties!.source\" [items]=\"sources\"></attribute-select>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"Tham s\u1ED1\" icon=\"settings\">\r\n <attribute-parameter label=\"G\u00E1n tham s\u1ED1\" [components]=\"components\" [(model)]=\"component.properties!.args\"></attribute-parameter>\r\n </sd-section>\r\n}\r\n" }]
|
|
5332
5332
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -5367,10 +5367,10 @@ class UploadControl {
|
|
|
5367
5367
|
ngOnDestroy() {
|
|
5368
5368
|
this.#subscription.unsubscribe();
|
|
5369
5369
|
}
|
|
5370
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5371
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5370
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: UploadControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5371
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: UploadControl, isStandalone: true, selector: "upload-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <svg\r\n width=\"64\"\r\n height=\"64\"\r\n viewBox=\"0 0 1280 1280\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n stroke-linejoin=\"round\"\r\n stroke-miterlimit=\"2\"\r\n alt=\"This is an image placeholder\">\r\n <path fill=\"#e5e9ed\" d=\"M0 0h1280v1280H0z\"></path>\r\n <path d=\"M910 410H370v470h540V410zm-57.333 57.333v355.334H427.333V467.333h425.334z\" fill=\"#cad3db\"></path>\r\n <path d=\"M810 770H480v-60l100-170 130 170 100-65v125z\" fill=\"#cad3db\"></path>\r\n <circle cx=\"750\" cy=\"550\" r=\"50\" fill=\"#cad3db\" transform=\"translate(10 10)\"></circle>\r\n </svg>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"c-upload-file d-flex align-items-center justify-content-between\">\r\n <svg\r\n width=\"64\"\r\n height=\"64\"\r\n viewBox=\"0 0 1280 1280\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n stroke-linejoin=\"round\"\r\n stroke-miterlimit=\"2\"\r\n alt=\"This is an image placeholder\">\r\n <path fill=\"#e5e9ed\" d=\"M0 0h1280v1280H0z\"></path>\r\n <path d=\"M910 410H370v470h540V410zm-57.333 57.333v355.334H427.333V467.333h425.334z\" fill=\"#cad3db\"></path>\r\n <path d=\"M810 770H480v-60l100-170 130 170 100-65v125z\" fill=\"#cad3db\"></path>\r\n <circle cx=\"750\" cy=\"550\" r=\"50\" fill=\"#cad3db\" transform=\"translate(10 10)\"></circle>\r\n </svg>\r\n </div>\r\n}\r\n", styles: [".c-upload-file{border:1px solid #d3d3d3;padding:5px;color:#afafaf}.c-upload-file .material-icons{font-size:20px!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5372
5372
|
}
|
|
5373
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: UploadControl, decorators: [{
|
|
5374
5374
|
type: Component,
|
|
5375
5375
|
args: [{ selector: 'upload-control', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (component.properties?.viewed) {\r\n <div class=\"d-block T12R text-secondary\">\r\n {{ component.label }}\r\n </div>\r\n <svg\r\n width=\"64\"\r\n height=\"64\"\r\n viewBox=\"0 0 1280 1280\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n stroke-linejoin=\"round\"\r\n stroke-miterlimit=\"2\"\r\n alt=\"This is an image placeholder\">\r\n <path fill=\"#e5e9ed\" d=\"M0 0h1280v1280H0z\"></path>\r\n <path d=\"M910 410H370v470h540V410zm-57.333 57.333v355.334H427.333V467.333h425.334z\" fill=\"#cad3db\"></path>\r\n <path d=\"M810 770H480v-60l100-170 130 170 100-65v125z\" fill=\"#cad3db\"></path>\r\n <circle cx=\"750\" cy=\"550\" r=\"50\" fill=\"#cad3db\" transform=\"translate(10 10)\"></circle>\r\n </svg>\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n <div class=\"c-upload-file d-flex align-items-center justify-content-between\">\r\n <svg\r\n width=\"64\"\r\n height=\"64\"\r\n viewBox=\"0 0 1280 1280\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n stroke-linejoin=\"round\"\r\n stroke-miterlimit=\"2\"\r\n alt=\"This is an image placeholder\">\r\n <path fill=\"#e5e9ed\" d=\"M0 0h1280v1280H0z\"></path>\r\n <path d=\"M910 410H370v470h540V410zm-57.333 57.333v355.334H427.333V467.333h425.334z\" fill=\"#cad3db\"></path>\r\n <path d=\"M810 770H480v-60l100-170 130 170 100-65v125z\" fill=\"#cad3db\"></path>\r\n <circle cx=\"750\" cy=\"550\" r=\"50\" fill=\"#cad3db\" transform=\"translate(10 10)\"></circle>\r\n </svg>\r\n </div>\r\n}\r\n", styles: [".c-upload-file{border:1px solid #d3d3d3;padding:5px;color:#afafaf}.c-upload-file .material-icons{font-size:20px!important}\n"] }]
|
|
5376
5376
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -5462,10 +5462,10 @@ class AttributeTable {
|
|
|
5462
5462
|
}
|
|
5463
5463
|
this.modal?.close();
|
|
5464
5464
|
};
|
|
5465
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5466
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5465
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeTable, deps: [{ token: SD_WORKFLOW_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Component });
|
|
5466
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: AttributeTable, isStandalone: true, selector: "attribute-table", inputs: { components: "components", variables: "variables", _columnsKey: ["columnsKey", "_columnsKey"], _columns: ["columns", "_columns"] }, outputs: { columnsKeyChange: "columnsKeyChange", columnsChange: "columnsChange" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"D\u1EEF li\u1EC7u\" icon=\"format_list_bulleted\">\r\n @if (tables.length) {\r\n <!-- <div class=\"d-flex align-items-center py-4\">\r\n <div class=\"T14M\" style=\"flex: 1\">D\u1EEF li\u1EC7u c\u1ED9t</div>\r\n <sd-autocomplete\r\n style=\"width: 200px\"\r\n size=\"sm\"\r\n [(model)]=\"columnsKey\"\r\n [items]=\"tables\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n (sdChange)=\"onChangeColumnsKey($event)\"\r\n hideInlineError></sd-autocomplete>\r\n </div> -->\r\n <sd-autocomplete\r\n class=\"py-8\"\r\n label=\"D\u1EEF li\u1EC7u c\u1ED9t\"\r\n [(model)]=\"columnsKey\"\r\n [items]=\"tables\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n (sdChange)=\"onChangeColumnsKey($event)\"\r\n hideInlineError></sd-autocomplete>\r\n }\r\n @if (!columnsKey) {\r\n <div class=\"d-flex flex-column\" style=\"gap: 4px\">\r\n <div class=\"T14M\">Danh s\u00E1ch c\u1ED9t</div>\r\n @for (item of columns; track item.key; let idx = $index) {\r\n <div class=\"d-flex align-items-center py-4\" style=\"gap: 4px; justify-content: space-between\">\r\n <div class=\"d-flex flex-column\">\r\n <sd-label [label]=\"item.label\" [required]=\"item.validate?.required\"></sd-label>\r\n <div class=\"T12R text-secondary\">{{ item.key }}</div>\r\n </div>\r\n <div class=\"d-flex align-items-center\" style=\"gap: 4px\">\r\n <mat-icon class=\"text-secondary\" style=\"cursor: pointer\" [fontIcon]=\"'edit'\" (click)=\"editColumn(idx)\"></mat-icon>\r\n <mat-icon class=\"text-secondary\" style=\"cursor: pointer\" [fontIcon]=\"'cancel'\" (click)=\"removeColumn(idx)\"></mat-icon>\r\n </div>\r\n </div>\r\n }\r\n <sd-button prefixIcon=\"add\" title=\"Th\u00EAm c\u1ED9t\" (click)=\"addColumn()\" color=\"primary\"></sd-button>\r\n </div>\r\n }\r\n</sd-section>\r\n<sd-modal title=\"C\u1EA5u h\u00ECnh c\u1ED9t\" width=\"600px\">\r\n @if (column) {\r\n <sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"column.key\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn c\u1ED9t\" [(model)]=\"column.label\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"Chi\u1EC1u r\u1ED9ng\" [(model)]=\"column.width\"></attribute-input>\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"column.validate!.required\"></attribute-switch>\r\n <attribute-select [form]=\"form\" label=\"Lo\u1EA1i d\u1EEF li\u1EC7u\" [(model)]=\"column.type\" [items]=\"types\"></attribute-select>\r\n </sd-section>\r\n @if (column.type === 'boolean') {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"info\">\r\n <attribute-input [form]=\"form\" label=\"Hi\u1EC3n th\u1ECB khi TRUE\" [(model)]=\"column.displayOnTrue\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"Hi\u1EC3n th\u1ECB khi FALSE\" [(model)]=\"column.displayOnFalse\"></attribute-input>\r\n </sd-section>\r\n } @else if (column.type === 'values') {\r\n <attribute-selection\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [component]=\"column\"\r\n [(valuesKey)]=\"column.valuesKey\"\r\n [(values)]=\"column.values\"></attribute-selection>\r\n } @else if (column.type === 'file' || column.type === 'image') {\r\n <sd-section class=\"mt-8\" title=\"Tham s\u1ED1\" icon=\"settings\">\r\n <attribute-parameter label=\"G\u00E1n tham s\u1ED1\" [components]=\"components\" [(model)]=\"column!.args\"></attribute-parameter>\r\n </sd-section>\r\n }\r\n }\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"L\u01B0u\" (click)=\"onConfirm()\" color=\"primary\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n", dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: SdLabel, selector: "sd-label", inputs: ["label", "description", "required", "helperText"] }, { kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "component", type: AttributeSelection, selector: "attribute-selection", inputs: ["components", "variables", "component", "valuesKey", "values"], outputs: ["valuesKeyChange", "valuesChange", "sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSelect, selector: "attribute-select", inputs: ["form", "label", "disabled", "multiple", "items", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeParameter, selector: "attribute-parameter", inputs: ["components", "label", "model"], outputs: ["modelChange"] }] });
|
|
5467
5467
|
}
|
|
5468
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5468
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: AttributeTable, decorators: [{
|
|
5469
5469
|
type: Component,
|
|
5470
5470
|
args: [{ selector: 'attribute-table', imports: [
|
|
5471
5471
|
MatIconModule,
|
|
@@ -5557,10 +5557,10 @@ class TableAttribute {
|
|
|
5557
5557
|
onChanges = () => {
|
|
5558
5558
|
this.#changes.next();
|
|
5559
5559
|
};
|
|
5560
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5561
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5560
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TableAttribute, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5561
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TableAttribute, isStandalone: true, selector: "table-attribute", inputs: { components: "components", variables: "variables", _component: ["component", "_component"] }, ngImport: i0, template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <attribute-table\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(columnsKey)]=\"component.columnsKey\"\r\n [(columns)]=\"component.columns\"\r\n (columnsKeyChange)=\"onChanges()\"\r\n (columnsChange)=\"onChanges()\"></attribute-table>\r\n}\r\n", dependencies: [{ kind: "component", type: SdSection, selector: "sd-section", inputs: ["title", "subTitle", "icon", "iconColor", "collapsed", "collapsable", "hideHeader", "noPaddingBody"], outputs: ["collapsedChange"] }, { kind: "component", type: AttributeTemplate, selector: "attribute-template", inputs: ["component"], outputs: ["sdChange"] }, { kind: "component", type: AttributeInput, selector: "attribute-input", inputs: ["form", "label", "disabled", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: AttributeSwitch, selector: "attribute-switch", inputs: ["form", "label", "model"], outputs: ["modelChange"] }, { kind: "component", type: AttributeTable, selector: "attribute-table", inputs: ["components", "variables", "columnsKey", "columns"], outputs: ["columnsKeyChange", "columnsChange"] }, { kind: "component", type: AttributeExpression, selector: "attribute-expression", inputs: ["components", "variables", "label", "model"], outputs: ["modelChange", "sdChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5562
5562
|
}
|
|
5563
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5563
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TableAttribute, decorators: [{
|
|
5564
5564
|
type: Component,
|
|
5565
5565
|
args: [{ selector: 'table-attribute', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdSection, AttributeTemplate, AttributeInput, AttributeSwitch, AttributeTable, AttributeExpression], template: "<sd-section class=\"mt-8\" title=\"Th\u00F4ng tin chung\" icon=\"info\">\r\n <attribute-template [component]=\"component\" (sdChange)=\"onChangeTemplate($event)\"></attribute-template>\r\n <attribute-input label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"component.key\" [disabled]=\"!!component.template\"></attribute-input>\r\n <attribute-input [form]=\"form\" label=\"T\u00EAn hi\u1EC3n th\u1ECB\" [(model)]=\"component.label\"></attribute-input>\r\n</sd-section>\r\n\r\n@if (!component.properties!.hidden && !component.properties!.viewed) {\r\n <sd-section class=\"mt-8\" title=\"Hi\u1EC3n th\u1ECB\" icon=\"visibility\">\r\n <attribute-switch label=\"V\u00F4 hi\u1EC7u\" [(model)]=\"component.disabled\"></attribute-switch>\r\n <attribute-expression\r\n label=\"Hi\u1EC3n th\u1ECB khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.visibleWhenExpression\"></attribute-expression>\r\n <attribute-expression\r\n label=\"\u1EA8n khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.hiddenWhenExpression\"></attribute-expression>\r\n @if (!component.disabled) {\r\n <attribute-expression\r\n label=\"V\u00F4 hi\u1EC7u khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.disabledWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <sd-section class=\"mt-8\" title=\"R\u00E0ng bu\u1ED9c\" icon=\"verified_user\">\r\n <attribute-switch [form]=\"form\" label=\"B\u1EAFt bu\u1ED9c\" [(model)]=\"component.validate!.required\"></attribute-switch>\r\n @if (!component.validate!.required) {\r\n <attribute-expression\r\n label=\"B\u1EAFt bu\u1ED9c khi\"\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(model)]=\"component.properties!.requiredWhenExpression\"></attribute-expression>\r\n }\r\n </sd-section>\r\n <attribute-table\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [(columnsKey)]=\"component.columnsKey\"\r\n [(columns)]=\"component.columns\"\r\n (columnsKeyChange)=\"onChanges()\"\r\n (columnsChange)=\"onChanges()\"></attribute-table>\r\n}\r\n" }]
|
|
5566
5566
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { components: [{
|
|
@@ -5602,10 +5602,10 @@ class TableControl {
|
|
|
5602
5602
|
ngOnDestroy() {
|
|
5603
5603
|
this.#subscription.unsubscribe();
|
|
5604
5604
|
}
|
|
5605
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5606
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
5605
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TableControl, deps: [{ token: i0.ChangeDetectorRef }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5606
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: TableControl, isStandalone: true, selector: "table-control", inputs: { _component: ["component", "_component"] }, ngImport: i0, template: "@if (component.properties?.viewed) {\r\n @if (component.columns?.length) {\r\n <div class=\"c-table\">\r\n <div class=\"c-header d-flex align-items-center bg-secondary-light\">\r\n @for (column of component.columns; track column.key) {\r\n <div class=\"c-item\" [style.width]=\"column.width\">\r\n {{ column.label }}\r\n </div>\r\n }\r\n </div>\r\n <div class=\"c-content\">\r\n <div class=\"row-table d-flex align-items-center\">\r\n @for (column of component.columns; track column.key) {\r\n <div class=\"c-item text-secondary\" [style.width]=\"column.width\">{{ column.key }}</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n @if (component.columns?.length) {\r\n <div class=\"c-table\">\r\n <div class=\"c-header d-flex align-items-center bg-primary-light\">\r\n @for (column of component.columns; track column.key) {\r\n <div class=\"c-item\" [style.width]=\"column.width\">\r\n {{ column.label }}\r\n </div>\r\n }\r\n </div>\r\n <div class=\"c-content\">\r\n <div class=\"row-table d-flex align-items-center\">\r\n @for (column of component.columns; track column.key) {\r\n <div class=\"c-item text-secondary\" [style.width]=\"column.width\">{{ column.key }}</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n}\r\n", styles: [".c-table{border:1px solid #ddd}.c-table .c-header{border:1px solid #ddd;border-bottom:0!important}.c-table .c-header .c-item{font-weight:500}.c-table .c-content{border:1px solid #ddd}.c-table .c-item{border:1px solid #ddd;padding:8px 10px;width:-webkit-fill-available;min-width:75px}.c-table .c-item h .spc{color:#ddd}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5607
5607
|
}
|
|
5608
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TableControl, decorators: [{
|
|
5609
5609
|
type: Component,
|
|
5610
5610
|
args: [{ selector: 'table-control', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@if (component.properties?.viewed) {\r\n @if (component.columns?.length) {\r\n <div class=\"c-table\">\r\n <div class=\"c-header d-flex align-items-center bg-secondary-light\">\r\n @for (column of component.columns; track column.key) {\r\n <div class=\"c-item\" [style.width]=\"column.width\">\r\n {{ column.label }}\r\n </div>\r\n }\r\n </div>\r\n <div class=\"c-content\">\r\n <div class=\"row-table d-flex align-items-center\">\r\n @for (column of component.columns; track column.key) {\r\n <div class=\"c-item text-secondary\" [style.width]=\"column.width\">{{ column.key }}</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n} @else {\r\n <div class=\"d-block mb-0 T14M\">\r\n {{ component.label }}\r\n @if (component.validate?.required) {\r\n <span class=\"text-error mb-2\">*</span>\r\n }\r\n </div>\r\n @if (component.columns?.length) {\r\n <div class=\"c-table\">\r\n <div class=\"c-header d-flex align-items-center bg-primary-light\">\r\n @for (column of component.columns; track column.key) {\r\n <div class=\"c-item\" [style.width]=\"column.width\">\r\n {{ column.label }}\r\n </div>\r\n }\r\n </div>\r\n <div class=\"c-content\">\r\n <div class=\"row-table d-flex align-items-center\">\r\n @for (column of component.columns; track column.key) {\r\n <div class=\"c-item text-secondary\" [style.width]=\"column.width\">{{ column.key }}</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n}\r\n", styles: [".c-table{border:1px solid #ddd}.c-table .c-header{border:1px solid #ddd;border-bottom:0!important}.c-table .c-header .c-item{font-weight:500}.c-table .c-content{border:1px solid #ddd}.c-table .c-item{border:1px solid #ddd;padding:8px 10px;width:-webkit-fill-available;min-width:75px}.c-table .c-item h .spc{color:#ddd}\n"] }]
|
|
5611
5611
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BuilderService }], propDecorators: { _component: [{
|
|
@@ -5695,10 +5695,10 @@ class ConfigureValidationComponent {
|
|
|
5695
5695
|
this.accept.emit(this.validations);
|
|
5696
5696
|
this.modal?.close();
|
|
5697
5697
|
};
|
|
5698
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
5699
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: ConfigureValidationComponent, isStandalone: true, selector: "configure-validation", outputs: { accept: "accept" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "<sd-modal title=\"C\u1EA5u h\u00ECnh x\u00E1c th\u1EF1c l\u1ED7i/c\u1EA3nh b\u00E1o\" view=\"dialog\" width=\"800px\" #popupConfigureVariables>\r\n @for (validation of validations; track $index; let idx = $index) {\r\n <div class=\"mat-elevation-z2 position-relative p-8 mb-16\" style=\"border-radius: 8px;\">\r\n <div class=\"row mx-0\">\r\n <sd-select\r\n class=\"col-3\"\r\n label=\"Lo\u1EA1i th\u00F4ng b\u00E1o\"\r\n [(model)]=\"validation.alert\"\r\n [items]=\"alerts\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required></sd-select>\r\n @if (validation.type === 'expression') {\r\n <sd-input class=\"col-9\" [form]=\"form\" label=\"Th\u00F4ng b\u00E1o hi\u1EC3n th\u1ECB\" [(model)]=\"validation.message\" required></sd-input>\r\n <expression-builder class=\"col-12\" label=\"Bi\u1EC3u th\u1EE9c \u0111i\u1EC1u ki\u1EC7n\" [(model)]=\"validation.expression\" [attributes]=\"attributes\"></expression-builder>\r\n } @else if (validation.type === 'function') {\r\n <sd-select\r\n class=\"col-9\"\r\n [form]=\"form\"\r\n [(model)]=\"validation.code\"\r\n [items]=\"functions\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required></sd-select>\r\n }\r\n <mat-icon class=\"c-close-icon\" (click)=\"removaValidation(idx)\">delete</mat-icon>\r\n <!-- <sd-button\r\n \r\n prefixIcon=\"delete\"\r\n (click)=\"removaValidation(idx)\"\r\n color=\"error\"\r\n type=\"link\"></sd-button> -->\r\n </div>\r\n </div>\r\n }\r\n <sd-button title=\"Th\u00EAm x\u00E1c th\u1EF1c\" [matMenuTriggerFor]=\"menu\" prefixIcon=\"add\" color=\"primary\" type=\"link\"></sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button (click)=\"addValidation('expression')\" mat-menu-item type=\"button\">\r\n <!-- <mat-icon fontIcon=\"warning\"></mat-icon> -->\r\n <span>Bi\u1EC3u th\u1EE9c</span>\r\n </button>\r\n <button (click)=\"addValidation('function')\" mat-menu-item type=\"button\">\r\n <!-- <mat-icon fontIcon=\"error\"></mat-icon> -->\r\n <span>Ph\u01B0\u01A1ng th\u1EE9c s\u1EB5n c\u00F3</span>\r\n </button>\r\n </mat-menu>\r\n <ng-container sdFooter>\r\n <sd-button type=\"fill\" title=\"L\u01B0u\" (click)=\"updateValidations()\" prefixIcon=\"save\" color=\"primary\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-close-icon{margin-left:auto;font-size:16px;width:16px;height:16px;cursor:pointer;border-radius:50%;color:var(--sd-error);top:4px;right:4px;position:absolute}.c-close-icon:hover{background-color:var(--sd-black200)}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1$5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i1$5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i1$5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdInput, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdSelect, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: ExpressionBuilderComponent, selector: "expression-builder", inputs: ["label", "attributes", "model"], outputs: ["modelChange", "sdChange", "edit"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5698
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ConfigureValidationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SD_WORKFLOW_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Component });
|
|
5699
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: ConfigureValidationComponent, isStandalone: true, selector: "configure-validation", outputs: { accept: "accept" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], ngImport: i0, template: "<sd-modal title=\"C\u1EA5u h\u00ECnh x\u00E1c th\u1EF1c l\u1ED7i/c\u1EA3nh b\u00E1o\" view=\"dialog\" width=\"800px\" #popupConfigureVariables>\r\n @for (validation of validations; track $index; let idx = $index) {\r\n <div class=\"mat-elevation-z2 position-relative p-8 mb-16\" style=\"border-radius: 8px;\">\r\n <div class=\"row mx-0\">\r\n <sd-select\r\n class=\"col-3\"\r\n label=\"Lo\u1EA1i th\u00F4ng b\u00E1o\"\r\n [(model)]=\"validation.alert\"\r\n [items]=\"alerts\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required></sd-select>\r\n @if (validation.type === 'expression') {\r\n <sd-input class=\"col-9\" [form]=\"form\" label=\"Th\u00F4ng b\u00E1o hi\u1EC3n th\u1ECB\" [(model)]=\"validation.message\" required></sd-input>\r\n <expression-builder class=\"col-12\" label=\"Bi\u1EC3u th\u1EE9c \u0111i\u1EC1u ki\u1EC7n\" [(model)]=\"validation.expression\" [attributes]=\"attributes\"></expression-builder>\r\n } @else if (validation.type === 'function') {\r\n <sd-select\r\n class=\"col-9\"\r\n [form]=\"form\"\r\n [(model)]=\"validation.code\"\r\n [items]=\"functions\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required></sd-select>\r\n }\r\n <mat-icon class=\"c-close-icon\" (click)=\"removaValidation(idx)\">delete</mat-icon>\r\n <!-- <sd-button\r\n \r\n prefixIcon=\"delete\"\r\n (click)=\"removaValidation(idx)\"\r\n color=\"error\"\r\n type=\"link\"></sd-button> -->\r\n </div>\r\n </div>\r\n }\r\n <sd-button title=\"Th\u00EAm x\u00E1c th\u1EF1c\" [matMenuTriggerFor]=\"menu\" prefixIcon=\"add\" color=\"primary\" type=\"link\"></sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button (click)=\"addValidation('expression')\" mat-menu-item type=\"button\">\r\n <!-- <mat-icon fontIcon=\"warning\"></mat-icon> -->\r\n <span>Bi\u1EC3u th\u1EE9c</span>\r\n </button>\r\n <button (click)=\"addValidation('function')\" mat-menu-item type=\"button\">\r\n <!-- <mat-icon fontIcon=\"error\"></mat-icon> -->\r\n <span>Ph\u01B0\u01A1ng th\u1EE9c s\u1EB5n c\u00F3</span>\r\n </button>\r\n </mat-menu>\r\n <ng-container sdFooter>\r\n <sd-button type=\"fill\" title=\"L\u01B0u\" (click)=\"updateValidations()\" prefixIcon=\"save\" color=\"primary\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-close-icon{margin-left:auto;font-size:16px;width:16px;height:16px;cursor:pointer;border-radius:50%;color:var(--sd-error);top:4px;right:4px;position:absolute}.c-close-icon:hover{background-color:var(--sd-black200)}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1$5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i1$5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i1$5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdInput, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdSelect, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: ExpressionBuilderComponent, selector: "expression-builder", inputs: ["label", "attributes", "model"], outputs: ["modelChange", "sdChange", "edit"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5700
5700
|
}
|
|
5701
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
5701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: ConfigureValidationComponent, decorators: [{
|
|
5702
5702
|
type: Component,
|
|
5703
5703
|
args: [{ selector: 'configure-validation', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatMenuModule, SdModal, SdButton, SdInput, SdSelect, ExpressionBuilderComponent, MatIconModule], template: "<sd-modal title=\"C\u1EA5u h\u00ECnh x\u00E1c th\u1EF1c l\u1ED7i/c\u1EA3nh b\u00E1o\" view=\"dialog\" width=\"800px\" #popupConfigureVariables>\r\n @for (validation of validations; track $index; let idx = $index) {\r\n <div class=\"mat-elevation-z2 position-relative p-8 mb-16\" style=\"border-radius: 8px;\">\r\n <div class=\"row mx-0\">\r\n <sd-select\r\n class=\"col-3\"\r\n label=\"Lo\u1EA1i th\u00F4ng b\u00E1o\"\r\n [(model)]=\"validation.alert\"\r\n [items]=\"alerts\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required></sd-select>\r\n @if (validation.type === 'expression') {\r\n <sd-input class=\"col-9\" [form]=\"form\" label=\"Th\u00F4ng b\u00E1o hi\u1EC3n th\u1ECB\" [(model)]=\"validation.message\" required></sd-input>\r\n <expression-builder class=\"col-12\" label=\"Bi\u1EC3u th\u1EE9c \u0111i\u1EC1u ki\u1EC7n\" [(model)]=\"validation.expression\" [attributes]=\"attributes\"></expression-builder>\r\n } @else if (validation.type === 'function') {\r\n <sd-select\r\n class=\"col-9\"\r\n [form]=\"form\"\r\n [(model)]=\"validation.code\"\r\n [items]=\"functions\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required></sd-select>\r\n }\r\n <mat-icon class=\"c-close-icon\" (click)=\"removaValidation(idx)\">delete</mat-icon>\r\n <!-- <sd-button\r\n \r\n prefixIcon=\"delete\"\r\n (click)=\"removaValidation(idx)\"\r\n color=\"error\"\r\n type=\"link\"></sd-button> -->\r\n </div>\r\n </div>\r\n }\r\n <sd-button title=\"Th\u00EAm x\u00E1c th\u1EF1c\" [matMenuTriggerFor]=\"menu\" prefixIcon=\"add\" color=\"primary\" type=\"link\"></sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button (click)=\"addValidation('expression')\" mat-menu-item type=\"button\">\r\n <!-- <mat-icon fontIcon=\"warning\"></mat-icon> -->\r\n <span>Bi\u1EC3u th\u1EE9c</span>\r\n </button>\r\n <button (click)=\"addValidation('function')\" mat-menu-item type=\"button\">\r\n <!-- <mat-icon fontIcon=\"error\"></mat-icon> -->\r\n <span>Ph\u01B0\u01A1ng th\u1EE9c s\u1EB5n c\u00F3</span>\r\n </button>\r\n </mat-menu>\r\n <ng-container sdFooter>\r\n <sd-button type=\"fill\" title=\"L\u01B0u\" (click)=\"updateValidations()\" prefixIcon=\"save\" color=\"primary\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-close-icon{margin-left:auto;font-size:16px;width:16px;height:16px;cursor:pointer;border-radius:50%;color:var(--sd-error);top:4px;right:4px;position:absolute}.c-close-icon:hover{background-color:var(--sd-black200)}\n"] }]
|
|
5704
5704
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
@@ -6134,14 +6134,14 @@ class SdFormBuilder extends SdBaseSecureComponent {
|
|
|
6134
6134
|
this.notifyService.success('Submit success');
|
|
6135
6135
|
}
|
|
6136
6136
|
};
|
|
6137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
6138
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: SdFormBuilder, isStandalone: true, selector: "sd-form-builder", inputs: { _formGeneric: ["formGeneric", "_formGeneric"] }, viewQueries: [{ propertyName: "popupViewJSON", first: true, predicate: ["popupViewJSON"], descendants: true }, { propertyName: "popupConfigureVariables", first: true, predicate: ["popupConfigureVariables"], descendants: true }, { propertyName: "configureValidation", first: true, predicate: ConfigureValidationComponent, descendants: true }, { propertyName: "formRender", first: true, predicate: SdFormRender, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex form-editor\">\r\n <div class=\"d-flex flex-column form-menu\">\r\n <div class=\"c-header\">Components</div>\r\n <div class=\"component-container\" style=\"flex: 1\">\r\n <div class=\"form-editor-group\" cdkDropList [cdkDropListData]=\"formBuilderComponents\" [cdkDropListEnterPredicate]=\"noReturnPredicate\">\r\n @for (formBuilderComponent of formBuilderComponents; track formBuilderComponent.type) {\r\n <div cdkDrag class=\"form-item\" (click)=\"addComponent(formBuilderComponent)\" aria-hidden=\"true\">\r\n <div class=\"c-form-item\">\r\n <span [innerHtml]=\"formBuilderComponent.icon | sdSafeHtml\"></span>\r\n <div class=\"title\">\r\n {{ formBuilderComponent.name }}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column form-content\">\r\n <div class=\"c-header d-flex align-items-center justify-content-between\">\r\n <div>B\u1ED1 c\u1EE5c</div>\r\n <div class=\"d-flex align-items-center\" style=\"gap: 8px\">\r\n <mat-icon matTooltip=\"Xem JSON\" fontIcon=\"code\" (click)=\"viewJSON()\"></mat-icon>\r\n <mat-icon matTooltip=\"C\u1EA5u h\u00ECnh bi\u1EBFn\" fontIcon=\"scatter_plot\" (click)=\"configureVariables()\"></mat-icon>\r\n <mat-icon matTooltip=\"C\u1EA5u h\u00ECnh x\u00E1c th\u1EF1c c\u1EA3nh b\u00E1o/l\u1ED7i\" fontIcon=\"error\" (click)=\"openConfigureValidation()\"></mat-icon>\r\n <mat-icon\r\n [matTooltip]=\"isPreview ? 'Tr\u1EDF v\u1EC1 thi\u1EBFt k\u1EBF' : 'Xem th\u1EED'\"\r\n [fontIcon]=\"isPreview ? 'stop_circle' : 'play_circle'\"\r\n (click)=\"isPreview = !isPreview\"></mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"p-12 components\" style=\"flex: 1; overflow-y: auto\" id=\"frmComponent\">\r\n @if (isPreview) {\r\n <sd-form-render [configuration]=\"{ components: this.components, validations: this.validations }\"></sd-form-render>\r\n <sd-button title=\"Validate\" (click)=\"onValidate()\"></sd-button>\r\n } @else {\r\n <div\r\n cdkDropList\r\n cdkDropListOrientation=\"vertical\"\r\n [cdkDropListData]=\"dragDropRows\"\r\n class=\"listY\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n (click)=\"clickFormContentEmpty()\"\r\n aria-hidden=\"true\">\r\n @for (row of dragDropRows; track row.rowIndex) {\r\n <div\r\n cdkDrag\r\n (mouseover)=\"onMouseover($event, row)\"\r\n (focus)=\"onFocus($event)\"\r\n id=\"row_{{ row.rowIndex }}\"\r\n class=\"row-item\"\r\n aria-hidden=\"true\">\r\n <div class=\"btn-drag-row-item\"><mat-icon matTooltip=\"K\u00E9o l\u00EAn / xu\u1ED1ng\">drag_indicator</mat-icon></div>\r\n <div\r\n class=\"c-row-item\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"row.items\"\r\n (cdkDropListDropped)=\"drop($event)\">\r\n @for (item of row.items; track item.id; let i = $index) {\r\n <div\r\n cdkDrag\r\n [id]=\"item.id\"\r\n class=\"component-item column-{{ item.layout?.columns || 12 }}\"\r\n [class.active]=\"item.id === selectedComponent?.id\"\r\n (click)=\"selectComponent(item)\"\r\n (clickOutside)=\"onClickedOutside($event)\"\r\n (cdkDragStarted)=\"dragStartComponentItem($event)\"\r\n (cdkDragEnded)=\"dragEndComponentItem($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-component-item\" [class.c-hidden]=\"item.properties?.hidden\">\r\n <div class=\"c-actions\">\r\n @if (item.type !== 'group') {\r\n <mat-icon\r\n [matTooltip]=\"item.properties?.viewed ? 'B\u1ECF ch\u1EC9 xem' : 'Ch\u1EC9 xem'\"\r\n (click)=\"onChangeViewed(item)\"\r\n fontSet=\"material-icons-outlined\"\r\n style=\"font-size: 16px; cursor: pointer\"\r\n [class.text-warning]=\"item.properties?.viewed\">\r\n edit_off\r\n </mat-icon>\r\n }\r\n <mat-icon\r\n matTooltip=\"Nh\u00E2n b\u1EA3n\"\r\n (click)=\"onDuplicate(item)\"\r\n fontSet=\"material-icons-outlined\"\r\n style=\"font-size: 16px; cursor: pointer\">\r\n content_copy\r\n </mat-icon>\r\n <mat-icon\r\n [matTooltip]=\"item.properties?.hidden ? 'Hi\u1EC7n' : '\u1EA8n'\"\r\n (click)=\"onChangeHidden(item)\"\r\n fontSet=\"material-icons-outlined\"\r\n style=\"font-size: 16px; cursor: pointer\"\r\n [class.text-warning]=\"item.properties?.hidden\">\r\n visibility_off\r\n </mat-icon>\r\n <mat-icon\r\n matTooltip=\"X\u00F3a\"\r\n (click)=\"removeComponent(item.id)\"\r\n fontSet=\"material-icons-outlined\"\r\n style=\"font-size: 16px; cursor: pointer\"\r\n class=\"text-error\">\r\n delete\r\n </mat-icon>\r\n </div>\r\n @if (item.type === 'textfield') {\r\n <textfield-control [component]=\"item\"></textfield-control>\r\n } @else if (item.type === 'textarea') {\r\n <textarea-control [component]=\"item\"></textarea-control>\r\n } @else if (item.type === 'chip-string') {\r\n <chip-string-control [component]=\"item\"></chip-string-control>\r\n } @else if (item.type === 'chip-calendar') {\r\n <chip-calendar-control [component]=\"item\"></chip-calendar-control>\r\n } @else if (item.type === 'number') {\r\n <number-control [component]=\"item\"></number-control>\r\n } @else if (item.type === 'datetime') {\r\n <datetime-control [component]=\"item\"></datetime-control>\r\n } @else if (item.type === 'select') {\r\n <select-control [component]=\"item\"></select-control>\r\n } @else if (item.type === 'radio') {\r\n <radio-control [component]=\"item\"></radio-control>\r\n } @else if (item.type === 'checkbox') {\r\n <checkbox-control [component]=\"item\"></checkbox-control>\r\n } @else if (item.type === 'html') {\r\n <html-control [component]=\"item\" #html></html-control>\r\n } @else if (item.type === 'upload') {\r\n <upload-control [component]=\"item\"></upload-control>\r\n } @else if (item.type === 'table') {\r\n <table-control [component]=\"item\"></table-control>\r\n }\r\n <div class=\"c-item-backdrop\"></div>\r\n </div>\r\n <div cdkDropList cdkDropListOrientation=\"horizontal\">\r\n <div\r\n cdkDrag\r\n (cdkDragMoved)=\"changeSizeControl($event, item, row.items, i)\"\r\n (cdkDragEnded)=\"dragEndChangeSizeControl($event)\"\r\n class=\"c-bar-resize-right\"\r\n matTooltip=\"Co d\u00E3n\"></div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column form-attributes\">\r\n <div class=\"c-header\">Thu\u1ED9c t\u00EDnh</div>\r\n @if (selectedComponent) {\r\n <div class=\"attributes\" style=\"flex: 1\" aria-hidden=\"true\">\r\n @if (selectedComponent.type === 'textfield') {\r\n <textfield-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></textfield-attribute>\r\n } @else if (selectedComponent.type === 'textarea') {\r\n <textarea-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></textarea-attribute>\r\n } @else if (selectedComponent.type === 'chip-string') {\r\n <chip-string-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></chip-string-attribute>\r\n } @else if (selectedComponent.type === 'chip-calendar') {\r\n <chip-calendar-attribute\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [component]=\"selectedComponent\"></chip-calendar-attribute>\r\n } @else if (selectedComponent.type === 'number') {\r\n <number-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></number-attribute>\r\n } @else if (selectedComponent.type === 'datetime') {\r\n <datetime-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></datetime-attribute>\r\n } @else if (selectedComponent.type === 'select') {\r\n <select-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></select-attribute>\r\n } @else if (selectedComponent.type === 'radio') {\r\n <radio-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></radio-attribute>\r\n } @else if (selectedComponent.type === 'checkbox') {\r\n <checkbox-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></checkbox-attribute>\r\n } @else if (selectedComponent.type === 'html') {\r\n <html-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></html-attribute>\r\n } @else if (selectedComponent.type === 'upload') {\r\n <upload-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></upload-attribute>\r\n } @else if (selectedComponent.type === 'table') {\r\n <table-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></table-attribute>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n<sd-modal title=\"JSON\" view=\"dialog\" width=\"80%\" #popupViewJSON>\r\n <sd-textarea [(model)]=\"jsonString\"></sd-textarea>\r\n <ng-container sdFooter>\r\n <sd-button type=\"fill\" title=\"L\u01B0u\" (click)=\"updateJSON()\" prefixIcon=\"save\" color=\"primary\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n<sd-modal title=\"C\u1EA5u h\u00ECnh bi\u1EBFn\" view=\"dialog\" width=\"800px\" #popupConfigureVariables>\r\n @for (variable of clonedVariables; track variable.id) {\r\n <div class=\"d-flex align-items-center\" style=\"gap: 8px\">\r\n <sd-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"variable.key\" required></sd-input>\r\n <sd-input [form]=\"form\" label=\"Nh\u00E3n hi\u1EC3n th\u1ECB\" [(model)]=\"variable.label\" required></sd-input>\r\n <sd-button prefixIcon=\"delete\" (click)=\"removeVariables(variable.id)\" color=\"error\"></sd-button>\r\n </div>\r\n }\r\n <a href=\"javascript:;\" (click)=\"addVariables()\">Th\u00EAm bi\u1EBFn</a>\r\n <ng-container sdFooter>\r\n <sd-button type=\"fill\" title=\"L\u01B0u\" (click)=\"updateVariables()\" prefixIcon=\"save\" color=\"primary\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n<configure-validation (accept)=\"onUpdateValidations($event)\"></configure-validation>\r\n", styles: [":host::ng-deep .svg{width:40px}:host::ng-deep .mat-form-field.sd-sm.mat-form-field-appearance-outline .mat-form-field-infix input.mat-input-element{margin-top:7px!important}::ng-deep .component-item.cdk-drag-preview .c-component-item{display:none}::ng-deep .component-item.cdk-drag-dragging,::ng-deep .row-item.cdk-drag-dragging{box-shadow:0 4px 8px #0003;border:2px #0e7cfa dashed}::ng-deep .row-item.cdk-drag-preview .c-row-item,::ng-deep .row-item.cdk-drag-preview .btn-drag-row-item{display:none}::ng-deep .form-item.cdk-drag-preview{text-align:center}::ng-deep .form-item.cdk-drag-preview .c-form-item{text-align:center}::ng-deep .form-item.cdk-drag-preview .c-form-item .svg{width:40px}.form-editor{width:100%;height:100%}.form-editor .material-icons{color:#5f6368!important}.form-editor .material-icons:hover{color:#2626b4!important;cursor:pointer!important}.form-editor .c-header{font-weight:500;padding:5px 10px;background-color:#ebebeb;border-bottom:1px solid #d3d3d3;text-transform:uppercase}.form-editor .c-header:last-child{border-right:0!important}.form-editor .c-header a{font-size:12px}.form-editor .form-menu{width:120px}.form-editor .form-menu .component-container{overflow-y:hidden;background:#f6f8fc}.form-editor .form-menu .component-container:hover{overflow-y:auto!important}.form-editor .form-menu .form-editor-group{padding:5px 10px;display:flex;align-items:center;flex-wrap:wrap}.form-editor .form-menu .form-editor-group .form-item{height:68px;display:flex;align-items:center;justify-content:center;font-size:11px;-webkit-user-select:none;user-select:none;color:#333;background:#fff;border:1px solid transparent;width:100px;margin:6px}.form-editor .form-menu .form-editor-group .form-item:hover{background-color:#e7e7e7;border-color:#878b8f;cursor:pointer}.form-editor .form-menu .form-editor-group .form-item .c-form-item{text-align:center}.form-editor .form-menu .form-editor-group .form-item .c-form-item>div.title,.form-editor .form-menu .form-editor-group .form-item .c-form-item>span{text-align:center;white-space:nowrap;font-weight:500}.form-editor .form-content{flex:1;border-right:1px solid #d3d3d3;border-left:1px solid #d3d3d3}.form-editor .form-content .components{background:#fff}.form-editor .form-content .components .row-item{position:relative;transition:transform .2s ease,box-shadow .2s ease;cursor:grab}.form-editor .form-content .components .row-item:hover{outline:1px dashed #bbb;border-radius:8px}.form-editor .form-content .components .row-item:hover .btn-drag-row-item{display:grid}.form-editor .form-content .components .row-item .btn-drag-row-item{display:none;position:absolute;top:0;left:-12px;height:100%;z-index:2;place-items:center;cursor:grab}.form-editor .form-content .components .row-item .btn-drag-row-item mat-icon{font-size:24px;height:24px;width:24px;box-shadow:0 1px 2px #0000001a;background:#fff}.form-editor .form-content .components .component-item{padding:4px 8px;border:2px dashed transparent;position:relative;min-height:28px;cursor:grab;transition:transform .2s ease,box-shadow .2s ease;display:inline-block;margin:4px;border-radius:8px;vertical-align:bottom}.form-editor .form-content .components .component-item:active{cursor:grabbing;box-shadow:0 4px 8px #0003}.form-editor .form-content .components .component-item:hover{border:2px #0e7cfa dashed}.form-editor .form-content .components .component-item:hover .c-actions{display:flex;flex-direction:row;gap:4px}.form-editor .form-content .components .component-item:hover .c-bar-resize-right{display:block;cursor:w-resize}.form-editor .form-content .components .component-item:hover .c-bar-resize-right.disabled{display:none}.form-editor .form-content .components .component-item .c-component-item{overflow:hidden}.form-editor .form-content .components .component-item .c-actions{display:none;position:absolute;right:4px;z-index:2}.form-editor .form-content .components .component-item .c-bar-resize-right{display:none;width:8px;height:80%;position:absolute;top:10%;right:-5px;outline:2px #0e7cfa solid;border-radius:4px;color:#fff;background:#fff;z-index:2}.form-editor .form-content .components .component-item .c-item-backdrop{position:absolute;width:100%;height:100%;top:0;left:0;z-index:1}.form-editor .form-content .components .active{border:2px #0e7cfa solid;outline:1px #0e7cfa solid}.form-editor .form-content .components .column-2{width:calc(16.6666666667% - 8px)}.form-editor .form-content .components .column-3{width:calc(25% - 8px)}.form-editor .form-content .components .column-4{width:calc(33.3333333333% - 8px)}.form-editor .form-content .components .column-5{width:calc(41.6666666667% - 8px)}.form-editor .form-content .components .column-6{width:calc(50% - 8px)}.form-editor .form-content .components .column-7{width:calc(58.3333333333% - 8px)}.form-editor .form-content .components .column-8{width:calc(66.6666666667% - 8px)}.form-editor .form-content .components .column-9{width:calc(75% - 8px)}.form-editor .form-content .components .column-10{width:calc(83.3333333333% - 8px)}.form-editor .form-content .components .column-11{width:calc(91.6666666667% - 8px)}.form-editor .form-content .components .column-12{width:calc(100% - 8px)}.form-editor .form-attributes{width:300px}.form-editor .form-attributes .attributes{overflow-y:auto!important;padding:0 10px;background:#f6f8fc}.form-editor .form-attributes .attributes .group-attribute .title-group{font-weight:500;padding:5px 0;position:relative;cursor:pointer;margin-top:8px}.form-editor .form-attributes .attributes .group-attribute .title-group span{vertical-align:middle;display:inline-block}.form-editor .form-attributes .attributes .group-attribute .title-group mat-icon{vertical-align:middle;position:absolute;right:0}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute{display:grid;margin-bottom:10px}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute label{font-size:12px;font-weight:400;margin:0}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute input,.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute select,.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute textarea{border:1px solid #d3d3d3;height:30px}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute .select-options{padding:5px 0;border-bottom:1px solid #d3d3d3}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute .select-options input{width:100%;margin-bottom:5px}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute .select-options .material-icons{padding-top:22px}.preview-container{margin:0 -24px;position:relative}.preview-container .header-preview{border-bottom:1px solid #eee;padding:10px;font-size:14px;font-weight:500;position:sticky;top:0;background-color:#fff;z-index:9999}.preview-container .header-preview .material-icons:hover{color:#5f6368;cursor:pointer}.preview-container .content{padding:10px}.c-hidden{opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type:
|
|
6137
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormBuilder, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$6.SdNotifyService }, { token: i1$6.SdConfirmService }, { token: BuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6138
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: SdFormBuilder, isStandalone: true, selector: "sd-form-builder", inputs: { _formGeneric: ["formGeneric", "_formGeneric"] }, viewQueries: [{ propertyName: "popupViewJSON", first: true, predicate: ["popupViewJSON"], descendants: true }, { propertyName: "popupConfigureVariables", first: true, predicate: ["popupConfigureVariables"], descendants: true }, { propertyName: "configureValidation", first: true, predicate: ConfigureValidationComponent, descendants: true }, { propertyName: "formRender", first: true, predicate: SdFormRender, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex form-editor\">\r\n <div class=\"d-flex flex-column form-menu\">\r\n <div class=\"c-header\">Components</div>\r\n <div class=\"component-container\" style=\"flex: 1\">\r\n <div class=\"form-editor-group\" cdkDropList [cdkDropListData]=\"formBuilderComponents\" [cdkDropListEnterPredicate]=\"noReturnPredicate\">\r\n @for (formBuilderComponent of formBuilderComponents; track formBuilderComponent.type) {\r\n <div cdkDrag class=\"form-item\" (click)=\"addComponent(formBuilderComponent)\" aria-hidden=\"true\">\r\n <div class=\"c-form-item\">\r\n <span [innerHtml]=\"formBuilderComponent.icon | sdSafeHtml\"></span>\r\n <div class=\"title\">\r\n {{ formBuilderComponent.name }}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column form-content\">\r\n <div class=\"c-header d-flex align-items-center justify-content-between\">\r\n <div>B\u1ED1 c\u1EE5c</div>\r\n <div class=\"d-flex align-items-center\" style=\"gap: 8px\">\r\n <mat-icon matTooltip=\"Xem JSON\" fontIcon=\"code\" (click)=\"viewJSON()\"></mat-icon>\r\n <mat-icon matTooltip=\"C\u1EA5u h\u00ECnh bi\u1EBFn\" fontIcon=\"scatter_plot\" (click)=\"configureVariables()\"></mat-icon>\r\n <mat-icon matTooltip=\"C\u1EA5u h\u00ECnh x\u00E1c th\u1EF1c c\u1EA3nh b\u00E1o/l\u1ED7i\" fontIcon=\"error\" (click)=\"openConfigureValidation()\"></mat-icon>\r\n <mat-icon\r\n [matTooltip]=\"isPreview ? 'Tr\u1EDF v\u1EC1 thi\u1EBFt k\u1EBF' : 'Xem th\u1EED'\"\r\n [fontIcon]=\"isPreview ? 'stop_circle' : 'play_circle'\"\r\n (click)=\"isPreview = !isPreview\"></mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"p-12 components\" style=\"flex: 1; overflow-y: auto\" id=\"frmComponent\">\r\n @if (isPreview) {\r\n <sd-form-render [configuration]=\"{ components: this.components, validations: this.validations }\"></sd-form-render>\r\n <sd-button title=\"Validate\" (click)=\"onValidate()\"></sd-button>\r\n } @else {\r\n <div\r\n cdkDropList\r\n cdkDropListOrientation=\"vertical\"\r\n [cdkDropListData]=\"dragDropRows\"\r\n class=\"listY\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n (click)=\"clickFormContentEmpty()\"\r\n aria-hidden=\"true\">\r\n @for (row of dragDropRows; track row.rowIndex) {\r\n <div\r\n cdkDrag\r\n (mouseover)=\"onMouseover($event, row)\"\r\n (focus)=\"onFocus($event)\"\r\n id=\"row_{{ row.rowIndex }}\"\r\n class=\"row-item\"\r\n aria-hidden=\"true\">\r\n <div class=\"btn-drag-row-item\"><mat-icon matTooltip=\"K\u00E9o l\u00EAn / xu\u1ED1ng\">drag_indicator</mat-icon></div>\r\n <div\r\n class=\"c-row-item\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"row.items\"\r\n (cdkDropListDropped)=\"drop($event)\">\r\n @for (item of row.items; track item.id; let i = $index) {\r\n <div\r\n cdkDrag\r\n [id]=\"item.id\"\r\n class=\"component-item column-{{ item.layout?.columns || 12 }}\"\r\n [class.active]=\"item.id === selectedComponent?.id\"\r\n (click)=\"selectComponent(item)\"\r\n (clickOutside)=\"onClickedOutside($event)\"\r\n (cdkDragStarted)=\"dragStartComponentItem($event)\"\r\n (cdkDragEnded)=\"dragEndComponentItem($event)\"\r\n aria-hidden=\"true\">\r\n <div class=\"c-component-item\" [class.c-hidden]=\"item.properties?.hidden\">\r\n <div class=\"c-actions\">\r\n @if (item.type !== 'group') {\r\n <mat-icon\r\n [matTooltip]=\"item.properties?.viewed ? 'B\u1ECF ch\u1EC9 xem' : 'Ch\u1EC9 xem'\"\r\n (click)=\"onChangeViewed(item)\"\r\n fontSet=\"material-icons-outlined\"\r\n style=\"font-size: 16px; cursor: pointer\"\r\n [class.text-warning]=\"item.properties?.viewed\">\r\n edit_off\r\n </mat-icon>\r\n }\r\n <mat-icon\r\n matTooltip=\"Nh\u00E2n b\u1EA3n\"\r\n (click)=\"onDuplicate(item)\"\r\n fontSet=\"material-icons-outlined\"\r\n style=\"font-size: 16px; cursor: pointer\">\r\n content_copy\r\n </mat-icon>\r\n <mat-icon\r\n [matTooltip]=\"item.properties?.hidden ? 'Hi\u1EC7n' : '\u1EA8n'\"\r\n (click)=\"onChangeHidden(item)\"\r\n fontSet=\"material-icons-outlined\"\r\n style=\"font-size: 16px; cursor: pointer\"\r\n [class.text-warning]=\"item.properties?.hidden\">\r\n visibility_off\r\n </mat-icon>\r\n <mat-icon\r\n matTooltip=\"X\u00F3a\"\r\n (click)=\"removeComponent(item.id)\"\r\n fontSet=\"material-icons-outlined\"\r\n style=\"font-size: 16px; cursor: pointer\"\r\n class=\"text-error\">\r\n delete\r\n </mat-icon>\r\n </div>\r\n @if (item.type === 'textfield') {\r\n <textfield-control [component]=\"item\"></textfield-control>\r\n } @else if (item.type === 'textarea') {\r\n <textarea-control [component]=\"item\"></textarea-control>\r\n } @else if (item.type === 'chip-string') {\r\n <chip-string-control [component]=\"item\"></chip-string-control>\r\n } @else if (item.type === 'chip-calendar') {\r\n <chip-calendar-control [component]=\"item\"></chip-calendar-control>\r\n } @else if (item.type === 'number') {\r\n <number-control [component]=\"item\"></number-control>\r\n } @else if (item.type === 'datetime') {\r\n <datetime-control [component]=\"item\"></datetime-control>\r\n } @else if (item.type === 'select') {\r\n <select-control [component]=\"item\"></select-control>\r\n } @else if (item.type === 'radio') {\r\n <radio-control [component]=\"item\"></radio-control>\r\n } @else if (item.type === 'checkbox') {\r\n <checkbox-control [component]=\"item\"></checkbox-control>\r\n } @else if (item.type === 'html') {\r\n <html-control [component]=\"item\" #html></html-control>\r\n } @else if (item.type === 'upload') {\r\n <upload-control [component]=\"item\"></upload-control>\r\n } @else if (item.type === 'table') {\r\n <table-control [component]=\"item\"></table-control>\r\n }\r\n <div class=\"c-item-backdrop\"></div>\r\n </div>\r\n <div cdkDropList cdkDropListOrientation=\"horizontal\">\r\n <div\r\n cdkDrag\r\n (cdkDragMoved)=\"changeSizeControl($event, item, row.items, i)\"\r\n (cdkDragEnded)=\"dragEndChangeSizeControl($event)\"\r\n class=\"c-bar-resize-right\"\r\n matTooltip=\"Co d\u00E3n\"></div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"d-flex flex-column form-attributes\">\r\n <div class=\"c-header\">Thu\u1ED9c t\u00EDnh</div>\r\n @if (selectedComponent) {\r\n <div class=\"attributes\" style=\"flex: 1\" aria-hidden=\"true\">\r\n @if (selectedComponent.type === 'textfield') {\r\n <textfield-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></textfield-attribute>\r\n } @else if (selectedComponent.type === 'textarea') {\r\n <textarea-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></textarea-attribute>\r\n } @else if (selectedComponent.type === 'chip-string') {\r\n <chip-string-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></chip-string-attribute>\r\n } @else if (selectedComponent.type === 'chip-calendar') {\r\n <chip-calendar-attribute\r\n [components]=\"components\"\r\n [variables]=\"variables\"\r\n [component]=\"selectedComponent\"></chip-calendar-attribute>\r\n } @else if (selectedComponent.type === 'number') {\r\n <number-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></number-attribute>\r\n } @else if (selectedComponent.type === 'datetime') {\r\n <datetime-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></datetime-attribute>\r\n } @else if (selectedComponent.type === 'select') {\r\n <select-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></select-attribute>\r\n } @else if (selectedComponent.type === 'radio') {\r\n <radio-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></radio-attribute>\r\n } @else if (selectedComponent.type === 'checkbox') {\r\n <checkbox-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></checkbox-attribute>\r\n } @else if (selectedComponent.type === 'html') {\r\n <html-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></html-attribute>\r\n } @else if (selectedComponent.type === 'upload') {\r\n <upload-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></upload-attribute>\r\n } @else if (selectedComponent.type === 'table') {\r\n <table-attribute [components]=\"components\" [variables]=\"variables\" [component]=\"selectedComponent\"></table-attribute>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n<sd-modal title=\"JSON\" view=\"dialog\" width=\"80%\" #popupViewJSON>\r\n <sd-textarea [(model)]=\"jsonString\"></sd-textarea>\r\n <ng-container sdFooter>\r\n <sd-button type=\"fill\" title=\"L\u01B0u\" (click)=\"updateJSON()\" prefixIcon=\"save\" color=\"primary\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n<sd-modal title=\"C\u1EA5u h\u00ECnh bi\u1EBFn\" view=\"dialog\" width=\"800px\" #popupConfigureVariables>\r\n @for (variable of clonedVariables; track variable.id) {\r\n <div class=\"d-flex align-items-center\" style=\"gap: 8px\">\r\n <sd-input [form]=\"form\" label=\"Tr\u01B0\u1EDDng d\u1EEF li\u1EC7u\" [(model)]=\"variable.key\" required></sd-input>\r\n <sd-input [form]=\"form\" label=\"Nh\u00E3n hi\u1EC3n th\u1ECB\" [(model)]=\"variable.label\" required></sd-input>\r\n <sd-button prefixIcon=\"delete\" (click)=\"removeVariables(variable.id)\" color=\"error\"></sd-button>\r\n </div>\r\n }\r\n <a href=\"javascript:;\" (click)=\"addVariables()\">Th\u00EAm bi\u1EBFn</a>\r\n <ng-container sdFooter>\r\n <sd-button type=\"fill\" title=\"L\u01B0u\" (click)=\"updateVariables()\" prefixIcon=\"save\" color=\"primary\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n<configure-validation (accept)=\"onUpdateValidations($event)\"></configure-validation>\r\n", styles: [":host::ng-deep .svg{width:40px}:host::ng-deep .mat-form-field.sd-sm.mat-form-field-appearance-outline .mat-form-field-infix input.mat-input-element{margin-top:7px!important}::ng-deep .component-item.cdk-drag-preview .c-component-item{display:none}::ng-deep .component-item.cdk-drag-dragging,::ng-deep .row-item.cdk-drag-dragging{box-shadow:0 4px 8px #0003;border:2px #0e7cfa dashed}::ng-deep .row-item.cdk-drag-preview .c-row-item,::ng-deep .row-item.cdk-drag-preview .btn-drag-row-item{display:none}::ng-deep .form-item.cdk-drag-preview{text-align:center}::ng-deep .form-item.cdk-drag-preview .c-form-item{text-align:center}::ng-deep .form-item.cdk-drag-preview .c-form-item .svg{width:40px}.form-editor{width:100%;height:100%}.form-editor .material-icons{color:#5f6368!important}.form-editor .material-icons:hover{color:#2626b4!important;cursor:pointer!important}.form-editor .c-header{font-weight:500;padding:5px 10px;background-color:#ebebeb;border-bottom:1px solid #d3d3d3;text-transform:uppercase}.form-editor .c-header:last-child{border-right:0!important}.form-editor .c-header a{font-size:12px}.form-editor .form-menu{width:120px}.form-editor .form-menu .component-container{overflow-y:hidden;background:#f6f8fc}.form-editor .form-menu .component-container:hover{overflow-y:auto!important}.form-editor .form-menu .form-editor-group{padding:5px 10px;display:flex;align-items:center;flex-wrap:wrap}.form-editor .form-menu .form-editor-group .form-item{height:68px;display:flex;align-items:center;justify-content:center;font-size:11px;-webkit-user-select:none;user-select:none;color:#333;background:#fff;border:1px solid transparent;width:100px;margin:6px}.form-editor .form-menu .form-editor-group .form-item:hover{background-color:#e7e7e7;border-color:#878b8f;cursor:pointer}.form-editor .form-menu .form-editor-group .form-item .c-form-item{text-align:center}.form-editor .form-menu .form-editor-group .form-item .c-form-item>div.title,.form-editor .form-menu .form-editor-group .form-item .c-form-item>span{text-align:center;white-space:nowrap;font-weight:500}.form-editor .form-content{flex:1;border-right:1px solid #d3d3d3;border-left:1px solid #d3d3d3}.form-editor .form-content .components{background:#fff}.form-editor .form-content .components .row-item{position:relative;transition:transform .2s ease,box-shadow .2s ease;cursor:grab}.form-editor .form-content .components .row-item:hover{outline:1px dashed #bbb;border-radius:8px}.form-editor .form-content .components .row-item:hover .btn-drag-row-item{display:grid}.form-editor .form-content .components .row-item .btn-drag-row-item{display:none;position:absolute;top:0;left:-12px;height:100%;z-index:2;place-items:center;cursor:grab}.form-editor .form-content .components .row-item .btn-drag-row-item mat-icon{font-size:24px;height:24px;width:24px;box-shadow:0 1px 2px #0000001a;background:#fff}.form-editor .form-content .components .component-item{padding:4px 8px;border:2px dashed transparent;position:relative;min-height:28px;cursor:grab;transition:transform .2s ease,box-shadow .2s ease;display:inline-block;margin:4px;border-radius:8px;vertical-align:bottom}.form-editor .form-content .components .component-item:active{cursor:grabbing;box-shadow:0 4px 8px #0003}.form-editor .form-content .components .component-item:hover{border:2px #0e7cfa dashed}.form-editor .form-content .components .component-item:hover .c-actions{display:flex;flex-direction:row;gap:4px}.form-editor .form-content .components .component-item:hover .c-bar-resize-right{display:block;cursor:w-resize}.form-editor .form-content .components .component-item:hover .c-bar-resize-right.disabled{display:none}.form-editor .form-content .components .component-item .c-component-item{overflow:hidden}.form-editor .form-content .components .component-item .c-actions{display:none;position:absolute;right:4px;z-index:2}.form-editor .form-content .components .component-item .c-bar-resize-right{display:none;width:8px;height:80%;position:absolute;top:10%;right:-5px;outline:2px #0e7cfa solid;border-radius:4px;color:#fff;background:#fff;z-index:2}.form-editor .form-content .components .component-item .c-item-backdrop{position:absolute;width:100%;height:100%;top:0;left:0;z-index:1}.form-editor .form-content .components .active{border:2px #0e7cfa solid;outline:1px #0e7cfa solid}.form-editor .form-content .components .column-2{width:calc(16.6666666667% - 8px)}.form-editor .form-content .components .column-3{width:calc(25% - 8px)}.form-editor .form-content .components .column-4{width:calc(33.3333333333% - 8px)}.form-editor .form-content .components .column-5{width:calc(41.6666666667% - 8px)}.form-editor .form-content .components .column-6{width:calc(50% - 8px)}.form-editor .form-content .components .column-7{width:calc(58.3333333333% - 8px)}.form-editor .form-content .components .column-8{width:calc(66.6666666667% - 8px)}.form-editor .form-content .components .column-9{width:calc(75% - 8px)}.form-editor .form-content .components .column-10{width:calc(83.3333333333% - 8px)}.form-editor .form-content .components .column-11{width:calc(91.6666666667% - 8px)}.form-editor .form-content .components .column-12{width:calc(100% - 8px)}.form-editor .form-attributes{width:300px}.form-editor .form-attributes .attributes{overflow-y:auto!important;padding:0 10px;background:#f6f8fc}.form-editor .form-attributes .attributes .group-attribute .title-group{font-weight:500;padding:5px 0;position:relative;cursor:pointer;margin-top:8px}.form-editor .form-attributes .attributes .group-attribute .title-group span{vertical-align:middle;display:inline-block}.form-editor .form-attributes .attributes .group-attribute .title-group mat-icon{vertical-align:middle;position:absolute;right:0}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute{display:grid;margin-bottom:10px}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute label{font-size:12px;font-weight:400;margin:0}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute input,.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute select,.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute textarea{border:1px solid #d3d3d3;height:30px}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute .select-options{padding:5px 0;border-bottom:1px solid #d3d3d3}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute .select-options input{width:100%;margin-bottom:5px}.form-editor .form-attributes .attributes .group-attribute .item-group .item-attribute .select-options .material-icons{padding-top:22px}.preview-container{margin:0 -24px;position:relative}.preview-container .header-preview{border-bottom:1px solid #eee;padding:10px;font-size:14px;font-weight:500;position:sticky;top:0;background-color:#fff;z-index:9999}.preview-container .header-preview .material-icons:hover{color:#5f6368;cursor:pointer}.preview-container .content{padding:10px}.c-hidden{opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type:
|
|
6139
6139
|
// Core Pipes
|
|
6140
6140
|
SdSafeHtmlPipe, name: "sdSafeHtml" }, { kind: "component", type:
|
|
6141
6141
|
// Controls
|
|
6142
6142
|
TextFieldControl, selector: "textfield-control", inputs: ["component"] }, { kind: "component", type: TextfieldAttribute, selector: "textfield-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: TextareaControl, selector: "textarea-control", inputs: ["component"] }, { kind: "component", type: TextareaAttribute, selector: "textarea-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: ChipStringControl, selector: "chip-string-control", inputs: ["component"] }, { kind: "component", type: ChipStringAttribute, selector: "chip-string-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: ChipCalendarControl, selector: "chip-calendar-control", inputs: ["component"] }, { kind: "component", type: ChipCalendarAttribute, selector: "chip-calendar-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: NumberControl, selector: "number-control", inputs: ["component"] }, { kind: "component", type: NumberAttribute, selector: "number-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: SelectControl, selector: "select-control", inputs: ["component"] }, { kind: "component", type: SelectAttribute, selector: "select-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: DatetimeControl, selector: "datetime-control", inputs: ["component"] }, { kind: "component", type: DatetimeAttribute, selector: "datetime-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: RadioControl, selector: "radio-control", inputs: ["component"] }, { kind: "component", type: RadioAttribute, selector: "radio-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: CheckboxControl, selector: "checkbox-control", inputs: ["component"] }, { kind: "component", type: CheckboxAttribute, selector: "checkbox-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: HtmlControl, selector: "html-control", inputs: ["component"] }, { kind: "component", type: HtmlAttribute, selector: "html-attribute", inputs: ["components", "variables", "component"], outputs: ["attributeChanges"] }, { kind: "component", type: UploadControl, selector: "upload-control", inputs: ["component"] }, { kind: "component", type: UploadAttribute, selector: "upload-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: TableControl, selector: "table-control", inputs: ["component"] }, { kind: "component", type: TableAttribute, selector: "table-attribute", inputs: ["components", "variables", "component"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }, { kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdTextarea, selector: "sd-textarea", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "rows", "hideInlineError", "required", "disabled", "viewed", "autoHeight", "maxlength", "pattern", "validator", "inlineError", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdFormRender, selector: "sd-form-render", inputs: ["form", "configuration", "defaultEntity", "entity", "properties", "viewed"] }, { kind: "component", type: ConfigureValidationComponent, selector: "configure-validation", outputs: ["accept"] }] });
|
|
6143
6143
|
}
|
|
6144
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
6144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFormBuilder, decorators: [{
|
|
6145
6145
|
type: Component,
|
|
6146
6146
|
args: [{ selector: 'sd-form-builder', imports: [
|
|
6147
6147
|
CommonModule,
|
|
@@ -6363,10 +6363,10 @@ class SdFeelExpression extends SdBaseSecureComponent {
|
|
|
6363
6363
|
}
|
|
6364
6364
|
return attributes;
|
|
6365
6365
|
};
|
|
6366
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
6367
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: SdFeelExpression, isStandalone: true, selector: "sd-feel-expression", inputs: { components: "components", _expression: ["expression", "_expression"], _model: ["model", "_model"] }, outputs: { expressionChange: "expressionChange", modelChange: "modelChange", sdChange: "sdChange" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{model || '--'}}</a>\r\n@if (expression) {\r\n<sd-modal title=\"Thi\u1EBFt l\u1EADp bi\u1EC3u th\u1EE9c\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button prefixIcon=\"calculate\" class=\"mr-4\" title=\"Nh\u00F3m \u0111i\u1EC1u ki\u1EC7n\" color=\"primary\" (click)=\"addCombinator(expression.conditions)\"></sd-button>\r\n <sd-button prefixIcon=\"add\" title=\"\u0110i\u1EC1u ki\u1EC7n\" color=\"primary\" (click)=\"addCondition(expression.conditions)\" type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (conditionLv1 of expression.conditions; track conditionLv1.key; let idxLv1 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px;\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv1 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv1 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"expression.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv1.type === 'condition') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"width: 200px;\" [(model)]=\"conditionLv1.field\" [items]=\"attributes\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv1.field!];\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"width: 100px;\" [(model)]=\"conditionLv1.operator\" [items]=\"attributeOperators[fieldAttribute?.type || 'string']\" valueField=\"value\" displayField=\"display\" [disabled]=\"!fieldAttribute?.type\" required hideInlineError></sd-select>\r\n @if(!!fieldAttribute?.type && conditionLv1.operator && conditionLv1.operator !== 'NULL' && conditionLv1.operator !== 'NOT_NULL') {\r\n @if(fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input>\r\n } @else if(fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input-number>\r\n } @else if(fieldAttribute.type === 'boolean') {\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" [items]=\"[{value: true, display: fieldAttribute.displayOnTrue}, {value: false, display: fieldAttribute.displayOnFalse}]\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-select>\r\n }@else if(fieldAttribute.type === 'values') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" [items]=\"fieldAttribute.values\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n \r\n } @else if (conditionLv1.type === 'combinator') {\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button\r\n class=\"mr-4\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n <sd-button prefixIcon=\"add\" title=\"\u0110i\u1EC1u ki\u1EC7n\" size=\"sm\" color=\"primary\" (click)=\"addCondition(conditionLv1.conditions)\" type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 2 -->\r\n @for (conditionLv2 of conditionLv1.conditions; track conditionLv2.key; let idxLv2 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px;\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv2 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv2 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"conditionLv1.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv2.type === 'condition') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"width: 200px;\" [(model)]=\"conditionLv2.field\" [items]=\"attributes\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv2.field!];\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"width: 100px;\" [(model)]=\"conditionLv2.operator\" [items]=\"attributeOperators[fieldAttribute?.type || 'string']\" valueField=\"value\" displayField=\"display\" [disabled]=\"!fieldAttribute?.type\" required hideInlineError></sd-select>\r\n @if(!!fieldAttribute?.type && conditionLv2.operator && conditionLv2.operator !== 'NULL' && conditionLv2.operator !== 'NOT_NULL') {\r\n @if(fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" required hideInlineError></sd-input>\r\n } @else if(fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" required hideInlineError></sd-input-number>\r\n } @else if(fieldAttribute.type === 'boolean') {\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" [items]=\"[{value: true, display: fieldAttribute.displayOnTrue}, {value: false, display: fieldAttribute.displayOnFalse}]\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-select>\r\n }@else if(fieldAttribute.type === 'values') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" [items]=\"fieldAttribute.values\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(conditionLv1.conditions, idxLv1)\"></sd-button>\r\n \r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n}", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdSelect$1, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6366
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFeelExpression, deps: [{ token: i0.ChangeDetectorRef }, { token: ExpressionFeelPipe }, { token: FormGenericService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6367
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: SdFeelExpression, isStandalone: true, selector: "sd-feel-expression", inputs: { components: "components", _expression: ["expression", "_expression"], _model: ["model", "_model"] }, outputs: { expressionChange: "expressionChange", modelChange: "modelChange", sdChange: "sdChange" }, viewQueries: [{ propertyName: "modal", first: true, predicate: SdModal, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{model || '--'}}</a>\r\n@if (expression) {\r\n<sd-modal title=\"Thi\u1EBFt l\u1EADp bi\u1EC3u th\u1EE9c\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button prefixIcon=\"calculate\" class=\"mr-4\" title=\"Nh\u00F3m \u0111i\u1EC1u ki\u1EC7n\" color=\"primary\" (click)=\"addCombinator(expression.conditions)\"></sd-button>\r\n <sd-button prefixIcon=\"add\" title=\"\u0110i\u1EC1u ki\u1EC7n\" color=\"primary\" (click)=\"addCondition(expression.conditions)\" type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (conditionLv1 of expression.conditions; track conditionLv1.key; let idxLv1 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px;\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv1 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv1 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"expression.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv1.type === 'condition') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"width: 200px;\" [(model)]=\"conditionLv1.field\" [items]=\"attributes\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv1.field!];\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"width: 100px;\" [(model)]=\"conditionLv1.operator\" [items]=\"attributeOperators[fieldAttribute?.type || 'string']\" valueField=\"value\" displayField=\"display\" [disabled]=\"!fieldAttribute?.type\" required hideInlineError></sd-select>\r\n @if(!!fieldAttribute?.type && conditionLv1.operator && conditionLv1.operator !== 'NULL' && conditionLv1.operator !== 'NOT_NULL') {\r\n @if(fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input>\r\n } @else if(fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input-number>\r\n } @else if(fieldAttribute.type === 'boolean') {\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" [items]=\"[{value: true, display: fieldAttribute.displayOnTrue}, {value: false, display: fieldAttribute.displayOnFalse}]\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-select>\r\n }@else if(fieldAttribute.type === 'values') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" [items]=\"fieldAttribute.values\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n \r\n } @else if (conditionLv1.type === 'combinator') {\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button\r\n class=\"mr-4\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n <sd-button prefixIcon=\"add\" title=\"\u0110i\u1EC1u ki\u1EC7n\" size=\"sm\" color=\"primary\" (click)=\"addCondition(conditionLv1.conditions)\" type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 2 -->\r\n @for (conditionLv2 of conditionLv1.conditions; track conditionLv2.key; let idxLv2 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px;\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv2 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv2 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"conditionLv1.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv2.type === 'condition') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"width: 200px;\" [(model)]=\"conditionLv2.field\" [items]=\"attributes\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv2.field!];\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"width: 100px;\" [(model)]=\"conditionLv2.operator\" [items]=\"attributeOperators[fieldAttribute?.type || 'string']\" valueField=\"value\" displayField=\"display\" [disabled]=\"!fieldAttribute?.type\" required hideInlineError></sd-select>\r\n @if(!!fieldAttribute?.type && conditionLv2.operator && conditionLv2.operator !== 'NULL' && conditionLv2.operator !== 'NOT_NULL') {\r\n @if(fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" required hideInlineError></sd-input>\r\n } @else if(fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" required hideInlineError></sd-input-number>\r\n } @else if(fieldAttribute.type === 'boolean') {\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" [items]=\"[{value: true, display: fieldAttribute.displayOnTrue}, {value: false, display: fieldAttribute.displayOnFalse}]\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-select>\r\n }@else if(fieldAttribute.type === 'values') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" [items]=\"fieldAttribute.values\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(conditionLv1.conditions, idxLv1)\"></sd-button>\r\n \r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n}", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"], dependencies: [{ kind: "component", type: SdInput$1, selector: "sd-input", inputs: ["autoId", "name", "appearance", "floatLabel", "size", "form", "label", "helperText", "placeholder", "type", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "minlength", "maxlength", "pattern", "patternErrorMessage", "validator", "inlineError", "hyperlink", "tooltip", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdInputNumber, selector: "sd-input-number", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "hideInlineError", "blurOnEnter", "required", "readonly", "disabled", "viewed", "type", "precision", "min", "max", "validator", "inlineError", "hyperlink", "appearance", "floatLabel", "model"], outputs: ["modelChange", "sdChange", "sdFocus", "sdBlur", "keyupEnter", "sdFocusForceBlur"] }, { kind: "component", type: SdSelect$1, selector: "sd-select", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "cacheChecksum", "limit", "hyperlink", "minWidthPanel", "hideInlineError", "required", "disabled", "viewed", "multiple", "validator", "inlineError", "appearance", "floatLabel", "items", "model"], outputs: ["modelChange", "sdChange", "sdSelection"] }, { kind: "component", type: SdAutocomplete$1, selector: "sd-autocomplete", inputs: ["autoId", "name", "size", "form", "label", "helperText", "placeholder", "valueField", "displayField", "disabledField", "limit", "cacheChecksum", "hyperlink", "items", "hideInlineError", "addable", "required", "disabled", "viewed", "validator", "inlineError", "appearance", "model"], outputs: ["modelChange", "sdChange", "sdSelection", "sdAdd"] }, { kind: "component", type: SdButton, selector: "sd-button", inputs: ["autoId", "type", "color", "size", "fontSet", "title", "width", "tooltip", "prefixIcon", "suffixIcon", "disabled", "loading", "block", "htmlType"], outputs: ["click"] }, { kind: "component", type: SdModal, selector: "sd-modal", inputs: ["title", "color", "width", "height", "view", "modalClass", "lazyLoadContent", "hideClose", "disableBackdropClose"], outputs: ["sdClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6368
6368
|
}
|
|
6369
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
6369
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: SdFeelExpression, decorators: [{
|
|
6370
6370
|
type: Component,
|
|
6371
6371
|
args: [{ selector: 'sd-feel-expression', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdInput$1, SdInputNumber, SdSelect$1, SdAutocomplete$1, SdButton, SdSelect$1, SdModal], template: "<a class=\"T12R\" href=\"javascript:;\" (click)=\"edit()\">{{model || '--'}}</a>\r\n@if (expression) {\r\n<sd-modal title=\"Thi\u1EBFt l\u1EADp bi\u1EC3u th\u1EE9c\">\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button prefixIcon=\"calculate\" class=\"mr-4\" title=\"Nh\u00F3m \u0111i\u1EC1u ki\u1EC7n\" color=\"primary\" (click)=\"addCombinator(expression.conditions)\"></sd-button>\r\n <sd-button prefixIcon=\"add\" title=\"\u0110i\u1EC1u ki\u1EC7n\" color=\"primary\" (click)=\"addCondition(expression.conditions)\" type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 1 -->\r\n @for (conditionLv1 of expression.conditions; track conditionLv1.key; let idxLv1 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px;\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv1 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv1 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"expression.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv1.type === 'condition') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"width: 200px;\" [(model)]=\"conditionLv1.field\" [items]=\"attributes\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv1.field!];\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"width: 100px;\" [(model)]=\"conditionLv1.operator\" [items]=\"attributeOperators[fieldAttribute?.type || 'string']\" valueField=\"value\" displayField=\"display\" [disabled]=\"!fieldAttribute?.type\" required hideInlineError></sd-select>\r\n @if(!!fieldAttribute?.type && conditionLv1.operator && conditionLv1.operator !== 'NULL' && conditionLv1.operator !== 'NOT_NULL') {\r\n @if(fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input>\r\n } @else if(fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" required hideInlineError></sd-input-number>\r\n } @else if(fieldAttribute.type === 'boolean') {\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" [items]=\"[{value: true, display: fieldAttribute.displayOnTrue}, {value: false, display: fieldAttribute.displayOnFalse}]\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-select>\r\n }@else if(fieldAttribute.type === 'values') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv1.value\" [items]=\"fieldAttribute.values\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n \r\n } @else if (conditionLv1.type === 'combinator') {\r\n <div class=\"c-builder\">\r\n <div class=\"d-flex justify-content-end\">\r\n <sd-button\r\n class=\"mr-4\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(expression.conditions, idxLv1)\"></sd-button>\r\n <sd-button prefixIcon=\"add\" title=\"\u0110i\u1EC1u ki\u1EC7n\" size=\"sm\" color=\"primary\" (click)=\"addCondition(conditionLv1.conditions)\" type=\"fill\"></sd-button>\r\n </div>\r\n <!-- C\u1EA5p 2 -->\r\n @for (conditionLv2 of conditionLv1.conditions; track conditionLv2.key; let idxLv2 = $index) {\r\n <div class=\"d-flex align-items-end py-8\" style=\"gap: 8px;\">\r\n <div class=\"c-condition\">\r\n <!-- D\u00F2ng 1 ch\u1EC9 hi\u1EC7n WHERE -->\r\n @if (idxLv2 === 0) {\r\n <div class=\"c-where\">WHERE</div>\r\n }\r\n <!-- D\u00F2ng 2 hi\u1EC3n th\u1ECB combinator -->\r\n @if (idxLv2 === 1) {\r\n <div class=\"c-select\">\r\n <sd-select\r\n size=\"sm\"\r\n [(model)]=\"conditionLv1.combinator\"\r\n [items]=\"[\r\n { value: '&&', display: 'AND' },\r\n { value: '||', display: 'OR' }\r\n ]\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n required\r\n hideInlineError=\"\"></sd-select>\r\n </div>\r\n }\r\n </div>\r\n @if (conditionLv2.type === 'condition') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"width: 200px;\" [(model)]=\"conditionLv2.field\" [items]=\"attributes\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n @let fieldAttribute = attribute[conditionLv2.field!];\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"width: 100px;\" [(model)]=\"conditionLv2.operator\" [items]=\"attributeOperators[fieldAttribute?.type || 'string']\" valueField=\"value\" displayField=\"display\" [disabled]=\"!fieldAttribute?.type\" required hideInlineError></sd-select>\r\n @if(!!fieldAttribute?.type && conditionLv2.operator && conditionLv2.operator !== 'NULL' && conditionLv2.operator !== 'NOT_NULL') {\r\n @if(fieldAttribute.type === 'string') {\r\n <sd-input size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" required hideInlineError></sd-input>\r\n } @else if(fieldAttribute.type === 'number') {\r\n <sd-input-number size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" required hideInlineError></sd-input-number>\r\n } @else if(fieldAttribute.type === 'boolean') {\r\n <sd-select size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" [items]=\"[{value: true, display: fieldAttribute.displayOnTrue}, {value: false, display: fieldAttribute.displayOnFalse}]\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-select>\r\n }@else if(fieldAttribute.type === 'values') {\r\n <sd-autocomplete size=\"sm\" [form]=\"form\" style=\"flex:1\" [(model)]=\"conditionLv2.value\" [items]=\"fieldAttribute.values\" valueField=\"value\" displayField=\"display\" required hideInlineError></sd-autocomplete>\r\n }\r\n }\r\n <sd-button\r\n class=\"ml-auto\"\r\n prefixIcon=\"delete\"\r\n tooltip=\"X\u00F3a\"\r\n (click)=\"remove(conditionLv1.conditions, idxLv1)\"></sd-button>\r\n \r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <ng-container sdFooter>\r\n <sd-button prefixIcon=\"save\" title=\"X\u00E1c nh\u1EADn\" (click)=\"onAccept()\" color=\"primary\" type=\"fill\"></sd-button>\r\n </ng-container>\r\n</sd-modal>\r\n}", styles: [".c-builder{padding:8px;width:100%;border:1px solid #e6e6e6;border-radius:4px}.c-builder .c-condition{width:80px}.c-builder .c-condition .c-where{width:80px;border:1px solid #e6e6e6;background-color:#f2f2f2;color:#757575;border-radius:4px;padding:4px;text-align:center}.c-builder .c-condition .c-select{margin-left:10px;width:70px}\n"] }]
|
|
6372
6372
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: ExpressionFeelPipe }, { type: FormGenericService }], propDecorators: { modal: [{
|