主要功能: - 修改RequirementModal支持12个订单班选择 - 添加OrderClassIconMap图标映射组件 - Store中添加selectedOrderClass状态管理 - WorkflowPage支持传递orderClass参数 - web_result添加URL参数切换功能 - 创建order-class-handler.js动态处理页面主题 技术改进: - 创建软链接关联订单班数据目录 - 生成wenlu.json和food.json数据结构 - 删除重复的web_result目录 - 添加测试页面test-order-class.html 影响范围: - 展会策划系统现支持12个订单班 - 结果展示页面自动适配不同订单班主题 - 用户可选择不同行业生成对应方案 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
const tab = 9 /* `\t` */
|
|
const space = 32 /* ` ` */
|
|
|
|
/**
|
|
* Remove initial and final spaces and tabs at the line breaks in `value`.
|
|
* Does not trim initial and final spaces and tabs of the value itself.
|
|
*
|
|
* @param {string} value
|
|
* Value to trim.
|
|
* @returns {string}
|
|
* Trimmed value.
|
|
*/
|
|
export function trimLines(value) {
|
|
const source = String(value)
|
|
const search = /\r?\n|\r/g
|
|
let match = search.exec(source)
|
|
let last = 0
|
|
/** @type {Array<string>} */
|
|
const lines = []
|
|
|
|
while (match) {
|
|
lines.push(
|
|
trimLine(source.slice(last, match.index), last > 0, true),
|
|
match[0]
|
|
)
|
|
|
|
last = match.index + match[0].length
|
|
match = search.exec(source)
|
|
}
|
|
|
|
lines.push(trimLine(source.slice(last), last > 0, false))
|
|
|
|
return lines.join('')
|
|
}
|
|
|
|
/**
|
|
* @param {string} value
|
|
* Line to trim.
|
|
* @param {boolean} start
|
|
* Whether to trim the start of the line.
|
|
* @param {boolean} end
|
|
* Whether to trim the end of the line.
|
|
* @returns {string}
|
|
* Trimmed line.
|
|
*/
|
|
function trimLine(value, start, end) {
|
|
let startIndex = 0
|
|
let endIndex = value.length
|
|
|
|
if (start) {
|
|
let code = value.codePointAt(startIndex)
|
|
|
|
while (code === tab || code === space) {
|
|
startIndex++
|
|
code = value.codePointAt(startIndex)
|
|
}
|
|
}
|
|
|
|
if (end) {
|
|
let code = value.codePointAt(endIndex - 1)
|
|
|
|
while (code === tab || code === space) {
|
|
endIndex--
|
|
code = value.codePointAt(endIndex - 1)
|
|
}
|
|
}
|
|
|
|
return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''
|
|
}
|