@idevs/corelib 0.0.96 → 0.0.97
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/dist/formatters/formatters.js +4 -2
- package/dist/formatters/formatters.js.map +1 -1
- package/dist/helpers/custom-fonts.d.ts +3 -0
- package/dist/helpers/custom-fonts.js +11 -0
- package/dist/helpers/custom-fonts.js.map +1 -0
- package/dist/helpers/pdfExportHelper.d.ts +8 -0
- package/dist/helpers/pdfExportHelper.js +96 -0
- package/dist/helpers/pdfExportHelper.js.map +1 -1
- package/package.json +8 -4
- package/src/formatters/formatters.ts +11 -7
- package/src/helpers/custom-fonts.d.ts +5 -0
- package/src/helpers/custom-fonts.ts +18 -0
- package/src/helpers/pdfExportHelper.ts +116 -0
|
@@ -108,6 +108,7 @@ let LookupFormatter = LookupFormatter_1 = class LookupFormatter {
|
|
|
108
108
|
format(ctx) {
|
|
109
109
|
return LookupFormatter_1.format(ctx.value, this.lookupKey);
|
|
110
110
|
}
|
|
111
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
111
112
|
static format(src, lookupKey) {
|
|
112
113
|
if (!src)
|
|
113
114
|
return '';
|
|
@@ -119,14 +120,15 @@ let LookupFormatter = LookupFormatter_1 = class LookupFormatter {
|
|
|
119
120
|
const idField = lookup.idField;
|
|
120
121
|
const textField = lookup.textField;
|
|
121
122
|
const idList = src.toString().split(',');
|
|
122
|
-
return idList
|
|
123
|
+
return (idList
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
123
125
|
.map((x) => {
|
|
124
126
|
const g = items.find(i => i[idField] == x);
|
|
125
127
|
if (!g)
|
|
126
128
|
return x;
|
|
127
129
|
return htmlEncode(g[textField]);
|
|
128
130
|
})
|
|
129
|
-
.join(', ');
|
|
131
|
+
.join(', '));
|
|
130
132
|
}
|
|
131
133
|
};
|
|
132
134
|
LookupFormatter = LookupFormatter_1 = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/formatters/formatters.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/formatters/formatters.ts"],"names":[],"mappings":"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","sourcesContent":["import { Decorators } from '@serenity-is/corelib'\nimport { FormatterContext } from '@serenity-is/sleekgrid'\nimport { getLookup, htmlEncode } from '@serenity-is/corelib'\n\nexport type Formatter = {\n format(ctx: FormatterContext): string\n}\n\n@Decorators.registerFormatter('Idevs.ZeroDisplayFormatter')\nexport class ZeroDisplayFormatter implements Formatter {\n constructor(public readonly props: { displayText?: string } = {}) {\n this.props ??= {}\n this.props.displayText ??= ''\n }\n\n get displayText() {\n return this.props.displayText\n }\n set displayText(value: string) {\n this.props.displayText = value\n }\n\n format(ctx: FormatterContext): string {\n return ZeroDisplayFormatter.format(ctx.value, this.displayText)\n }\n\n static format(src: string, displayText?: string): string {\n const value = parseFloat(String(src || '0').replace(',', ''))\n if (value == 0) {\n return htmlEncode(displayText)\n }\n\n return htmlEncode(src)\n }\n}\n\n@Decorators.registerFormatter('Idevs.CheckboxFormatter')\nexport class CheckboxFormatter implements Formatter {\n constructor(\n public readonly props: {\n trueText?: string\n falseText?: string\n cssClass?: string\n trueValueIcon?: string\n falseValueIcon?: string\n },\n ) {\n this.props.cssClass ??= 'text-center fs-2 text-gray-1'\n this.props.trueText ??= '1'\n this.props.falseText ??= '0'\n this.props.trueValueIcon ??= 'mdi mdi-checkbox-marked-outline'\n this.props.falseValueIcon ??= 'mdi mdi-checkbox-blank-outline'\n }\n\n get cssClass() {\n return this.props.cssClass\n }\n set cssClass(value: string) {\n this.props.cssClass = value\n }\n\n get trueText() {\n return this.props.trueText\n }\n set trueText(value: string) {\n this.props.trueText = value\n }\n\n get falseText() {\n return this.props.falseText\n }\n set falseText(value: string) {\n this.props.falseText = value\n }\n\n get trueValueIcon() {\n return this.props.trueValueIcon\n }\n set trueValueIcon(value: string) {\n this.props.trueValueIcon = value\n }\n\n get falseValueIcon() {\n return this.props.falseValueIcon\n }\n set falseValueIcon(value: string) {\n this.props.falseValueIcon = value\n }\n\n format(ctx: FormatterContext): string {\n return CheckboxFormatter.format(\n ctx.value,\n this.cssClass,\n this.trueText,\n this.falseText,\n this.trueValueIcon,\n this.falseValueIcon,\n )\n }\n\n static format(\n src: string,\n cssClass?: string,\n trueText?: string,\n falseText?: string,\n trueValueIcon?: string,\n falseValueIcon?: string,\n ): string {\n if (src == trueText) {\n return `<i class=\"${trueValueIcon} ${cssClass}\"></i>`\n } else if (src == falseText) {\n return `<i class=\"${falseValueIcon} ${cssClass}\"></i>`\n } else {\n return htmlEncode(src)\n }\n }\n}\n\n@Decorators.registerFormatter('Idevs.LookupFormatter')\nexport class LookupFormatter implements Formatter {\n constructor(public readonly props: { lookupKey?: string } = {}) {\n this.props ??= {}\n }\n\n get lookupKey() {\n return this.props.lookupKey\n }\n set lookupKey(value: string) {\n this.props.lookupKey = value\n }\n\n format(ctx: FormatterContext): string {\n return LookupFormatter.format(ctx.value, this.lookupKey)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static format(src: any, lookupKey?: string): string {\n if (!src) return ''\n\n if (!lookupKey) return src\n\n const lookup = getLookup(lookupKey)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items = lookup.items as Array<{ [key: string]: any }>\n const idField = lookup.idField\n const textField = lookup.textField\n const idList = src.toString().split(',')\n\n return (\n idList\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map((x: any) => {\n const g = items.find(i => i[idField] == x)\n if (!g) return x\n\n return htmlEncode(g[textField])\n })\n .join(', ')\n )\n }\n}\n\n@Decorators.registerFormatter('Idevs.DateMonthFormatter')\nexport class DateMonthFormatter implements Formatter {\n @Decorators.option()\n public display: '2-digit' | 'short' | 'long'\n\n @Decorators.option()\n public locale: 'en' | 'th'\n\n format(ctx: FormatterContext): string {\n const src = ctx.value as number\n if (!src) return ''\n\n const locale = this.locale ?? 'en'\n const options = { month: this.display ?? '2-digit' }\n\n return new Date(2000, src - 1, 1).toLocaleDateString(locale, options)\n }\n}\n\nexport class idevsFormatters {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public static load() {}\n}\n"]}
|