mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +03:00
Add event validation and element-level stdCommand support
- stdCommand dot syntax: "Товары.Add" → Form.Item.Товары.StandardCommand.Add - Event name validation: warn on unknown events per element type (13 types, ~60 events) - Form-level event validation (19 known events) - Document events reference and popup element in SKILL.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -75,6 +75,23 @@ powershell.exe -NoProfile -File .claude\skills\form-add\scripts\form-add.ps1 -Fo
|
||||
|
||||
Группы и таблицы поддерживают `children`/`columns` для вложенных элементов.
|
||||
|
||||
### Кнопки: command и stdCommand
|
||||
|
||||
- `"command": "ИмяКоманды"` → `Form.Command.ИмяКоманды`
|
||||
- `"stdCommand": "Close"` → `Form.StandardCommand.Close`
|
||||
- `"stdCommand": "Товары.Add"` → `Form.Item.Товары.StandardCommand.Add` (стандартная команда элемента)
|
||||
|
||||
### Допустимые события (`on`)
|
||||
|
||||
Компилятор предупреждает об ошибках в именах событий. Основные:
|
||||
|
||||
- **input**: `OnChange`, `StartChoice`, `ChoiceProcessing`, `Clearing`, `AutoComplete`, `TextEditEnd`
|
||||
- **check**: `OnChange`
|
||||
- **table**: `OnStartEdit`, `OnEditEnd`, `OnChange`, `Selection`, `BeforeAddRow`, `BeforeDeleteRow`, `OnActivateRow`
|
||||
- **label/picture**: `Click`, `URLProcessing`
|
||||
- **pages**: `OnCurrentPageChange`
|
||||
- **button**: `Click`
|
||||
|
||||
### Система типов (для attributes)
|
||||
|
||||
`string`, `string(100)`, `decimal(15,2)`, `boolean`, `date`, `dateTime`, `CatalogRef.XXX`, `DocumentObject.XXX`, `ValueTable`, `DynamicList`, `Type1 | Type2` (составной).
|
||||
|
||||
@@ -233,9 +233,37 @@ function Get-ElementName {
|
||||
return "$($el.$typeKey)"
|
||||
}
|
||||
|
||||
$script:knownEvents = @{
|
||||
"input" = @("OnChange","StartChoice","ChoiceProcessing","AutoComplete","TextEditEnd","Clearing","Creating","EditTextChange")
|
||||
"check" = @("OnChange")
|
||||
"label" = @("Click","URLProcessing")
|
||||
"labelField"= @("OnChange","StartChoice","ChoiceProcessing","Click","URLProcessing","Clearing")
|
||||
"table" = @("Selection","BeforeAddRow","AfterDeleteRow","BeforeDeleteRow","OnActivateRow","OnEditEnd","OnStartEdit","BeforeRowChange","BeforeEditEnd","ValueChoice","OnActivateCell","OnActivateField","Drag","DragStart","DragCheck","DragEnd","OnGetDataAtServer","BeforeLoadUserSettingsAtServer","OnUpdateUserSettingSetAtServer","OnChange")
|
||||
"pages" = @("OnCurrentPageChange")
|
||||
"page" = @("OnCurrentPageChange")
|
||||
"button" = @("Click")
|
||||
"picField" = @("OnChange","StartChoice","ChoiceProcessing","Click","Clearing")
|
||||
"calendar" = @("OnChange","OnActivate")
|
||||
"picture" = @("Click")
|
||||
"cmdBar" = @()
|
||||
"popup" = @()
|
||||
"group" = @()
|
||||
}
|
||||
|
||||
function Emit-Events {
|
||||
param($el, [string]$elementName, [string]$indent)
|
||||
param($el, [string]$elementName, [string]$indent, [string]$typeKey)
|
||||
if (-not $el.on) { return }
|
||||
|
||||
# Validate event names
|
||||
if ($typeKey -and $script:knownEvents.ContainsKey($typeKey)) {
|
||||
$allowed = $script:knownEvents[$typeKey]
|
||||
foreach ($evt in $el.on) {
|
||||
if ($allowed.Count -gt 0 -and $allowed -notcontains "$evt") {
|
||||
Write-Host "[WARN] Unknown event '$evt' for $typeKey '$elementName'. Known: $($allowed -join ', ')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
X "$indent<Events>"
|
||||
foreach ($evt in $el.on) {
|
||||
$evtName = "$evt"
|
||||
@@ -323,7 +351,7 @@ function Emit-Input {
|
||||
if ($el.inputHint) { Emit-MLText -tag "InputHint" -text "$($el.inputHint)" -indent $inner }
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "input"
|
||||
X "$indent</InputField>"
|
||||
}
|
||||
|
||||
@@ -337,7 +365,7 @@ function Emit-Check {
|
||||
if ($el.titleLocation) { X "$inner<TitleLocation>$($el.titleLocation)</TitleLocation>" }
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "check"
|
||||
X "$indent</CheckBoxField>"
|
||||
}
|
||||
|
||||
@@ -362,7 +390,7 @@ function Emit-Label {
|
||||
if ($el.height) { X "$inner<Height>$($el.height)</Height>" }
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "label"
|
||||
X "$indent</LabelDecoration>"
|
||||
}
|
||||
|
||||
@@ -376,7 +404,7 @@ function Emit-LabelField {
|
||||
if ($el.hyperlink -eq $true) { X "$inner<Hyperlink>true</Hyperlink>" }
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "labelField"
|
||||
X "$indent</LabelField>"
|
||||
}
|
||||
|
||||
@@ -405,7 +433,7 @@ function Emit-Table {
|
||||
foreach ($col in $el.columns) { Emit-Element -el $col -indent "$inner`t" }
|
||||
X "$inner</ChildItems>"
|
||||
}
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "table"
|
||||
X "$indent</Table>"
|
||||
}
|
||||
|
||||
@@ -416,7 +444,7 @@ function Emit-Pages {
|
||||
if ($el.pagesRepresentation) { X "$inner<PagesRepresentation>$($el.pagesRepresentation)</PagesRepresentation>" }
|
||||
Emit-CommonFlags -el $el -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "pages"
|
||||
if ($el.children -and $el.children.Count -gt 0) {
|
||||
X "$inner<ChildItems>"
|
||||
foreach ($child in $el.children) { Emit-Element -el $child -indent "$inner`t" }
|
||||
@@ -453,7 +481,14 @@ function Emit-Button {
|
||||
X "$inner<Type>$btnType</Type>"
|
||||
}
|
||||
if ($el.command) { X "$inner<CommandName>Form.Command.$($el.command)</CommandName>" }
|
||||
if ($el.stdCommand) { X "$inner<CommandName>Form.StandardCommand.$($el.stdCommand)</CommandName>" }
|
||||
if ($el.stdCommand) {
|
||||
$sc = "$($el.stdCommand)"
|
||||
if ($sc -match '^(.+)\.(.+)$') {
|
||||
X "$inner<CommandName>Form.Item.$($Matches[1]).StandardCommand.$($Matches[2])</CommandName>"
|
||||
} else {
|
||||
X "$inner<CommandName>Form.StandardCommand.$sc</CommandName>"
|
||||
}
|
||||
}
|
||||
Emit-Title -el $el -name $name -indent $inner
|
||||
Emit-CommonFlags -el $el -indent $inner
|
||||
if ($el.defaultButton -eq $true) { X "$inner<DefaultButton>true</DefaultButton>" }
|
||||
@@ -466,7 +501,7 @@ function Emit-Button {
|
||||
if ($el.representation) { X "$inner<Representation>$($el.representation)</Representation>" }
|
||||
if ($el.locationInCommandBar) { X "$inner<LocationInCommandBar>$($el.locationInCommandBar)</LocationInCommandBar>" }
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "button"
|
||||
X "$indent</Button>"
|
||||
}
|
||||
|
||||
@@ -485,7 +520,7 @@ function Emit-PictureDecoration {
|
||||
if ($el.height) { X "$inner<Height>$($el.height)</Height>" }
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "picture"
|
||||
X "$indent</PictureDecoration>"
|
||||
}
|
||||
|
||||
@@ -500,7 +535,7 @@ function Emit-PictureField {
|
||||
if ($el.height) { X "$inner<Height>$($el.height)</Height>" }
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "picField"
|
||||
X "$indent</PictureField>"
|
||||
}
|
||||
|
||||
@@ -513,7 +548,7 @@ function Emit-Calendar {
|
||||
Emit-CommonFlags -el $el -indent $inner
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "calendar"
|
||||
X "$indent</CalendarField>"
|
||||
}
|
||||
|
||||
|
||||
@@ -85,6 +85,26 @@ powershell.exe -NoProfile -File .claude\skills\form-compile\scripts\form-compile
|
||||
| `on: [...]` | События с автоименованием обработчиков |
|
||||
| `handlers: {...}` | Явное задание имён обработчиков: `{"OnChange": "МоёИмя"}` |
|
||||
|
||||
### Допустимые имена событий (`on`)
|
||||
|
||||
Компилятор предупреждает о неизвестных событиях. Имена регистрозависимы — используйте точно как указано.
|
||||
|
||||
**Форма** (`events`): `OnCreateAtServer`, `OnOpen`, `BeforeClose`, `OnClose`, `NotificationProcessing`, `ChoiceProcessing`, `OnReadAtServer`, `BeforeWriteAtServer`, `OnWriteAtServer`, `AfterWriteAtServer`, `BeforeWrite`, `AfterWrite`, `FillCheckProcessingAtServer`, `BeforeLoadDataFromSettingsAtServer`, `OnLoadDataFromSettingsAtServer`, `ExternalEvent`, `Opening`
|
||||
|
||||
**input / picField**: `OnChange`, `StartChoice`, `ChoiceProcessing`, `AutoComplete`, `TextEditEnd`, `Clearing`, `Creating`, `EditTextChange`
|
||||
|
||||
**check**: `OnChange`
|
||||
|
||||
**table**: `OnStartEdit`, `OnEditEnd`, `OnChange`, `Selection`, `ValueChoice`, `BeforeAddRow`, `BeforeDeleteRow`, `AfterDeleteRow`, `BeforeRowChange`, `BeforeEditEnd`, `OnActivateRow`, `OnActivateCell`, `Drag`, `DragStart`, `DragCheck`, `DragEnd`
|
||||
|
||||
**label / picture**: `Click`, `URLProcessing`
|
||||
|
||||
**labelField**: `OnChange`, `StartChoice`, `ChoiceProcessing`, `Click`, `URLProcessing`, `Clearing`
|
||||
|
||||
**button**: `Click`
|
||||
|
||||
**pages**: `OnCurrentPageChange`
|
||||
|
||||
### Поле ввода (input)
|
||||
|
||||
| Ключ | Описание | Пример |
|
||||
@@ -164,7 +184,7 @@ powershell.exe -NoProfile -File .claude\skills\form-compile\scripts\form-compile
|
||||
| Ключ | Описание |
|
||||
|------|----------|
|
||||
| `command` | Имя команды формы → `Form.Command.Имя` |
|
||||
| `stdCommand` | Стандартная команда → `Form.StandardCommand.Close` и др. |
|
||||
| `stdCommand` | Стандартная команда: `"Close"` → `Form.StandardCommand.Close`; с точкой: `"Товары.Add"` → `Form.Item.Товары.StandardCommand.Add` |
|
||||
| `defaultButton: true` | Кнопка по умолчанию |
|
||||
| `type` | `"usual"`, `"hyperlink"`, `"commandBar"` |
|
||||
| `picture` | Картинка кнопки |
|
||||
@@ -178,6 +198,23 @@ powershell.exe -NoProfile -File .claude\skills\form-compile\scripts\form-compile
|
||||
| `autofill: true` | Автозаполнение стандартными командами |
|
||||
| `children: [...]` | Кнопки панели |
|
||||
|
||||
### Выпадающее меню (popup)
|
||||
|
||||
| Ключ | Описание |
|
||||
|------|----------|
|
||||
| `title` | Заголовок подменю |
|
||||
| `children: [...]` | Кнопки подменю |
|
||||
|
||||
Используется внутри `cmdBar` для группировки кнопок в подменю:
|
||||
```json
|
||||
{ "cmdBar": "Панель", "children": [
|
||||
{ "popup": "Добавить", "title": "Добавить", "children": [
|
||||
{ "button": "ДобавитьСтроку", "stdCommand": "Товары.Add" },
|
||||
{ "button": "ДобавитьИзДокумента", "command": "ДобавитьИзДокумента", "title": "Из документа" }
|
||||
]}
|
||||
]}
|
||||
```
|
||||
|
||||
### Реквизиты (attributes)
|
||||
|
||||
```json
|
||||
|
||||
@@ -229,11 +229,39 @@ function Get-ElementName {
|
||||
return "$($el.$typeKey)"
|
||||
}
|
||||
|
||||
$script:knownEvents = @{
|
||||
"input" = @("OnChange","StartChoice","ChoiceProcessing","AutoComplete","TextEditEnd","Clearing","Creating","EditTextChange")
|
||||
"check" = @("OnChange")
|
||||
"label" = @("Click","URLProcessing")
|
||||
"labelField"= @("OnChange","StartChoice","ChoiceProcessing","Click","URLProcessing","Clearing")
|
||||
"table" = @("Selection","BeforeAddRow","AfterDeleteRow","BeforeDeleteRow","OnActivateRow","OnEditEnd","OnStartEdit","BeforeRowChange","BeforeEditEnd","ValueChoice","OnActivateCell","OnActivateField","Drag","DragStart","DragCheck","DragEnd","OnGetDataAtServer","BeforeLoadUserSettingsAtServer","OnUpdateUserSettingSetAtServer","OnChange")
|
||||
"pages" = @("OnCurrentPageChange")
|
||||
"page" = @("OnCurrentPageChange")
|
||||
"button" = @("Click")
|
||||
"picField" = @("OnChange","StartChoice","ChoiceProcessing","Click","Clearing")
|
||||
"calendar" = @("OnChange","OnActivate")
|
||||
"picture" = @("Click")
|
||||
"cmdBar" = @()
|
||||
"popup" = @()
|
||||
"group" = @()
|
||||
}
|
||||
$script:knownFormEvents = @("OnCreateAtServer","OnOpen","BeforeClose","OnClose","NotificationProcessing","ChoiceProcessing","OnReadAtServer","AfterWriteAtServer","BeforeWriteAtServer","AfterWrite","BeforeWrite","OnWriteAtServer","FillCheckProcessingAtServer","OnLoadDataFromSettingsAtServer","BeforeLoadDataFromSettingsAtServer","OnSaveDataInSettingsAtServer","ExternalEvent","OnReopen","Opening")
|
||||
|
||||
function Emit-Events {
|
||||
param($el, [string]$elementName, [string]$indent)
|
||||
param($el, [string]$elementName, [string]$indent, [string]$typeKey)
|
||||
|
||||
if (-not $el.on) { return }
|
||||
|
||||
# Validate event names
|
||||
if ($typeKey -and $script:knownEvents.ContainsKey($typeKey)) {
|
||||
$allowed = $script:knownEvents[$typeKey]
|
||||
foreach ($evt in $el.on) {
|
||||
if ($allowed.Count -gt 0 -and $allowed -notcontains "$evt") {
|
||||
Write-Host "[WARN] Unknown event '$evt' for $typeKey '$elementName'. Known: $($allowed -join ', ')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
X "$indent<Events>"
|
||||
foreach ($evt in $el.on) {
|
||||
$evtName = "$evt"
|
||||
@@ -454,7 +482,7 @@ function Emit-Input {
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "input"
|
||||
|
||||
X "$indent</InputField>"
|
||||
}
|
||||
@@ -478,7 +506,7 @@ function Emit-Check {
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "check"
|
||||
|
||||
X "$indent</CheckBoxField>"
|
||||
}
|
||||
@@ -511,7 +539,7 @@ function Emit-Label {
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "label"
|
||||
|
||||
X "$indent</LabelDecoration>"
|
||||
}
|
||||
@@ -533,7 +561,7 @@ function Emit-LabelField {
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "labelField"
|
||||
|
||||
X "$indent</LabelField>"
|
||||
}
|
||||
@@ -581,7 +609,7 @@ function Emit-Table {
|
||||
X "$inner</ChildItems>"
|
||||
}
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "table"
|
||||
|
||||
X "$indent</Table>"
|
||||
}
|
||||
@@ -601,7 +629,7 @@ function Emit-Pages {
|
||||
# Companion
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "pages"
|
||||
|
||||
# Children (pages)
|
||||
if ($el.children -and $el.children.Count -gt 0) {
|
||||
@@ -672,7 +700,12 @@ function Emit-Button {
|
||||
X "$inner<CommandName>Form.Command.$($el.command)</CommandName>"
|
||||
}
|
||||
if ($el.stdCommand) {
|
||||
X "$inner<CommandName>Form.StandardCommand.$($el.stdCommand)</CommandName>"
|
||||
$sc = "$($el.stdCommand)"
|
||||
if ($sc -match '^(.+)\.(.+)$') {
|
||||
X "$inner<CommandName>Form.Item.$($Matches[1]).StandardCommand.$($Matches[2])</CommandName>"
|
||||
} else {
|
||||
X "$inner<CommandName>Form.StandardCommand.$sc</CommandName>"
|
||||
}
|
||||
}
|
||||
|
||||
Emit-Title -el $el -name $name -indent $inner
|
||||
@@ -699,7 +732,7 @@ function Emit-Button {
|
||||
# Companion
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "button"
|
||||
|
||||
X "$indent</Button>"
|
||||
}
|
||||
@@ -729,7 +762,7 @@ function Emit-PictureDecoration {
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "picture"
|
||||
|
||||
X "$indent</PictureDecoration>"
|
||||
}
|
||||
@@ -752,7 +785,7 @@ function Emit-PictureField {
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "picField"
|
||||
|
||||
X "$indent</PictureField>"
|
||||
}
|
||||
@@ -772,7 +805,7 @@ function Emit-Calendar {
|
||||
Emit-Companion -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner
|
||||
|
||||
Emit-Events -el $el -elementName $name -indent $inner
|
||||
Emit-Events -el $el -elementName $name -indent $inner -typeKey "calendar"
|
||||
|
||||
X "$indent</CalendarField>"
|
||||
}
|
||||
@@ -1058,6 +1091,11 @@ X "`t</AutoCommandBar>"
|
||||
|
||||
# 12e. Events
|
||||
if ($def.events) {
|
||||
foreach ($p in $def.events.PSObject.Properties) {
|
||||
if ($script:knownFormEvents -notcontains $p.Name) {
|
||||
Write-Host "[WARN] Unknown form event '$($p.Name)'. Known: $($script:knownFormEvents -join ', ')"
|
||||
}
|
||||
}
|
||||
X "`t<Events>"
|
||||
foreach ($p in $def.events.PSObject.Properties) {
|
||||
X "`t`t<Event name=`"$($p.Name)`">$($p.Value)</Event>"
|
||||
|
||||
Reference in New Issue
Block a user