1
0
Fork 0
freesewing/sites/shared/components/workbench/views/print/config.mjs

80 lines
1.9 KiB
JavaScript
Raw Normal View History

2023-09-29 16:01:27 +02:00
// __SDEFILE__ - This file is a dependency for the stand-alone environment
2023-06-04 09:59:47 -05:00
import { measurementAsMm } from 'shared/utils.mjs'
import {
PageSizeIcon,
PageOrientationIcon,
PageMarginIcon,
CoverPageIcon,
CuttingLayoutIcon,
} from 'shared/components/icons.mjs'
import { isProduction } from 'shared/config/freesewing.config.mjs'
2023-06-04 09:59:47 -05:00
export const printSettingsPath = ['print', 'pages']
2023-10-25 14:52:24 +02:00
export const defaultPrintSettings = (units, inMm = true) => ({
size: units === 'imperial' ? 'letter' : 'a4',
orientation: 'portrait',
margin: units === 'imperial' ? 12.7 : 10,
coverPage: true,
cutlist: true,
})
const sizes = ['a4', 'a3', 'a2', 'a1', 'a0', 'letter', 'legal', 'tabloid']
2023-06-04 09:59:47 -05:00
export const loadPrintConfig = (units) => {
const defaults = defaultPrintSettings(units, false)
const config = {
size: {
control: 2,
list: sizes,
dflt: defaults.size,
choiceTitles: {},
valueTitles: {},
icon: PageSizeIcon,
2023-06-04 09:59:47 -05:00
},
orientation: {
control: 2,
list: ['portrait', 'landscape'],
choiceTitles: {
portrait: 'portrait',
landscape: 'landscape',
},
valueTitles: {
portrait: 'portrait',
landscape: 'landscape',
},
2023-06-04 09:59:47 -05:00
dflt: defaults.orientation,
icon: PageOrientationIcon,
2023-06-04 09:59:47 -05:00
},
margin: {
control: 2,
min: units === 'imperial' ? 0.25 : 0.5,
max: 2.5,
step: units === 'imperial' ? 0.125 : 0.1,
dflt: defaults.margin,
icon: PageMarginIcon,
2023-06-04 09:59:47 -05:00
},
coverPage: {
control: 3,
dflt: defaults.coverPage,
icon: CoverPageIcon,
2023-06-04 09:59:47 -05:00
},
cutlist: {
control: 3,
dflt: defaults.cutlist,
icon: CuttingLayoutIcon,
2023-06-04 09:59:47 -05:00
},
}
sizes.forEach((s) => {
config.size.choiceTitles[s] = s
config.size.valueTitles[s] = s
})
/*
* Don't include cutlist in production until it's ready to go
*/
if (isProduction) delete config.cutlist
2023-06-04 09:59:47 -05:00
return config
}