@corp-products/ui-components 0.0.1 → 1.0.0
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/esm2022/corp-products-ui-components.mjs +5 -0
- package/esm2022/index.mjs +14 -0
- package/esm2022/lib/app-accordion/app-accordion.component.mjs +35 -0
- package/esm2022/lib/app-button/app-button.component.mjs +43 -0
- package/esm2022/lib/app-button/app-button.mjs +2 -0
- package/esm2022/lib/app-button/index.mjs +3 -0
- package/esm2022/lib/app-dropdown-menu/app-dropdown-menu.component.mjs +54 -0
- package/esm2022/lib/app-dropdown-menu/app-dropdown-menu.mjs +2 -0
- package/esm2022/lib/app-dropdown-menu/index.mjs +3 -0
- package/esm2022/lib/app-dropdown-menu/menu-popup.pipe.mjs +23 -0
- package/esm2022/lib/app-tabs/app-tab.interface.mjs +2 -0
- package/esm2022/lib/app-tabs/app-tabs.component.mjs +57 -0
- package/esm2022/lib/app-tabs/index.mjs +3 -0
- package/esm2022/lib/confirmation-dialog/confirmation-dialog.component.mjs +44 -0
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +31 -0
- package/esm2022/lib/dynamic-form/dynamic-form.interface.mjs +6 -0
- package/esm2022/lib/form-components/@utils/form-utils.mjs +11 -0
- package/esm2022/lib/form-components/@utils/validations/error-keys.enum.mjs +27 -0
- package/esm2022/lib/form-components/@utils/validations/form-validation.service.mjs +50 -0
- package/esm2022/lib/form-components/@utils/validations/index.mjs +4 -0
- package/esm2022/lib/form-components/@utils/validations/validation-message.pipe.mjs +30 -0
- package/esm2022/lib/form-components/components/auto-complete/auto-complete.component.mjs +59 -0
- package/esm2022/lib/form-components/components/base-input.component.mjs +57 -0
- package/esm2022/lib/form-components/components/date-picker/date-picker.component.mjs +58 -0
- package/esm2022/lib/form-components/components/input/input.component.mjs +48 -0
- package/esm2022/lib/form-components/components/select/select.component.mjs +72 -0
- package/esm2022/lib/form-components/components/select-button/select-button.component.mjs +29 -0
- package/esm2022/lib/form-components/components/switcher/switch.component.mjs +34 -0
- package/esm2022/lib/form-components/index.mjs +10 -0
- package/esm2022/lib/form-components/interfaces/index.mjs +2 -0
- package/esm2022/lib/form-components/interfaces/label-value.mjs +2 -0
- package/esm2022/lib/ico-moon-icon/ico-moon-icon.component.mjs +41 -0
- package/esm2022/lib/read-more/read-more.component.mjs +30 -0
- package/esm2022/lib/side-bar/side-bar.component.mjs +51 -0
- package/esm2022/lib/user-autocomplete-card/user-autocomplete-card.component.mjs +32 -0
- package/esm2022/lib/user-info/user-info.component.mjs +15 -0
- package/fesm2022/corp-products-ui-components.mjs +840 -0
- package/fesm2022/corp-products-ui-components.mjs.map +1 -0
- package/{src/index.ts → index.d.ts} +13 -13
- package/lib/app-accordion/app-accordion.component.d.ts +11 -0
- package/lib/app-button/app-button.component.d.ts +18 -0
- package/{src/lib/app-button/app-button.ts → lib/app-button/app-button.d.ts} +4 -15
- package/{src/lib/app-button/index.ts → lib/app-button/index.d.ts} +2 -2
- package/lib/app-dropdown-menu/app-dropdown-menu.component.d.ts +20 -0
- package/lib/app-dropdown-menu/app-dropdown-menu.d.ts +15 -0
- package/{src/lib/app-dropdown-menu/index.ts → lib/app-dropdown-menu/index.d.ts} +2 -2
- package/lib/app-dropdown-menu/menu-popup.pipe.d.ts +8 -0
- package/lib/app-tabs/app-tab.interface.d.ts +23 -0
- package/lib/app-tabs/app-tabs.component.d.ts +18 -0
- package/{src/lib/app-tabs/index.ts → lib/app-tabs/index.d.ts} +2 -2
- package/lib/confirmation-dialog/confirmation-dialog.component.d.ts +19 -0
- package/lib/dynamic-form/dynamic-form.component.d.ts +16 -0
- package/lib/dynamic-form/dynamic-form.interface.d.ts +44 -0
- package/lib/form-components/@utils/form-utils.d.ts +4 -0
- package/lib/form-components/@utils/validations/error-keys.enum.d.ts +24 -0
- package/lib/form-components/@utils/validations/form-validation.service.d.ts +11 -0
- package/{src/lib/form-components/@utils/validations/index.ts → lib/form-components/@utils/validations/index.d.ts} +3 -3
- package/lib/form-components/@utils/validations/validation-message.pipe.d.ts +9 -0
- package/lib/form-components/components/auto-complete/auto-complete.component.d.ts +18 -0
- package/lib/form-components/components/base-input.component.d.ts +21 -0
- package/lib/form-components/components/date-picker/date-picker.component.d.ts +21 -0
- package/lib/form-components/components/input/input.component.d.ts +17 -0
- package/lib/form-components/components/select/select.component.d.ts +23 -0
- package/lib/form-components/components/select-button/select-button.component.d.ts +13 -0
- package/lib/form-components/components/switcher/switch.component.d.ts +11 -0
- package/{src/lib/form-components/index.ts → lib/form-components/index.d.ts} +9 -9
- package/{src/lib/form-components/interfaces/index.ts → lib/form-components/interfaces/index.d.ts} +1 -1
- package/lib/form-components/interfaces/label-value.d.ts +4 -0
- package/lib/ico-moon-icon/ico-moon-icon.component.d.ts +9 -0
- package/lib/read-more/read-more.component.d.ts +10 -0
- package/lib/side-bar/side-bar.component.d.ts +18 -0
- package/lib/user-autocomplete-card/user-autocomplete-card.component.d.ts +12 -0
- package/lib/user-info/user-info.component.d.ts +7 -0
- package/package.json +35 -19
- package/eslint.config.js +0 -34
- package/ng-package.json +0 -7
- package/project.json +0 -29
- package/src/lib/app-accordion/app-accordion.component.html +0 -15
- package/src/lib/app-accordion/app-accordion.component.scss +0 -0
- package/src/lib/app-accordion/app-accordion.component.spec.ts +0 -21
- package/src/lib/app-accordion/app-accordion.component.ts +0 -21
- package/src/lib/app-accordion/index.ts +0 -2
- package/src/lib/app-button/app-button.component.html +0 -13
- package/src/lib/app-button/app-button.component.scss +0 -0
- package/src/lib/app-button/app-button.component.ts +0 -28
- package/src/lib/app-dropdown-menu/app-dropdown-menu.component.html +0 -25
- package/src/lib/app-dropdown-menu/app-dropdown-menu.component.scss +0 -39
- package/src/lib/app-dropdown-menu/app-dropdown-menu.component.spec.ts +0 -21
- package/src/lib/app-dropdown-menu/app-dropdown-menu.component.ts +0 -43
- package/src/lib/app-dropdown-menu/app-dropdown-menu.ts +0 -17
- package/src/lib/app-dropdown-menu/menu-popup.pipe.ts +0 -18
- package/src/lib/app-tabs/app-tab.interface.ts +0 -26
- package/src/lib/app-tabs/app-tabs.component.html +0 -35
- package/src/lib/app-tabs/app-tabs.component.scss +0 -103
- package/src/lib/app-tabs/app-tabs.component.spec.ts +0 -21
- package/src/lib/app-tabs/app-tabs.component.ts +0 -48
- package/src/lib/confirmation-dialog/confirmation-dialog.component.html +0 -54
- package/src/lib/confirmation-dialog/confirmation-dialog.component.scss +0 -0
- package/src/lib/confirmation-dialog/confirmation-dialog.component.spec.ts +0 -22
- package/src/lib/confirmation-dialog/confirmation-dialog.component.ts +0 -51
- package/src/lib/dynamic-form/dynamic-form.component.html +0 -39
- package/src/lib/dynamic-form/dynamic-form.component.scss +0 -0
- package/src/lib/dynamic-form/dynamic-form.component.spec.ts +0 -21
- package/src/lib/dynamic-form/dynamic-form.component.ts +0 -29
- package/src/lib/dynamic-form/dynamic-form.interface.ts +0 -56
- package/src/lib/form-components/@utils/form-utils.ts +0 -12
- package/src/lib/form-components/@utils/validations/error-keys.enum.ts +0 -24
- package/src/lib/form-components/@utils/validations/form-validation.service.ts +0 -53
- package/src/lib/form-components/@utils/validations/validation-message.pipe.ts +0 -24
- package/src/lib/form-components/components/auto-complete/auto-complete.component.html +0 -48
- package/src/lib/form-components/components/auto-complete/auto-complete.component.scss +0 -0
- package/src/lib/form-components/components/auto-complete/auto-complete.component.spec.ts +0 -21
- package/src/lib/form-components/components/auto-complete/auto-complete.component.ts +0 -48
- package/src/lib/form-components/components/base-input.component.ts +0 -41
- package/src/lib/form-components/components/date-picker/date-picker.component.html +0 -53
- package/src/lib/form-components/components/date-picker/date-picker.component.scss +0 -4
- package/src/lib/form-components/components/date-picker/date-picker.component.spec.ts +0 -23
- package/src/lib/form-components/components/date-picker/date-picker.component.ts +0 -45
- package/src/lib/form-components/components/input/input.component.html +0 -59
- package/src/lib/form-components/components/input/input.component.scss +0 -3
- package/src/lib/form-components/components/input/input.component.spec.ts +0 -21
- package/src/lib/form-components/components/input/input.component.ts +0 -32
- package/src/lib/form-components/components/select/select.component.html +0 -90
- package/src/lib/form-components/components/select/select.component.scss +0 -0
- package/src/lib/form-components/components/select/select.component.spec.ts +0 -21
- package/src/lib/form-components/components/select/select.component.ts +0 -51
- package/src/lib/form-components/components/select-button/select-button.component.html +0 -21
- package/src/lib/form-components/components/select-button/select-button.component.scss +0 -0
- package/src/lib/form-components/components/select-button/select-button.component.spec.ts +0 -21
- package/src/lib/form-components/components/select-button/select-button.component.ts +0 -22
- package/src/lib/form-components/components/switcher/switch.component.html +0 -5
- package/src/lib/form-components/components/switcher/switch.component.scss +0 -0
- package/src/lib/form-components/components/switcher/switch.component.spec.ts +0 -21
- package/src/lib/form-components/components/switcher/switch.component.ts +0 -25
- package/src/lib/form-components/interfaces/label-value.ts +0 -4
- package/src/lib/ico-moon-icon/ico-moon-icon.component.ts +0 -23
- package/src/lib/read-more/read-more.component.html +0 -17
- package/src/lib/read-more/read-more.component.scss +0 -0
- package/src/lib/read-more/read-more.component.spec.ts +0 -21
- package/src/lib/read-more/read-more.component.ts +0 -21
- package/src/lib/side-bar/side-bar.component.html +0 -25
- package/src/lib/side-bar/side-bar.component.scss +0 -5
- package/src/lib/side-bar/side-bar.component.spec.ts +0 -21
- package/src/lib/side-bar/side-bar.component.ts +0 -32
- package/src/lib/side-bar-dynamic/data-injector.pipe.ts +0 -15
- package/src/lib/side-bar-dynamic/dynamic-sidebar.service.ts +0 -116
- package/src/lib/side-bar-dynamic/side-bar-dynamic.component.html +0 -51
- package/src/lib/side-bar-dynamic/side-bar-dynamic.component.scss +0 -5
- package/src/lib/side-bar-dynamic/side-bar-dynamic.component.spec.ts +0 -21
- package/src/lib/side-bar-dynamic/side-bar-dynamic.component.ts +0 -37
- package/src/lib/side-bar-dynamic/side-bar-utils.ts +0 -30
- package/src/lib/side-bar-dynamic/sidebar-config.ts +0 -48
- package/src/lib/user-autocomplete-card/user-autocomplete-card.component.html +0 -20
- package/src/lib/user-autocomplete-card/user-autocomplete-card.component.scss +0 -0
- package/src/lib/user-autocomplete-card/user-autocomplete-card.component.spec.ts +0 -21
- package/src/lib/user-autocomplete-card/user-autocomplete-card.component.ts +0 -21
- package/src/lib/user-info/user-info.component.html +0 -10
- package/src/lib/user-info/user-info.component.ts +0 -11
- package/tsconfig.json +0 -25
- package/tsconfig.lib.json +0 -12
- package/tsconfig.lib.prod.json +0 -9
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { inject, Injectable } from "@angular/core";
|
|
2
|
+
import { TranslateService } from "@ngx-translate/core";
|
|
3
|
+
import { BasicErrorKeysEnum, ErrorsWithValuesKeysEnum } from "./error-keys.enum";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class FormValidationService {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.translate = inject(TranslateService);
|
|
8
|
+
}
|
|
9
|
+
getTranslation(key, interpolateParams) {
|
|
10
|
+
return this.translate.instant(`VALIDATION.${key}`, interpolateParams);
|
|
11
|
+
}
|
|
12
|
+
getErrorMessage(errorKey, errorValue) {
|
|
13
|
+
if (this.isBasicErrorKey(errorKey)) {
|
|
14
|
+
return this.getTranslation(BasicErrorKeysEnum[errorKey]);
|
|
15
|
+
}
|
|
16
|
+
if (this.isErrorWithValueKey(errorKey)) {
|
|
17
|
+
return this.getErrorWithValueMessage(errorKey, errorValue);
|
|
18
|
+
}
|
|
19
|
+
return this.getTranslation(BasicErrorKeysEnum.default);
|
|
20
|
+
}
|
|
21
|
+
// Basic error keys are the keys that don't have any values to interpolate. like required, email, etc.
|
|
22
|
+
isBasicErrorKey(key) {
|
|
23
|
+
return Object.keys(BasicErrorKeysEnum).includes(key);
|
|
24
|
+
}
|
|
25
|
+
// Error keys with values are the keys that have values to interpolate. like minlength, maxlength, etc.
|
|
26
|
+
isErrorWithValueKey(key) {
|
|
27
|
+
return Object.keys(ErrorsWithValuesKeysEnum).includes(key);
|
|
28
|
+
}
|
|
29
|
+
getErrorWithValueMessage(errorKey, errorValue) {
|
|
30
|
+
const messages = {
|
|
31
|
+
minlength: (val) => this.getTranslation(ErrorsWithValuesKeysEnum.minlength, { requiredLength: val?.requiredLength, actualLength: val?.actualLength }),
|
|
32
|
+
maxlength: (val) => this.getTranslation(ErrorsWithValuesKeysEnum.maxlength, { requiredLength: val?.requiredLength, actualLength: val?.actualLength }),
|
|
33
|
+
min: (val) => this.getTranslation(ErrorsWithValuesKeysEnum.min, { min: val?.min }),
|
|
34
|
+
max: (val) => this.getTranslation(ErrorsWithValuesKeysEnum.max, { max: val?.max }),
|
|
35
|
+
maxSize: (val) => this.getTranslation(ErrorsWithValuesKeysEnum.maxSize, { size: val?.requiredLength }),
|
|
36
|
+
maxFiles: (val) => this.getTranslation(ErrorsWithValuesKeysEnum.maxFiles, { size: val?.requiredLength }),
|
|
37
|
+
allowedTypes: (val) => this.getTranslation(ErrorsWithValuesKeysEnum.allowedTypes, { types: val?.join(", ") })
|
|
38
|
+
};
|
|
39
|
+
return messages[errorKey](errorValue);
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormValidationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormValidationService, providedIn: "root" }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormValidationService, decorators: [{
|
|
45
|
+
type: Injectable,
|
|
46
|
+
args: [{
|
|
47
|
+
providedIn: "root"
|
|
48
|
+
}]
|
|
49
|
+
}] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWNvbXBvbmVudHMvQHV0aWxzL3ZhbGlkYXRpb25zL2Zvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUtqRixNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBSVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBMkM5QztJQXpDUyxjQUFjLENBQUMsR0FBVyxFQUFFLGlCQUEyQztRQUM3RSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQWdCLEVBQUUsVUFBZTtRQUMvQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsUUFBMkMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBaUQsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxzR0FBc0c7SUFDOUYsZUFBZSxDQUFDLEdBQVc7UUFDakMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQXlCLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsdUdBQXVHO0lBQy9GLG1CQUFtQixDQUFDLEdBQVc7UUFDckMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQStCLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRU8sd0JBQXdCLENBQUMsUUFBK0MsRUFBRSxVQUFlO1FBQy9GLE1BQU0sUUFBUSxHQUEwRTtZQUN0RixTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDbkksU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQ25JLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2xGLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2xGLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQ3RHLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQ3hHLFlBQVksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQzlHLENBQUM7UUFFRixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQTNDVSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IEludGVycG9sYXRpb25QYXJhbWV0ZXJzIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmUvbGliL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEJhc2ljRXJyb3JLZXlzRW51bSwgRXJyb3JzV2l0aFZhbHVlc0tleXNFbnVtIH0gZnJvbSBcIi4vZXJyb3Ita2V5cy5lbnVtXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1WYWxpZGF0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcblxyXG4gIHByaXZhdGUgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogSW50ZXJwb2xhdGlvblBhcmFtZXRlcnMpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYFZBTElEQVRJT04uJHtrZXl9YCwgaW50ZXJwb2xhdGVQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKGVycm9yS2V5OiBzdHJpbmcsIGVycm9yVmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5pc0Jhc2ljRXJyb3JLZXkoZXJyb3JLZXkpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uKEJhc2ljRXJyb3JLZXlzRW51bVtlcnJvcktleSBhcyBrZXlvZiB0eXBlb2YgQmFzaWNFcnJvcktleXNFbnVtXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNFcnJvcldpdGhWYWx1ZUtleShlcnJvcktleSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RXJyb3JXaXRoVmFsdWVNZXNzYWdlKGVycm9yS2V5IGFzIGtleW9mIHR5cGVvZiBFcnJvcnNXaXRoVmFsdWVzS2V5c0VudW0sIGVycm9yVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uKEJhc2ljRXJyb3JLZXlzRW51bS5kZWZhdWx0KTtcclxuICB9XHJcblxyXG4gIC8vIEJhc2ljIGVycm9yIGtleXMgYXJlIHRoZSBrZXlzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgdmFsdWVzIHRvIGludGVycG9sYXRlLiBsaWtlIHJlcXVpcmVkLCBlbWFpbCwgZXRjLlxyXG4gIHByaXZhdGUgaXNCYXNpY0Vycm9yS2V5KGtleTogc3RyaW5nKToga2V5IGlzIGtleW9mIHR5cGVvZiBCYXNpY0Vycm9yS2V5c0VudW0ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKEJhc2ljRXJyb3JLZXlzRW51bSkuaW5jbHVkZXMoa2V5IGFzIEJhc2ljRXJyb3JLZXlzRW51bSk7XHJcbiAgfVxyXG5cclxuICAvLyBFcnJvciBrZXlzIHdpdGggdmFsdWVzIGFyZSB0aGUga2V5cyB0aGF0IGhhdmUgdmFsdWVzIHRvIGludGVycG9sYXRlLiBsaWtlIG1pbmxlbmd0aCwgbWF4bGVuZ3RoLCBldGMuXHJcbiAgcHJpdmF0ZSBpc0Vycm9yV2l0aFZhbHVlS2V5KGtleTogc3RyaW5nKToga2V5IGlzIGtleW9mIHR5cGVvZiBFcnJvcnNXaXRoVmFsdWVzS2V5c0VudW0ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKEVycm9yc1dpdGhWYWx1ZXNLZXlzRW51bSkuaW5jbHVkZXMoa2V5IGFzIEVycm9yc1dpdGhWYWx1ZXNLZXlzRW51bSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVycm9yV2l0aFZhbHVlTWVzc2FnZShlcnJvcktleToga2V5b2YgdHlwZW9mIEVycm9yc1dpdGhWYWx1ZXNLZXlzRW51bSwgZXJyb3JWYWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzOiBSZWNvcmQ8a2V5b2YgdHlwZW9mIEVycm9yc1dpdGhWYWx1ZXNLZXlzRW51bSwgKHZhbHVlOiBhbnkpID0+IHN0cmluZz4gPSB7XHJcbiAgICAgIG1pbmxlbmd0aDogKHZhbCkgPT5cclxuICAgICAgICB0aGlzLmdldFRyYW5zbGF0aW9uKEVycm9yc1dpdGhWYWx1ZXNLZXlzRW51bS5taW5sZW5ndGgsIHsgcmVxdWlyZWRMZW5ndGg6IHZhbD8ucmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aDogdmFsPy5hY3R1YWxMZW5ndGggfSksXHJcbiAgICAgIG1heGxlbmd0aDogKHZhbCkgPT5cclxuICAgICAgICB0aGlzLmdldFRyYW5zbGF0aW9uKEVycm9yc1dpdGhWYWx1ZXNLZXlzRW51bS5tYXhsZW5ndGgsIHsgcmVxdWlyZWRMZW5ndGg6IHZhbD8ucmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aDogdmFsPy5hY3R1YWxMZW5ndGggfSksXHJcbiAgICAgIG1pbjogKHZhbCkgPT4gdGhpcy5nZXRUcmFuc2xhdGlvbihFcnJvcnNXaXRoVmFsdWVzS2V5c0VudW0ubWluLCB7IG1pbjogdmFsPy5taW4gfSksXHJcbiAgICAgIG1heDogKHZhbCkgPT4gdGhpcy5nZXRUcmFuc2xhdGlvbihFcnJvcnNXaXRoVmFsdWVzS2V5c0VudW0ubWF4LCB7IG1heDogdmFsPy5tYXggfSksXHJcbiAgICAgIG1heFNpemU6ICh2YWwpID0+IHRoaXMuZ2V0VHJhbnNsYXRpb24oRXJyb3JzV2l0aFZhbHVlc0tleXNFbnVtLm1heFNpemUsIHsgc2l6ZTogdmFsPy5yZXF1aXJlZExlbmd0aCB9KSxcclxuICAgICAgbWF4RmlsZXM6ICh2YWwpID0+IHRoaXMuZ2V0VHJhbnNsYXRpb24oRXJyb3JzV2l0aFZhbHVlc0tleXNFbnVtLm1heEZpbGVzLCB7IHNpemU6IHZhbD8ucmVxdWlyZWRMZW5ndGggfSksXHJcbiAgICAgIGFsbG93ZWRUeXBlczogKHZhbCkgPT4gdGhpcy5nZXRUcmFuc2xhdGlvbihFcnJvcnNXaXRoVmFsdWVzS2V5c0VudW0uYWxsb3dlZFR5cGVzLCB7IHR5cGVzOiB2YWw/LmpvaW4oXCIsIFwiKSB9KVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbWVzc2FnZXNbZXJyb3JLZXldKGVycm9yVmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./error-keys.enum";
|
|
2
|
+
export * from "./validation-message.pipe";
|
|
3
|
+
export * from "./form-validation.service";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWNvbXBvbmVudHMvQHV0aWxzL3ZhbGlkYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vZXJyb3Ita2V5cy5lbnVtXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRpb24tbWVzc2FnZS5waXBlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { inject, Pipe } from "@angular/core";
|
|
2
|
+
import { FormValidationService } from "./form-validation.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ValidationErrorsPipe {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.formValidationService = inject(FormValidationService);
|
|
7
|
+
}
|
|
8
|
+
// allowed keys here to handle errors in case of cross-validators like startDate and endDate validators,
|
|
9
|
+
// we pass this custom key to handle the error messages only for the allowed keys
|
|
10
|
+
transform(errors, allowedKeys) {
|
|
11
|
+
if (!errors)
|
|
12
|
+
return [];
|
|
13
|
+
return Object.keys(errors)
|
|
14
|
+
.filter((errorKey) => !allowedKeys || allowedKeys.includes(errorKey)) // Filter errors if allowedKeys are provided
|
|
15
|
+
.map((errorKey) => {
|
|
16
|
+
return this.formValidationService.getErrorMessage(errorKey, errors[errorKey]);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ValidationErrorsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
20
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ValidationErrorsPipe, isStandalone: true, name: "validationErrors" }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ValidationErrorsPipe, decorators: [{
|
|
23
|
+
type: Pipe,
|
|
24
|
+
args: [{
|
|
25
|
+
name: "validationErrors",
|
|
26
|
+
standalone: true,
|
|
27
|
+
pure: true
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWNvbXBvbmVudHMvQHV0aWxzL3ZhbGlkYXRpb25zL3ZhbGlkYXRpb24tbWVzc2FnZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFPbEUsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU1VLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBYS9EO0lBWEMsd0dBQXdHO0lBQ3hHLGlGQUFpRjtJQUNqRixTQUFTLENBQUMsTUFBK0IsRUFBRSxXQUFzQjtRQUMvRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDdkIsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsNENBQTRDO2FBQ2pILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQWJVLG9CQUFvQjs0R0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUxoQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsSUFBSTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vZm9ybS12YWxpZGF0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiBcInZhbGlkYXRpb25FcnJvcnNcIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHB1cmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvcnNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHJpdmF0ZSBmb3JtVmFsaWRhdGlvblNlcnZpY2UgPSBpbmplY3QoRm9ybVZhbGlkYXRpb25TZXJ2aWNlKTtcclxuXHJcbiAgLy8gYWxsb3dlZCBrZXlzIGhlcmUgdG8gaGFuZGxlIGVycm9ycyBpbiBjYXNlIG9mIGNyb3NzLXZhbGlkYXRvcnMgbGlrZSBzdGFydERhdGUgYW5kIGVuZERhdGUgdmFsaWRhdG9ycyxcclxuICAvLyB3ZSBwYXNzIHRoaXMgY3VzdG9tIGtleSB0byBoYW5kbGUgdGhlIGVycm9yIG1lc3NhZ2VzIG9ubHkgZm9yIHRoZSBhbGxvd2VkIGtleXNcclxuICB0cmFuc2Zvcm0oZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCwgYWxsb3dlZEtleXM/OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcclxuICAgIGlmICghZXJyb3JzKSByZXR1cm4gW107XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycylcclxuICAgICAgLmZpbHRlcigoZXJyb3JLZXkpID0+ICFhbGxvd2VkS2V5cyB8fCBhbGxvd2VkS2V5cy5pbmNsdWRlcyhlcnJvcktleSkpIC8vIEZpbHRlciBlcnJvcnMgaWYgYWxsb3dlZEtleXMgYXJlIHByb3ZpZGVkXHJcbiAgICAgIC5tYXAoKGVycm9yS2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRpb25TZXJ2aWNlLmdldEVycm9yTWVzc2FnZShlcnJvcktleSwgZXJyb3JzW2Vycm9yS2V5XSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { JsonPipe, NgClass, NgIf, NgTemplateOutlet } from "@angular/common";
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
3
|
+
import { ReactiveFormsModule } from "@angular/forms";
|
|
4
|
+
import { ValidationErrorsPipe } from "../../@utils/validations/validation-message.pipe";
|
|
5
|
+
import { PrimeTemplate } from "primeng/api";
|
|
6
|
+
import { AutoComplete } from "primeng/autocomplete";
|
|
7
|
+
import { BaseInputComponent } from "../base-input.component";
|
|
8
|
+
import { TranslatePipe } from "@ngx-translate/core";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
export class AutoCompleteComponent extends BaseInputComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.selectedItemTemplate = null;
|
|
15
|
+
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
16
|
+
this.onSearch = new EventEmitter();
|
|
17
|
+
this.selectOption = new EventEmitter();
|
|
18
|
+
this.items = [];
|
|
19
|
+
this.minLengthToSearch = 3;
|
|
20
|
+
this.delay = 300; // default value
|
|
21
|
+
}
|
|
22
|
+
search(event) {
|
|
23
|
+
this.onSearch.emit(event.query);
|
|
24
|
+
}
|
|
25
|
+
onSelect(event) {
|
|
26
|
+
this.selectOption.emit(event);
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AutoCompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AutoCompleteComponent, isStandalone: true, selector: "stc-auto-complete", inputs: { selectedItemTemplate: "selectedItemTemplate", items: "items", minLengthToSearch: "minLengthToSearch", delay: "delay", basicInput: "basicInput" }, outputs: { onSearch: "onSearch", selectOption: "selectOption" }, usesInheritance: true, ngImport: i0, template: "<div class=\"field flex flex-col gap-2 my-3 relative\">\r\n @if (label) {\r\n <label [for]=\"inputId\">\r\n {{ label }}\r\n @if (required) {\r\n <span [class.text-red-700]=\"isInvalid\">*</span>\r\n }\r\n </label>\r\n }\r\n @if (!required) {\r\n <span class=\"absolute top-[6px] left-0 text-[10px] text-gray-400\">{{'forms.config.optional' | translate}}</span>\r\n }\r\n <p-auto-complete\r\n (completeMethod)=\"search($event)\"\r\n (onSelect)=\"onSelect($event)\"\r\n [delay]=\"delay\"\r\n [disabled]=\"disabled\"\r\n [formControl]=\"control\"\r\n [id]=\"inputId\"\r\n [inputStyleClass]=\"'reset-default-styles w-full' + (basicInput ? ' basic-style': ' ')\"\r\n [minLength]=\"minLengthToSearch\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid}\"\r\n [placeholder]=\"placeholder\"\r\n [styleClass]=\"'w-full'\"\r\n [suggestions]=\"items\">\r\n <ng-template let-item pTemplate=\"item\">\r\n @if (selectedItemTemplate) {\r\n <ng-container\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n [ngTemplateOutlet]=\"selectedItemTemplate\"\r\n />\r\n }\r\n </ng-template>\r\n </p-auto-complete>\r\n\r\n @if (hint) {\r\n <small class=\"p-mt-1\">{{ hint }}</small>\r\n }\r\n @if (isInvalid && (control.dirty || control.touched)) {\r\n <small class=\"p-error text-red-700\">\r\n @for (error of control.errors | validationErrors; track error) {\r\n {{ error }}<br>\r\n }\r\n </small>\r\n }\r\n\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: ValidationErrorsPipe, name: "validationErrors" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AutoCompleteComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: "stc-auto-complete", standalone: true, imports: [
|
|
34
|
+
ReactiveFormsModule,
|
|
35
|
+
AutoComplete,
|
|
36
|
+
PrimeTemplate,
|
|
37
|
+
NgIf,
|
|
38
|
+
NgTemplateOutlet,
|
|
39
|
+
NgClass,
|
|
40
|
+
JsonPipe,
|
|
41
|
+
ValidationErrorsPipe,
|
|
42
|
+
TranslatePipe
|
|
43
|
+
], template: "<div class=\"field flex flex-col gap-2 my-3 relative\">\r\n @if (label) {\r\n <label [for]=\"inputId\">\r\n {{ label }}\r\n @if (required) {\r\n <span [class.text-red-700]=\"isInvalid\">*</span>\r\n }\r\n </label>\r\n }\r\n @if (!required) {\r\n <span class=\"absolute top-[6px] left-0 text-[10px] text-gray-400\">{{'forms.config.optional' | translate}}</span>\r\n }\r\n <p-auto-complete\r\n (completeMethod)=\"search($event)\"\r\n (onSelect)=\"onSelect($event)\"\r\n [delay]=\"delay\"\r\n [disabled]=\"disabled\"\r\n [formControl]=\"control\"\r\n [id]=\"inputId\"\r\n [inputStyleClass]=\"'reset-default-styles w-full' + (basicInput ? ' basic-style': ' ')\"\r\n [minLength]=\"minLengthToSearch\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid}\"\r\n [placeholder]=\"placeholder\"\r\n [styleClass]=\"'w-full'\"\r\n [suggestions]=\"items\">\r\n <ng-template let-item pTemplate=\"item\">\r\n @if (selectedItemTemplate) {\r\n <ng-container\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n [ngTemplateOutlet]=\"selectedItemTemplate\"\r\n />\r\n }\r\n </ng-template>\r\n </p-auto-complete>\r\n\r\n @if (hint) {\r\n <small class=\"p-mt-1\">{{ hint }}</small>\r\n }\r\n @if (isInvalid && (control.dirty || control.touched)) {\r\n <small class=\"p-error text-red-700\">\r\n @for (error of control.errors | validationErrors; track error) {\r\n {{ error }}<br>\r\n }\r\n </small>\r\n }\r\n\r\n</div>\r\n" }]
|
|
44
|
+
}], ctorParameters: () => [], propDecorators: { selectedItemTemplate: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], onSearch: [{
|
|
47
|
+
type: Output
|
|
48
|
+
}], selectOption: [{
|
|
49
|
+
type: Output
|
|
50
|
+
}], items: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], minLengthToSearch: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], delay: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], basicInput: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWNvbXBvbmVudHMvY29tcG9uZW50cy9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1jb21wb25lbnRzL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFzRCxNQUFNLHNCQUFzQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBbUJsRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsa0JBQWtCO0lBVTNEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFWRCx5QkFBb0IsR0FBZ0MsSUFBSSxDQUFDO1FBQ2xFLCtEQUErRDtRQUNyRCxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsaUJBQVksR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFDbkcsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDdEIsVUFBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQjtJQUt0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQThCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBcEJVLHFCQUFxQjtrR0FBckIscUJBQXFCLGlVQzFCbEMsdWpEQWdEQSx5RERuQ0ksbUJBQW1CLDBUQUNuQixZQUFZLHV0Q0FDWixhQUFhLHVGQUViLGdCQUFnQixvSkFDaEIsT0FBTywrRUFFUCxvQkFBb0Isb0RBQ3BCLGFBQWE7OzJGQUtKLHFCQUFxQjtrQkFqQmpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDUCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCxRQUFRO3dCQUNSLG9CQUFvQjt3QkFDcEIsYUFBYTtxQkFDZDt3REFLUSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uUGlwZSwgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzUGlwZSB9IGZyb20gXCIuLi8uLi9AdXRpbHMvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1tZXNzYWdlLnBpcGVcIjtcclxuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xyXG5pbXBvcnQgeyBBdXRvQ29tcGxldGUsIEF1dG9Db21wbGV0ZUNvbXBsZXRlRXZlbnQsIEF1dG9Db21wbGV0ZVNlbGVjdEV2ZW50IH0gZnJvbSBcInByaW1lbmcvYXV0b2NvbXBsZXRlXCI7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCB9IGZyb20gXCIuLi9iYXNlLWlucHV0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJzdGMtYXV0by1jb21wbGV0ZVwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEF1dG9Db21wbGV0ZSxcclxuICAgIFByaW1lVGVtcGxhdGUsXHJcbiAgICBOZ0lmLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBKc29uUGlwZSxcclxuICAgIFZhbGlkYXRpb25FcnJvcnNQaXBlLFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5zY3NzXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RPcHRpb246IEV2ZW50RW1pdHRlcjxBdXRvQ29tcGxldGVTZWxlY3RFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEF1dG9Db21wbGV0ZVNlbGVjdEV2ZW50PigpO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIG1pbkxlbmd0aFRvU2VhcmNoID0gMztcclxuICBASW5wdXQoKSBkZWxheSA9IDMwMDsgLy8gZGVmYXVsdCB2YWx1ZVxyXG4gIEBJbnB1dCgpIGJhc2ljSW5wdXQhOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2goZXZlbnQ6IEF1dG9Db21wbGV0ZUNvbXBsZXRlRXZlbnQpIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdChldmVudC5xdWVyeSk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdChldmVudDogQXV0b0NvbXBsZXRlU2VsZWN0RXZlbnQpIHtcclxuICAgIHRoaXMuc2VsZWN0T3B0aW9uLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmllbGQgZmxleCBmbGV4LWNvbCBnYXAtMiBteS0zIHJlbGF0aXZlXCI+XHJcbiAgQGlmIChsYWJlbCkge1xyXG4gICAgPGxhYmVsIFtmb3JdPVwiaW5wdXRJZFwiPlxyXG4gICAgICB7eyBsYWJlbCB9fVxyXG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XHJcbiAgICAgICAgPHNwYW4gW2NsYXNzLnRleHQtcmVkLTcwMF09XCJpc0ludmFsaWRcIj4qPC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICA8L2xhYmVsPlxyXG4gIH1cclxuICBAaWYgKCFyZXF1aXJlZCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSB0b3AtWzZweF0gbGVmdC0wIHRleHQtWzEwcHhdIHRleHQtZ3JheS00MDBcIj57eydmb3Jtcy5jb25maWcub3B0aW9uYWwnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgfVxyXG4gIDxwLWF1dG8tY29tcGxldGVcclxuICAgIChjb21wbGV0ZU1ldGhvZCk9XCJzZWFyY2goJGV2ZW50KVwiXHJcbiAgICAob25TZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgICBbZGVsYXldPVwiZGVsYXlcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtpZF09XCJpbnB1dElkXCJcclxuICAgIFtpbnB1dFN0eWxlQ2xhc3NdPVwiJ3Jlc2V0LWRlZmF1bHQtc3R5bGVzIHctZnVsbCcgKyAoYmFzaWNJbnB1dCA/ICcgYmFzaWMtc3R5bGUnOiAnICcpXCJcclxuICAgIFttaW5MZW5ndGhdPVwibWluTGVuZ3RoVG9TZWFyY2hcIlxyXG4gICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdwLWludmFsaWQgbmctZGlydHkgbmctaW52YWxpZCc6IGlzSW52YWxpZH1cIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtzdHlsZUNsYXNzXT1cIid3LWZ1bGwnXCJcclxuICAgIFtzdWdnZXN0aW9uc109XCJpdGVtc1wiPlxyXG4gICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgQGlmIChzZWxlY3RlZEl0ZW1UZW1wbGF0ZSkge1xyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlbGVjdGVkSXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC1hdXRvLWNvbXBsZXRlPlxyXG5cclxuICBAaWYgKGhpbnQpIHtcclxuICAgIDxzbWFsbCBjbGFzcz1cInAtbXQtMVwiPnt7IGhpbnQgfX08L3NtYWxsPlxyXG4gIH1cclxuICBAaWYgKGlzSW52YWxpZCAmJiAoY29udHJvbC5kaXJ0eSB8fCBjb250cm9sLnRvdWNoZWQpKSB7XHJcbiAgICA8c21hbGwgY2xhc3M9XCJwLWVycm9yIHRleHQtcmVkLTcwMFwiPlxyXG4gICAgICBAZm9yIChlcnJvciBvZiBjb250cm9sLmVycm9ycyB8IHZhbGlkYXRpb25FcnJvcnM7IHRyYWNrIGVycm9yKSB7XHJcbiAgICAgICAge3sgZXJyb3IgfX08YnI+XHJcbiAgICAgIH1cclxuICAgIDwvc21hbGw+XHJcbiAgfVxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { FormControl, Validators } from "@angular/forms";
|
|
3
|
+
import { Subject, takeUntil } from "rxjs";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BaseInputComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.name = "";
|
|
8
|
+
this.placeholder = "";
|
|
9
|
+
this.readonly = false;
|
|
10
|
+
this.disabled = false;
|
|
11
|
+
this.destroy$ = new Subject();
|
|
12
|
+
}
|
|
13
|
+
get required() {
|
|
14
|
+
return this.control.hasValidator(Validators.required);
|
|
15
|
+
}
|
|
16
|
+
get isInvalid() {
|
|
17
|
+
return this.control.invalid && this.control.touched;
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this.inputId = `input-${this.name + "-" + Math.random().toString(36).substring(7)}`;
|
|
21
|
+
this.control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((v) => {
|
|
22
|
+
if (v) {
|
|
23
|
+
this.control.markAsTouched();
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this.destroy$.next();
|
|
29
|
+
this.destroy$.complete();
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: BaseInputComponent, selector: "ng-component", inputs: { control: "control", name: "name", label: "label", placeholder: "placeholder", inputId: "inputId", readonly: "readonly", disabled: "disabled", hint: "hint" }, ngImport: i0, template: "", isInline: true }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BaseInputComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{
|
|
37
|
+
template: ""
|
|
38
|
+
}]
|
|
39
|
+
}], propDecorators: { control: [{
|
|
40
|
+
type: Input,
|
|
41
|
+
args: [{ required: true }]
|
|
42
|
+
}], name: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], label: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], placeholder: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], inputId: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], readonly: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], disabled: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], hint: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWNvbXBvbmVudHMvY29tcG9uZW50cy9iYXNlLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLMUMsTUFBTSxPQUFnQixrQkFBa0I7SUFIeEM7UUFLVyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUd6QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztLQXVCMUM7SUFyQkMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwRixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQWhDbUIsa0JBQWtCO2tHQUFsQixrQkFBa0IsNE5BRjVCLEVBQUU7OzJGQUVRLGtCQUFrQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjs4QkFFNEIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBcIlwiXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29udHJvbCE6IEZvcm1Db250cm9sO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgaW5wdXRJZCE6IHN0cmluZztcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGludD86IHN0cmluZztcclxuXHJcbiAgcHJvdGVjdGVkIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlucHV0SWQgPSBgaW5wdXQtJHt0aGlzLm5hbWUgKyBcIi1cIiArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg3KX1gO1xyXG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh2KSA9PiB7XHJcbiAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { NgClass } from "@angular/common";
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
4
|
+
import { ValidationErrorsPipe } from "../../@utils/validations/validation-message.pipe";
|
|
5
|
+
import { DatePicker } from "primeng/datepicker";
|
|
6
|
+
import { BaseInputComponent } from "../base-input.component";
|
|
7
|
+
import { CalendarModule } from "primeng/calendar";
|
|
8
|
+
import { TranslatePipe } from "@ngx-translate/core";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
import * as i2 from "primeng/api";
|
|
12
|
+
export class DatePickerComponent extends BaseInputComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
this.showIcon = false;
|
|
16
|
+
this.showClear = false;
|
|
17
|
+
this.isTimeOnly = false;
|
|
18
|
+
this.hourFormat = "12";
|
|
19
|
+
this.nowTime = new Date();
|
|
20
|
+
this.selectionMode = "single";
|
|
21
|
+
this.onAfterClearDate = new EventEmitter();
|
|
22
|
+
}
|
|
23
|
+
selectCurrentTime(e) {
|
|
24
|
+
this.control.setValue(this.nowTime);
|
|
25
|
+
}
|
|
26
|
+
clearButtonClick(e) {
|
|
27
|
+
this.control.setValue(null);
|
|
28
|
+
}
|
|
29
|
+
afterClearDate() {
|
|
30
|
+
this.control.reset();
|
|
31
|
+
this.onAfterClearDate.emit();
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: DatePickerComponent, isStandalone: true, selector: "stc-date-picker", inputs: { showIcon: "showIcon", showClear: "showClear", basicInput: "basicInput", isTimeOnly: "isTimeOnly", minDate: "minDate", maxDate: "maxDate", hourFormat: "hourFormat", selectionMode: "selectionMode" }, outputs: { onAfterClearDate: "onAfterClearDate" }, usesInheritance: true, ngImport: i0, template: "<div class=\"field flex flex-col gap-2 my-3 relative\" >\r\n @if (label) {\r\n <label [for]=\"inputId\">\r\n {{ label }}\r\n @if (required) {\r\n <span [class.text-red-700]=\"isInvalid\">*</span>\r\n }\r\n </label>\r\n }\r\n @if (!required) {\r\n <span class=\"absolute top-[6px] left-0 text-[10px] text-gray-400\">{{'forms.config.optional' | translate}}</span>\r\n }\r\n <p-datepicker\r\n [selectionMode]=\"selectionMode\"\r\n [disabled]=\"disabled\"\r\n [formControl]=\"control\"\r\n [iconDisplay]=\"'input'\"\r\n [showClear]=\"showClear\"\r\n (onClear)=\"afterClearDate()\"\r\n [id]=\"inputId\"\r\n [inputStyleClass]=\"'reset-default-styles ' + (basicInput ? 'basic-style' : '')\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid }\"\r\n [placeholder]=\"placeholder\"\r\n [showIcon]=\"showIcon\" [styleClass]=\"'w-full'\"\r\n appendTo=\"body\"\r\n [timeOnly]=\"isTimeOnly\"\r\n [hourFormat]=\"hourFormat\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\">\r\n @if (isTimeOnly) {\r\n <ng-template #inputicon let-clickCallBack=\"clickCallBack\">\r\n <i class=\"text-[18px] font-icon-time-clock\" (click)=\"clickCallBack($event)\"></i>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"p-datepicker-buttonbar\">\r\n <button pButton type=\"button\" class=\"p-button-text\" (click)=\"selectCurrentTime($event)\">\u0627\u0644\u0627\u0646\r\n </button>\r\n <button pButton type=\"button\" class=\"p-button-text\" (click)=\"clearButtonClick($event)\"> \u0627\u0644\u063A\u0627\u0621</button>\r\n </div>\r\n </ng-template>\r\n }\r\n </p-datepicker>\r\n @if (hint) {\r\n <small class=\"p-mt-1\">{{ hint }}</small>\r\n }\r\n @if (isInvalid && (control.dirty || control.touched)) {\r\n <small class=\"p-error text-red-700\">\r\n @for (error of control.errors | validationErrors; track error) {\r\n {{ error }}<br>\r\n }\r\n </small>\r\n }\r\n</div>\r\n", styles: [".p-datepicker-clear-icon{position:absolute;top:50%;left:13px;margin-left:calc(var(--p-icon-size));--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:pointer;line-height:1;color:var(--p-datepicker-input-icon-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: ValidationErrorsPipe, name: "validationErrors" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: "stc-date-picker", standalone: true, imports: [FormsModule, DatePicker, ReactiveFormsModule, NgClass, CalendarModule, ValidationErrorsPipe, TranslatePipe], encapsulation: ViewEncapsulation.None, template: "<div class=\"field flex flex-col gap-2 my-3 relative\" >\r\n @if (label) {\r\n <label [for]=\"inputId\">\r\n {{ label }}\r\n @if (required) {\r\n <span [class.text-red-700]=\"isInvalid\">*</span>\r\n }\r\n </label>\r\n }\r\n @if (!required) {\r\n <span class=\"absolute top-[6px] left-0 text-[10px] text-gray-400\">{{'forms.config.optional' | translate}}</span>\r\n }\r\n <p-datepicker\r\n [selectionMode]=\"selectionMode\"\r\n [disabled]=\"disabled\"\r\n [formControl]=\"control\"\r\n [iconDisplay]=\"'input'\"\r\n [showClear]=\"showClear\"\r\n (onClear)=\"afterClearDate()\"\r\n [id]=\"inputId\"\r\n [inputStyleClass]=\"'reset-default-styles ' + (basicInput ? 'basic-style' : '')\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid }\"\r\n [placeholder]=\"placeholder\"\r\n [showIcon]=\"showIcon\" [styleClass]=\"'w-full'\"\r\n appendTo=\"body\"\r\n [timeOnly]=\"isTimeOnly\"\r\n [hourFormat]=\"hourFormat\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\">\r\n @if (isTimeOnly) {\r\n <ng-template #inputicon let-clickCallBack=\"clickCallBack\">\r\n <i class=\"text-[18px] font-icon-time-clock\" (click)=\"clickCallBack($event)\"></i>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"p-datepicker-buttonbar\">\r\n <button pButton type=\"button\" class=\"p-button-text\" (click)=\"selectCurrentTime($event)\">\u0627\u0644\u0627\u0646\r\n </button>\r\n <button pButton type=\"button\" class=\"p-button-text\" (click)=\"clearButtonClick($event)\"> \u0627\u0644\u063A\u0627\u0621</button>\r\n </div>\r\n </ng-template>\r\n }\r\n </p-datepicker>\r\n @if (hint) {\r\n <small class=\"p-mt-1\">{{ hint }}</small>\r\n }\r\n @if (isInvalid && (control.dirty || control.touched)) {\r\n <small class=\"p-error text-red-700\">\r\n @for (error of control.errors | validationErrors; track error) {\r\n {{ error }}<br>\r\n }\r\n </small>\r\n }\r\n</div>\r\n", styles: [".p-datepicker-clear-icon{position:absolute;top:50%;left:13px;margin-left:calc(var(--p-icon-size));--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:pointer;line-height:1;color:var(--p-datepicker-input-icon-color)}\n"] }]
|
|
39
|
+
}], ctorParameters: () => [], propDecorators: { showIcon: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], showClear: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], basicInput: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], isTimeOnly: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], minDate: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], maxDate: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], hourFormat: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], selectionMode: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], onAfterClearDate: [{
|
|
56
|
+
type: Output
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1jb21wb25lbnRzL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1jb21wb25lbnRzL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7O0FBU2xELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFZekQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQVpELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLGVBQVUsR0FBZ0IsSUFBSSxDQUFDO1FBQ3hDLFlBQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1osa0JBQWEsR0FBdUIsUUFBUSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFJdEQsQ0FBQztJQUVELGlCQUFpQixDQUFDLENBQU07UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFNO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs4R0EzQlUsbUJBQW1CO2tHQUFuQixtQkFBbUIscVdDaEJoQyw2L0RBcURBLHliRDFDWSxXQUFXLHVJQUFFLFVBQVUsOHlDQUFFLG1CQUFtQixrTkFBRSxPQUFPLG1GQUFFLGNBQWMsaUlBQUUsb0JBQW9CLG9EQUFFLGFBQWE7OzJGQUt6RyxtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxpQkFHdEcsaUJBQWlCLENBQUMsSUFBSTt3REFHNUIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzUGlwZSB9IGZyb20gXCIuLi8uLi9AdXRpbHMvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1tZXNzYWdlLnBpcGVcIjtcclxuaW1wb3J0IHsgRGF0ZVBpY2tlciB9IGZyb20gXCJwcmltZW5nL2RhdGVwaWNrZXJcIjtcclxuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UtaW5wdXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvY2FsZW5kYXJcIjtcclxuaW1wb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJzdGMtZGF0ZS1waWNrZXJcIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgRGF0ZVBpY2tlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTmdDbGFzcywgQ2FsZW5kYXJNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnNQaXBlLCBUcmFuc2xhdGVQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNob3dJY29uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0NsZWFyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYmFzaWNJbnB1dCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNUaW1lT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1pbkRhdGU6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIEBJbnB1dCgpIGhvdXJGb3JtYXQ6IFwiMTJcIiB8IFwiMjRcIiA9IFwiMTJcIjtcclxuICBub3dUaW1lID0gbmV3IERhdGUoKTtcclxuICBASW5wdXQoKSBzZWxlY3Rpb25Nb2RlOiBcInNpbmdsZVwiIHwgXCJyYW5nZVwiID0gXCJzaW5nbGVcIjtcclxuICBAT3V0cHV0KCkgb25BZnRlckNsZWFyRGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q3VycmVudFRpbWUoZTogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5ub3dUaW1lKTtcclxuICB9XHJcblxyXG4gIGNsZWFyQnV0dG9uQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBhZnRlckNsZWFyRGF0ZSgpIHtcclxuICAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xyXG4gICAgdGhpcy5vbkFmdGVyQ2xlYXJEYXRlLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZpZWxkIGZsZXggZmxleC1jb2wgZ2FwLTIgbXktMyByZWxhdGl2ZVwiICA+XHJcbiAgQGlmIChsYWJlbCkge1xyXG4gIDxsYWJlbCBbZm9yXT1cImlucHV0SWRcIj5cclxuICAgIHt7IGxhYmVsIH19XHJcbiAgICBAaWYgKHJlcXVpcmVkKSB7XHJcbiAgICA8c3BhbiBbY2xhc3MudGV4dC1yZWQtNzAwXT1cImlzSW52YWxpZFwiPio8L3NwYW4+XHJcbiAgICB9XHJcbiAgPC9sYWJlbD5cclxuICB9XHJcbiAgQGlmICghcmVxdWlyZWQpIHtcclxuICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHRvcC1bNnB4XSBsZWZ0LTAgdGV4dC1bMTBweF0gdGV4dC1ncmF5LTQwMFwiPnt7J2Zvcm1zLmNvbmZpZy5vcHRpb25hbCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICB9XHJcbiAgPHAtZGF0ZXBpY2tlclxyXG4gICAgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgW2ljb25EaXNwbGF5XT1cIidpbnB1dCdcIlxyXG4gICAgW3Nob3dDbGVhcl09XCJzaG93Q2xlYXJcIlxyXG4gICAgKG9uQ2xlYXIpPVwiYWZ0ZXJDbGVhckRhdGUoKVwiXHJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXHJcbiAgICBbaW5wdXRTdHlsZUNsYXNzXT1cIidyZXNldC1kZWZhdWx0LXN0eWxlcyAnICsgKGJhc2ljSW5wdXQgPyAnYmFzaWMtc3R5bGUnIDogJycpXCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ3AtaW52YWxpZCBuZy1kaXJ0eSBuZy1pbnZhbGlkJzogaXNJbnZhbGlkIH1cIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtzaG93SWNvbl09XCJzaG93SWNvblwiIFtzdHlsZUNsYXNzXT1cIid3LWZ1bGwnXCJcclxuICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICBbdGltZU9ubHldPVwiaXNUaW1lT25seVwiXHJcbiAgICBbaG91ckZvcm1hdF09XCJob3VyRm9ybWF0XCJcclxuICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxyXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiPlxyXG4gICAgQGlmIChpc1RpbWVPbmx5KSB7XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRpY29uIGxldC1jbGlja0NhbGxCYWNrPVwiY2xpY2tDYWxsQmFja1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwidGV4dC1bMThweF0gZm9udC1pY29uLXRpbWUtY2xvY2tcIiAoY2xpY2spPVwiY2xpY2tDYWxsQmFjaygkZXZlbnQpXCI+PC9pPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZGF0ZXBpY2tlci1idXR0b25iYXJcIj5cclxuICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCIgKGNsaWNrKT1cInNlbGVjdEN1cnJlbnRUaW1lKCRldmVudClcIj7Yp9mE2KfZhlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicC1idXR0b24tdGV4dFwiIChjbGljayk9XCJjbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIj4g2KfZhNi62KfYoTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgfVxyXG4gIDwvcC1kYXRlcGlja2VyPlxyXG4gIEBpZiAoaGludCkge1xyXG4gIDxzbWFsbCBjbGFzcz1cInAtbXQtMVwiPnt7IGhpbnQgfX08L3NtYWxsPlxyXG4gIH1cclxuICBAaWYgKGlzSW52YWxpZCAmJiAoY29udHJvbC5kaXJ0eSB8fCBjb250cm9sLnRvdWNoZWQpKSB7XHJcbiAgPHNtYWxsIGNsYXNzPVwicC1lcnJvciB0ZXh0LXJlZC03MDBcIj5cclxuICAgIEBmb3IgKGVycm9yIG9mIGNvbnRyb2wuZXJyb3JzIHwgdmFsaWRhdGlvbkVycm9yczsgdHJhY2sgZXJyb3IpIHtcclxuICAgIHt7IGVycm9yIH19PGJyPlxyXG4gICAgfVxyXG4gIDwvc21hbGw+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { NgClass, NgStyle } from "@angular/common";
|
|
2
|
+
import { Component, Input } from "@angular/core";
|
|
3
|
+
import { ReactiveFormsModule } from "@angular/forms";
|
|
4
|
+
import { ValidationErrorsPipe } from "../../@utils/validations/validation-message.pipe";
|
|
5
|
+
import { InputText } from "primeng/inputtext";
|
|
6
|
+
import { Textarea } from "primeng/textarea";
|
|
7
|
+
import { BaseInputComponent } from "../base-input.component";
|
|
8
|
+
import { TranslatePipe } from "@ngx-translate/core";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
export class InputComponent extends BaseInputComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.type = "text";
|
|
15
|
+
this.contentType = "text";
|
|
16
|
+
this.rows = 2;
|
|
17
|
+
this.cols = 20;
|
|
18
|
+
this.autoResize = true;
|
|
19
|
+
this.inputDirection = "inherit";
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: InputComponent, isStandalone: true, selector: "stc-input", inputs: { type: "type", contentType: "contentType", prefix: "prefix", rows: "rows", cols: "cols", autoResize: "autoResize", basicInput: "basicInput", noStyle: "noStyle", hideOptionalLabel: "hideOptionalLabel", inputDirection: "inputDirection" }, usesInheritance: true, ngImport: i0, template: "<div class=\"field flex flex-col gap-2 my-3 relative\">\r\n @if (label) {\r\n <label [for]=\"inputId\">\r\n {{ label }}\r\n @if (required) {\r\n <span [class.text-red-700]=\"isInvalid\">*</span>\r\n }\r\n </label>\r\n }\r\n @if (!required && !hideOptionalLabel) {\r\n <span class=\"absolute top-[6px] left-0 text-[10px] text-gray-400\">{{'forms.config.optional' | translate}}</span>\r\n }\r\n\r\n <!-- input text align will be handled according to lang when implemented -->\r\n\r\n @if (type !== 'textarea') {\r\n <input\r\n [id]=\"inputId\"\r\n [type]=\"contentType\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [name]=\"name\"\r\n pInputText\r\n [ngStyle]=\"{'direction': inputDirection || 'inherit', 'text-align': 'right'}\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid, 'basic-style': basicInput, 'no-style':noStyle}\"\r\n />\r\n @if (prefix) {\r\n <span class=\"absolute top-[40px] font-bold text-[16px] left-[25px]\">\r\n {{ prefix }}\r\n </span>\r\n }\r\n } @else {\r\n <textarea\r\n [name]=\"name\"\r\n [id]=\"inputId\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n pTextarea\r\n [rows]=\"rows\"\r\n [cols]=\"cols\"\r\n [autoResize]=\"autoResize\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': control.invalid && (control.dirty || control.touched), 'basic-style': basicInput, 'no-style':noStyle}\"\r\n ></textarea>\r\n }\r\n @if (hint) {\r\n <small class=\"p-mt-1\">{{ hint }}</small>\r\n }\r\n @if (isInvalid && (control.dirty || control.touched)) {\r\n <small class=\"p-error text-red-700\">\r\n @for (error of control.errors | validationErrors; track error) {\r\n {{ error }}<br>\r\n }\r\n </small>\r\n }\r\n</div>\r\n", styles: ["textarea{height:auto;min-height:50px;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: Textarea, selector: "[pTextarea]", inputs: ["autoResize", "variant", "fluid", "pSize"], outputs: ["onResize"] }, { kind: "pipe", type: ValidationErrorsPipe, name: "validationErrors" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InputComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: "stc-input", standalone: true, imports: [ReactiveFormsModule, InputText, Textarea, ValidationErrorsPipe, NgClass, NgStyle, TranslatePipe], template: "<div class=\"field flex flex-col gap-2 my-3 relative\">\r\n @if (label) {\r\n <label [for]=\"inputId\">\r\n {{ label }}\r\n @if (required) {\r\n <span [class.text-red-700]=\"isInvalid\">*</span>\r\n }\r\n </label>\r\n }\r\n @if (!required && !hideOptionalLabel) {\r\n <span class=\"absolute top-[6px] left-0 text-[10px] text-gray-400\">{{'forms.config.optional' | translate}}</span>\r\n }\r\n\r\n <!-- input text align will be handled according to lang when implemented -->\r\n\r\n @if (type !== 'textarea') {\r\n <input\r\n [id]=\"inputId\"\r\n [type]=\"contentType\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [name]=\"name\"\r\n pInputText\r\n [ngStyle]=\"{'direction': inputDirection || 'inherit', 'text-align': 'right'}\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid, 'basic-style': basicInput, 'no-style':noStyle}\"\r\n />\r\n @if (prefix) {\r\n <span class=\"absolute top-[40px] font-bold text-[16px] left-[25px]\">\r\n {{ prefix }}\r\n </span>\r\n }\r\n } @else {\r\n <textarea\r\n [name]=\"name\"\r\n [id]=\"inputId\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n pTextarea\r\n [rows]=\"rows\"\r\n [cols]=\"cols\"\r\n [autoResize]=\"autoResize\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': control.invalid && (control.dirty || control.touched), 'basic-style': basicInput, 'no-style':noStyle}\"\r\n ></textarea>\r\n }\r\n @if (hint) {\r\n <small class=\"p-mt-1\">{{ hint }}</small>\r\n }\r\n @if (isInvalid && (control.dirty || control.touched)) {\r\n <small class=\"p-error text-red-700\">\r\n @for (error of control.errors | validationErrors; track error) {\r\n {{ error }}<br>\r\n }\r\n </small>\r\n }\r\n</div>\r\n", styles: ["textarea{height:auto;min-height:50px;overflow:auto}\n"] }]
|
|
27
|
+
}], ctorParameters: () => [], propDecorators: { type: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], contentType: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], prefix: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], rows: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], cols: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], autoResize: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], basicInput: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], noStyle: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], hideOptionalLabel: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], inputDirection: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1jb21wb25lbnRzL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1jb21wb25lbnRzL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBU2xELE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBWXBEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFaRCxTQUFJLEdBQXdCLE1BQU0sQ0FBQztRQUNuQyxnQkFBVyxHQUFnQyxNQUFNLENBQUM7UUFFbEQsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBSWxCLG1CQUFjLEdBQThCLFNBQVMsQ0FBQztJQUkvRCxDQUFDOzhHQWRVLGNBQWM7a0dBQWQsY0FBYyxrVkNoQjNCLHE5REEyREEsOEdEL0NZLG1CQUFtQiwwa0JBQUUsU0FBUyxnR0FBRSxRQUFRLCtIQUFFLG9CQUFvQix5REFBRSxPQUFPLG9GQUFFLE9BQU8sc0VBQUUsYUFBYTs7MkZBSTlGLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUM7d0RBS2pHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzUGlwZSB9IGZyb20gXCIuLi8uLi9AdXRpbHMvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1tZXNzYWdlLnBpcGVcIjtcclxuaW1wb3J0IHsgSW5wdXRUZXh0IH0gZnJvbSBcInByaW1lbmcvaW5wdXR0ZXh0XCI7XHJcbmltcG9ydCB7IFRleHRhcmVhIH0gZnJvbSBcInByaW1lbmcvdGV4dGFyZWFcIjtcclxuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UtaW5wdXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlUGlwZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInN0Yy1pbnB1dFwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIElucHV0VGV4dCwgVGV4dGFyZWEsIFZhbGlkYXRpb25FcnJvcnNQaXBlLCBOZ0NsYXNzLCBOZ1N0eWxlLCBUcmFuc2xhdGVQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL2lucHV0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9pbnB1dC5jb21wb25lbnQuc2Nzc1wiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdHlwZTogXCJ0ZXh0XCIgfCBcInRleHRhcmVhXCIgPSBcInRleHRcIjtcclxuICBASW5wdXQoKSBjb250ZW50VHlwZTogXCJ0ZXh0XCIgfCBcImVtYWlsXCIgfCBcIm51bWJlclwiID0gXCJ0ZXh0XCI7XHJcbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcm93cyA9IDI7XHJcbiAgQElucHV0KCkgY29scyA9IDIwO1xyXG4gIEBJbnB1dCgpIGF1dG9SZXNpemUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGJhc2ljSW5wdXQhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG5vU3R5bGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVPcHRpb25hbExhYmVsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlucHV0RGlyZWN0aW9uOiBcImx0clwiIHwgXCJydGxcIiB8IFwiaW5oZXJpdFwiID0gXCJpbmhlcml0XCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZpZWxkIGZsZXggZmxleC1jb2wgZ2FwLTIgbXktMyByZWxhdGl2ZVwiPlxyXG4gIEBpZiAobGFiZWwpIHtcclxuICAgIDxsYWJlbCBbZm9yXT1cImlucHV0SWRcIj5cclxuICAgICAge3sgbGFiZWwgfX1cclxuICAgICAgQGlmIChyZXF1aXJlZCkge1xyXG4gICAgICAgIDxzcGFuIFtjbGFzcy50ZXh0LXJlZC03MDBdPVwiaXNJbnZhbGlkXCI+Kjwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgPC9sYWJlbD5cclxuICB9XHJcbiAgQGlmICghcmVxdWlyZWQgJiYgIWhpZGVPcHRpb25hbExhYmVsKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHRvcC1bNnB4XSBsZWZ0LTAgdGV4dC1bMTBweF0gdGV4dC1ncmF5LTQwMFwiPnt7J2Zvcm1zLmNvbmZpZy5vcHRpb25hbCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICB9XHJcblxyXG4gIDwhLS0gaW5wdXQgdGV4dCBhbGlnbiB3aWxsIGJlIGhhbmRsZWQgYWNjb3JkaW5nIHRvIGxhbmcgd2hlbiBpbXBsZW1lbnRlZCAtLT5cclxuXHJcbiAgQGlmICh0eXBlICE9PSAndGV4dGFyZWEnKSB7XHJcbiAgICA8aW5wdXRcclxuICAgICAgW2lkXT1cImlucHV0SWRcIlxyXG4gICAgICBbdHlwZV09XCJjb250ZW50VHlwZVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgIHBJbnB1dFRleHRcclxuICAgICAgW25nU3R5bGVdPVwieydkaXJlY3Rpb24nOiBpbnB1dERpcmVjdGlvbiB8fCAnaW5oZXJpdCcsICd0ZXh0LWFsaWduJzogJ3JpZ2h0J31cIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdwLWludmFsaWQgbmctZGlydHkgbmctaW52YWxpZCc6IGlzSW52YWxpZCwgJ2Jhc2ljLXN0eWxlJzogYmFzaWNJbnB1dCwgJ25vLXN0eWxlJzpub1N0eWxlfVwiXHJcbiAgICAvPlxyXG4gICAgQGlmIChwcmVmaXgpIHtcclxuICAgICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSB0b3AtWzQwcHhdIGZvbnQtYm9sZCB0ZXh0LVsxNnB4XSBsZWZ0LVsyNXB4XVwiPlxyXG4gICAgICAge3sgcHJlZml4IH19XHJcbiAgICA8L3NwYW4+XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA8dGV4dGFyZWFcclxuICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgIFtpZF09XCJpbnB1dElkXCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBwVGV4dGFyZWFcclxuICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgIFtjb2xzXT1cImNvbHNcIlxyXG4gICAgICBbYXV0b1Jlc2l6ZV09XCJhdXRvUmVzaXplXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyduZy1pbnZhbGlkIG5nLWRpcnR5JzogY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCksICdiYXNpYy1zdHlsZSc6IGJhc2ljSW5wdXQsICduby1zdHlsZSc6bm9TdHlsZX1cIlxyXG4gICAgPjwvdGV4dGFyZWE+XHJcbiAgfVxyXG4gIEBpZiAoaGludCkge1xyXG4gICAgPHNtYWxsIGNsYXNzPVwicC1tdC0xXCI+e3sgaGludCB9fTwvc21hbGw+XHJcbiAgfVxyXG4gIEBpZiAoaXNJbnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCkpIHtcclxuICAgIDxzbWFsbCBjbGFzcz1cInAtZXJyb3IgdGV4dC1yZWQtNzAwXCI+XHJcbiAgICAgIEBmb3IgKGVycm9yIG9mIGNvbnRyb2wuZXJyb3JzIHwgdmFsaWRhdGlvbkVycm9yczsgdHJhY2sgZXJyb3IpIHtcclxuICAgICAgICB7eyBlcnJvciB9fTxicj5cclxuICAgICAgfVxyXG4gICAgPC9zbWFsbD5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { PrimeTemplate } from 'primeng/api';
|
|
4
|
+
import { ValidationErrorsPipe } from "../../@utils/validations";
|
|
5
|
+
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
6
|
+
import { Select } from "primeng/select";
|
|
7
|
+
import { BaseInputComponent } from "../base-input.component";
|
|
8
|
+
import { MultiSelectModule } from 'primeng/multiselect';
|
|
9
|
+
import { TranslatePipe } from "@ngx-translate/core";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
|
+
import * as i2 from "primeng/multiselect";
|
|
13
|
+
export class SelectComponent extends BaseInputComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
this.selectedItemTemplate = null;
|
|
17
|
+
this.optionTemplate = null;
|
|
18
|
+
this.checkmark = true;
|
|
19
|
+
this.showClear = false;
|
|
20
|
+
this.editable = false;
|
|
21
|
+
this.filter = false;
|
|
22
|
+
this.multiple = false;
|
|
23
|
+
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
24
|
+
this.change = new EventEmitter();
|
|
25
|
+
}
|
|
26
|
+
onChange(e) {
|
|
27
|
+
this.change.emit(e);
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: SelectComponent, isStandalone: true, selector: "stc-select", inputs: { selectedItemTemplate: "selectedItemTemplate", optionTemplate: "optionTemplate", options: "options", optionLabel: "optionLabel", checkmark: "checkmark", showClear: "showClear", editable: "editable", filter: "filter", multiple: "multiple", filterBy: "filterBy", selectedItemsLabel: "selectedItemsLabel", basicInput: "basicInput" }, outputs: { change: "change" }, usesInheritance: true, ngImport: i0, template: "<div class=\"field flex flex-col gap-2 my-3 relative\">\r\n @if (label) {\r\n <label [for]=\"inputId\">\r\n {{ label }}\r\n @if (required) {\r\n <span [class.text-red-700]=\"isInvalid\">*</span>\r\n }\r\n </label>\r\n } @if (!required) {\r\n <span class=\"absolute top-[6px] left-0 text-[10px] text-gray-400\">{{'forms.config.optional' | translate}}</span>\r\n }\r\n\r\n\r\n @if(multiple) {\r\n\r\n\r\n <p-multiselect\r\n [disabled]=\"disabled\"\r\n [filterBy]=\"filterBy\"\r\n [filter]=\"filter\"\r\n [formControl]=\"control\"\r\n [id]=\"inputId\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid }\"\r\n [optionLabel]=\"optionLabel\"\r\n [options]=\"options\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [showClear]=\"showClear\"\r\n class=\"w-full\"\r\n [selectedItemsLabel]=\"selectedItemsLabel\"\r\n (onChange)=\"onChange($event)\"\r\n [ngClass]=\"{ 'basic-style': basicInput }\"\r\n >\r\n\r\n\r\n @if(optionTemplate){\r\n <ng-template let-item #item>\r\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: item }\" [ngTemplateOutlet]=\"optionTemplate\" />\r\n </ng-template>\r\n }\r\n\r\n\r\n <ng-template #dropdownicon>\r\n <i class=\"pi pi-map\"></i>\r\n </ng-template>\r\n\r\n\r\n </p-multiselect>\r\n\r\n } @else {\r\n <p-select\r\n [checkmark]=\"checkmark\"\r\n [disabled]=\"disabled\"\r\n [editable]=\"editable\"\r\n [filterBy]=\"filterBy\"\r\n [filter]=\"filter\"\r\n [formControl]=\"control\"\r\n [id]=\"inputId\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid }\"\r\n [optionLabel]=\"optionLabel\"\r\n [options]=\"options\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [showClear]=\"showClear\"\r\n class=\"w-full\"\r\n (onChange)=\"onChange($event)\"\r\n [ngClass]=\"{ 'basic-style': basicInput }\"\r\n >\r\n\r\n\r\n @if (selectedItemTemplate) {\r\n <ng-template let-item pTemplate=\"item\">\r\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: item }\" [ngTemplateOutlet]=\"selectedItemTemplate\" />\r\n </ng-template>\r\n }\r\n </p-select>\r\n}\r\n\r\n @if (hint) {\r\n <small class=\"p-mt-1\">{{ hint }}</small>\r\n } @if (isInvalid && (control.dirty || control.touched)) {\r\n <small class=\"p-error text-red-700\">\r\n @for (error of control.errors | validationErrors; track error) {\r\n {{ error }}<br />\r\n }\r\n </small>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: ValidationErrorsPipe, name: "validationErrors" }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SelectComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: "stc-select", standalone: true, imports: [
|
|
35
|
+
FormsModule,
|
|
36
|
+
Select,
|
|
37
|
+
ReactiveFormsModule,
|
|
38
|
+
NgClass,
|
|
39
|
+
NgTemplateOutlet,
|
|
40
|
+
PrimeTemplate,
|
|
41
|
+
ValidationErrorsPipe,
|
|
42
|
+
MultiSelectModule,
|
|
43
|
+
TranslatePipe
|
|
44
|
+
], template: "<div class=\"field flex flex-col gap-2 my-3 relative\">\r\n @if (label) {\r\n <label [for]=\"inputId\">\r\n {{ label }}\r\n @if (required) {\r\n <span [class.text-red-700]=\"isInvalid\">*</span>\r\n }\r\n </label>\r\n } @if (!required) {\r\n <span class=\"absolute top-[6px] left-0 text-[10px] text-gray-400\">{{'forms.config.optional' | translate}}</span>\r\n }\r\n\r\n\r\n @if(multiple) {\r\n\r\n\r\n <p-multiselect\r\n [disabled]=\"disabled\"\r\n [filterBy]=\"filterBy\"\r\n [filter]=\"filter\"\r\n [formControl]=\"control\"\r\n [id]=\"inputId\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid }\"\r\n [optionLabel]=\"optionLabel\"\r\n [options]=\"options\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [showClear]=\"showClear\"\r\n class=\"w-full\"\r\n [selectedItemsLabel]=\"selectedItemsLabel\"\r\n (onChange)=\"onChange($event)\"\r\n [ngClass]=\"{ 'basic-style': basicInput }\"\r\n >\r\n\r\n\r\n @if(optionTemplate){\r\n <ng-template let-item #item>\r\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: item }\" [ngTemplateOutlet]=\"optionTemplate\" />\r\n </ng-template>\r\n }\r\n\r\n\r\n <ng-template #dropdownicon>\r\n <i class=\"pi pi-map\"></i>\r\n </ng-template>\r\n\r\n\r\n </p-multiselect>\r\n\r\n } @else {\r\n <p-select\r\n [checkmark]=\"checkmark\"\r\n [disabled]=\"disabled\"\r\n [editable]=\"editable\"\r\n [filterBy]=\"filterBy\"\r\n [filter]=\"filter\"\r\n [formControl]=\"control\"\r\n [id]=\"inputId\"\r\n [name]=\"name\"\r\n [ngClass]=\"{ 'p-invalid ng-dirty ng-invalid': isInvalid }\"\r\n [optionLabel]=\"optionLabel\"\r\n [options]=\"options\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [showClear]=\"showClear\"\r\n class=\"w-full\"\r\n (onChange)=\"onChange($event)\"\r\n [ngClass]=\"{ 'basic-style': basicInput }\"\r\n >\r\n\r\n\r\n @if (selectedItemTemplate) {\r\n <ng-template let-item pTemplate=\"item\">\r\n <ng-container [ngTemplateOutletContext]=\"{ $implicit: item }\" [ngTemplateOutlet]=\"selectedItemTemplate\" />\r\n </ng-template>\r\n }\r\n </p-select>\r\n}\r\n\r\n @if (hint) {\r\n <small class=\"p-mt-1\">{{ hint }}</small>\r\n } @if (isInvalid && (control.dirty || control.touched)) {\r\n <small class=\"p-error text-red-700\">\r\n @for (error of control.errors | validationErrors; track error) {\r\n {{ error }}<br />\r\n }\r\n </small>\r\n }\r\n</div>\r\n" }]
|
|
45
|
+
}], ctorParameters: () => [], propDecorators: { selectedItemTemplate: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], optionTemplate: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], options: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], optionLabel: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], checkmark: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], showClear: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], editable: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], filter: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], multiple: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], filterBy: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], selectedItemsLabel: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], basicInput: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], change: [{
|
|
70
|
+
type: Output
|
|
71
|
+
}] } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcmMvbGliL2Zvcm0tY29tcG9uZW50cy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1jb21wb25lbnRzL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQW1CbEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsa0JBQWtCO0lBZ0JyRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBaEJELHlCQUFvQixHQUFnQyxJQUFJLENBQUM7UUFDekQsbUJBQWMsR0FBZ0MsSUFBSSxDQUFDO1FBR25ELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSTFCLDREQUE0RDtRQUNsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUl0QyxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQW9CO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7OEdBdEJVLGVBQWU7a0dBQWYsZUFBZSxnZEMzQjVCLGtrRkEwRkEseURENUVJLFdBQVcsdUlBQ1gsTUFBTSxncENBQ04sbUJBQW1CLGtOQUNuQixPQUFPLG9GQUNQLGdCQUFnQixvSkFDaEIsYUFBYSxrRkFDYixvQkFBb0Isd0RBQ3BCLGlCQUFpQiw0NENBQ2pCLGFBQWE7OzJGQUtKLGVBQWU7a0JBakIzQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxNQUFNO3dCQUNOLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGFBQWE7cUJBQ2Q7d0RBS1Esb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnNQaXBlIH0gZnJvbSBcIi4uLy4uL0B1dGlscy92YWxpZGF0aW9uc1wiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTZWxlY3QsIFNlbGVjdENoYW5nZUV2ZW50IH0gZnJvbSBcInByaW1lbmcvc2VsZWN0XCI7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCB9IGZyb20gXCIuLi9iYXNlLWlucHV0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNdWx0aVNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbXVsdGlzZWxlY3QnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJzdGMtc2VsZWN0XCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFNlbGVjdCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIFByaW1lVGVtcGxhdGUsXHJcbiAgICBWYWxpZGF0aW9uRXJyb3JzUGlwZSxcclxuICAgIE11bHRpU2VsZWN0TW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuc2Nzc1wiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG9wdGlvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IHVua25vd25bXTtcclxuICBASW5wdXQoKSBvcHRpb25MYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBjaGVja21hcmsgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dDbGVhciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVkaXRhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmlsdGVyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWx0ZXJCeSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zTGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYmFzaWNJbnB1dCE6IGJvb2xlYW47XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXHJcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoZTogU2VsZWN0Q2hhbmdlRXZlbnQpIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmaWVsZCBmbGV4IGZsZXgtY29sIGdhcC0yIG15LTMgcmVsYXRpdmVcIj5cclxuICBAaWYgKGxhYmVsKSB7XHJcbiAgPGxhYmVsIFtmb3JdPVwiaW5wdXRJZFwiPlxyXG4gICAge3sgbGFiZWwgfX1cclxuICAgIEBpZiAocmVxdWlyZWQpIHtcclxuICAgIDxzcGFuIFtjbGFzcy50ZXh0LXJlZC03MDBdPVwiaXNJbnZhbGlkXCI+Kjwvc3Bhbj5cclxuICAgIH1cclxuICA8L2xhYmVsPlxyXG4gIH0gQGlmICghcmVxdWlyZWQpIHtcclxuICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHRvcC1bNnB4XSBsZWZ0LTAgdGV4dC1bMTBweF0gdGV4dC1ncmF5LTQwMFwiPnt7J2Zvcm1zLmNvbmZpZy5vcHRpb25hbCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICB9XHJcblxyXG5cclxuICBAaWYobXVsdGlwbGUpIHtcclxuXHJcblxyXG4gICAgPHAtbXVsdGlzZWxlY3RcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbZmlsdGVyQnldPVwiZmlsdGVyQnlcIlxyXG4gICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgW2lkXT1cImlucHV0SWRcIlxyXG4gICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdwLWludmFsaWQgbmctZGlydHkgbmctaW52YWxpZCc6IGlzSW52YWxpZCB9XCJcclxuICAgIFtvcHRpb25MYWJlbF09XCJvcHRpb25MYWJlbFwiXHJcbiAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgW3Nob3dDbGVhcl09XCJzaG93Q2xlYXJcIlxyXG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxyXG4gICAgW3NlbGVjdGVkSXRlbXNMYWJlbF09XCJzZWxlY3RlZEl0ZW1zTGFiZWxcIlxyXG4gICAgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnYmFzaWMtc3R5bGUnOiBiYXNpY0lucHV0IH1cIlxyXG4gICAgID5cclxuXHJcblxyXG4gICAgIEBpZihvcHRpb25UZW1wbGF0ZSl7XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjaXRlbT5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVcIiAvPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgIH1cclxuXHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd25pY29uPlxyXG4gICAgICA8aSBjbGFzcz1cInBpIHBpLW1hcFwiPjwvaT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiAgICA8L3AtbXVsdGlzZWxlY3Q+XHJcblxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPHAtc2VsZWN0XHJcbiAgICAgIFtjaGVja21hcmtdPVwiY2hlY2ttYXJrXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW2VkaXRhYmxlXT1cImVkaXRhYmxlXCJcclxuICAgICAgW2ZpbHRlckJ5XT1cImZpbHRlckJ5XCJcclxuICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFtpZF09XCJpbnB1dElkXCJcclxuICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtaW52YWxpZCBuZy1kaXJ0eSBuZy1pbnZhbGlkJzogaXNJbnZhbGlkIH1cIlxyXG4gICAgICBbb3B0aW9uTGFiZWxdPVwib3B0aW9uTGFiZWxcIlxyXG4gICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgW3Nob3dDbGVhcl09XCJzaG93Q2xlYXJcIlxyXG4gICAgICBjbGFzcz1cInctZnVsbFwiXHJcbiAgICAgIChvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnYmFzaWMtc3R5bGUnOiBiYXNpY0lucHV0IH1cIlxyXG4gICAgPlxyXG5cclxuXHJcbiAgICBAaWYgKHNlbGVjdGVkSXRlbVRlbXBsYXRlKSB7XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlbGVjdGVkSXRlbVRlbXBsYXRlXCIgLz5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIH1cclxuICA8L3Atc2VsZWN0PlxyXG59XHJcblxyXG4gIEBpZiAoaGludCkge1xyXG4gIDxzbWFsbCBjbGFzcz1cInAtbXQtMVwiPnt7IGhpbnQgfX08L3NtYWxsPlxyXG4gIH0gQGlmIChpc0ludmFsaWQgJiYgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKSkge1xyXG4gIDxzbWFsbCBjbGFzcz1cInAtZXJyb3IgdGV4dC1yZWQtNzAwXCI+XHJcbiAgICBAZm9yIChlcnJvciBvZiBjb250cm9sLmVycm9ycyB8IHZhbGlkYXRpb25FcnJvcnM7IHRyYWNrIGVycm9yKSB7XHJcbiAgICB7eyBlcnJvciB9fTxiciAvPlxyXG4gICAgfVxyXG4gIDwvc21hbGw+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import { SelectButtonModule } from 'primeng/selectbutton';
|
|
3
|
+
import { BaseInputComponent } from "../base-input.component";
|
|
4
|
+
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "primeng/selectbutton";
|
|
8
|
+
export class SelectButtonComponent extends BaseInputComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.onChange = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
changeValue(e) {
|
|
14
|
+
this.onChange.emit(e.value);
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SelectButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: SelectButtonComponent, isStandalone: true, selector: "stc-select-button", inputs: { options: "options", title: "title" }, outputs: { onChange: "onChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"grid grid-cols-12 gap-x-4 gap-y-0 items-end\">\r\n <div class=\"col-span-12\">\r\n <div class=\"text-[14px] font-bold mb-1\">{{ title }}</div>\r\n <div class=\"grid w-100 bg-gray-100 rounded drop-shadow-basic\">\r\n <p-selectButton [disabled]=\"disabled\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n class=\"rounded\"\r\n [styleClass]=\"'full-width'\"\r\n (onChange)=\"changeValue($event)\">\r\n <ng-template let-item class=\"flex w-100\">\r\n <div class=\"col-span-4\">\r\n <span>{{ item.value }}</span>\r\n </div>\r\n </ng-template>\r\n </p-selectButton>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: SelectButtonModule }, { kind: "component", type: i2.SelectButton, selector: "p-selectButton, p-selectbutton, p-select-button", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "unselectable", "tabindex", "multiple", "allowEmpty", "style", "styleClass", "ariaLabelledBy", "size", "disabled", "dataKey", "autofocus"], outputs: ["onOptionClick", "onChange"] }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SelectButtonComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: "stc-select-button", standalone: true, imports: [ReactiveFormsModule, SelectButtonModule, FormsModule], template: "<div class=\"grid grid-cols-12 gap-x-4 gap-y-0 items-end\">\r\n <div class=\"col-span-12\">\r\n <div class=\"text-[14px] font-bold mb-1\">{{ title }}</div>\r\n <div class=\"grid w-100 bg-gray-100 rounded drop-shadow-basic\">\r\n <p-selectButton [disabled]=\"disabled\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n class=\"rounded\"\r\n [styleClass]=\"'full-width'\"\r\n (onChange)=\"changeValue($event)\">\r\n <ng-template let-item class=\"flex w-100\">\r\n <div class=\"col-span-4\">\r\n <span>{{ item.value }}</span>\r\n </div>\r\n </ng-template>\r\n </p-selectButton>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
|
|
22
|
+
}], propDecorators: { onChange: [{
|
|
23
|
+
type: Output
|
|
24
|
+
}], options: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], title: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWNvbXBvbmVudHMvY29tcG9uZW50cy9zZWxlY3QtYnV0dG9uL3NlbGVjdC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZm9ybS1jb21wb25lbnRzL2NvbXBvbmVudHMvc2VsZWN0LWJ1dHRvbi9zZWxlY3QtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUEyQixrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVVsRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsa0JBQWtCO0lBUDdEOztRQVFZLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQU9wRTtJQUhDLFdBQVcsQ0FBQyxDQUEwQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0FQVSxxQkFBcUI7a0dBQXJCLHFCQUFxQix1TENibEMsczNCQXFCQSx5RERaWSxtQkFBbUIseVRBQUUsa0JBQWtCLGlZQUFFLFdBQVc7OzJGQUluRCxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLFdBQVcsQ0FBQzs4QkFLckQsUUFBUTtzQkFBakIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTZWxlY3RCdXR0b25DaGFuZ2VFdmVudCwgU2VsZWN0QnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zZWxlY3RidXR0b24nO1xyXG5pbXBvcnQgeyBCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tIFwiLi4vYmFzZS1pbnB1dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtMYWJlbFZhbHVlfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic3RjLXNlbGVjdC1idXR0b25cIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTZWxlY3RCdXR0b25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3NlbGVjdC1idXR0b24uY29tcG9uZW50LnNjc3NcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0QnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IHtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgb3B0aW9uczogTGFiZWxWYWx1ZTxhbnk+W107XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuXHJcbiAgY2hhbmdlVmFsdWUoZTogU2VsZWN0QnV0dG9uQ2hhbmdlRXZlbnQpIHtcclxuICAgIHRoaXMub25DaGFuZ2UuZW1pdChlLnZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEyIGdhcC14LTQgZ2FwLXktMCBpdGVtcy1lbmRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tMTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LVsxNHB4XSBmb250LWJvbGQgbWItMVwiPnt7IHRpdGxlIH19PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3LTEwMCBiZy1ncmF5LTEwMCByb3VuZGVkIGRyb3Atc2hhZG93LWJhc2ljXCI+XHJcbiAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cIidmdWxsLXdpZHRoJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiY2hhbmdlVmFsdWUoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBjbGFzcz1cImZsZXggdy0xMDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi00XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0udmFsdWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|