python-oracle-apex 0.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- python_oracle_apex-0.0.0/PKG-INFO +27 -0
- python_oracle_apex-0.0.0/README.md +16 -0
- python_oracle_apex-0.0.0/pyproject.toml +24 -0
- python_oracle_apex-0.0.0/pyproject.toml.orig +25 -0
- python_oracle_apex-0.0.0/src/python_oracle_apex/__init__.py +6 -0
- python_oracle_apex-0.0.0/src/python_oracle_apex/apexlang-26.1.peg +387 -0
- python_oracle_apex-0.0.0/src/python_oracle_apex/grammar.py +974 -0
- python_oracle_apex-0.0.0/src/python_oracle_apex/objects.py +295 -0
- python_oracle_apex-0.0.0/src/python_oracle_apex/reader.py +189 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: python-oracle-apex
|
|
3
|
+
Version: 0.0.0
|
|
4
|
+
Summary: Parsing files exported from Oracle APEX
|
|
5
|
+
Author: Maurice Koster
|
|
6
|
+
Author-email: Maurice Koster <maurice@mauricekoster.com>
|
|
7
|
+
Requires-Dist: parsimonious>=0.11.0
|
|
8
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
9
|
+
Requires-Python: >=3.13
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
|
|
12
|
+
# python-oracle-apex
|
|
13
|
+
Parsing an APEX lang export file into Objects
|
|
14
|
+
|
|
15
|
+
## Oracle APEX
|
|
16
|
+
|
|
17
|
+
## APEXLang - reading .apx files
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
page = parse_apex("examples/login.apx")
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Reading yaml files, pre APEX 26.1
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
page = parse_yaml("examples/login.yaml")
|
|
27
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# python-oracle-apex
|
|
2
|
+
Parsing an APEX lang export file into Objects
|
|
3
|
+
|
|
4
|
+
## Oracle APEX
|
|
5
|
+
|
|
6
|
+
## APEXLang - reading .apx files
|
|
7
|
+
|
|
8
|
+
```python
|
|
9
|
+
page = parse_apex("examples/login.apx")
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Reading yaml files, pre APEX 26.1
|
|
13
|
+
|
|
14
|
+
```python
|
|
15
|
+
page = parse_yaml("examples/login.yaml")
|
|
16
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "python-oracle-apex"
|
|
3
|
+
version = "0.0.0"
|
|
4
|
+
description = "Parsing files exported from Oracle APEX"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.13"
|
|
7
|
+
dependencies = [
|
|
8
|
+
"parsimonious>=0.11.0",
|
|
9
|
+
"pyyaml>=6.0.3",
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
[[project.authors]]
|
|
13
|
+
name = "Maurice Koster"
|
|
14
|
+
email = "maurice@mauricekoster.com"
|
|
15
|
+
|
|
16
|
+
[project.scripts]
|
|
17
|
+
python-oracle-apex = "python_oracle_apex:main"
|
|
18
|
+
|
|
19
|
+
[build-system]
|
|
20
|
+
requires = ["uv_build>=0.12.7,<0.13.0"]
|
|
21
|
+
build-backend = "uv_build"
|
|
22
|
+
|
|
23
|
+
[dependency-groups]
|
|
24
|
+
dev = ["pytest>=9.1.1"]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "python-oracle-apex"
|
|
3
|
+
version = "0.0.0"
|
|
4
|
+
description = "Parsing files exported from Oracle APEX"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
authors = [
|
|
7
|
+
{ name = "Maurice Koster", email = "maurice@mauricekoster.com" }
|
|
8
|
+
]
|
|
9
|
+
requires-python = ">=3.13"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"parsimonious>=0.11.0",
|
|
12
|
+
"pyyaml>=6.0.3",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[project.scripts]
|
|
16
|
+
python-oracle-apex = "python_oracle_apex:main"
|
|
17
|
+
|
|
18
|
+
[build-system]
|
|
19
|
+
requires = ["uv_build>=0.12.7,<0.13.0"]
|
|
20
|
+
build-backend = "uv_build"
|
|
21
|
+
|
|
22
|
+
[dependency-groups]
|
|
23
|
+
dev = [
|
|
24
|
+
"pytest>=9.1.1",
|
|
25
|
+
]
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
page_object = indent "page" (required_ws component_id)? ws "(" page_body_line* indent ")" line_end
|
|
2
|
+
page_body_line = page_direct_property_line
|
|
3
|
+
/ page_group_block
|
|
4
|
+
/ page_child_component
|
|
5
|
+
/ blank_lines
|
|
6
|
+
|
|
7
|
+
page_direct_property_line = indent page_direct_property line_end
|
|
8
|
+
page_direct_property = "page" ":" ws number
|
|
9
|
+
/ "name" ":" ws string_like_value
|
|
10
|
+
/ "alias" ":" ws string_like_value
|
|
11
|
+
/ "title" ":" ws string_like_value
|
|
12
|
+
|
|
13
|
+
page_group_block = page_appearance
|
|
14
|
+
/ page_navigation
|
|
15
|
+
/ page_css
|
|
16
|
+
/ page_security
|
|
17
|
+
/ page_advanced
|
|
18
|
+
|
|
19
|
+
page_appearance = indent "appearance" ws "{" line_end page_appearance_property_line* indent "}" line_end
|
|
20
|
+
page_appearance_property_line = indent page_appearance_property line_end
|
|
21
|
+
page_appearance_property = "pageMode" ":" ws ( "normal" / "modalDialog" / "nonModalDialog" )
|
|
22
|
+
/ "pageTemplate" ":" ws reference
|
|
23
|
+
/ "dialogTemplate" ":" ws reference
|
|
24
|
+
/ "templateOptions" ":" ws ( array_of_string_like_value / string_like_value )
|
|
25
|
+
/ "cssClasses" ":" ws array_of_string_like_value
|
|
26
|
+
/ "mediaType" ":" ws string_like_value
|
|
27
|
+
|
|
28
|
+
page_navigation = indent "navigation" ws "{" line_end page_navigation_property_line* indent "}" line_end
|
|
29
|
+
page_navigation_property_line = indent page_navigation_property line_end
|
|
30
|
+
page_navigation_property = "cursorFocus" ":" ws ( "firstItemOnPage" / "doNotFocusCursor" )
|
|
31
|
+
/ "warnOnUnsavedChanges" ":" ws boolean
|
|
32
|
+
|
|
33
|
+
page_css = indent "css" ws "{" line_end page_css_property_line* indent "}" line_end
|
|
34
|
+
page_css_property_line = indent page_css_property line_end
|
|
35
|
+
page_css_property = "fileUrls" ":" ws array_of_string_like_value
|
|
36
|
+
/ "inline" ":" ws multiline_string
|
|
37
|
+
/ "inline" ":" nl indent multiline_string
|
|
38
|
+
|
|
39
|
+
page_security = indent "security" ws "{" line_end page_security_property_line* indent "}" line_end
|
|
40
|
+
page_security_property_line = indent page_security_property line_end
|
|
41
|
+
page_security_property = "authorizationScheme" ":" ws reference
|
|
42
|
+
/ "authentication" ":" ws ( "required" / "public" )
|
|
43
|
+
/ "deepLinking" ":" ws boolean
|
|
44
|
+
/ "pageAccessProtection" ":" ws ( "unrestricted" / "argumentsMustHaveChecksum" / "noArgumentsSupported" / "noUrlAccess" )
|
|
45
|
+
/ "formAutoComplete" ":" ws boolean
|
|
46
|
+
/ "browserCache" ":" ws boolean
|
|
47
|
+
|
|
48
|
+
page_advanced = indent "advanced" ws "{" line_end page_advanced_property_line* indent "}" line_end
|
|
49
|
+
page_advanced_property_line = indent page_advanced_property line_end
|
|
50
|
+
page_advanced_property = "enableMetaTags" ":" ws boolean
|
|
51
|
+
/ "enableDuplicatePageSubmissions" ":" ws boolean
|
|
52
|
+
/ "reloadOnSubmit" ":" ws ( "always" / "onlyForSuccess" )
|
|
53
|
+
/ "duplicateSubmissionUrl" ":" ws string_like_value
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
page_child_component = region
|
|
57
|
+
/ page_item
|
|
58
|
+
/ button
|
|
59
|
+
/ dynamic_action
|
|
60
|
+
/ process
|
|
61
|
+
|
|
62
|
+
region = indent "region" (required_ws component_id)? ws "(" line_end region_body_line* indent ")" line_end
|
|
63
|
+
region_body_line = region_direct_property_line
|
|
64
|
+
/ region_group_block
|
|
65
|
+
/ blank_lines
|
|
66
|
+
|
|
67
|
+
region_direct_property_line = indent region_direct_property line_end
|
|
68
|
+
region_direct_property = "name" ":" ws string_like_value
|
|
69
|
+
/ "title" ":" ws string_like_value
|
|
70
|
+
/ "type" ":" ws string_like_value
|
|
71
|
+
|
|
72
|
+
region_group_block = region_layout
|
|
73
|
+
/ region_appearance
|
|
74
|
+
/ region_image
|
|
75
|
+
/ region_advanced
|
|
76
|
+
|
|
77
|
+
region_layout = indent "layout" ws "{" line_end region_layout_property_line* indent "}" line_end
|
|
78
|
+
region_layout_property_line = indent region_layout_property line_end
|
|
79
|
+
region_layout_property = "sequence" ":" ws number
|
|
80
|
+
/ "parentRegion" ":" ws reference
|
|
81
|
+
/ "slot" ":" ws string_like_value
|
|
82
|
+
/ "startNewLayout" ":" ws boolean
|
|
83
|
+
/ "startNewRow" ":" ws boolean
|
|
84
|
+
/ "rowCssClasses" ":" ws array_of_string_like_value
|
|
85
|
+
/ "column" ":" ws string_like_value
|
|
86
|
+
/ "newColumn" ":" ws boolean
|
|
87
|
+
/ "columnSpan" ":" ws string_like_value
|
|
88
|
+
/ "columnCssClasses" ":" ws array_of_string_like_value
|
|
89
|
+
/ "columnAttributes" ":" ws array_of_string_like_value
|
|
90
|
+
|
|
91
|
+
region_appearance = indent "appearance" ws "{" line_end region_appearance_property_line* indent "}" line_end
|
|
92
|
+
region_appearance_property_line = indent region_appearance_property line_end
|
|
93
|
+
region_appearance_property = "template" ":" ws reference
|
|
94
|
+
/ "templateOptions" ":" ws (array_of_string_like_value / string_like_value)
|
|
95
|
+
/ "cssClasses" ":" ws array_of_string_like_value
|
|
96
|
+
/ "icon" ":" ws string_like_value
|
|
97
|
+
/ "renderComponents" ":" ws ( "aboveContent" / "belowContent" )
|
|
98
|
+
|
|
99
|
+
region_image = indent "image" ws "{" line_end region_image_property_line* indent "}" line_end
|
|
100
|
+
region_image_property_line = indent region_image_property line_end
|
|
101
|
+
region_image_property = "fileUrl" ":" ws string_like_value
|
|
102
|
+
/ "accessibleDescription" ":" ws string_like_value
|
|
103
|
+
/ "customAttributes" ":" ws string_like_value
|
|
104
|
+
|
|
105
|
+
region_advanced = indent "advanced" ws "{" line_end region_advanced_property_line* indent "}" line_end
|
|
106
|
+
region_advanced_property_line = indent region_advanced_property line_end
|
|
107
|
+
region_advanced_property = "savedReportMappingIdentifier" ":" ws string_like_value
|
|
108
|
+
/ "htmlDomId" ":" ws string_like_value
|
|
109
|
+
/ "customAttributes" ":" ws string_like_value
|
|
110
|
+
/ "regionImage" ":" ws string_like_value
|
|
111
|
+
/ "imageTagAttributes" ":" ws string_like_value
|
|
112
|
+
/ "staticId" ":" ws string_like_value
|
|
113
|
+
/ "regionDisplaySelector" ":" ws boolean
|
|
114
|
+
/ "excludeTitleFromTranslation" ":" ws boolean
|
|
115
|
+
/ "schemaOverrideItem" ":" ws string_like_value
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
page_item = indent "pageItem" (required_ws component_id)? ws "(" line_end page_item_body_line* indent ")" line_end
|
|
119
|
+
page_item_body_line = page_item_direct_property_line
|
|
120
|
+
/ page_item_group_block
|
|
121
|
+
/ blank_lines
|
|
122
|
+
|
|
123
|
+
page_item_direct_property_line = indent page_item_direct_property line_end
|
|
124
|
+
page_item_direct_property = "name" ":" ws string_like_value
|
|
125
|
+
/ "type" ":" ws string_like_value
|
|
126
|
+
|
|
127
|
+
page_item_group_block = page_item_label
|
|
128
|
+
/ page_item_settings
|
|
129
|
+
/ page_item_layout
|
|
130
|
+
/ page_item_appearance
|
|
131
|
+
/ page_item_validation
|
|
132
|
+
/ page_item_advanced
|
|
133
|
+
/ page_item_security
|
|
134
|
+
/ page_item_session_state
|
|
135
|
+
|
|
136
|
+
page_item_label = indent "label" ws "{" line_end page_item_label_property_line* indent "}" line_end
|
|
137
|
+
page_item_label_property_line = indent page_item_label_property line_end
|
|
138
|
+
page_item_label_property = "label" ":" ws string_like_value
|
|
139
|
+
/ "alignment" ":" ws ( "above" / "below" / "center" / "centerBottom" / "centerCenter" / "centerTop" / "left" / "leftBottom" / "leftCenter" / "leftTop" / "right" / "rightBottom" / "rightCenter" / "rightTop" )
|
|
140
|
+
/ "tableCellAttributes" ":" ws array_of_string_like_value
|
|
141
|
+
|
|
142
|
+
page_item_settings = indent "settings" ws "{" line_end page_item_settings_property_line* indent "}" line_end
|
|
143
|
+
page_item_settings_property_line = indent page_item_settings_property line_end
|
|
144
|
+
page_item_settings_property = "trimSpaces" ":" ws ( "none" / "something-else" )
|
|
145
|
+
/ "dummy" ":" ws string_like_value
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
page_item_layout = indent "layout" ws "{" line_end page_item_layout_property_line* indent "}" line_end
|
|
149
|
+
page_item_layout_property_line = indent page_item_layout_property line_end
|
|
150
|
+
page_item_layout_property = "sequence" ":" ws number
|
|
151
|
+
/ "region" ":" ws reference
|
|
152
|
+
/ "slot" ":" ws string_like_value
|
|
153
|
+
/ "alignment" ":" ws ( "center" / "centerBottom" / "centerCenter" / "centerTop" / "left" / "leftBottom" / "leftCenter" / "leftTop" / "right" / "rightBottom" / "rightCenter" / "rightTop" )
|
|
154
|
+
/ "startNewLayout" ":" ws boolean
|
|
155
|
+
/ "startNewRow" ":" ws boolean
|
|
156
|
+
/ "rowCssClasses" ":" ws array_of_string_like_value
|
|
157
|
+
/ "column" ":" ws string_like_value
|
|
158
|
+
/ "newColumn" ":" ws boolean
|
|
159
|
+
/ "columnSpan" ":" ws string_like_value
|
|
160
|
+
/ "rowSpan" ":" ws number
|
|
161
|
+
/ "labelColumnSpan" ":" ws string_like_value
|
|
162
|
+
/ "columnCssClasses" ":" ws array_of_string_like_value
|
|
163
|
+
/ "columnAttributes" ":" ws array_of_string_like_value
|
|
164
|
+
|
|
165
|
+
page_item_appearance = indent "appearance" ws "{" line_end page_item_appearance_property_line* indent "}" line_end
|
|
166
|
+
page_item_appearance_property_line = indent page_item_appearance_property line_end
|
|
167
|
+
page_item_appearance_property = "template" ":" ws reference
|
|
168
|
+
/ "templateOptions" ":" ws ( array_of_string_like_value / string_like_value )
|
|
169
|
+
/ "cssClasses" ":" ws ( array_of_string_like_value / string_like_value )
|
|
170
|
+
/ "icon" ":" ws string_like_value
|
|
171
|
+
/ "formatMask" ":" ws string_like_value
|
|
172
|
+
/ "valuePlaceholder" ":" ws string_like_value
|
|
173
|
+
/ "width" ":" ws number
|
|
174
|
+
/ "height" ":" ws number
|
|
175
|
+
|
|
176
|
+
page_item_validation = indent "validation" ws "{" line_end page_item_validation_property_line* indent "}" line_end
|
|
177
|
+
page_item_validation_property_line = indent page_item_validation_property line_end
|
|
178
|
+
page_item_validation_property = "valueRequired" ":" ws boolean
|
|
179
|
+
/ "maxLength" ":" ws number
|
|
180
|
+
|
|
181
|
+
page_item_advanced = indent "advanced" ws "{" line_end page_item_advanced_property_line* indent "}" line_end
|
|
182
|
+
page_item_advanced_property_line = indent page_item_advanced_property line_end
|
|
183
|
+
page_item_advanced_property = "cssClasses" ":" ws array_of_string_like_value
|
|
184
|
+
/ "customAttributes" ":" ws string_like_value
|
|
185
|
+
/ "optionHtmlAttributes" ":" ws array_of_string_like_value
|
|
186
|
+
/ "preText" ":" ws ( string_like_value / multiline_string )
|
|
187
|
+
/ "postText" ":" ws ( string_like_value / multiline_string )
|
|
188
|
+
/ "warnOnUnsavedChanges" ":" ws ( "ignore" )
|
|
189
|
+
/ "initJavaScriptFunction" ":" ws (string_like_value / multiline_string )
|
|
190
|
+
|
|
191
|
+
page_item_session_state = indent "sessionState" ws "{" line_end page_item_session_state_property_line* indent "}" line_end
|
|
192
|
+
page_item_session_state_property_line = indent page_item_session_state_property line_end
|
|
193
|
+
page_item_session_state_property = "dataType" ":" ws ( "varchar2" / "clob" / "boolean" / "number" )
|
|
194
|
+
/ "storage" ":" ws ( "request" / "session" / "user" )
|
|
195
|
+
|
|
196
|
+
page_item_security = indent "security" ws "{" line_end page_item_security_property_line* indent "}" line_end
|
|
197
|
+
page_item_security_property_line = indent page_item_security_property line_end
|
|
198
|
+
page_item_security_property = "authorizationScheme" ":" ws reference
|
|
199
|
+
/ "sessionStateProtection" ":" ws ( "unrestricted" / "checksumRequiredAppLevel" / "checksumRequiredUserLevel" / "checksumRequiredSessionLevel" / "restricted" )
|
|
200
|
+
/ "encryptSessionState" ":" ws boolean
|
|
201
|
+
/ "escapeSpecialChars" ":" ws boolean
|
|
202
|
+
/ "restrictedChars" ":" ws ( "alphanumWithSpace" / "webSafe" / "noSpecialChar" / "noSpecialCharNoNewline" / "workspaceSchema" / "workspaceUserSchema" / "workspaceUserSchemaId" )
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
button = indent "button" (required_ws component_id)? ws "(" line_end button_body_line* indent ")" line_end
|
|
207
|
+
button_body_line = button_direct_property_line
|
|
208
|
+
/ button_group_block
|
|
209
|
+
/ blank_lines
|
|
210
|
+
|
|
211
|
+
button_direct_property_line = indent button_direct_property line_end
|
|
212
|
+
button_direct_property = "buttonName" ":" ws string_like_value
|
|
213
|
+
/ "label" ":" ws string_like_value
|
|
214
|
+
|
|
215
|
+
button_group_block = button_layout
|
|
216
|
+
/ button_appearance
|
|
217
|
+
/ button_behavior
|
|
218
|
+
|
|
219
|
+
button_layout = indent "layout" ws "{" line_end button_layout_property_line* indent "}" line_end
|
|
220
|
+
button_layout_property_line = indent page_item_layout_property line_end
|
|
221
|
+
button_layout_property = "sequence" ":" ws number
|
|
222
|
+
/ "region" ":" ws reference
|
|
223
|
+
/ "slot" ":" ws string_like_value
|
|
224
|
+
/ "startNewLayout" ":" ws boolean
|
|
225
|
+
/ "startNewRow" ":" ws boolean
|
|
226
|
+
/ "rowCssClasses" ":" ws array_of_string_like_value
|
|
227
|
+
/ "column" ":" ws string_like_value
|
|
228
|
+
/ "newColumn" ":" ws boolean
|
|
229
|
+
/ "columnSpan" ":" ws string_like_value
|
|
230
|
+
/ "rowSpan" ":" ws number
|
|
231
|
+
/ "columnCssClasses" ":" ws array_of_string_like_value
|
|
232
|
+
/ "columnAttributes" ":" ws array_of_string_like_value
|
|
233
|
+
/ "horizontalAlignment" ":" ws ( "left" / "right" )
|
|
234
|
+
/ "alignment" ":" ws ( "center" / "centerBottom" / "centerCenter" / "centerTop" / "left" / "leftBottom" / "leftCenter" / "leftTop" / "right" / "rightBottom" / "rightCenter" / "rightTop" )
|
|
235
|
+
|
|
236
|
+
button_appearance = indent "appearance" ws "{" line_end button_appearance_property_line* indent "}" line_end
|
|
237
|
+
button_appearance_property_line = indent button_appearance_property line_end
|
|
238
|
+
button_appearance_property = "buttonTemplate" ":" ws reference
|
|
239
|
+
/ "hot" ":" ws boolean
|
|
240
|
+
/ "showAsDisabled" ":" ws boolean
|
|
241
|
+
/ "templateOptions" ":" ws ( array_of_string_like_value / string_like_value )
|
|
242
|
+
/ "cssClasses" ":" ws ( array_of_string_like_value / string_like_value )
|
|
243
|
+
/ "icon" ":" ws string_like_value
|
|
244
|
+
|
|
245
|
+
button_behavior = indent "behavior" ws "{" line_end button_behavior_property_line* indent "}" line_end
|
|
246
|
+
button_behavior_property_line = indent button_behavior_property line_end
|
|
247
|
+
button_behavior_property = "type" ":" ws string_like_value
|
|
248
|
+
/ "action" ":" ws ( "submitPage" / "triggerAction" / "redirectThisApp" / "redirectOtherApp" / "redirectUrl" / "definedByDynamicAction" / "resetPage" / "nextPage" / "previousPage" )
|
|
249
|
+
/ "target" ":" ws value
|
|
250
|
+
/ "targetUrl" ":" ws string_like_value
|
|
251
|
+
/ "executeValidations" ":" ws boolean
|
|
252
|
+
/ "showProcessing" ":" ws boolean
|
|
253
|
+
/ "warnOnUnsavedChanges" ":" ws ( "doNotCheck" )
|
|
254
|
+
/ "databaseAction" ":" ws ( "insert" / "update" / "delete" )
|
|
255
|
+
/ "requiresConfirmation" ":" ws boolean
|
|
256
|
+
|
|
257
|
+
process = indent "process" (required_ws component_id)? ws "(" line_end process_body_line* indent ")" line_end
|
|
258
|
+
process_body_line = process_direct_property_line
|
|
259
|
+
/ process_group_block
|
|
260
|
+
/ blank_lines
|
|
261
|
+
|
|
262
|
+
process_direct_property_line = indent process_direct_property line_end
|
|
263
|
+
process_direct_property = "name" ":" ws string_like_value
|
|
264
|
+
/ "type" ":" ws string_like_value
|
|
265
|
+
/ "executionChain" ":" ws string_like_value
|
|
266
|
+
/ "formRegion" ":" ws reference
|
|
267
|
+
/ "editableRegion" ":" ws reference
|
|
268
|
+
|
|
269
|
+
process_group_block = process_execution
|
|
270
|
+
/ process_source
|
|
271
|
+
/ process_advanced
|
|
272
|
+
|
|
273
|
+
process_source = "ERROR"
|
|
274
|
+
process_execution = "ERROR"
|
|
275
|
+
process_advanced = "ERROR"
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
dynamic_action = indent "dynamicAction" (required_ws component_id)? ws "(" line_end dynamic_action_body_line* indent ")" line_end
|
|
279
|
+
dynamic_action_body_line = dynamic_action_direct_property_line
|
|
280
|
+
/ dynamic_action_group_block
|
|
281
|
+
/ dynamic_action_child_component
|
|
282
|
+
/ blank_lines
|
|
283
|
+
|
|
284
|
+
dynamic_action_direct_property_line = indent dynamic_action_direct_property line_end
|
|
285
|
+
dynamic_action_direct_property = "name" ":" ws string_like_value
|
|
286
|
+
/ "???" ":" ws string_like_value
|
|
287
|
+
|
|
288
|
+
dynamic_action_group_block = dynamic_action_execution
|
|
289
|
+
/ dynamic_action_when
|
|
290
|
+
/ dynamic_action_client_side_condition
|
|
291
|
+
|
|
292
|
+
dynamic_action_execution = indent "execution" ws "{" line_end dynamic_action_execution_property_line* indent "}" line_end
|
|
293
|
+
dynamic_action_execution_property_line = indent dynamic_action_execution_property line_end
|
|
294
|
+
dynamic_action_execution_property = "sequence" ":" ws number
|
|
295
|
+
/ "eventScope" ":" ws ( "static" / "dynamic" / "once" )
|
|
296
|
+
/ "staticContainer" ":" ws string_like_value
|
|
297
|
+
/ "type" ":" ws ( "immediate" / "debounce" / "throttle" )
|
|
298
|
+
/ "time" ":" ws number
|
|
299
|
+
/ "immediate" ":" ws boolean
|
|
300
|
+
|
|
301
|
+
dynamic_action_when = indent "when" ws "{" line_end dynamic_action_when_property_line* indent "}" line_end
|
|
302
|
+
dynamic_action_when_property_line = indent dynamic_action_when_property line_end
|
|
303
|
+
dynamic_action_when_property = "event" ":" ws string_like_value
|
|
304
|
+
/ "customEvent" ":" ws string_like_value
|
|
305
|
+
/ "selectionType" ":" ws ( "items" / "button" / "region" / "columns" / "domObject" / "jQuerySelector" / "jsExpression" )
|
|
306
|
+
/ "region" ":" ws reference
|
|
307
|
+
/ "interactiveGrid" ":" ws reference
|
|
308
|
+
/ "columns" ":" ws array_of_string_like_value
|
|
309
|
+
/ "button" ":" ws reference
|
|
310
|
+
/ "items" ":" ws array_of_string_like_value
|
|
311
|
+
/ "domObject" ":" ws string_like_value
|
|
312
|
+
/ "jquerySelector" ":" ws string_like_value
|
|
313
|
+
/ "javaScriptExpression" ":" ws multiline_string
|
|
314
|
+
|
|
315
|
+
dynamic_action_client_side_condition = indent "clientSideCondition" ws "{" line_end dynamic_action_client_side_condition_property_line* indent "}" line_end
|
|
316
|
+
dynamic_action_client_side_condition_property_line = indent dynamic_action_client_side_condition_property line_end
|
|
317
|
+
dynamic_action_client_side_condition_property = "type" ":" ws ( "item=value" / "item!=value" / "item>value" / "item>=value" / "item<value" / "item<=value" / "itemIsNull" / "itemIsNotNull" / "itemIsInList" / "itemIsNotInList" / "jsExpression" )
|
|
318
|
+
/ "item" ":" ws string_like_value
|
|
319
|
+
/ "value" ":" ws string_like_value
|
|
320
|
+
/ "list" ":" ws array_of_string_like_value
|
|
321
|
+
/ "javaScriptExpression" ":" ws code_block
|
|
322
|
+
/ "type" ":" ws ( "itemColumn=value" / "itemColumn!=value" / "itemColumn>value" / "itemColumn>=value" / "itemColumn<value" / "itemColumn<=value" / "itemColumnIsNull" / "itemColumnIsNotNull" / "itemColumnIsInList" / "itemColumnIsNotInList" / "jsExpression" )
|
|
323
|
+
/ "componentType" ":" ws ( "item" / "column" )
|
|
324
|
+
/ "column" ":" ws string_like_value
|
|
325
|
+
|
|
326
|
+
dynamic_action_child_component = action_c
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
action_c = indent "action" (required_ws component_id)? ws "(" line_end action_c_body_line* indent ")" line_end
|
|
330
|
+
action_c_body_line = action_c_direct_property_line
|
|
331
|
+
/ action_c_group_block
|
|
332
|
+
/ blank_lines
|
|
333
|
+
|
|
334
|
+
action_c_direct_property_line = indent action_c_direct_property line_end
|
|
335
|
+
action_c_direct_property = "name" ":" ws string_like_value
|
|
336
|
+
/ "action" ":" ws string_like_value
|
|
337
|
+
|
|
338
|
+
action_c_group_block = action_c_affected_elements
|
|
339
|
+
/ action_c_execution
|
|
340
|
+
|
|
341
|
+
action_c_affected_elements = indent "affectedElements" ws "{" line_end action_c_affected_elements_property_line* indent "}" line_end
|
|
342
|
+
action_c_affected_elements_property_line = indent action_c_affected_elements_property line_end
|
|
343
|
+
action_c_affected_elements_property = "selectionType" ":" ws string_like_value
|
|
344
|
+
/ "region" ":" ws reference
|
|
345
|
+
/ "columns" ":" ws array_of_string_like_value
|
|
346
|
+
/ "button" ":" ws reference
|
|
347
|
+
/ "items" ":" ws ( array_of_string_like_value / string_like_value )
|
|
348
|
+
/ "domObject" ":" ws string_like_value
|
|
349
|
+
/ "jquerySelector" ":" ws string_like_value
|
|
350
|
+
/ "javaScriptExpression" ":" ws code_block
|
|
351
|
+
|
|
352
|
+
action_c_execution = indent "execution" ws "{" line_end action_c_execution_property_line* indent "}" line_end
|
|
353
|
+
action_c_execution_property_line = indent action_c_execution_property line_end
|
|
354
|
+
action_c_execution_property = "sequence" ":" ws number
|
|
355
|
+
/ "event" ":" ws reference
|
|
356
|
+
/ "fireWhenEventResultIs" ":" ws string_like_value
|
|
357
|
+
/ "fireOnInit" ":" ws boolean
|
|
358
|
+
/ "stopExecutionOnError" ":" ws boolean
|
|
359
|
+
/ "waitForResult" ":" ws boolean
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
reference = "@" reference_character*
|
|
363
|
+
component_id = string / identifier / number
|
|
364
|
+
code_block = multiline_string
|
|
365
|
+
/ string_like_value
|
|
366
|
+
multiline_string = "```" ( any_character / nl )* "```"
|
|
367
|
+
blank_lines = (ws nl)*
|
|
368
|
+
ws = ~r"[ \t]*"
|
|
369
|
+
required_ws = ~r"[ \t]+"
|
|
370
|
+
line_end = nl
|
|
371
|
+
nl = "\n" / "\r\n"
|
|
372
|
+
indent = ~r"[ \t]*"
|
|
373
|
+
value = string / identifier / boolean / number / reference / multiline_string / array
|
|
374
|
+
array = array_of_value
|
|
375
|
+
array_separator = required_ws / line_end indent
|
|
376
|
+
array_of_value = "[" ( ws value ( array_separator value )* ws / line_end ( indent value line_end )? indent )? "]"
|
|
377
|
+
array_of_string_like_value = "[" (line_end indent string_like_value)+ line_end indent "]"
|
|
378
|
+
string_like_value = ~r"[^\[\]\n\r]+"
|
|
379
|
+
reference_character = ~r"[A-Za-z0-9_/#-]*"
|
|
380
|
+
string = ~r"\"[^\"]+\""
|
|
381
|
+
any_character = ~r"[^`\n\r]"
|
|
382
|
+
number = "-"? digit+ ( "." digit+ )?
|
|
383
|
+
digit = ~r"[0-9]"
|
|
384
|
+
identifier = identifier_start identifier_rest*
|
|
385
|
+
identifier_start = ~r"[A-Za-z0-9_]"
|
|
386
|
+
identifier_rest = identifier_start / "." / "-"
|
|
387
|
+
boolean = "true" / "false"
|