mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-10 13:33:21 +03:00
feat(form-compile): поддержка maxWidth/maxHeight для input и label
Добавлены численные maxWidth/maxHeight (XML <MaxWidth>/<MaxHeight>) — типичный приём для ограничения растяжения поля при autoMaxWidth: false. До этого DSL знал только булев autoMaxWidth, и ограничить ширину числом было невозможно. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
6c60398406
commit
3d80191ca7
@@ -126,7 +126,8 @@ powershell.exe -NoProfile -File .claude/skills/form-compile/scripts/form-compile
|
||||
| `skipOnInput: true` | Пропускать при обходе Tab | |
|
||||
| `inputHint` | Подсказка в пустом поле | `"Введите наименование..."` |
|
||||
| `width` / `height` | Размер | числа |
|
||||
| `autoMaxWidth: false` | Отключить авто-ширину | для фиксированных полей |
|
||||
| `autoMaxWidth: false` | Снять авто-ограничение ширины (поле растянется) | |
|
||||
| `maxWidth` / `maxHeight` | Жёсткое ограничение размера | числа; обычно вместе с `autoMaxWidth: false` |
|
||||
| `horizontalStretch: true` | Растягивать по ширине | |
|
||||
|
||||
### Чекбокс (check)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# form-compile v1.17 — Compile 1C managed form from JSON or object metadata
|
||||
# form-compile v1.18 — Compile 1C managed form from JSON or object metadata
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$JsonPath,
|
||||
@@ -1904,6 +1904,7 @@ function Emit-Element {
|
||||
# layout
|
||||
"titleLocation"=1;"representation"=1;"width"=1;"height"=1
|
||||
"horizontalStretch"=1;"verticalStretch"=1;"autoMaxWidth"=1;"autoMaxHeight"=1
|
||||
"maxWidth"=1;"maxHeight"=1
|
||||
# input-specific
|
||||
"multiLine"=1;"passwordMode"=1;"choiceButton"=1;"clearButton"=1
|
||||
"spinButton"=1;"dropListButton"=1;"markIncomplete"=1;"skipOnInput"=1;"inputHint"=1
|
||||
@@ -2095,7 +2096,9 @@ function Emit-Input {
|
||||
} elseif ($el.multiLine -eq $true) {
|
||||
X "$inner<AutoMaxWidth>false</AutoMaxWidth>"
|
||||
}
|
||||
if ($null -ne $el.maxWidth) { X "$inner<MaxWidth>$($el.maxWidth)</MaxWidth>" }
|
||||
if ($el.autoMaxHeight -eq $false) { X "$inner<AutoMaxHeight>false</AutoMaxHeight>" }
|
||||
if ($null -ne $el.maxHeight) { X "$inner<MaxHeight>$($el.maxHeight)</MaxHeight>" }
|
||||
if ($el.width) { X "$inner<Width>$($el.width)</Width>" }
|
||||
if ($el.height) { X "$inner<Height>$($el.height)</Height>" }
|
||||
if ($el.horizontalStretch -eq $true) { X "$inner<HorizontalStretch>true</HorizontalStretch>" }
|
||||
@@ -2376,7 +2379,9 @@ function Emit-Label {
|
||||
|
||||
if ($el.hyperlink -eq $true) { X "$inner<Hyperlink>true</Hyperlink>" }
|
||||
if ($el.autoMaxWidth -eq $false) { X "$inner<AutoMaxWidth>false</AutoMaxWidth>" }
|
||||
if ($null -ne $el.maxWidth) { X "$inner<MaxWidth>$($el.maxWidth)</MaxWidth>" }
|
||||
if ($el.autoMaxHeight -eq $false) { X "$inner<AutoMaxHeight>false</AutoMaxHeight>" }
|
||||
if ($null -ne $el.maxHeight) { X "$inner<MaxHeight>$($el.maxHeight)</MaxHeight>" }
|
||||
if ($el.width) { X "$inner<Width>$($el.width)</Width>" }
|
||||
if ($el.height) { X "$inner<Height>$($el.height)</Height>" }
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# form-compile v1.17 — Compile 1C managed form from JSON or object metadata
|
||||
# form-compile v1.18 — Compile 1C managed form from JSON or object metadata
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import copy
|
||||
@@ -1346,6 +1346,7 @@ KNOWN_KEYS = {
|
||||
"on", "handlers",
|
||||
"titleLocation", "representation", "width", "height",
|
||||
"horizontalStretch", "verticalStretch", "autoMaxWidth", "autoMaxHeight",
|
||||
"maxWidth", "maxHeight",
|
||||
"multiLine", "passwordMode", "choiceButton", "clearButton",
|
||||
"spinButton", "dropListButton", "markIncomplete", "skipOnInput", "inputHint",
|
||||
"hyperlink",
|
||||
@@ -1903,8 +1904,12 @@ def emit_input(lines, el, name, eid, indent):
|
||||
lines.append(f'{inner}<AutoMaxWidth>false</AutoMaxWidth>')
|
||||
elif el.get('multiLine') is True:
|
||||
lines.append(f'{inner}<AutoMaxWidth>false</AutoMaxWidth>')
|
||||
if el.get('maxWidth') is not None:
|
||||
lines.append(f'{inner}<MaxWidth>{el["maxWidth"]}</MaxWidth>')
|
||||
if el.get('autoMaxHeight') is False:
|
||||
lines.append(f'{inner}<AutoMaxHeight>false</AutoMaxHeight>')
|
||||
if el.get('maxHeight') is not None:
|
||||
lines.append(f'{inner}<MaxHeight>{el["maxHeight"]}</MaxHeight>')
|
||||
if el.get('width'):
|
||||
lines.append(f'{inner}<Width>{el["width"]}</Width>')
|
||||
if el.get('height'):
|
||||
@@ -2031,8 +2036,12 @@ def emit_label(lines, el, name, eid, indent):
|
||||
lines.append(f'{inner}<Hyperlink>true</Hyperlink>')
|
||||
if el.get('autoMaxWidth') is False:
|
||||
lines.append(f'{inner}<AutoMaxWidth>false</AutoMaxWidth>')
|
||||
if el.get('maxWidth') is not None:
|
||||
lines.append(f'{inner}<MaxWidth>{el["maxWidth"]}</MaxWidth>')
|
||||
if el.get('autoMaxHeight') is False:
|
||||
lines.append(f'{inner}<AutoMaxHeight>false</AutoMaxHeight>')
|
||||
if el.get('maxHeight') is not None:
|
||||
lines.append(f'{inner}<MaxHeight>{el["maxHeight"]}</MaxHeight>')
|
||||
if el.get('width'):
|
||||
lines.append(f'{inner}<Width>{el["width"]}</Width>')
|
||||
if el.get('height'):
|
||||
|
||||
Reference in New Issue
Block a user