@unipin/angular-applet 18.0.4 → 18.1.5
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/lib/components/containers/applet-container/applet-container.component.mjs +3 -3
- package/esm2022/lib/components/forms/country-input/form-country-input.component.mjs +118 -0
- package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +33 -41
- package/esm2022/lib/components/forms/index.mjs +2 -1
- package/esm2022/lib/components/index.mjs +2 -2
- package/esm2022/lib/utils/contrast-color-generator/contrast-color-generator.util.mjs +16 -0
- package/esm2022/lib/utils/form-error-message/form-error-message.util.mjs +21 -0
- package/esm2022/lib/utils/format-capitalize/format-capitalize.util.mjs +18 -0
- package/esm2022/lib/utils/index.mjs +4 -2
- package/esm2022/public-api.mjs +3 -3
- package/fesm2022/unipin-angular-applet.mjs +178 -43
- package/fesm2022/unipin-angular-applet.mjs.map +1 -1
- package/lib/components/forms/country-input/form-country-input.component.d.ts +40 -0
- package/lib/components/forms/currency-input/form-currency-input.component.d.ts +19 -24
- package/lib/components/forms/index.d.ts +1 -0
- package/lib/components/index.d.ts +1 -1
- package/lib/utils/contrast-color-generator/contrast-color-generator.util.d.ts +4 -0
- package/lib/utils/format-capitalize/format-capitalize.util.d.ts +1 -0
- package/lib/utils/index.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -2
- package/esm2022/lib/utils/form-error-message.util.mjs +0 -21
- /package/lib/utils/{form-error-message.util.d.ts → form-error-message/form-error-message.util.d.ts} +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const errMessage = {
|
|
2
|
+
email: (label) => `${label} is not a valid email`,
|
|
3
|
+
required: (label) => `${label} is required`,
|
|
4
|
+
minlength: (label, length) => `${label} must be at least ${length} characters`,
|
|
5
|
+
maxlength: (label, length) => `${label} must not exceed ${length} characters`,
|
|
6
|
+
max: (label, max) => `${label} value must be lower than ${max}`,
|
|
7
|
+
min: (label, min) => `${label} value must be larger than ${min}`,
|
|
8
|
+
};
|
|
9
|
+
const extraParamKey = {
|
|
10
|
+
minlength: 'requiredLength',
|
|
11
|
+
maxlength: 'requiredLength',
|
|
12
|
+
max: 'max',
|
|
13
|
+
min: 'min'
|
|
14
|
+
};
|
|
15
|
+
export function getFormErrorMessage(err, label) {
|
|
16
|
+
if (!err)
|
|
17
|
+
return '';
|
|
18
|
+
const key = Object.keys(err)[0];
|
|
19
|
+
return errMessage[key](label ?? 'Column', err[key][extraParamKey[key]]);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci1tZXNzYWdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL3V0aWxzL2Zvcm0tZXJyb3ItbWVzc2FnZS9mb3JtLWVycm9yLW1lc3NhZ2UudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsR0FBeUQ7SUFDdkUsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQU0sdUJBQXVCO0lBQzNELFFBQVEsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLGNBQWM7SUFDckQsU0FBUyxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQWUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLHFCQUFzQixNQUFPLGFBQWE7SUFDbkcsU0FBUyxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQWUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLG9CQUFxQixNQUFPLGFBQWE7SUFDbEcsR0FBRyxFQUFFLENBQUMsS0FBYSxFQUFFLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLDZCQUE4QixHQUFJLEVBQUU7SUFDcEYsR0FBRyxFQUFFLENBQUMsS0FBYSxFQUFFLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLDhCQUErQixHQUFJLEVBQUU7Q0FDdEYsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUE0QjtJQUM3QyxTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztDQUNYLENBQUM7QUFRRixNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBNEIsRUFBRSxLQUFjO0lBQzlFLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFcEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5jb25zdCBlcnJNZXNzYWdlOiB7IFtrOiBzdHJpbmddOiAobDogc3RyaW5nLCBhcmc/OiBudW1iZXIpID0+IHN0cmluZyB9ID0ge1xuICBlbWFpbDogKGxhYmVsOiBzdHJpbmcpID0+IGAkeyBsYWJlbCB9IGlzIG5vdCBhIHZhbGlkIGVtYWlsYCxcbiAgcmVxdWlyZWQ6IChsYWJlbDogc3RyaW5nKSA9PiBgJHsgbGFiZWwgfSBpcyByZXF1aXJlZGAsXG4gIG1pbmxlbmd0aDogKGxhYmVsOiBzdHJpbmcsIGxlbmd0aD86IG51bWJlcikgPT4gYCR7IGxhYmVsIH0gbXVzdCBiZSBhdCBsZWFzdCAkeyBsZW5ndGggfSBjaGFyYWN0ZXJzYCxcbiAgbWF4bGVuZ3RoOiAobGFiZWw6IHN0cmluZywgbGVuZ3RoPzogbnVtYmVyKSA9PiBgJHsgbGFiZWwgfSBtdXN0IG5vdCBleGNlZWQgJHsgbGVuZ3RoIH0gY2hhcmFjdGVyc2AsXG4gIG1heDogKGxhYmVsOiBzdHJpbmcsIG1heD86IG51bWJlcikgPT4gYCR7IGxhYmVsIH0gdmFsdWUgbXVzdCBiZSBsb3dlciB0aGFuICR7IG1heCB9YCxcbiAgbWluOiAobGFiZWw6IHN0cmluZywgbWluPzogbnVtYmVyKSA9PiBgJHsgbGFiZWwgfSB2YWx1ZSBtdXN0IGJlIGxhcmdlciB0aGFuICR7IG1pbiB9YCxcbn07XG5cbmNvbnN0IGV4dHJhUGFyYW1LZXk6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBtaW5sZW5ndGg6ICdyZXF1aXJlZExlbmd0aCcsXG4gIG1heGxlbmd0aDogJ3JlcXVpcmVkTGVuZ3RoJyxcbiAgbWF4OiAnbWF4JyxcbiAgbWluOiAnbWluJ1xufTtcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgZ2V0IGRldGFpbCBlcnJvciBkZXNjcmlwdGlvbiBiYXNlZCBvbiBwYXJhbSBlcnIuXG4gKiBAcGFyYW0ge1ZhbGlkYXRpb25FcnJvcnMgfCBudWxsfSBlcnIgLSBDb250YWluIGVycm9yIGZyb20gdGhlIGZvcm0gaW5wdXQuXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFiZWwgLSBDb250YWluIGxhYmVsIG5hbWUgb2YgdGhlIGZvcm0gaW5wdXQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBDb250YWluIGVpdGhlciBkZXRhaWwgZXJyb3IgZGVzY3JpcHRpb24gb3IgZW1wdHkgc3RyaW5nICgnJylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1FcnJvck1lc3NhZ2UoZXJyOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCwgbGFiZWw/OiBzdHJpbmcpOiBzdHJpbmd7XG4gIGlmICghZXJyKSByZXR1cm4gJyc7XG5cbiAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoZXJyKVswXTtcbiAgcmV0dXJuIGVyck1lc3NhZ2Vba2V5XShsYWJlbD8/ICdDb2x1bW4nLCBlcnJba2V5XVtleHRyYVBhcmFtS2V5W2tleV1dKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function formatCapitalize(str, eachWord = false, separator = ' ') {
|
|
2
|
+
if (!str)
|
|
3
|
+
return str;
|
|
4
|
+
if (typeof str === 'string')
|
|
5
|
+
return `${str.at(0).toUpperCase()}${str.substring(1).toLowerCase()}`;
|
|
6
|
+
str[0] = `${str[0].at(0).toUpperCase()}${str[0].substring(1).toLowerCase()}`;
|
|
7
|
+
for (let i = 1; i < str.length; i++) {
|
|
8
|
+
if (!str[i])
|
|
9
|
+
continue;
|
|
10
|
+
if (!eachWord)
|
|
11
|
+
str[i] = str[i].toLowerCase();
|
|
12
|
+
else {
|
|
13
|
+
str[i] = `${str[i].at(0).toUpperCase()}${str[i].substring(1).toLowerCase()}`;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return str.join(separator);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWNhcGl0YWxpemUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvdXRpbHMvZm9ybWF0LWNhcGl0YWxpemUvZm9ybWF0LWNhcGl0YWxpemUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBc0IsRUFBRSxXQUFvQixLQUFLLEVBQUUsWUFBb0IsR0FBRztJQUN6RyxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ3JCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtRQUFFLE9BQU8sR0FBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRSxDQUFDLFdBQVcsRUFBRyxHQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFHLEVBQUUsQ0FBQztJQUV2RyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRSxDQUFDLFdBQVcsRUFBRyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFHLEVBQUUsQ0FBQztJQUNsRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUV0QixJQUFJLENBQUMsUUFBUTtZQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDeEMsQ0FBQztZQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFFLENBQUMsV0FBVyxFQUFHLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUcsRUFBRSxDQUFDO1FBQ3BGLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBjcmVhdGUgYSBjYXBpdGFsaXplIHdvcmQuXG4gKiBAcGFyYW0ge3N0cmluZyB8IHN0cmluZ1tdfSBzdHIgLSBXb3JkIHRoYXQgd2FudCB0byBiZSBjYXBpdGFsaXplZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2VhY2hXb3JkPWZhbHNlXSAtIERldGVybWluZSB3aGV0aGVyIGVhY2ggd29yZCB3aWxsIGJlIGNhcGl0YWxpemUgb3Igbm90IGJ5IGEgY2VydGFpbiBzZXBhcmF0b3IuIElmIHRoZSBmaXJzdCBwYXJhbSBpcyBub3QgYXJyYXksIHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgaWdub3JlZC4gRGVmYXVsdCB0byBgZmFsc2VgLlxuICogQHBhcmFtIHtzdHJpbmd9IFtzZXBhcmF0b3I9XCIgXCJdIC0gQSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBvbmUgZWxlbWVudCBvZiB0aGUgd29yZHMgZnJvbSB0aGUgbmV4dCBpbiB0aGUgcmVzdWx0aW5nIHN0cmluZy4gSWYgdGhlIGZpcnN0IHBhcmFtIGlzIG5vdCBhcnJheSwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBpZ25vcmVkLiBJZiBvbWl0dGVkLCB3b3JkcyBhcmUgc2VwYXJhdGVkIHdpdGggYSBzcGFjZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IENhcGl0YWxpemVkIHdvcmQgc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDYXBpdGFsaXplKHN0cjogc3RyaW5nIHwgc3RyaW5nW10sIGVhY2hXb3JkOiBib29sZWFuID0gZmFsc2UsIHNlcGFyYXRvcjogc3RyaW5nID0gJyAnKTogc3RyaW5ne1xuICBpZiAoIXN0cikgcmV0dXJuIHN0cjtcbiAgaWYgKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnKSByZXR1cm4gYCR7IHN0ci5hdCgwKSEudG9VcHBlckNhc2UoKSB9JHsgc3RyLnN1YnN0cmluZygxKS50b0xvd2VyQ2FzZSgpIH1gO1xuXG4gIHN0clswXSA9IGAkeyBzdHJbMF0uYXQoMCkhLnRvVXBwZXJDYXNlKCkgfSR7IHN0clswXS5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKSB9YDtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIXN0cltpXSkgY29udGludWU7XG5cbiAgICBpZiAoIWVhY2hXb3JkKSBzdHJbaV0gPSBzdHJbaV0udG9Mb3dlckNhc2UoKTtcbiAgICBlbHNlIHtcbiAgICAgIHN0cltpXSA9IGAkeyBzdHJbaV0uYXQoMCkhLnRvVXBwZXJDYXNlKCkgfSR7IHN0cltpXS5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKSB9YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0ci5qb2luKHNlcGFyYXRvcik7XG59XG4iXX0=
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
1
|
+
export { formatCapitalize } from './format-capitalize/format-capitalize.util';
|
|
2
|
+
export { getFormErrorMessage } from './form-error-message/form-error-message.util';
|
|
3
|
+
export { generateContrastColor } from './contrast-color-generator/contrast-color-generator.util';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZm9ybWF0Q2FwaXRhbGl6ZSB9IGZyb20gJy4vZm9ybWF0LWNhcGl0YWxpemUvZm9ybWF0LWNhcGl0YWxpemUudXRpbCc7XG5leHBvcnQgeyBnZXRGb3JtRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi9mb3JtLWVycm9yLW1lc3NhZ2UvZm9ybS1lcnJvci1tZXNzYWdlLnV0aWwnO1xuZXhwb3J0IHsgZ2VuZXJhdGVDb250cmFzdENvbG9yIH0gZnJvbSAnLi9jb250cmFzdC1jb2xvci1nZW5lcmF0b3IvY29udHJhc3QtY29sb3ItZ2VuZXJhdG9yLnV0aWwnO1xuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { ButtonGroupComponent, ButtonLoadingComponent, FormDateComponent, FormInputComponent, FormNumberComponent, FormPasswordComponent, FormSearchableSelectComponent, FormSelectComponent, FormTextareaComponent, FormImagePickerComponent, FormCurrencyInputComponent, FilterComponent, GridService, GridPaginationComponent, GridSnapshotComponent, AppletContainerComponent, ColumnContainerComponent, ColumnHeaderContainerComponent, ListPaginationContainerComponent, ListSnapshotContainerComponent, ModalContainerComponent, TabGroupComponent, TabContentComponent, TabsComponentModule, AuditListComponent, AuditDetailComponent, ApprovalListComponent, ApprovalDetailComponent } from './lib/components';
|
|
1
|
+
export { ButtonGroupComponent, ButtonLoadingComponent, FormDateComponent, FormInputComponent, FormNumberComponent, FormPasswordComponent, FormSearchableSelectComponent, FormSelectComponent, FormTextareaComponent, FormImagePickerComponent, FormCurrencyInputComponent, FormCountryInputComponent, FilterComponent, GridService, GridPaginationComponent, GridSnapshotComponent, AppletContainerComponent, ColumnContainerComponent, ColumnHeaderContainerComponent, ListPaginationContainerComponent, ListSnapshotContainerComponent, ModalContainerComponent, TabGroupComponent, TabContentComponent, TabsComponentModule, AuditListComponent, AuditDetailComponent, ApprovalListComponent, ApprovalDetailComponent } from './lib/components';
|
|
2
2
|
export { AuthGuard } from './lib/guards';
|
|
3
3
|
export { HeaderInterceptor, RefreshTokenInterceptor } from './lib/interceptors';
|
|
4
4
|
export { bootstrap, LoadingPage, UnauthorizedPage, PermissionDirective, PermissionGuard, PermissionService, PermissionModule } from './lib/modules';
|
|
5
5
|
export { AuthResolver } from './lib/resolvers';
|
|
6
6
|
export { AuthService, CurrencyService, CountryService, ProfileService } from './lib/services';
|
|
7
|
-
export { getFormErrorMessage } from './lib/utils';
|
|
7
|
+
export { formatCapitalize, generateContrastColor, getFormErrorMessage, } from './lib/utils';
|
|
8
8
|
export { GridApi } from '@ag-grid-community/core';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBRXRCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQiw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUt6QixlQUFlLEVBR2YsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixxQkFBcUIsRUFFckIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFFOUIsZ0NBQWdDLEVBQ2hDLDhCQUE4QixFQUM5Qix1QkFBdUIsRUFFdkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFFbkIsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUVwQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3hCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUNMLFNBQVMsRUFDVixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBTTVCLE9BQU8sRUFDTCxTQUFTLEVBRVQsV0FBVyxFQUNYLGdCQUFnQixFQUVoQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLFlBQVksRUFDYixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLGNBQWMsRUFDZCxjQUFjLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixtQkFBbUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUNMLE9BQU8sRUFLUixNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1bmlwaW4tYW5ndWxhclxuICovXG5leHBvcnQge1xuICBCdXR0b25Hcm91cENvbmZpZyxcbiAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gIEJ1dHRvbkxvYWRpbmdDb21wb25lbnQsXG5cbiAgRm9ybURhdGVDb21wb25lbnQsXG4gIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgRm9ybU51bWJlckNvbXBvbmVudCxcbiAgRm9ybVBhc3N3b3JkQ29tcG9uZW50LFxuICBGb3JtU2VhcmNoYWJsZVNlbGVjdENvbXBvbmVudCxcbiAgRm9ybVNlbGVjdENvbXBvbmVudCxcbiAgRm9ybVRleHRhcmVhQ29tcG9uZW50LFxuICBGb3JtSW1hZ2VQaWNrZXJDb21wb25lbnQsXG4gIEZvcm1DdXJyZW5jeUlucHV0Q29tcG9uZW50LFxuICBGb3JtQ291bnRyeUlucHV0Q29tcG9uZW50LFxuICBcbiAgRmlsdGVyQ29uZmlnLFxuICBGaWx0ZXJGaWVsZCxcbiAgRmlsdGVyU2VhcmNoRXZlbnQsXG4gIEZpbHRlckNvbXBvbmVudCxcblxuICBHcmlkQ29uZmlnLFxuICBHcmlkU2VydmljZSxcbiAgR3JpZFBhZ2luYXRpb25Db21wb25lbnQsXG4gIEdyaWRTbmFwc2hvdENvbXBvbmVudCxcblxuICBBcHBsZXRDb250YWluZXJDb21wb25lbnQsXG4gIENvbHVtbkNvbnRhaW5lckNvbXBvbmVudCxcbiAgQ29sdW1uSGVhZGVyQ29udGFpbmVyQ29tcG9uZW50LFxuICBMaXN0Q29udGFpbmVyQ29uZmlnLCBcbiAgTGlzdFBhZ2luYXRpb25Db250YWluZXJDb21wb25lbnQsIFxuICBMaXN0U25hcHNob3RDb250YWluZXJDb21wb25lbnQsXG4gIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50LFxuXG4gIFRhYkdyb3VwQ29tcG9uZW50LFxuICBUYWJDb250ZW50Q29tcG9uZW50LFxuICBUYWJzQ29tcG9uZW50TW9kdWxlLFxuXG4gIEF1ZGl0TGlzdENvbXBvbmVudCxcbiAgQXVkaXREZXRhaWxDb21wb25lbnQsXG5cbiAgQXBwcm92YWxMaXN0Q29tcG9uZW50LFxuICBBcHByb3ZhbERldGFpbENvbXBvbmVudFxufSBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcblxuZXhwb3J0IHtcbiAgQXV0aEd1YXJkXG59IGZyb20gJy4vbGliL2d1YXJkcyc7XG5cbmV4cG9ydCB7XG4gIEhlYWRlckludGVyY2VwdG9yLFxuICBSZWZyZXNoVG9rZW5JbnRlcmNlcHRvclxufSBmcm9tICcuL2xpYi9pbnRlcmNlcHRvcnMnO1xuXG5leHBvcnQge1xuICBVc2VyXG59IGZyb20gJy4vbGliL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgeyBcbiAgYm9vdHN0cmFwLFxuXG4gIExvYWRpbmdQYWdlLFxuICBVbmF1dGhvcml6ZWRQYWdlLFxuXG4gIFBlcm1pc3Npb25EaXJlY3RpdmUsXG4gIFBlcm1pc3Npb25HdWFyZCxcbiAgUGVybWlzc2lvblNlcnZpY2UsXG4gIFBlcm1pc3Npb25Nb2R1bGVcbn0gZnJvbSAnLi9saWIvbW9kdWxlcyc7XG5cbmV4cG9ydCB7XG4gIEF1dGhSZXNvbHZlclxufSBmcm9tICcuL2xpYi9yZXNvbHZlcnMnO1xuXG5leHBvcnQge1xuICBBdXRoU2VydmljZSxcbiAgQ3VycmVuY3lTZXJ2aWNlLFxuICBDb3VudHJ5U2VydmljZSxcbiAgUHJvZmlsZVNlcnZpY2Vcbn0gZnJvbSAnLi9saWIvc2VydmljZXMnO1xuXG5leHBvcnQge1xuICBmb3JtYXRDYXBpdGFsaXplLFxuICBnZW5lcmF0ZUNvbnRyYXN0Q29sb3IsXG4gIGdldEZvcm1FcnJvck1lc3NhZ2UsXG59IGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0IHtcbiAgR3JpZEFwaSxcbiAgR3JpZFJlYWR5RXZlbnQsXG4gIElDZWxsUmVuZGVyZXJQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxuICBTZWxlY3Rpb25DaGFuZ2VkRXZlbnRcbn0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuXG5leHBvcnQge1xuICBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXBcbn0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xuIl19
|
|
@@ -14,7 +14,7 @@ import * as i3 from 'angular-split';
|
|
|
14
14
|
import { AngularSplitModule } from 'angular-split';
|
|
15
15
|
import * as i3$1 from '@angular/forms';
|
|
16
16
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
17
|
-
import * as
|
|
17
|
+
import * as i4 from '@ng-select/ng-select';
|
|
18
18
|
import { NgSelectModule } from '@ng-select/ng-select';
|
|
19
19
|
import { ModuleRegistry } from '@ag-grid-community/core';
|
|
20
20
|
export { GridApi } from '@ag-grid-community/core';
|
|
@@ -417,7 +417,7 @@ class AppletContainerComponent {
|
|
|
417
417
|
dispatchEvent(new CustomEvent('menuEvent', { detail: { isActive: false } }));
|
|
418
418
|
}
|
|
419
419
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AppletContainerComponent, deps: [{ token: 'APPLET_CONFIG' }, { token: i0.ChangeDetectorRef }, { token: PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
420
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: AppletContainerComponent, isStandalone: true, selector: "up-applet-container", host: { classAttribute: "d-flex h-100 w-100" }, ngImport: i0, template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i1.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
420
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: AppletContainerComponent, isStandalone: true, selector: "up-applet-container", host: { classAttribute: "d-flex h-100 w-100" }, ngImport: i0, template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 w-100 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i1.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
421
421
|
}
|
|
422
422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AppletContainerComponent, decorators: [{
|
|
423
423
|
type: Component,
|
|
@@ -427,7 +427,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
427
427
|
IonicModule,
|
|
428
428
|
RouterModule,
|
|
429
429
|
CommonModule
|
|
430
|
-
], template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"] }]
|
|
430
|
+
], template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 w-100 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"] }]
|
|
431
431
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
432
432
|
type: Inject,
|
|
433
433
|
args: ['APPLET_CONFIG']
|
|
@@ -582,6 +582,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
582
582
|
args: ['window:popstate', ['$event']]
|
|
583
583
|
}] } });
|
|
584
584
|
|
|
585
|
+
function formatCapitalize(str, eachWord = false, separator = ' ') {
|
|
586
|
+
if (!str)
|
|
587
|
+
return str;
|
|
588
|
+
if (typeof str === 'string')
|
|
589
|
+
return `${str.at(0).toUpperCase()}${str.substring(1).toLowerCase()}`;
|
|
590
|
+
str[0] = `${str[0].at(0).toUpperCase()}${str[0].substring(1).toLowerCase()}`;
|
|
591
|
+
for (let i = 1; i < str.length; i++) {
|
|
592
|
+
if (!str[i])
|
|
593
|
+
continue;
|
|
594
|
+
if (!eachWord)
|
|
595
|
+
str[i] = str[i].toLowerCase();
|
|
596
|
+
else {
|
|
597
|
+
str[i] = `${str[i].at(0).toUpperCase()}${str[i].substring(1).toLowerCase()}`;
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
return str.join(separator);
|
|
601
|
+
}
|
|
602
|
+
|
|
585
603
|
const errMessage = {
|
|
586
604
|
email: (label) => `${label} is not a valid email`,
|
|
587
605
|
required: (label) => `${label} is required`,
|
|
@@ -603,6 +621,22 @@ function getFormErrorMessage(err, label) {
|
|
|
603
621
|
return errMessage[key](label ?? 'Column', err[key][extraParamKey[key]]);
|
|
604
622
|
}
|
|
605
623
|
|
|
624
|
+
function generateContrastColor(str) {
|
|
625
|
+
if (str.length > 8)
|
|
626
|
+
str = str.substring(0, 8);
|
|
627
|
+
let res = '';
|
|
628
|
+
let total = 0;
|
|
629
|
+
for (let i = 0; i < str.length; i++) {
|
|
630
|
+
const c = str.charCodeAt(i).toString(16);
|
|
631
|
+
res += c;
|
|
632
|
+
total += +c;
|
|
633
|
+
}
|
|
634
|
+
return {
|
|
635
|
+
background: `#${res}`,
|
|
636
|
+
color: total > 187 ? '#000' : '#fff'
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
|
|
606
640
|
class FormDateComponent {
|
|
607
641
|
constructor(name, placeholder, ch) {
|
|
608
642
|
this.name = name;
|
|
@@ -1080,7 +1114,7 @@ class FormSearchableSelectComponent {
|
|
|
1080
1114
|
provide: NG_VALIDATORS,
|
|
1081
1115
|
useExisting: FormSearchableSelectComponent
|
|
1082
1116
|
}
|
|
1083
|
-
], usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<ng-select \n appendTo=\"body\"\n typeToSearchText=\"Please enter 3 or more characters\"\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\" \n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModel]=\"value\" \n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n [typeahead]=\"typeahead\"\n [items]=\"items$ | async\"\n (change)=\"change($event);\"\n/>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type:
|
|
1117
|
+
], usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<ng-select \n appendTo=\"body\"\n typeToSearchText=\"Please enter 3 or more characters\"\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\" \n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModel]=\"value\" \n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n [typeahead]=\"typeahead\"\n [items]=\"items$ | async\"\n (change)=\"change($event);\"\n/>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1084
1118
|
}
|
|
1085
1119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormSearchableSelectComponent, decorators: [{
|
|
1086
1120
|
type: Component,
|
|
@@ -1189,7 +1223,7 @@ class FormSelectComponent {
|
|
|
1189
1223
|
provide: NG_VALIDATORS,
|
|
1190
1224
|
useExisting: FormSelectComponent
|
|
1191
1225
|
}
|
|
1192
|
-
], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n\n<ng-select\n appendTo=\"body\"\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n (change)=\"change($event);\"\n/>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #616161;border-width:0 5px 5px}.ng-select.ng-select-disabled>.ng-select-container{background-color:#e9ecef}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#424242;background-color:#fff;border-radius:4px;border:2px solid #e0e0e0;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#a8a8a8}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{left:0;padding-left:10px;padding-right:50px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input input{color:#424242}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#e9ecef;border:1px solid #fafafa}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#ed6b26;background-color:#fef3ee;border-radius:2px;margin-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#e9ecef}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#fde2d6}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #fbd1be}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #fbd1be}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#424242}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:5px;padding-left:3px}.ng-select .ng-clear-wrapper{color:#adadad}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#ff3b30}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#616161 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:2px solid #e0e0e0;box-shadow:0 1px #0000000f;left:0;z-index:20100!important;border-radius:4px}.ng-dropdown-panel.ng-select-top{bottom:100%;margin-bottom:2px}.ng-dropdown-panel.ng-select-bottom{top:100%;margin-top:2px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #e0e0e0;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #e0e0e0;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#fef3ee}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#fef3ee;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#ed6b26;background-color:#fef3ee}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#fef3ee;color:#424242}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#888}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type:
|
|
1226
|
+
], ngImport: i0, template: "<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n\n<ng-select\n appendTo=\"body\"\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n (change)=\"change($event);\"\n/>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #616161;border-width:0 5px 5px}.ng-select.ng-select-disabled>.ng-select-container{background-color:#e9ecef}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#424242;background-color:#fff;border-radius:4px;border:2px solid #e0e0e0;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#a8a8a8}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{left:0;padding-left:10px;padding-right:50px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input input{color:#424242}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#e9ecef;border:1px solid #fafafa}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#ed6b26;background-color:#fef3ee;border-radius:2px;margin-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#e9ecef}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#fde2d6}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #fbd1be}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #fbd1be}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#424242}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:5px;padding-left:3px}.ng-select .ng-clear-wrapper{color:#adadad}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#ff3b30}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#616161 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:2px solid #e0e0e0;box-shadow:0 1px #0000000f;left:0;z-index:20100!important;border-radius:4px}.ng-dropdown-panel.ng-select-top{bottom:100%;margin-bottom:2px}.ng-dropdown-panel.ng-select-bottom{top:100%;margin-top:2px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #e0e0e0;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #e0e0e0;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#fef3ee}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#fef3ee;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#ed6b26;background-color:#fef3ee}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#fef3ee;color:#424242}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#888}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1193
1227
|
}
|
|
1194
1228
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormSelectComponent, decorators: [{
|
|
1195
1229
|
type: Component,
|
|
@@ -2207,39 +2241,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
2207
2241
|
}], ctorParameters: () => [{ type: i1$1.Apollo }] });
|
|
2208
2242
|
|
|
2209
2243
|
class FormCurrencyInputComponent {
|
|
2210
|
-
constructor(numberPlaceholder, ch, currencyService) {
|
|
2244
|
+
constructor(placeholder, numberPlaceholder, ch, currencyService) {
|
|
2245
|
+
this.placeholder = placeholder;
|
|
2211
2246
|
this.numberPlaceholder = numberPlaceholder;
|
|
2212
2247
|
this.ch = ch;
|
|
2213
2248
|
this.currencyService = currencyService;
|
|
2214
2249
|
this.clearable = true;
|
|
2215
2250
|
this.isInputNumber = false;
|
|
2216
|
-
this.label = 'Currency';
|
|
2217
|
-
this.initialItems = [];
|
|
2218
2251
|
this.numberValue = null;
|
|
2219
2252
|
this.isNumberDisabled = false;
|
|
2220
2253
|
this.required = false;
|
|
2221
2254
|
this.disabled = false;
|
|
2222
|
-
this.bindLabel = 'label';
|
|
2223
|
-
this.bindValue = 'value';
|
|
2224
2255
|
this.onChange = new EventEmitter();
|
|
2225
|
-
this.
|
|
2226
|
-
this.
|
|
2227
|
-
this.items$ = this.query$;
|
|
2228
|
-
this.isLoading = false;
|
|
2256
|
+
this.items = [];
|
|
2257
|
+
this.isLoading = true;
|
|
2229
2258
|
this.isTouched = false;
|
|
2230
2259
|
this.value = null;
|
|
2231
2260
|
this.decimalLimiter = 0;
|
|
2232
2261
|
this.changed = (_val) => { };
|
|
2233
2262
|
this.onTouched = () => { };
|
|
2234
2263
|
}
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2264
|
+
ngOnInit() {
|
|
2265
|
+
this.sub = this.currencyService.query().subscribe({
|
|
2266
|
+
error: () => {
|
|
2267
|
+
this.items = [];
|
|
2268
|
+
this.setIsLoading(false);
|
|
2269
|
+
},
|
|
2270
|
+
next: ({ data: { webConfigMsCurrency: { data } } }) => {
|
|
2271
|
+
this.items = data.map((d) => ({ label: `[${d.code}] ${d.name}`, value: d.code, data: d }));
|
|
2272
|
+
this.setIsLoading(false);
|
|
2273
|
+
}
|
|
2274
|
+
});
|
|
2275
|
+
}
|
|
2276
|
+
ngOnDestroy() {
|
|
2277
|
+
this.sub?.unsubscribe();
|
|
2243
2278
|
}
|
|
2244
2279
|
registerOnChange(fn) { this.changed = fn; }
|
|
2245
2280
|
registerOnTouched(fn) { this.onTouched = fn; }
|
|
@@ -2258,18 +2293,15 @@ class FormCurrencyInputComponent {
|
|
|
2258
2293
|
change(e) {
|
|
2259
2294
|
if (this.isInputNumber)
|
|
2260
2295
|
this.numberValue = null;
|
|
2261
|
-
this.onChange.emit({ ccy: e, number: this.numberValue });
|
|
2262
|
-
this.initialItems = e;
|
|
2263
2296
|
if (!this.isTouched) {
|
|
2264
2297
|
this.onTouched();
|
|
2265
2298
|
this.isTouched = true;
|
|
2266
2299
|
}
|
|
2267
2300
|
if (!this.disabled) {
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
else
|
|
2271
|
-
this.value = e[this.bindValue];
|
|
2301
|
+
this.value = e?.value;
|
|
2302
|
+
this.selectedItem = e?.data;
|
|
2272
2303
|
this.changed(this.value);
|
|
2304
|
+
this.onChange.emit({ selectedItem: e, number: this.numberValue });
|
|
2273
2305
|
this.errorMsg = getFormErrorMessage(this.formControl.errors, 'Currency');
|
|
2274
2306
|
}
|
|
2275
2307
|
if (e?.magnifyValue === 1)
|
|
@@ -2279,19 +2311,19 @@ class FormCurrencyInputComponent {
|
|
|
2279
2311
|
}
|
|
2280
2312
|
numberInput({ value }) {
|
|
2281
2313
|
this.numberValue = value;
|
|
2282
|
-
this.onChange.emit({
|
|
2314
|
+
this.onChange.emit({ selectedItem: this.selectedItem, number: value });
|
|
2283
2315
|
}
|
|
2284
2316
|
limitDecimal({ charCode, preventDefault, target: { value } }) {
|
|
2285
2317
|
const reg = this.decimalLimiter > 0 ? new RegExp(`^\\d*(\\.\\d{0,${this.decimalLimiter}})?$`) : /^\d+$/;
|
|
2286
2318
|
if (!reg.test(value + String.fromCharCode(charCode)))
|
|
2287
2319
|
preventDefault();
|
|
2288
2320
|
}
|
|
2289
|
-
|
|
2290
|
-
|
|
2321
|
+
setIsLoading(b) {
|
|
2322
|
+
this.isLoading = b;
|
|
2323
|
+
this.ch.markForCheck();
|
|
2291
2324
|
}
|
|
2292
|
-
;
|
|
2293
|
-
static { this.ɵ
|
|
2294
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormCurrencyInputComponent, isStandalone: true, selector: "up-currency-input", inputs: { clearable: "clearable", isInputNumber: "isInputNumber", label: "label", initialItems: "initialItems", numberValue: "numberValue", isNumberDisabled: "isNumberDisabled", required: "required", disabled: "disabled", bindLabel: "bindLabel", bindValue: "bindValue" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
|
|
2325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormCurrencyInputComponent, deps: [{ token: 'placeholder', attribute: true }, { token: 'numberPlaceholder', attribute: true }, { token: i0.ChangeDetectorRef }, { token: CurrencyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormCurrencyInputComponent, isStandalone: true, selector: "up-currency-input", inputs: { clearable: "clearable", isInputNumber: "isInputNumber", numberValue: "numberValue", isNumberDisabled: "isNumberDisabled", required: "required", disabled: "disabled" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
|
|
2295
2327
|
{
|
|
2296
2328
|
multi: true,
|
|
2297
2329
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -2302,7 +2334,7 @@ class FormCurrencyInputComponent {
|
|
|
2302
2334
|
provide: NG_VALIDATORS,
|
|
2303
2335
|
useExisting: FormCurrencyInputComponent
|
|
2304
2336
|
}
|
|
2305
|
-
],
|
|
2337
|
+
], ngImport: i0, template: "<label class=\"form-label\" [class.required]=\"required\">Currency</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n\n <ng-template ng-label-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n<ng-template #inputNumber>\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"!isInputNumber else inputNumber\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n</ng-container>\n\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ng-select.number{min-width:105px;max-width:105px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2306
2338
|
}
|
|
2307
2339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormCurrencyInputComponent, decorators: [{
|
|
2308
2340
|
type: Component,
|
|
@@ -2323,18 +2355,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
2323
2355
|
provide: NG_VALIDATORS,
|
|
2324
2356
|
useExisting: FormCurrencyInputComponent
|
|
2325
2357
|
}
|
|
2326
|
-
], template: "<label class=\"form-label\" [class.required]=\"required\">
|
|
2358
|
+
], template: "<label class=\"form-label\" [class.required]=\"required\">Currency</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n\n <ng-template ng-label-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n<ng-template #inputNumber>\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"!isInputNumber else inputNumber\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n</ng-container>\n\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ng-select.number{min-width:105px;max-width:105px}\n"] }]
|
|
2327
2359
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2360
|
+
type: Attribute,
|
|
2361
|
+
args: ['placeholder']
|
|
2362
|
+
}] }, { type: undefined, decorators: [{
|
|
2328
2363
|
type: Attribute,
|
|
2329
2364
|
args: ['numberPlaceholder']
|
|
2330
2365
|
}] }, { type: i0.ChangeDetectorRef }, { type: CurrencyService }], propDecorators: { clearable: [{
|
|
2331
2366
|
type: Input
|
|
2332
2367
|
}], isInputNumber: [{
|
|
2333
2368
|
type: Input
|
|
2334
|
-
}], label: [{
|
|
2335
|
-
type: Input
|
|
2336
|
-
}], initialItems: [{
|
|
2337
|
-
type: Input
|
|
2338
2369
|
}], numberValue: [{
|
|
2339
2370
|
type: Input
|
|
2340
2371
|
}], isNumberDisabled: [{
|
|
@@ -2343,9 +2374,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
2343
2374
|
type: Input
|
|
2344
2375
|
}], disabled: [{
|
|
2345
2376
|
type: Input
|
|
2346
|
-
}],
|
|
2377
|
+
}], onChange: [{
|
|
2378
|
+
type: Output
|
|
2379
|
+
}] } });
|
|
2380
|
+
|
|
2381
|
+
class FormCountryInputComponent {
|
|
2382
|
+
constructor(placeholder, ch, countryService) {
|
|
2383
|
+
this.placeholder = placeholder;
|
|
2384
|
+
this.ch = ch;
|
|
2385
|
+
this.countryService = countryService;
|
|
2386
|
+
this.clearable = true;
|
|
2387
|
+
this.required = false;
|
|
2388
|
+
this.disabled = false;
|
|
2389
|
+
this.onChange = new EventEmitter();
|
|
2390
|
+
this.items = [];
|
|
2391
|
+
this.isLoading = true;
|
|
2392
|
+
this.isTouched = false;
|
|
2393
|
+
this.value = null;
|
|
2394
|
+
this.changed = (_val) => { };
|
|
2395
|
+
this.onTouched = () => { };
|
|
2396
|
+
}
|
|
2397
|
+
ngOnInit() {
|
|
2398
|
+
this.sub = this.countryService.query().subscribe({
|
|
2399
|
+
error: () => {
|
|
2400
|
+
this.items = [];
|
|
2401
|
+
this.setIsLoading(false);
|
|
2402
|
+
},
|
|
2403
|
+
next: ({ data: { webConfigMsCountry: { data } } }) => {
|
|
2404
|
+
this.items = data.map((d) => ({ label: d.name, value: d.code, data: d }));
|
|
2405
|
+
this.setIsLoading(false);
|
|
2406
|
+
}
|
|
2407
|
+
});
|
|
2408
|
+
}
|
|
2409
|
+
ngOnDestroy() {
|
|
2410
|
+
this.sub?.unsubscribe();
|
|
2411
|
+
}
|
|
2412
|
+
registerOnChange(fn) { this.changed = fn; }
|
|
2413
|
+
registerOnTouched(fn) { this.onTouched = fn; }
|
|
2414
|
+
writeValue(val) {
|
|
2415
|
+
this.value = val;
|
|
2416
|
+
this.ch.markForCheck();
|
|
2417
|
+
}
|
|
2418
|
+
setDisabledState(d) {
|
|
2419
|
+
this.disabled = d;
|
|
2420
|
+
this.ch.markForCheck();
|
|
2421
|
+
}
|
|
2422
|
+
validate(control) {
|
|
2423
|
+
this.formControl = control;
|
|
2424
|
+
return null;
|
|
2425
|
+
}
|
|
2426
|
+
change(e) {
|
|
2427
|
+
if (!this.isTouched) {
|
|
2428
|
+
this.onTouched();
|
|
2429
|
+
this.isTouched = true;
|
|
2430
|
+
}
|
|
2431
|
+
if (!this.disabled) {
|
|
2432
|
+
this.value = e?.value;
|
|
2433
|
+
this.changed(this.value);
|
|
2434
|
+
this.onChange.emit(e.data);
|
|
2435
|
+
this.errorMsg = getFormErrorMessage(this.formControl.errors, 'Country');
|
|
2436
|
+
}
|
|
2437
|
+
}
|
|
2438
|
+
setIsLoading(b) {
|
|
2439
|
+
this.isLoading = b;
|
|
2440
|
+
this.ch.markForCheck();
|
|
2441
|
+
}
|
|
2442
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormCountryInputComponent, deps: [{ token: 'placeholder', attribute: true }, { token: i0.ChangeDetectorRef }, { token: CountryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2443
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormCountryInputComponent, isStandalone: true, selector: "up-country-input", inputs: { clearable: "clearable", required: "required", disabled: "disabled" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
|
|
2444
|
+
{
|
|
2445
|
+
multi: true,
|
|
2446
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2447
|
+
useExisting: FormCountryInputComponent
|
|
2448
|
+
},
|
|
2449
|
+
{
|
|
2450
|
+
multi: true,
|
|
2451
|
+
provide: NG_VALIDATORS,
|
|
2452
|
+
useExisting: FormCountryInputComponent
|
|
2453
|
+
}
|
|
2454
|
+
], ngImport: i0, template: "<label class=\"form-label\" [class.required]=\"required\">Country</label>\n<ng-select \n class=\"flex-shrink-0\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n/>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2455
|
+
}
|
|
2456
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormCountryInputComponent, decorators: [{
|
|
2457
|
+
type: Component,
|
|
2458
|
+
args: [{ standalone: true, selector: 'up-country-input', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
2459
|
+
class: 'd-block'
|
|
2460
|
+
}, imports: [
|
|
2461
|
+
CommonModule,
|
|
2462
|
+
FormsModule,
|
|
2463
|
+
NgSelectModule
|
|
2464
|
+
], providers: [
|
|
2465
|
+
{
|
|
2466
|
+
multi: true,
|
|
2467
|
+
provide: NG_VALUE_ACCESSOR,
|
|
2468
|
+
useExisting: FormCountryInputComponent
|
|
2469
|
+
},
|
|
2470
|
+
{
|
|
2471
|
+
multi: true,
|
|
2472
|
+
provide: NG_VALIDATORS,
|
|
2473
|
+
useExisting: FormCountryInputComponent
|
|
2474
|
+
}
|
|
2475
|
+
], template: "<label class=\"form-label\" [class.required]=\"required\">Country</label>\n<ng-select \n class=\"flex-shrink-0\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n/>\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n" }]
|
|
2476
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2477
|
+
type: Attribute,
|
|
2478
|
+
args: ['placeholder']
|
|
2479
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: CountryService }], propDecorators: { clearable: [{
|
|
2347
2480
|
type: Input
|
|
2348
|
-
}],
|
|
2481
|
+
}], required: [{
|
|
2482
|
+
type: Input
|
|
2483
|
+
}], disabled: [{
|
|
2349
2484
|
type: Input
|
|
2350
2485
|
}], onChange: [{
|
|
2351
2486
|
type: Output
|
|
@@ -3566,5 +3701,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
3566
3701
|
type: Injectable
|
|
3567
3702
|
}], ctorParameters: () => [{ type: i1$2.Router }, { type: AuthService }] });
|
|
3568
3703
|
|
|
3569
|
-
export { AppletContainerComponent, ApprovalDetailComponent, ApprovalListComponent, AuditDetailComponent, AuditListComponent, AuthGuard, AuthResolver, AuthService, ButtonGroupComponent, ButtonLoadingComponent, ColumnContainerComponent, ColumnHeaderContainerComponent, CountryService, CurrencyService, FilterComponent, FormCurrencyInputComponent, FormDateComponent, FormImagePickerComponent, FormInputComponent, FormNumberComponent, FormPasswordComponent, FormSearchableSelectComponent, FormSelectComponent, FormTextareaComponent, GridPaginationComponent, GridService, GridSnapshotComponent, HeaderInterceptor, ListPaginationContainerComponent, ListSnapshotContainerComponent, LoadingPage, ModalContainerComponent, PermissionDirective, PermissionGuard, PermissionModule, PermissionService, ProfileService, RefreshTokenInterceptor, TabContentComponent, TabGroupComponent, TabsComponentModule, UnauthorizedPage, bootstrap, getFormErrorMessage };
|
|
3704
|
+
export { AppletContainerComponent, ApprovalDetailComponent, ApprovalListComponent, AuditDetailComponent, AuditListComponent, AuthGuard, AuthResolver, AuthService, ButtonGroupComponent, ButtonLoadingComponent, ColumnContainerComponent, ColumnHeaderContainerComponent, CountryService, CurrencyService, FilterComponent, FormCountryInputComponent, FormCurrencyInputComponent, FormDateComponent, FormImagePickerComponent, FormInputComponent, FormNumberComponent, FormPasswordComponent, FormSearchableSelectComponent, FormSelectComponent, FormTextareaComponent, GridPaginationComponent, GridService, GridSnapshotComponent, HeaderInterceptor, ListPaginationContainerComponent, ListSnapshotContainerComponent, LoadingPage, ModalContainerComponent, PermissionDirective, PermissionGuard, PermissionModule, PermissionService, ProfileService, RefreshTokenInterceptor, TabContentComponent, TabGroupComponent, TabsComponentModule, UnauthorizedPage, bootstrap, formatCapitalize, generateContrastColor, getFormErrorMessage };
|
|
3570
3705
|
//# sourceMappingURL=unipin-angular-applet.mjs.map
|