md2cv 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/CHANGELOG.md +19 -0
- package/LICENSE +674 -0
- package/README.md +219 -0
- package/dist/bin.d.ts +6 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +10 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/index.d.ts +50 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +278 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/generator/index.d.ts +36 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +302 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/resume_en.d.ts +22 -0
- package/dist/generator/resume_en.d.ts.map +1 -0
- package/dist/generator/resume_en.js +524 -0
- package/dist/generator/resume_en.js.map +1 -0
- package/dist/generator/resume_ja.d.ts +22 -0
- package/dist/generator/resume_ja.d.ts.map +1 -0
- package/dist/generator/resume_ja.js +440 -0
- package/dist/generator/resume_ja.js.map +1 -0
- package/dist/generator/rirekisho/components.d.ts +83 -0
- package/dist/generator/rirekisho/components.d.ts.map +1 -0
- package/dist/generator/rirekisho/components.js +405 -0
- package/dist/generator/rirekisho/components.js.map +1 -0
- package/dist/generator/rirekisho/data.d.ts +18 -0
- package/dist/generator/rirekisho/data.d.ts.map +1 -0
- package/dist/generator/rirekisho/data.js +274 -0
- package/dist/generator/rirekisho/data.js.map +1 -0
- package/dist/generator/rirekisho/index.d.ts +20 -0
- package/dist/generator/rirekisho/index.d.ts.map +1 -0
- package/dist/generator/rirekisho/index.js +67 -0
- package/dist/generator/rirekisho/index.js.map +1 -0
- package/dist/generator/rirekisho/layout.d.ts +20 -0
- package/dist/generator/rirekisho/layout.d.ts.map +1 -0
- package/dist/generator/rirekisho/layout.js +354 -0
- package/dist/generator/rirekisho/layout.js.map +1 -0
- package/dist/generator/rirekisho/styles.d.ts +9 -0
- package/dist/generator/rirekisho/styles.d.ts.map +1 -0
- package/dist/generator/rirekisho/styles.js +362 -0
- package/dist/generator/rirekisho/styles.js.map +1 -0
- package/dist/generator/rirekisho/types.d.ts +163 -0
- package/dist/generator/rirekisho/types.d.ts.map +1 -0
- package/dist/generator/rirekisho/types.js +80 -0
- package/dist/generator/rirekisho/types.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/index.d.ts +21 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +639 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/types/config.d.ts +64 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/errors.d.ts +78 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +146 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/metadata.d.ts +55 -0
- package/dist/types/metadata.d.ts.map +1 -0
- package/dist/types/metadata.js +136 -0
- package/dist/types/metadata.js.map +1 -0
- package/dist/types/result.d.ts +50 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +74 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/sections.d.ts +168 -0
- package/dist/types/sections.d.ts.map +1 -0
- package/dist/types/sections.js +122 -0
- package/dist/types/sections.js.map +1 -0
- package/dist/validator/index.d.ts +20 -0
- package/dist/validator/index.d.ts.map +1 -0
- package/dist/validator/index.js +67 -0
- package/dist/validator/index.js.map +1 -0
- package/examples/example-cv-en.md +77 -0
- package/examples/example-cv-ja.md +116 -0
- package/examples/sample-photo.png +0 -0
- package/package.json +93 -0
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout calculation for Rirekisho (履歴書)
|
|
3
|
+
*
|
|
4
|
+
* This module calculates the optimal layout for the rirekisho document,
|
|
5
|
+
* ensuring that:
|
|
6
|
+
* 1. All content fits within the page
|
|
7
|
+
* 2. Left and right page bottoms align perfectly
|
|
8
|
+
* 3. Font sizes don't go below minimum
|
|
9
|
+
* 4. Each section has at least its minimum height
|
|
10
|
+
*/
|
|
11
|
+
import { FIXED_DIMENSIONS, FONT_SIZE, PAPER_SIZES, PREFERRED_ROW_COUNTS, ROW_HEIGHT, SCALE_FACTORS, SECTION_HEIGHTS, } from './types.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Helper Functions
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Calculate the height of the left page header section
|
|
17
|
+
* (title, name, birth/gender, addresses)
|
|
18
|
+
*/
|
|
19
|
+
function calculateLeftHeaderHeight(scale) {
|
|
20
|
+
const d = FIXED_DIMENSIONS;
|
|
21
|
+
return (d.headerHeight * scale +
|
|
22
|
+
d.nameRowHeight * scale +
|
|
23
|
+
d.nameMainHeight * scale +
|
|
24
|
+
d.birthGenderHeight * scale +
|
|
25
|
+
d.addressRowHeight * scale * 2);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Calculate table height from row count and row height
|
|
29
|
+
* +1 for header row
|
|
30
|
+
*/
|
|
31
|
+
function calculateTableHeight(dataRowCount, rowHeight) {
|
|
32
|
+
return (dataRowCount + 1) * rowHeight;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Calculate optimal allocation of space on the right page
|
|
36
|
+
*
|
|
37
|
+
* Priority rules:
|
|
38
|
+
* 1. When license data is large: reduce motivation/notes height first, then reduce history rows
|
|
39
|
+
* 2. When history data is large: reduce license rows if possible, then reduce motivation/notes height
|
|
40
|
+
* 3. When both are large: reduce motivation/notes to minimum height
|
|
41
|
+
* - If still doesn't fit: reduce row height and font size (applied to all tables on both pages)
|
|
42
|
+
*
|
|
43
|
+
* The algorithm starts with preferred row counts and reduces as needed while
|
|
44
|
+
* maintaining minimum constraints.
|
|
45
|
+
*/
|
|
46
|
+
function allocateRightPageSpace(params) {
|
|
47
|
+
const { availableHeight, historyOverflow, licenseDataRows, tableRowHeight, tableMargin, scale, paperSize, hideMotivation, totalHistoryDataRows, leftTableAreaHeight, } = params;
|
|
48
|
+
const preferred = PREFERRED_ROW_COUNTS[paperSize];
|
|
49
|
+
const motivationMinHeight = hideMotivation ? 0 : SECTION_HEIGHTS.motivationMin * scale;
|
|
50
|
+
const notesMinHeight = SECTION_HEIGHTS.notesMin * scale;
|
|
51
|
+
// Row height and font size constraints
|
|
52
|
+
const minRowHeight = ROW_HEIGHT.min * scale;
|
|
53
|
+
const defaultFontSize = FONT_SIZE.default * scale;
|
|
54
|
+
const minFontSize = FONT_SIZE.min * scale;
|
|
55
|
+
// History extra rows (学歴, 職歴, 現在に至る, 以上)
|
|
56
|
+
const historyExtraRows = 4;
|
|
57
|
+
// Minimum row counts: must show all data, at least 1 row
|
|
58
|
+
const minHistoryRows = Math.max(1, historyOverflow);
|
|
59
|
+
const minLicenseRows = Math.max(1, licenseDataRows);
|
|
60
|
+
// Start with preferred row counts (but at least enough for data)
|
|
61
|
+
let rightHistoryRows = Math.max(preferred.rightHistory, minHistoryRows);
|
|
62
|
+
let licenseRows = Math.max(preferred.license, minLicenseRows);
|
|
63
|
+
let currentRowHeight = tableRowHeight;
|
|
64
|
+
let currentFontSize = defaultFontSize;
|
|
65
|
+
// Calculate how many left history rows fit with a given row height
|
|
66
|
+
const calcLeftHistoryRows = (rowHeight) => {
|
|
67
|
+
return Math.floor(leftTableAreaHeight / rowHeight) - 2; // -1 for header, -1 for safety
|
|
68
|
+
};
|
|
69
|
+
// Calculate history overflow with a given row height
|
|
70
|
+
const calcHistoryOverflow = (rowHeight) => {
|
|
71
|
+
const leftRows = calcLeftHistoryRows(rowHeight);
|
|
72
|
+
const totalNeeded = totalHistoryDataRows + historyExtraRows;
|
|
73
|
+
return Math.max(0, totalNeeded - leftRows);
|
|
74
|
+
};
|
|
75
|
+
// Calculate initial heights with preferred 6:4 ratio for motivation/notes
|
|
76
|
+
const calcMotivationNotesHeights = (remaining) => {
|
|
77
|
+
if (hideMotivation) {
|
|
78
|
+
return { motivation: 0, notes: Math.max(notesMinHeight, remaining) };
|
|
79
|
+
}
|
|
80
|
+
const totalMin = motivationMinHeight + notesMinHeight;
|
|
81
|
+
if (remaining >= totalMin) {
|
|
82
|
+
const extra = remaining - totalMin;
|
|
83
|
+
return {
|
|
84
|
+
motivation: motivationMinHeight + extra * 0.6,
|
|
85
|
+
notes: notesMinHeight + extra * 0.4,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Below minimum - proportionally reduce
|
|
89
|
+
const ratio = Math.max(0, remaining / totalMin);
|
|
90
|
+
return {
|
|
91
|
+
motivation: motivationMinHeight * ratio,
|
|
92
|
+
notes: notesMinHeight * ratio,
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
// Calculate remaining space for motivation/notes (with variable row height)
|
|
96
|
+
const calcRemainingForSections = (histRows, licRows, rowHeight) => {
|
|
97
|
+
const histHeight = calculateTableHeight(histRows, rowHeight);
|
|
98
|
+
const licHeight = calculateTableHeight(licRows, rowHeight);
|
|
99
|
+
const marginCount = hideMotivation ? 2 : 3;
|
|
100
|
+
return availableHeight - histHeight - licHeight - marginCount * tableMargin;
|
|
101
|
+
};
|
|
102
|
+
// Calculate total height (with variable row height)
|
|
103
|
+
const calcTotalHeight = (histRows, licRows, motHeight, notHeight, rowHeight) => {
|
|
104
|
+
const histHeight = calculateTableHeight(histRows, rowHeight);
|
|
105
|
+
const licHeight = calculateTableHeight(licRows, rowHeight);
|
|
106
|
+
const marginCount = hideMotivation ? 2 : 3;
|
|
107
|
+
return histHeight + licHeight + motHeight + notHeight + marginCount * tableMargin;
|
|
108
|
+
};
|
|
109
|
+
// Check if current allocation fits (with variable row height)
|
|
110
|
+
const fitsInAvailable = (histRows, licRows, motHeight, notHeight, rowHeight) => {
|
|
111
|
+
const total = calcTotalHeight(histRows, licRows, motHeight, notHeight, rowHeight);
|
|
112
|
+
return total <= availableHeight + 0.1; // Small tolerance for floating point
|
|
113
|
+
};
|
|
114
|
+
// Determine which data is "large" (exceeds preferred)
|
|
115
|
+
const historyIsLarge = historyOverflow > preferred.rightHistory;
|
|
116
|
+
const licenseIsLarge = licenseDataRows > preferred.license;
|
|
117
|
+
// Initial calculation with preferred rows
|
|
118
|
+
let remaining = calcRemainingForSections(rightHistoryRows, licenseRows, currentRowHeight);
|
|
119
|
+
let { motivation: motivationHeight, notes: notesHeight } = calcMotivationNotesHeights(remaining);
|
|
120
|
+
// If everything fits, we're done
|
|
121
|
+
if (fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight)) {
|
|
122
|
+
return {
|
|
123
|
+
rightHistoryRows,
|
|
124
|
+
licenseRows,
|
|
125
|
+
motivationHeight,
|
|
126
|
+
notesHeight,
|
|
127
|
+
totalHeight: availableHeight,
|
|
128
|
+
adjustedRowHeight: currentRowHeight,
|
|
129
|
+
adjustedFontSize: currentFontSize,
|
|
130
|
+
overflows: false,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
// Need to reduce - apply priority rules
|
|
134
|
+
if (licenseIsLarge && !historyIsLarge) {
|
|
135
|
+
// Priority 1: License is large
|
|
136
|
+
// Step 1: Reduce motivation/notes to minimum
|
|
137
|
+
motivationHeight = motivationMinHeight;
|
|
138
|
+
notesHeight = notesMinHeight;
|
|
139
|
+
if (!fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight)) {
|
|
140
|
+
// Step 2: Reduce history rows (empty rows first)
|
|
141
|
+
while (rightHistoryRows > minHistoryRows) {
|
|
142
|
+
rightHistoryRows--;
|
|
143
|
+
if (fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight))
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else if (historyIsLarge && !licenseIsLarge) {
|
|
149
|
+
// Priority 2: History is large
|
|
150
|
+
// Step 1: Reduce license rows (empty rows first)
|
|
151
|
+
while (licenseRows > minLicenseRows) {
|
|
152
|
+
licenseRows--;
|
|
153
|
+
remaining = calcRemainingForSections(rightHistoryRows, licenseRows, currentRowHeight);
|
|
154
|
+
({ motivation: motivationHeight, notes: notesHeight } = calcMotivationNotesHeights(remaining));
|
|
155
|
+
if (fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight))
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
if (!fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight)) {
|
|
159
|
+
// Step 2: Reduce motivation/notes to minimum
|
|
160
|
+
motivationHeight = motivationMinHeight;
|
|
161
|
+
notesHeight = notesMinHeight;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// Priority 3: Both are large (or neither but still doesn't fit)
|
|
166
|
+
// Reduce motivation/notes to minimum first
|
|
167
|
+
motivationHeight = motivationMinHeight;
|
|
168
|
+
notesHeight = notesMinHeight;
|
|
169
|
+
// If still doesn't fit, reduce empty rows from both tables
|
|
170
|
+
while (!fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight)) {
|
|
171
|
+
// Alternate reducing license and history empty rows
|
|
172
|
+
let reduced = false;
|
|
173
|
+
if (licenseRows > minLicenseRows) {
|
|
174
|
+
licenseRows--;
|
|
175
|
+
reduced = true;
|
|
176
|
+
}
|
|
177
|
+
if (!fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight) && rightHistoryRows > minHistoryRows) {
|
|
178
|
+
rightHistoryRows--;
|
|
179
|
+
reduced = true;
|
|
180
|
+
}
|
|
181
|
+
if (!reduced)
|
|
182
|
+
break; // Can't reduce anymore
|
|
183
|
+
}
|
|
184
|
+
// If still doesn't fit after reducing rows, reduce row height and font size
|
|
185
|
+
// This affects all tables on both left and right pages
|
|
186
|
+
if (!fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight)) {
|
|
187
|
+
// Calculate the optimal row height that fits all content
|
|
188
|
+
// We need to find a row height where:
|
|
189
|
+
// 1. Left page can fit leftHistoryRows (calculated from row height)
|
|
190
|
+
// 2. Right page can fit rightHistoryRows + licenseRows + motivation + notes
|
|
191
|
+
// Binary search for optimal row height
|
|
192
|
+
let lowHeight = minRowHeight;
|
|
193
|
+
let highHeight = tableRowHeight;
|
|
194
|
+
let bestRowHeight = minRowHeight;
|
|
195
|
+
for (let i = 0; i < 20; i++) { // Max 20 iterations for precision
|
|
196
|
+
const midHeight = (lowHeight + highHeight) / 2;
|
|
197
|
+
// Recalculate overflow with this row height
|
|
198
|
+
const newOverflow = calcHistoryOverflow(midHeight);
|
|
199
|
+
const newRightHistoryRows = Math.max(1, newOverflow);
|
|
200
|
+
// Check if right page fits
|
|
201
|
+
const marginCount = hideMotivation ? 2 : 3;
|
|
202
|
+
const rightTableRows = newRightHistoryRows + 1 + licenseRows + 1; // +1 for headers
|
|
203
|
+
const rightTablesHeight = rightTableRows * midHeight;
|
|
204
|
+
const rightTotalHeight = rightTablesHeight + motivationMinHeight + notesMinHeight + marginCount * tableMargin;
|
|
205
|
+
if (rightTotalHeight <= availableHeight + 0.1) {
|
|
206
|
+
// This height works, try larger
|
|
207
|
+
bestRowHeight = midHeight;
|
|
208
|
+
lowHeight = midHeight;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
// Too large, try smaller
|
|
212
|
+
highHeight = midHeight;
|
|
213
|
+
}
|
|
214
|
+
// Stop if converged
|
|
215
|
+
if (highHeight - lowHeight < 0.01)
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
// Use the best row height found
|
|
219
|
+
if (bestRowHeight >= minRowHeight) {
|
|
220
|
+
currentRowHeight = bestRowHeight;
|
|
221
|
+
// Recalculate right history rows with new row height
|
|
222
|
+
const newOverflow = calcHistoryOverflow(currentRowHeight);
|
|
223
|
+
rightHistoryRows = Math.max(1, newOverflow);
|
|
224
|
+
// Scale font size proportionally
|
|
225
|
+
const heightRatio = currentRowHeight / tableRowHeight;
|
|
226
|
+
currentFontSize = Math.max(minFontSize, defaultFontSize * heightRatio);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
// Use minimum row height - content may overflow but we can't go smaller
|
|
230
|
+
currentRowHeight = minRowHeight;
|
|
231
|
+
currentFontSize = minFontSize;
|
|
232
|
+
// Recalculate right history rows with minimum row height
|
|
233
|
+
const newOverflow = calcHistoryOverflow(currentRowHeight);
|
|
234
|
+
rightHistoryRows = Math.max(1, newOverflow);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// Final recalculation - distribute any remaining space to motivation/notes
|
|
239
|
+
remaining = calcRemainingForSections(rightHistoryRows, licenseRows, currentRowHeight);
|
|
240
|
+
({ motivation: motivationHeight, notes: notesHeight } = calcMotivationNotesHeights(remaining));
|
|
241
|
+
// Check if content still overflows after all adjustments
|
|
242
|
+
const finalFits = fitsInAvailable(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight);
|
|
243
|
+
return {
|
|
244
|
+
rightHistoryRows,
|
|
245
|
+
licenseRows,
|
|
246
|
+
motivationHeight,
|
|
247
|
+
notesHeight,
|
|
248
|
+
totalHeight: calcTotalHeight(rightHistoryRows, licenseRows, motivationHeight, notesHeight, currentRowHeight),
|
|
249
|
+
adjustedRowHeight: currentRowHeight,
|
|
250
|
+
adjustedFontSize: currentFontSize,
|
|
251
|
+
overflows: !finalFits,
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
// ============================================================================
|
|
255
|
+
// Main Layout Calculation
|
|
256
|
+
// ============================================================================
|
|
257
|
+
/**
|
|
258
|
+
* Calculate complete layout dimensions for the rirekisho document
|
|
259
|
+
*/
|
|
260
|
+
export function calculateLayout(input) {
|
|
261
|
+
const { paperSize, hideMotivation, dataCounts } = input;
|
|
262
|
+
const { historyDataRows, licenseDataRows } = dataCounts;
|
|
263
|
+
// Paper and scale
|
|
264
|
+
const paper = PAPER_SIZES[paperSize];
|
|
265
|
+
const scale = SCALE_FACTORS[paperSize];
|
|
266
|
+
// Page dimensions
|
|
267
|
+
const margin = FIXED_DIMENSIONS.margin * scale;
|
|
268
|
+
const marginBottom = FIXED_DIMENSIONS.marginBottom * scale;
|
|
269
|
+
const centerGap = FIXED_DIMENSIONS.centerGap * scale;
|
|
270
|
+
const pageWidth = (paper.width - margin * 2 - centerGap) / 2;
|
|
271
|
+
const pageHeight = paper.height - margin - marginBottom;
|
|
272
|
+
const footerHeight = FIXED_DIMENSIONS.footerHeight * scale;
|
|
273
|
+
const tableMargin = FIXED_DIMENSIONS.tableMargin * scale;
|
|
274
|
+
// Table dimensions (default values, may be adjusted by allocation)
|
|
275
|
+
const defaultTableRowHeight = ROW_HEIGHT.default * scale;
|
|
276
|
+
// Left page layout
|
|
277
|
+
const leftHeaderHeight = calculateLeftHeaderHeight(scale);
|
|
278
|
+
const leftContentHeight = pageHeight - footerHeight;
|
|
279
|
+
const leftTableAreaHeight = leftContentHeight - leftHeaderHeight - tableMargin;
|
|
280
|
+
// Calculate how many rows fit on left page (using default row height initially)
|
|
281
|
+
// -1 for header row, -1 for safety margin
|
|
282
|
+
const defaultLeftHistoryRows = Math.floor(leftTableAreaHeight / defaultTableRowHeight) - 2;
|
|
283
|
+
// Calculate history overflow to right page (with default row height)
|
|
284
|
+
const historyExtraRows = 4; // 学歴, 職歴, 現在に至る, 以上
|
|
285
|
+
const totalHistoryNeeded = historyDataRows + historyExtraRows;
|
|
286
|
+
const historyOverflow = Math.max(0, totalHistoryNeeded - defaultLeftHistoryRows);
|
|
287
|
+
// Right page layout - allocate space optimally
|
|
288
|
+
const rightContentHeight = pageHeight - footerHeight;
|
|
289
|
+
const allocation = allocateRightPageSpace({
|
|
290
|
+
availableHeight: rightContentHeight,
|
|
291
|
+
historyOverflow,
|
|
292
|
+
licenseDataRows,
|
|
293
|
+
tableRowHeight: defaultTableRowHeight,
|
|
294
|
+
tableMargin,
|
|
295
|
+
scale,
|
|
296
|
+
paperSize,
|
|
297
|
+
hideMotivation,
|
|
298
|
+
totalHistoryDataRows: historyDataRows,
|
|
299
|
+
leftTableAreaHeight,
|
|
300
|
+
});
|
|
301
|
+
// Use adjusted row height and font size from allocation
|
|
302
|
+
const tableRowHeight = allocation.adjustedRowHeight;
|
|
303
|
+
const tableFontSize = allocation.adjustedFontSize;
|
|
304
|
+
// Recalculate left history rows with the (possibly adjusted) row height
|
|
305
|
+
const leftHistoryRows = Math.floor(leftTableAreaHeight / tableRowHeight) - 2;
|
|
306
|
+
// Calculate table heights with the (possibly adjusted) row height
|
|
307
|
+
const leftTableHeight = calculateTableHeight(leftHistoryRows, tableRowHeight);
|
|
308
|
+
const rightHistoryTableHeight = calculateTableHeight(allocation.rightHistoryRows, tableRowHeight);
|
|
309
|
+
const licenseTableHeight = calculateTableHeight(allocation.licenseRows, tableRowHeight);
|
|
310
|
+
return {
|
|
311
|
+
paper,
|
|
312
|
+
scale,
|
|
313
|
+
margin,
|
|
314
|
+
marginBottom,
|
|
315
|
+
centerGap,
|
|
316
|
+
pageWidth,
|
|
317
|
+
pageHeight,
|
|
318
|
+
photoWidth: FIXED_DIMENSIONS.photoWidth * scale,
|
|
319
|
+
contactWidth: FIXED_DIMENSIONS.contactWidth * scale,
|
|
320
|
+
genderWidth: FIXED_DIMENSIONS.genderWidth * scale,
|
|
321
|
+
headerHeight: FIXED_DIMENSIONS.headerHeight * scale,
|
|
322
|
+
nameRowHeight: FIXED_DIMENSIONS.nameRowHeight * scale,
|
|
323
|
+
nameMainHeight: FIXED_DIMENSIONS.nameMainHeight * scale,
|
|
324
|
+
birthGenderHeight: FIXED_DIMENSIONS.birthGenderHeight * scale,
|
|
325
|
+
addressRowHeight: FIXED_DIMENSIONS.addressRowHeight * scale,
|
|
326
|
+
addressFuriganaHeight: FIXED_DIMENSIONS.addressFuriganaHeight * scale,
|
|
327
|
+
tableRowHeight,
|
|
328
|
+
tableFontSize,
|
|
329
|
+
tableMargin,
|
|
330
|
+
yearColumnWidth: FIXED_DIMENSIONS.yearColumnWidth * scale,
|
|
331
|
+
monthColumnWidth: FIXED_DIMENSIONS.monthColumnWidth * scale,
|
|
332
|
+
leftHistoryRows,
|
|
333
|
+
rightHistoryRows: allocation.rightHistoryRows,
|
|
334
|
+
licenseRows: allocation.licenseRows,
|
|
335
|
+
leftTableHeight,
|
|
336
|
+
rightHistoryTableHeight,
|
|
337
|
+
licenseTableHeight,
|
|
338
|
+
motivationMinHeight: allocation.motivationHeight,
|
|
339
|
+
notesMinHeight: allocation.notesHeight,
|
|
340
|
+
footerHeight,
|
|
341
|
+
hideMotivation,
|
|
342
|
+
overflows: allocation.overflows,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Validate that the layout can accommodate the data
|
|
347
|
+
*/
|
|
348
|
+
export function validateLayout(layout) {
|
|
349
|
+
if (layout.overflows) {
|
|
350
|
+
return 'データが多すぎてページに収まりません。学歴・職歴または免許・資格の数を減らしてください。';
|
|
351
|
+
}
|
|
352
|
+
return null;
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/generator/rirekisho/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS styles for Rirekisho (履歴書)
|
|
3
|
+
*/
|
|
4
|
+
import type { LayoutDimensions } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Generate complete CSS for the rirekisho document
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateCSS(layout: LayoutDimensions): string;
|
|
9
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/generator/rirekisho/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkBnD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAiW5D"}
|