目标组件的字段标识。
该字段标识用于在 HijackedComponent.infect 或 HijackedComponent.compose 方法中指定需要被改造的目标宜搭组件。
周次显示模式。
"string":显示文本与实际值均为 "第XX周" 格式。"number":显示文本与实际值均为纯数字字符串。默认值为 "string"。
相对于当前日期的毫秒偏移量。
默认值为 0。正值表示向后偏移,负值表示向前偏移。
组件的选项列表。
每个选项包含 text(显示文本)与 value(实际值)两个字段,适用于
下拉框、单选框等宜搭组件。该列表通常由 HijackedComponent.main
方法计算得出,并通过 VirtualComponent.setOptions 注入到目标组件中。
时间语义化预设配置项。
该配置项在实例化时传入,供 HijackedComponent.main 方法使用, 用于控制学年、学期、周次等时间相关组件的计算基准。
周次选项跨越的周数。
默认值为 52。有效取值范围为 [1, 99]。
组件的默认值。
该值通常由 HijackedComponent.main 方法计算得出,并通过 VirtualComponent.setDefaultValue 注入到目标组件中。
将当前组件与另一个组件进行组合,生成新的虚拟组件。
组合逻辑如下:
例如,若当前组件值为 "2023-2024学年",另一组件值为 "第一学期",
则组合后的值为 "2023-2024学年第一学期"。
另一个劫持组件实例。
组合后的虚拟组件实例。
将当前劫持组件转换为虚拟组件,并绑定到指定的目标字段。
该方法会创建一个 Infection.VirtualComponent 实例,并将当前组件的 值、选项与目标字段标识注入其中。返回的虚拟组件可进一步调用 VirtualComponent.setDefaultValue 与 VirtualComponent.setOptions 完成实际改造。
目标宜搭组件的字段标识,例如 "selectField_xxx"。
绑定后的虚拟组件实例。
受保护main受保护生成周次选项列表与默认值。
该方法首先根据 mode 生成 range 个周次选项,
然后通过 Utils.SchoolDays.benchmarkDateTime 与
Utils.SchoolDays.semesterStart 计算当前周次。若计算结果超出
[1, range] 范围,则默认值为 "Unexpected week {deltaWeek}!"。
当前组件实例。
设置周次计算的日期偏移量。
传入值会被乘以 Utils.DateX.ONE_DAY 转换为毫秒偏移量。
例如 offset = -7 表示将计算基准向前推 7 天。
以天为单位的偏移量。
当前组件实例,支持链式调用。
静态of创建并初始化一个劫持组件实例。
工厂方法会创建子类实例,并将传入的预设配置合并到 HijackedComponent.preset 中,然后自动调用 HijackedComponent.main 完成初始化。
具体的劫持组件子类类型。
可选的时间语义化预设配置项,将传入组件实例供其主逻辑使用。
已完成初始化的组件实例。
周次选择组件。
该组件基于 Utils.SchoolDays 计算当前周次,并生成
"第01周"至"第{range}周"或"1"至"{range}"的选项列表, 默认值为当前周次。可通过 offset 调整计算基准, 通过 mode 切换显示格式。添加于
26.7.1