@componyx/ui 0.0.0-stage → 1.0.4

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.
Files changed (169) hide show
  1. package/AppSkin/AppSkin.css +1268 -0
  2. package/AppSkin/AppSkin.js +2748 -0
  3. package/AppSkin/Themes/Default.css +241 -0
  4. package/Base/Base.js +3407 -0
  5. package/Base/ComponentIcons.css +66 -0
  6. package/Base/Font/ComponentIcons.woff +0 -0
  7. package/Base/Font/UI.woff +0 -0
  8. package/Base/Library.js +8432 -0
  9. package/Base/NavigationManager.js +462 -0
  10. package/Base/ResponsiveTemplates.js +371 -0
  11. package/Base/Sanitizer.js +288 -0
  12. package/Base/Themes/Default.css +255 -0
  13. package/Base/UI.css +618 -0
  14. package/Base/UIResourcePath.js +6 -0
  15. package/Bindary/Bindary.js +2011 -0
  16. package/Bindary/Modules/Connection.js +216 -0
  17. package/Bindary/Modules/Core.js +854 -0
  18. package/Bindary/Modules/DataUpdater.js +351 -0
  19. package/Bindary/Modules/ExpressionEngine.js +347 -0
  20. package/Bindary/Modules/ProxyManager.js +482 -0
  21. package/Bindary/Modules/Renderer.js +605 -0
  22. package/Bindary/Modules/Router.js +291 -0
  23. package/Bindary/Modules/Scroller.js +89 -0
  24. package/Bindary/Modules/Template.js +1273 -0
  25. package/BookmarkSpy/BookmarkSpy.js +430 -0
  26. package/Box/Box.css +36 -0
  27. package/Box/Box.js +1685 -0
  28. package/Button/Button.css +470 -0
  29. package/Button/Button.js +1398 -0
  30. package/Button/Themes/Default.css +200 -0
  31. package/Carousel/Carousel.css +273 -0
  32. package/Carousel/Carousel.js +607 -0
  33. package/ColorButton/ColorButton.css +39 -0
  34. package/ColorButton/ColorButton.js +336 -0
  35. package/ColorPicker/ColorPicker.css +359 -0
  36. package/ColorPicker/ColorPicker.js +972 -0
  37. package/ComboBox/ComboBox.css +357 -0
  38. package/ComboBox/ComboBox.js +2342 -0
  39. package/ComboBox/Themes/Default.css +23 -0
  40. package/DataPager/DataPager.css +72 -0
  41. package/DataPager/DataPager.js +674 -0
  42. package/DatePicker/DatePicker.css +227 -0
  43. package/DatePicker/DatePicker.js +1531 -0
  44. package/DatePicker/Themes/Default.css +26 -0
  45. package/Dialog/Dialog.css +106 -0
  46. package/Dialog/Dialog.js +572 -0
  47. package/Dialog/Themes/Default.css +10 -0
  48. package/Editor/Data/Emoji.json +8285 -0
  49. package/Editor/Data/Special.json +1042 -0
  50. package/Editor/Editor.css +1562 -0
  51. package/Editor/Editor.js +4058 -0
  52. package/Editor/Font/Editor.woff +0 -0
  53. package/Editor/Modules/ComponentFactory.js +565 -0
  54. package/Editor/Modules/ContentManager.js +748 -0
  55. package/Editor/Modules/DialogManager.js +1234 -0
  56. package/Editor/Modules/EventManager.js +458 -0
  57. package/Editor/Modules/Format.js +950 -0
  58. package/Editor/Modules/History.js +191 -0
  59. package/Editor/Modules/LayoutState.js +379 -0
  60. package/Editor/Modules/ListManager.js +296 -0
  61. package/Editor/Modules/MenuManager.js +388 -0
  62. package/Editor/Modules/NodeManager.js +681 -0
  63. package/Editor/Modules/ParagraphButtons.js +122 -0
  64. package/Editor/Modules/Resizer.js +176 -0
  65. package/Editor/Modules/SelectionRange.js +564 -0
  66. package/Editor/Modules/SourceViewBuilder.js +212 -0
  67. package/Editor/Modules/SymbolPicker.js +208 -0
  68. package/Editor/Modules/Table.js +2327 -0
  69. package/Editor/Modules/TableDialog.js +757 -0
  70. package/Editor/Modules/Toolbar.js +375 -0
  71. package/Editor/Modules/TooltipMenu.js +125 -0
  72. package/Editor/Modules/Utility.js +131 -0
  73. package/Editor/Themes/Default.css +204 -0
  74. package/FileUpload/FileUpload.css +156 -0
  75. package/FileUpload/FileUpload.js +898 -0
  76. package/FileUpload/Themes/Default.css +17 -0
  77. package/Form/Form.css +1934 -0
  78. package/Form/Form.js +4943 -0
  79. package/Form/Modules/ActionManager.js +368 -0
  80. package/Form/Modules/BuildPanelManager.js +319 -0
  81. package/Form/Modules/ComponentFactory.js +468 -0
  82. package/Form/Modules/ComponentPanel.js +265 -0
  83. package/Form/Modules/ConfigPanelManager.js +685 -0
  84. package/Form/Modules/DataBinder.js +602 -0
  85. package/Form/Modules/DataObserver.js +717 -0
  86. package/Form/Modules/Draggable.js +756 -0
  87. package/Form/Modules/OptionsPanel.js +342 -0
  88. package/Form/Modules/Renderer.js +1889 -0
  89. package/Form/Modules/RuleEngine.js +585 -0
  90. package/Form/Modules/RulesPanel.js +1158 -0
  91. package/Form/Modules/Types.js +1709 -0
  92. package/Form/Modules/ValidationManager.js +194 -0
  93. package/Form/Themes/Default.css +216 -0
  94. package/FormField/FormField.css +468 -0
  95. package/FormField/FormField.js +576 -0
  96. package/FormField/Themes/Default.css +99 -0
  97. package/Grid/Grid.css +544 -0
  98. package/Grid/Grid.js +3761 -0
  99. package/Grid/Themes/Default.css +43 -0
  100. package/LICENSE +126 -0
  101. package/MaskedTextBox/MaskedTextBox.css +28 -0
  102. package/MaskedTextBox/MaskedTextBox.js +642 -0
  103. package/MaskedTextBox/Themes/Default.css +6 -0
  104. package/Menu/Menu.css +328 -0
  105. package/Menu/Menu.js +2386 -0
  106. package/Menu/Themes/Default.css +24 -0
  107. package/NumericBox/NumericBox.css +120 -0
  108. package/NumericBox/NumericBox.js +984 -0
  109. package/PanelBar/PanelBar.css +123 -0
  110. package/PanelBar/PanelBar.js +505 -0
  111. package/PanelBar/Themes/Default.css +51 -0
  112. package/PieChart/PieChart.css +95 -0
  113. package/PieChart/PieChart.js +820 -0
  114. package/PieChart/Themes/Default.css +9 -0
  115. package/README.md +178 -3
  116. package/Slider/Slider.css +348 -0
  117. package/Slider/Slider.js +1306 -0
  118. package/Slider/Themes/Default.css +44 -0
  119. package/TabStrip/TabStrip.css +52 -0
  120. package/TabStrip/TabStrip.js +362 -0
  121. package/TabStrip/Themes/Default.css +35 -0
  122. package/TimePicker/Themes/Default.css +30 -0
  123. package/TimePicker/TimePicker.css +253 -0
  124. package/TimePicker/TimePicker.js +1485 -0
  125. package/TooltipManager/Themes/Default.css +21 -0
  126. package/TooltipManager/TooltipManager.css +227 -0
  127. package/TooltipManager/TooltipManager.js +791 -0
  128. package/Validator/Validator.css +54 -0
  129. package/Validator/Validator.js +2508 -0
  130. package/componyx.html-data.json +619 -0
  131. package/index.js +27 -0
  132. package/package.json +43 -4
  133. package/types/AppSkin.d.ts +842 -0
  134. package/types/Base.d.ts +1034 -0
  135. package/types/Bindary.d.ts +1196 -0
  136. package/types/BookmarkSpy.d.ts +112 -0
  137. package/types/Box.d.ts +374 -0
  138. package/types/Button.d.ts +455 -0
  139. package/types/Carousel.d.ts +136 -0
  140. package/types/ColorButton.d.ts +120 -0
  141. package/types/ColorPicker.d.ts +225 -0
  142. package/types/ComboBox.d.ts +507 -0
  143. package/types/DataPager.d.ts +152 -0
  144. package/types/DatePicker.d.ts +354 -0
  145. package/types/Dialog.d.ts +160 -0
  146. package/types/Editor.d.ts +1289 -0
  147. package/types/FileUpload.d.ts +206 -0
  148. package/types/Form.d.ts +3078 -0
  149. package/types/FormField.d.ts +204 -0
  150. package/types/Grid.d.ts +911 -0
  151. package/types/Library.d.ts +1899 -0
  152. package/types/MaskedTextBox.d.ts +91 -0
  153. package/types/Menu.d.ts +577 -0
  154. package/types/NumericBox.d.ts +310 -0
  155. package/types/PanelBar.d.ts +223 -0
  156. package/types/PieChart.d.ts +224 -0
  157. package/types/ResponsiveTemplates.d.ts +108 -0
  158. package/types/Slider.d.ts +227 -0
  159. package/types/TabStrip.d.ts +185 -0
  160. package/types/TimePicker.d.ts +265 -0
  161. package/types/TooltipManager.d.ts +178 -0
  162. package/types/UI.d.ts +29 -0
  163. package/types/Validator.d.ts +653 -0
  164. package/types/index.d.ts +59 -0
  165. package/ui.css +11783 -0
  166. package/ui.js +79477 -0
  167. package/ui.min.css +138 -0
  168. package/ui.min.js +264 -0
  169. package/ui.min.js.map +1 -0
@@ -0,0 +1,1034 @@
1
+ declare namespace componyx
2
+ {
3
+ namespace base_modules
4
+ {
5
+ /**
6
+ * <p>The built-in HTML sanitizer used by components such as Editor and Form.</p>
7
+ */
8
+ class Sanitizer
9
+ {
10
+ /**
11
+ * <p>Sanitizes the specified HTML.</p>
12
+ * @param html - <p>The HTML to sanitize.</p>
13
+ * @returns <p>The sanitized HTML.</p>
14
+ */
15
+ sanitize(html: string): string;
16
+ }
17
+ }
18
+ /**
19
+ * <p>componyx.UI ($UI) Contains global helper methods for UI components.</p>
20
+ */
21
+ namespace UI
22
+ {
23
+ /**
24
+ * <p>When specified, the version is appended to the URL for locating UI CSS &amp; Script resources.</p>
25
+ */
26
+ var version: string | null;
27
+
28
+ /**
29
+ * <p>A value indicating whether UI components are automatically detected when the page is ready.</p>
30
+ */
31
+ var autoDetect: boolean;
32
+ /**
33
+ * <p>Holds UI component references by unique id and HTMLElement.</p>
34
+ */
35
+ var store: any;
36
+ /**
37
+ * <p>componyx.UI.elementStore Holds UI component references by HTMLElement.</p>
38
+ */
39
+ var elementStore: any;
40
+ /**
41
+ * <p>componyx.UI.groupStore Holds UI component id's for each unique group.</p>
42
+ */
43
+ var groupStore: any;
44
+ /**
45
+ * <p>componyx.UI.scriptResources Contains UI script resources for dynamic loading.</p>
46
+ */
47
+ var scriptResources: any;
48
+ /**
49
+ * <p>componyx.UI.cssResources Contains UI css resources for dynamic loading.</p>
50
+ */
51
+ var cssResources: any;
52
+ /**
53
+ * <p>When specified, component resources will be added before this resource element.</p>
54
+ */
55
+ var resourcesBefore: HTMLElement;
56
+ /**
57
+ * <p>A value indicating if UI components use custom element names.</p>
58
+ */
59
+ var useCustomElementNames: boolean;
60
+ /**
61
+ * <p>The CSS theme name which is set on the component's root element. Can be overridden when defined on a component-group or component.</p>
62
+ */
63
+ var themeName: string;
64
+ /**
65
+ * <p>Gets or sets a value indicating if component resources (CSS and scripts) are loaded on demand. Disable when all resources are already included, e.g. with the bundled ui.js and ui.css.</p>
66
+ */
67
+ var onDemandResourceLoading: boolean;
68
+ /**
69
+ * <p>A value indicating if the UI is busy rendering components.</p>
70
+ */
71
+ const busy: boolean;
72
+ /**
73
+ * <p>Gets or sets the custom tag prefix for UI components. Defaults to 'cui-'.</p>
74
+ */
75
+ var tagPrefix: string;
76
+ /**
77
+ * <p>Sets the relative or absolute path for on-demand loading of component script and css resources.</p>
78
+ * @param scriptPath - <p>The path (relative or absolute root URL) to locate script resources. Use {0} as placeholder for the component name. (e.g. 'scripts/{0}.min.js' or 'http://path/src?d={0}.min.js')</p>
79
+ * @param [cssPath] - <p>The path (relative or absolute root URL) to locate css resources. Use {0} as placeholder for the component name. (e.g. 'css/(0).min.css' or 'http://path/src?d={0}.min.css')</p>
80
+ * @param [theme] - <p>The css theme to activate. Is required when a default component theme is used (e.g. ThemeOption.DEFAULT).</p>
81
+ * @param [cssThemePath] - <p>The path (relative or absolute root URL) to locate css theme resources. Use {0} as placeholder for the component name. (e.g. 'css/{0}.Themes.Default.css' or 'http://path/src?d={0}.Themes.Default.css')</p>
82
+ */
83
+ function setResourcePath(scriptPath: string, cssPath?: string, theme?: componyx.UI.base.static.ThemeOption, cssThemePath?: string): void;
84
+ /**
85
+ * <p>Gets the resource path for on-demand loading of component scripts.</p>
86
+ * @param name - <p>The component name.</p>
87
+ * @returns <p>The script resource path</p>
88
+ */
89
+ function getScriptResourcePath(name: string): string;
90
+ /**
91
+ * <p>Gets the resource path for on-demand loading of component CSS.</p>
92
+ * @param name - <p>The component name.</p>
93
+ * @param [theme = 0] - <p>The css theme (e.g. ThemeOption.DEFAULT).</p>
94
+ * @returns <p>The css resource path</p>
95
+ */
96
+ function getCssResourcePath(name: string, theme?: componyx.UI.base.static.ThemeOption): string;
97
+ /**
98
+ * Creates a new component instance synchronously.
99
+ * @param componentClass The component class constructor.
100
+ * @param properties The properties to initialize the component. Must include the `id` property.
101
+ * @param element Optional element that is the actual component instance or placeholder to replace.
102
+ * @param options Optional parameters.
103
+ * - `loadScript`: When `false` or omitted, assumes the component class is already loaded.
104
+ * - `namespace`: The namespace to resolve the component script. Defaults to `'componyx.UI'`.
105
+ * @returns The created component instance.
106
+ */
107
+ function createComponent(componentClass: Function | { new(...args: any): any }, properties: object, element?: HTMLElement, options?: { loadScript?: false; namespace?: string | null }): any;
108
+
109
+ /**
110
+ * Creates a new component instance asynchronously by loading the component script first.
111
+ * @param componentClass The component class name (string).
112
+ * @param properties The properties to initialize the component. Must include the `id` property.
113
+ * @param element Optional element that is the actual component instance or placeholder to replace.
114
+ * @param options Parameters.
115
+ * - `loadScript`: Must be `true` to trigger async loading of the script.
116
+ * - `namespace`: The namespace to resolve the component script. Defaults to `'componyx.UI'`.
117
+ * @returns A Promise resolving to the created component instance.
118
+ */
119
+ function createComponent(componentClass: string, properties: object, element: HTMLElement | null | undefined, options: { loadScript: true; namespace?: string | null }): Promise<any>;
120
+
121
+ /**
122
+ * Loads the component script asynchronously by its full type name (including namespace).
123
+ * This method dynamically imports the script file, waits for any module initialization, and returns the component class once it is loaded and available.
124
+ * @param typeName The full name of the component type, including the namespace (e.g. 'componyx.UI.ComboBox').
125
+ * @returns A Promise resolving to the loaded component class.
126
+ */
127
+ function loadComponentScript(typeName: string): Promise<any>;
128
+
129
+ /**
130
+ * <p>Detects and registers on the page defined components and component-groups.</p>
131
+ * @param [container] - <p>A container element in which the UI components must be detected.</p>
132
+ * @param [overwrite = true] - <p>A value indicating to overwrite (recreate) the component element if it already exists.</p>
133
+ */
134
+ function detect(container?: HTMLElement, overwrite?: boolean): Promise<void>;
135
+ /**
136
+ * <p>Adds base settings for a specific component(s).</p>
137
+ * @param settingsId - <p>Identifier of the settings object.</p>
138
+ * @param settings - <p>The settings used to initialize the component.</p>
139
+ */
140
+ function addSettings(settingsId: string, settings: any): void;
141
+ /**
142
+ * <p>Adds a component to a unique group.</p>
143
+ * @param groupId - <p>Unique identifier of the component group.</p>
144
+ * @param componentId - <p>Unique identifier of the component.</p>
145
+ */
146
+ function addToGroup(groupId: string, componentId: string): void;
147
+ /**
148
+ * <p>Renders all components in the specified group.</p>
149
+ * @param groupId - <p>Unique identifier of the component group.</p>
150
+ * @param [show] - <p>A value indicating if the components should be displayed (true by default).</p>
151
+ * @param [exclude] - <p>A list of component id's inside the group to exclude from rendering.</p>
152
+ * @param [theme] - <p>The active styling theme of the component.</p>
153
+ * @param [themeName] - <p>The theme name is appended to the CSS class of the component's root HTMLElement.</p>
154
+ */
155
+ function renderGroup(groupId: string, show?: boolean, exclude?: String[], theme?: componyx.UI.base.static.ThemeOption, themeName?: string): void;
156
+ /**
157
+ * <p>Destroys all components in the specified group.</p>
158
+ * @param groupId - <p>Unique identifier of the component group.</p>
159
+ * @param [removeGroup = false] - <p>A value indicating if the group should be removed.</p>
160
+ */
161
+ function destroyGroup(groupId: string, removeGroup?: boolean): void;
162
+ /**
163
+ * <p>Removes the specified group.</p>
164
+ * @param groupId - <p>Unique identifier of the component group.</p>
165
+ */
166
+ function removeGroup(groupId: string): void;
167
+ /**
168
+ * <p>Destroys all components within the specified container element.</p>
169
+ * @param container - <p>A container element in which the UI components must be destoyed.</p>
170
+ */
171
+ function destroy(container: HTMLElement): void;
172
+ /**
173
+ * Event which fires before a UI component loads the component tag settings (JSON settings from the attribute data-ui-settings or data-ui-settingsid).
174
+ * Incoming argument is the HTMLElement.
175
+ */
176
+ var onPreLoadSettings: componyx.UI.base.Event<HTMLElement, undefined>;
177
+
178
+ /**
179
+ * Event which fires before a UI component is rendered. Incoming argument is the component instance.
180
+ */
181
+ var onPreRender: componyx.UI.base.Event<componyx.UI.base.Component | componyx.UI.base.WebComponent, undefined>;
182
+
183
+ /**
184
+ * Event which fires when the UI component chain is rendered.
185
+ */
186
+ var onPostRender: componyx.UI.base.PostRenderEvent;
187
+
188
+ namespace base
189
+ {
190
+ /**
191
+ * <p>Represents a UI event used throughout the componyx.UI.base framework.
192
+ * This event type is based on and compatible with {@link componyx.library.Event}, but may have an internal prototype chain or additional behaviors specific to the UI framework.</p>
193
+ * <p>Handlers receive the sender (the component instance) as first argument and the event arguments as second argument; <code>this</code> is the sender as well.</p>
194
+ * @template TSender - The type of the sender (the component instance).
195
+ * @template TArgs - The type of the event arguments.
196
+ */
197
+ interface Event<TSender = any, TArgs = any> extends componyx.library.Event<(this: TSender, sender: TSender, eventArgs: TArgs, ...params: any[]) => any>
198
+ {
199
+ /**
200
+ * <p>Fires the event. This method should not be invoked by client code directly but only from inside component code.</p>
201
+ * @param instance - <p>The component instance which initiates the event.</p>
202
+ * @param [args] - <p>The event arguments, or a list of arguments to pass to the event handlers.</p>
203
+ * @param [withInstance = true] - <p>A value indicating if the component instance is passed as first argument to the event handler.</p>
204
+ */
205
+ fire(instance: TSender, args?: any, withInstance?: boolean): any;
206
+ }
207
+
208
+ interface PostRenderEvent extends Event
209
+ {
210
+ /**
211
+ * Fires the event.
212
+ */
213
+ fire(): void;
214
+ }
215
+
216
+ /**
217
+ * <p>Base component events.</p>
218
+ * @template TSender - The type of the component instance passed as sender to the event handlers.
219
+ * @template THideArgs - The type of the onHide event arguments. Components that fire onHide with arguments (e.g. the Box) pass their own type.
220
+ * @property dispose - <p>Removes all event handlers.</p>
221
+ * @property onPreRender - <p>Event which fires before the component is rendered.</p>
222
+ * @property onPostRender - <p>Event which fires after the component is rendered.</p>
223
+ * @property onShow - <p>Event which fires when the component is shown.</p>
224
+ * @property onHide - <p>Event which fires when the component is hidden.</p>
225
+ * @property onDestroy - <p>Event which fires when the component is destroyed.</p>
226
+ * @property onPreApplyTemplate - <p>Event which fires before a template is applied.</p>
227
+ * @property onPostApplyTemplate - <p>Event which fires after a template is applied.</p>
228
+ * @property onAjaxStart - <p>Event which fires before an ajax method call.</p>
229
+ * @property onAjaxComplete - <p>Event which fires after an ajax method call.</p>
230
+ * @property onAjaxSuccess - <p>Event which fires when an ajax method response has httpstatus &gt;= 200 &amp; &lt; 300 or 304.</p>
231
+ * @property onAjaxError - <p>Event which fires when an ajax method response does not have an http success status code.</p>
232
+ * @property onAjaxProgress - <p>Event which fires periodically while downloading data.</p>
233
+ * @property onAjaxUploadProgress - <p>Event which fires periodically while uploading data.</p>
234
+ * @property onAjaxUploadError - <p>Event which fires when an upload failed.</p>
235
+ * @property onAjaxAbort - <p>Event which fires when a running ajax call is aborted.</p>
236
+ * @property onClick - <p>Event which fires when the component is clicked.</p>
237
+ */
238
+ class Events<TSender = componyx.UI.base.Component | componyx.UI.base.WebComponent, THideArgs = undefined>
239
+ {
240
+ /**
241
+ * <p>Removes all event handlers.</p>
242
+ */
243
+ dispose: (...params: any[]) => any;
244
+ /**
245
+ * <p>Event which fires before the component is rendered.</p>
246
+ */
247
+ onPreRender: componyx.UI.base.Event<TSender, componyx.UI.base.PreRenderEventArgs>;
248
+ /**
249
+ * <p>Event which fires after the component is rendered.</p>
250
+ */
251
+ onPostRender: componyx.UI.base.Event<TSender, undefined>;
252
+ /**
253
+ * <p>Event which fires when the component is shown.</p>
254
+ */
255
+ onShow: componyx.UI.base.Event<TSender, undefined>;
256
+ /**
257
+ * <p>Event which fires when the component is hidden.</p>
258
+ */
259
+ onHide: componyx.UI.base.Event<TSender, THideArgs>;
260
+ /**
261
+ * <p>Event which fires when the component is destroyed.</p>
262
+ */
263
+ onDestroy: componyx.UI.base.Event<TSender, undefined>;
264
+ /**
265
+ * <p>Event which fires before a template is applied.</p>
266
+ */
267
+ onPreApplyTemplate: componyx.UI.base.Event<TSender, componyx.UI.base.TemplateEventArgs>;
268
+ /**
269
+ * <p>Event which fires after a template is applied.</p>
270
+ */
271
+ onPostApplyTemplate: componyx.UI.base.Event<TSender, componyx.UI.base.TemplateEventArgs>;
272
+ /**
273
+ * <p>Event which fires before an ajax method call.</p>
274
+ */
275
+ onAjaxStart: componyx.UI.base.Event<TSender, componyx.UI.base.AjaxEventArgs>;
276
+ /**
277
+ * <p>Event which fires after an ajax method call.</p>
278
+ */
279
+ onAjaxComplete: componyx.UI.base.Event<TSender, componyx.UI.base.AjaxEventArgs>;
280
+ /**
281
+ * <p>Event which fires when an ajax method response has httpstatus &gt;= 200 &amp; &lt; 300 or 304.</p>
282
+ */
283
+ onAjaxSuccess: componyx.UI.base.Event<TSender, componyx.UI.base.AjaxEventArgs>;
284
+ /**
285
+ * <p>Event which fires when an ajax method response does not have an http success status code.</p>
286
+ */
287
+ onAjaxError: componyx.UI.base.Event<TSender, componyx.UI.base.AjaxEventArgs>;
288
+ /**
289
+ * <p>Event which fires periodically while downloading data.</p>
290
+ */
291
+ onAjaxProgress: componyx.UI.base.Event<TSender, componyx.UI.base.AjaxEventArgs>;
292
+ /**
293
+ * <p>Event which fires periodically while uploading data.</p>
294
+ */
295
+ onAjaxUploadProgress: componyx.UI.base.Event<TSender, componyx.UI.base.AjaxEventArgs>;
296
+ /**
297
+ * <p>Event which fires when an upload failed.</p>
298
+ */
299
+ onAjaxUploadError: componyx.UI.base.Event<TSender, componyx.UI.base.AjaxEventArgs>;
300
+ /**
301
+ * <p>Event which fires when a running ajax call is aborted.</p>
302
+ */
303
+ onAjaxAbort: componyx.UI.base.Event<TSender, componyx.UI.base.AjaxEventArgs>;
304
+ /**
305
+ * <p>Event which fires when the component is clicked. The event arguments are the original click event.</p>
306
+ */
307
+ onClick: componyx.UI.base.Event<TSender, MouseEvent>;
308
+ }
309
+ /**
310
+ * <p>Pre-render event arguments.</p>
311
+ */
312
+ type PreRenderEventArgs = {
313
+ /** <p>Set to true to cancel the render.</p> */
314
+ cancel: boolean;
315
+ };
316
+ /**
317
+ * <p>Template event arguments.</p>
318
+ */
319
+ type TemplateEventArgs = {
320
+ /** <p>The template id.</p> */
321
+ id: string;
322
+ /** <p>The template element.</p> */
323
+ template: HTMLElement;
324
+ /** <p>The element to which the template content is added.</p> */
325
+ element: HTMLElement;
326
+ /** <p>The template replacement values.</p> */
327
+ values: any;
328
+ /** <p>The callback method for the template replacement values.</p> */
329
+ matchHandler?: (...params: any[]) => any;
330
+ };
331
+ /**
332
+ * <p>Ajax event arguments: the XHR arguments as passed to the componyx.library.XhrCallback. Any callArgs passed to ajaxCall follow as additional handler parameters.</p>
333
+ */
334
+ type AjaxEventArgs = any;
335
+ /**
336
+ * <p>Represents a configurable AJAX method associated with a component or context instance.
337
+ * Used to generate dynamic endpoint URLs and manage request payloads and headers.</p>
338
+ * @property url - <p>The method-specific URL to use. If not set, falls back to <code>ajax.url</code>.</p>
339
+ * @property absoluteURL - <p>If <code>false</code>, the URL will be resolved as relative to <code>location.origin</code>.</p>
340
+ * @property jsonResponseDataWrapper - <p>Optional key to extract response data from (e.g., for .NET-style responses). Falls back to <code>ajax.jsonResponseDataWrapper</code>.</p>
341
+ * @property jsonDeserializer - <p>Optional function to deserialize the JSON response.</p>
342
+ * @property endPointMethod - <p>The server-side method name to be appended to the endpoint URL.</p>
343
+ * @property customParameters - <p>Additional query parameters or payload to be merged with the request data.</p>
344
+ * @property headers - <p>HTTP headers specific to this method. Overrides global headers in <code>ajax.headers</code>.</p>
345
+ */
346
+ type AjaxMethod = {
347
+ url: string;
348
+ absoluteURL: boolean;
349
+ jsonResponseDataWrapper: string | null;
350
+ jsonDeserializer: ((...params: any[]) => any) | null;
351
+ endPointMethod: string;
352
+ customParameters: string | any;
353
+ headers: {
354
+ [key: string]: string;
355
+ } | null;
356
+ /**
357
+ * <p>Returns a value indicating if the ajax method has a defined url, either on the method itself or on the component's base ajax settings.</p>
358
+ */
359
+ isDefined(): boolean;
360
+ /**
361
+ * <p>Invokes the ajax method.</p>
362
+ * @param data - <p>The data to send.</p>
363
+ * @param onStart - <p>Callback fired before the request.</p>
364
+ * @param onComplete - <p>Callback fired after the request.</p>
365
+ * @param onSuccess - <p>Callback fired when the request was successful.</p>
366
+ * @param onError - <p>Callback fired when the request failed.</p>
367
+ * @param onProgress - <p>Callback fired on download progress.</p>
368
+ * @param onUploadProgress - <p>Callback fired on upload progress.</p>
369
+ * @param onUploadError - <p>Callback fired when the upload failed.</p>
370
+ * @param onAbort - <p>Callback fired when the request was aborted.</p>
371
+ */
372
+ invoke(data: any, onStart?: (...params: any[]) => any, onComplete?: (...params: any[]) => any, onSuccess?: (...params: any[]) => any, onError?: (...params: any[]) => any, onProgress?: (...params: any[]) => any, onUploadProgress?: (...params: any[]) => any, onUploadError?: (...params: any[]) => any, onAbort?: (...params: any[]) => any): any;
373
+ };
374
+ /**
375
+ * @param name - <p>The method name to create or override.</p>
376
+ */
377
+ type AddAjaxMethod = (name: string) => void;
378
+ /**
379
+ * <p>UI component Base Component class.</p>
380
+ * @property id - <p>The unique identifier of the component.</p>
381
+ * @property containerElement - <p>The parent element of the component's root element.</p>
382
+ * @property beforeElement - <p>The component's root element will be placed before this node when specified.</p>
383
+ * @property name - <p>The name of the component's input field when applicable.</p>
384
+ * @property theme - <p>The active styling theme of the component.</p>
385
+ * @property themeName - <p>The CSS theme name which is set on the component's root element.</p>
386
+ * @property cssClass - <p>The CSS class of the component's root HTMLElement.</p>
387
+ * @property cssClassTouch - <p>The CSS class applied to the component's root HTMLElement when dealing with a touch device.</p>
388
+ * @property style - <p>The CSS style text applied to the root HTMLElement of the component.</p>
389
+ * @property title - <p>The title of the root element.</p>
390
+ * @property tabIndex - <p>The tabindex of the component's root HTMLElement.</p>
391
+ * @property autoTouchConfig - <p>A value indicating if the component automatically uses optimal touch device settings when rendered on a touch device.</p>
392
+ * @property cloneInput - <p>A value indicating if the source input is cloned when a (hidden)input is used as base element.</p>
393
+ * @property keepInputId - <p>A value indicating if the source input id is kept when a (hidden)input is cloned and used as base element.</p>
394
+ * @property keepInputEventHandlers - <p>A value indicating if the source input event handlers are kept when a (hidden)input is cloned and used as base element.</p>
395
+ * @property disableDefaultCssClass - <p>A value indicating if the default component css class is set on the component element.</p>
396
+ * @property renderState - <p>The current render state of the component.</p>
397
+ * @property element - <p>The root HTMLElement of the component.</p>
398
+ * @property showing - <p>A value indicating if the component is visible. This active state might differ from property hidden when async resources are loaded, i.e. when a component.show() is called this property value is set to true while the hidden property will also remain true until the resources are loaded and the component is rendered.</p>
399
+ * @property allowPostRender - <p>A value indicating if the post render event is allowed.</p>
400
+ * @property renderWhenConnected - <p>A value indicating if the component is rendered when the connectedCallback method is invoked. This property only applies to components that are build as standard Web Component with a custom element definition, see documentation for applicable components.</p>
401
+ * @property ignoreConnectionCallbacks - <p>A value indicating if the execution of the connectedCallback and disconnectedCallback are prevented during DOM modifications (e.g. replaceChild, appendChild, insertBefore, replaceWith). By default, this is <code>false</code>. If needed, you can set it to <code>true</code> before modifying the DOM. This property only applies to components built as standard Web Components with a custom element definition; see documentation for applicable components.</p>
402
+ * @property canRender - <p>A value indicating if the component is allowed to render. Useful for delaying rendering until data binding (using any prefered framework) is complete when attributes are data-bound.</p>
403
+ * @property templates - <p>Initialized Templates of the component.</p>
404
+ * @property store - <p>Internal storage of UI child components.</p>
405
+ * @property events - <p>The base component events.</p>
406
+ * @property ajax - <p>Contains AJAX configuration and dynamically created AJAX methods.</p>
407
+ * @property ajax.url - <p>The default base URL used for AJAX calls.</p>
408
+ * @property ajax.absoluteURL - <p>Indicates whether the <code>url</code> is treated as absolute (<code>true</code>) or relative to the current location (<code>false</code>).</p>
409
+ * @property [ajax.headers = null] - <p>Optional HTTP request headers to include with each AJAX call.</p>
410
+ * @property ajax.jsonResponseDataWrapper - <p>The JSON wrapper key used to extract data from the server response (e.g., for ASP.NET JSON responses).</p>
411
+ * @property ajax.jsonDeserializer - <p>Optional function to deserialize JSON data from the server.</p>
412
+ * @property ajax.load - <p>Default AJAX method instance used for basic data loading.</p>
413
+ * @property ajax.addMethod - <p>INTERNAL: Adds or overrides a named AJAX method.</p>
414
+ */
415
+ class Component
416
+ {
417
+ /**
418
+ * @param id - <p>The unique identifier of the component.</p>
419
+ * @param [properties] - <p>The properties used to initialize the component or the container element.</p>
420
+ * @param [baseObject] - <p>One or more objects or constructors whose members are cloned onto the component instance (constructors are instantiated first).</p>
421
+ */
422
+ constructor(id: string, properties?: any | HTMLElement, baseObject?: object | (new () => object) | Array<object | (new () => object)>);
423
+ /**
424
+ * <p>The unique identifier of the component.</p>
425
+ */
426
+ id: string;
427
+ /**
428
+ * <p>The parent element of the component's root element.</p>
429
+ */
430
+ containerElement: HTMLElement;
431
+ /**
432
+ * <p>The component's root element will be placed before this node when specified.</p>
433
+ */
434
+ beforeElement: HTMLElement;
435
+ /**
436
+ * <p>The name of the component's input field when applicable.</p>
437
+ */
438
+ name: string;
439
+ /**
440
+ * <p>The active styling theme of the component.</p>
441
+ */
442
+ theme: componyx.UI.base.static.ThemeOption;
443
+ /**
444
+ * <p>The CSS theme name which is set on the component's root element.</p>
445
+ */
446
+ themeName: string;
447
+ /**
448
+ * <p>The CSS class of the component's root HTMLElement.</p>
449
+ */
450
+ cssClass: string;
451
+ /**
452
+ * <p>The CSS class applied to the component's root HTMLElement when dealing with a touch device.</p>
453
+ */
454
+ cssClassTouch: string;
455
+ /**
456
+ * <p>The CSS style text applied to the root HTMLElement of the component.</p>
457
+ */
458
+ style: string;
459
+ /**
460
+ * <p>The title of the root element.</p>
461
+ */
462
+ title: string;
463
+ /**
464
+ * <p>The tabindex of the component's root HTMLElement.</p>
465
+ */
466
+ tabIndex: string;
467
+ /**
468
+ * <p>A value indicating if the component automatically uses optimal touch device settings when rendered on a touch device.</p>
469
+ */
470
+ autoTouchConfig: boolean;
471
+ /**
472
+ * <p>A value indicating if the source input is cloned when a (hidden)input is used as base element.</p>
473
+ */
474
+ cloneInput: boolean;
475
+ /**
476
+ * <p>A value indicating if the source input id is kept when a (hidden)input is cloned and used as base element.</p>
477
+ */
478
+ keepInputId: boolean;
479
+ /**
480
+ * <p>A value indicating if the source input event handlers are kept when a (hidden)input is cloned and used as base element.</p>
481
+ */
482
+ keepInputEventHandlers: boolean;
483
+ /**
484
+ * <p>A value indicating if the default component css class is set on the component element.</p>
485
+ */
486
+ disableDefaultCssClass: boolean;
487
+ /**
488
+ * <p>The current render state of the component.</p>
489
+ */
490
+ renderState: componyx.UI.base.static.RenderState;
491
+ /**
492
+ * <p>The root HTMLElement of the component.</p>
493
+ */
494
+ element: HTMLElement;
495
+ /**
496
+ * <p>A value indicating if the component is visible. This active state might differ from property hidden when async resources are loaded, i.e. when a component.show() is called this property value is set to true while the hidden property will also remain true until the resources are loaded and the component is rendered.</p>
497
+ */
498
+ showing: boolean;
499
+ /**
500
+ * <p>A value indicating if the post render event is allowed.</p>
501
+ */
502
+ allowPostRender: boolean;
503
+ /**
504
+ * <p>A value indicating if the component is rendered when the connectedCallback method is invoked. This property only applies to components that are build as standard Web Component with a custom element definition, see documentation for applicable components.</p>
505
+ */
506
+ renderWhenConnected: boolean;
507
+ /**
508
+ * <p>A value indicating if the execution of the connectedCallback and disconnectedCallback are prevented during DOM modifications (e.g. replaceChild, appendChild, insertBefore, replaceWith). By default, this is <code>false</code>. If needed, you can set it to <code>true</code> before modifying the DOM. This property only applies to components built as standard Web Components with a custom element definition; see documentation for applicable components.</p>
509
+ */
510
+ ignoreConnectionCallbacks: boolean;
511
+ /**
512
+ * <p>A value indicating if the component is allowed to render. Useful for delaying rendering until data binding (using any prefered framework) is complete when attributes are data-bound.</p>
513
+ */
514
+ canRender: boolean;
515
+ /**
516
+ * <p>Initialized Templates of the component.</p>
517
+ */
518
+ templates: any;
519
+ /**
520
+ * <p>Internal storage of UI child components.</p>
521
+ */
522
+ store: any;
523
+ /**
524
+ * <p>A value indicating if the component observes attribute mutations on its root element to keep properties in sync.</p>
525
+ */
526
+ observing: boolean;
527
+ /**
528
+ * <p>The MutationObserver instance watching attribute changes on the component's root element, when observing is active.</p>
529
+ */
530
+ attributeObserver: MutationObserver | null;
531
+ /**
532
+ * <p>The MutationObserver instance watching for removal of the component's root element from its parent, when observing is active.</p>
533
+ */
534
+ removalObserver: MutationObserver | null;
535
+ /**
536
+ * <p>The base component events.</p>
537
+ */
538
+ events: componyx.UI.base.Events<any, any>;
539
+ /**
540
+ * <p>Contains AJAX configuration and dynamically created AJAX methods.</p>
541
+ */
542
+ ajax: {
543
+ url: string;
544
+ absoluteURL: boolean;
545
+ headers?: {
546
+ [key: string]: string;
547
+ };
548
+ jsonResponseDataWrapper: string;
549
+ jsonDeserializer: ((...params: any[]) => any) | null;
550
+ load: componyx.UI.base.AjaxMethod;
551
+ addMethod: componyx.UI.base.AddAjaxMethod;
552
+ };
553
+ }
554
+ /**
555
+ * <p>Base static utility methods.</p>
556
+ */
557
+ namespace static
558
+ {
559
+ /**
560
+ * <p>Theme options.</p>
561
+ */
562
+ enum ThemeOption
563
+ {
564
+ NONE = -1,
565
+ BASE = 0,
566
+ DEFAULT = 1
567
+ }
568
+ namespace ThemeOption
569
+ {
570
+ /**
571
+ * <p>Gets the name of the specified value.</p>
572
+ * @param value - <p>The enum value.</p>
573
+ */
574
+ function getName(value: componyx.UI.base.static.ThemeOption): string;
575
+ }
576
+ /**
577
+ * <p>Render states.</p>
578
+ */
579
+ enum RenderState
580
+ {
581
+ NONE = 0,
582
+ RENDERING = 1,
583
+ RENDERED = 2
584
+ }
585
+ /**
586
+ * <p>Animation easing options.</p>
587
+ */
588
+ enum AnimationEasingOption
589
+ {
590
+ linear = 0,
591
+ easeInQuad = 1,
592
+ easeOutQuad = 2,
593
+ easeInOutQuad = 3,
594
+ easeInCubic = 4,
595
+ easeOutCubic = 5,
596
+ easeInOutCubic = 6,
597
+ easeInQuart = 7,
598
+ easeOutQuart = 8,
599
+ easeInOutQuart = 9,
600
+ easeInQuint = 10,
601
+ easeOutQuint = 11,
602
+ easeInOutQuint = 12,
603
+ easeInSine = 13,
604
+ easeOutSine = 14,
605
+ easeInOutSine = 15,
606
+ easeInExpo = 16,
607
+ easeOutExpo = 17,
608
+ easeInOutExpo = 18,
609
+ easeInCirc = 19,
610
+ easeOutCirc = 20,
611
+ easeInOutCirc = 21,
612
+ easeInElastic = 22,
613
+ easeOutElastic = 23,
614
+ easeInOutElastic = 24,
615
+ easeInBack = 25,
616
+ easeOutBack = 26,
617
+ easeInOutBack = 27,
618
+ easeInBounce = 28,
619
+ easeOutBounce = 29,
620
+ easeInOutBounce = 30
621
+ }
622
+ namespace AnimationEasingOption
623
+ {
624
+ /**
625
+ * <p>Gets the name of the specified value.</p>
626
+ * @param value - <p>The enum value.</p>
627
+ */
628
+ function getName(value: componyx.UI.base.static.AnimationEasingOption): string;
629
+ }
630
+ /**
631
+ * <p>Resolves a method reference. If the name is a string it is resolved as a (possibly dotted) global function reference, optionally with a static-argument call expression (e.g. <code>"my.ns.fn('literal', 1)"</code>), in which case a wrapper function is returned that merges the static arguments with any runtime arguments. Non-string values are returned unchanged.</p>
632
+ * @param name - <p>The method reference or function.</p>
633
+ */
634
+ function getMethod(name: ((...params: any[]) => any) | string): ((...params: any[]) => any) | string | null;
635
+ /**
636
+ * <p>Gets the key of the specified value on an object (typically an enum-like object).</p>
637
+ * @param obj - <p>The object to search.</p>
638
+ * @param value - <p>The value to look up.</p>
639
+ */
640
+ function getKeyByValue(obj: any, value: any): string | null;
641
+ /**
642
+ * <p>Initializes drag settings, resolving element references and merging with source settings. This method should not be invoked by client code directly but only from inside component code.</p>
643
+ * @param settings - <p>The drag settings to initialize.</p>
644
+ * @param srcSettings - <p>Source settings to merge in.</p>
645
+ */
646
+ function initDragSettings(settings: any, srcSettings?: any): any;
647
+ /**
648
+ * <p>Initializes resize settings, resolving element references and merging with source settings. This method should not be invoked by client code directly but only from inside component code.</p>
649
+ * @param settings - <p>The resize settings to initialize.</p>
650
+ * @param srcSettings - <p>Source settings to merge in.</p>
651
+ */
652
+ function initResizeSettings(settings: any, srcSettings?: any): any;
653
+ /**
654
+ * <p>Initializes select settings, resolving element references and merging with source settings. This method should not be invoked by client code directly but only from inside component code.</p>
655
+ * @param settings - <p>The select settings to initialize.</p>
656
+ * @param srcSettings - <p>Source settings to merge in.</p>
657
+ */
658
+ function initSelectSettings(settings: any, srcSettings?: any): any;
659
+ /**
660
+ * <p>Creates a new base UI event.</p>
661
+ * @param eventName - <p>The name of the event.</p>
662
+ */
663
+ function createEvent(eventName: string): componyx.UI.base.Event;
664
+ /**
665
+ * <p>A base, array-like list of {@link componyx.UI.base.static.Item} items providing lookup and navigation helpers.</p>
666
+ */
667
+ interface ItemList extends Omit<Array<componyx.UI.base.static.Item>, 'find' | 'filter'>
668
+ {
669
+ /**
670
+ * <p>Gets the item with the specified id.</p>
671
+ * @param id - <p>The id of the item.</p>
672
+ */
673
+ get(id: string): componyx.UI.base.static.Item;
674
+ /**
675
+ * <p>Gets the item with the specified value.</p>
676
+ * @param value - <p>The value of the item.</p>
677
+ */
678
+ getByValue(value: any): componyx.UI.base.static.Item;
679
+ /**
680
+ * <p>Gets the item with the specified text.</p>
681
+ * @param text - <p>The text of the item.</p>
682
+ * @param [caseInsensitive] - <p>A value indicating if the comparison is case insensitive.</p>
683
+ */
684
+ getByText(text: string, caseInsensitive?: boolean): componyx.UI.base.static.Item;
685
+ /**
686
+ * <p>Gets the previous enabled item relative to the item with the specified id.</p>
687
+ * @param id - <p>The id of the item.</p>
688
+ */
689
+ previous(id: string): componyx.UI.base.static.Item;
690
+ /**
691
+ * <p>Gets the next enabled item relative to the item with the specified id.</p>
692
+ * @param id - <p>The id of the item.</p>
693
+ */
694
+ next(id: string): componyx.UI.base.static.Item;
695
+ /**
696
+ * <p>Finds the next matching item for the specified filter text, cycling past the item with the specified id.</p>
697
+ * @param text - <p>The text to filter on.</p>
698
+ * @param [id] - <p>The id of the item to start searching after.</p>
699
+ */
700
+ find(text: string, id?: string): componyx.UI.base.static.Item;
701
+ /**
702
+ * <p>Filters the list to items whose text starts with the specified text.</p>
703
+ * @param text - <p>The text to filter on.</p>
704
+ */
705
+ filter(text: string): componyx.UI.base.static.Item[];
706
+ }
707
+ const ItemList: { new(): ItemList; prototype: ItemList };
708
+ /**
709
+ * <p>Item base class.</p>
710
+ * @param properties - <p>The properties used to initialize the object.</p>
711
+ */
712
+ class Item
713
+ {
714
+ constructor(properties: any);
715
+ /**
716
+ * <p>Gets or sets the attributes of the item.</p>
717
+ */
718
+ attributes: any;
719
+ /**
720
+ * <p>Gets or sets the id of the item.</p>
721
+ */
722
+ id: string;
723
+ /**
724
+ * <p>Gets or sets the id of the item template.</p>
725
+ */
726
+ templateId: string;
727
+ /**
728
+ * <p>Gets or sets the css class of the item.</p>
729
+ */
730
+ cssClass: string;
731
+ /**
732
+ * <p>Gets or sets the text of the item.</p>
733
+ */
734
+ text: string;
735
+ /**
736
+ * <p>Gets or sets the value of the item.</p>
737
+ */
738
+ value: string;
739
+ /**
740
+ * <p>Gets or sets a value indicating if the item is disabled.</p>
741
+ */
742
+ disabled: boolean;
743
+ /**
744
+ * <p>Gets or sets a value indicating if the item is read-only.</p>
745
+ */
746
+ readOnly: boolean;
747
+ /**
748
+ * <p>Gets or sets a Value indicating if the item is selected.</p>
749
+ */
750
+ selected: boolean;
751
+ }
752
+ }
753
+ /**
754
+ * <p>A base class for UI components extending the HTMLElement.
755
+ * This class provides the core functionality for UI components including base properties and events.</p>
756
+ */
757
+ /**
758
+ * <p>Web components receive the same base properties as Component (theme, cssClass, renderState, ajax, etc.).
759
+ * Id, style, title and tabIndex come from HTMLElement itself.</p>
760
+ */
761
+ interface WebComponent extends Omit<componyx.UI.base.Component, 'id' | 'containerElement' | 'style' | 'title' | 'tabIndex' | 'events'> { }
762
+ class WebComponent extends HTMLElement
763
+ {
764
+ /**
765
+ * <p>Events attached to the component.</p>
766
+ */
767
+ events: componyx.UI.base.Events<any, any>;
768
+ /**
769
+ * <p>Initializes the component with the specified properties.</p>
770
+ * @param [props] - <p>The properties used to initialize the component.</p>
771
+ */
772
+ init(props?: any): void;
773
+ /**
774
+ * <p>Invoked when the element is added to the DOM. Renders the component if not already in the rendering state.</p>
775
+ */
776
+ connectedCallback(): void;
777
+ /**
778
+ * <p>Invoked when the element is removed from the DOM. Cleans up the component.</p>
779
+ */
780
+ disconnectedCallback(): void;
781
+ /**
782
+ * <p>Renders the component.</p>
783
+ * @param resourceHandler - <p>The callback method for registering script and css resources.</p>
784
+ * @param defaultName - <p>The default name is used as default css class and when $UI.useCustomElementNames is enabled, as the element tag name prefixed by $UI.tagPrefix (default 'cui-').</p>
785
+ * @param [hasTheme] - <p>A value indicating if the component has a CSS theme.</p>
786
+ */
787
+ render(resourceHandler: (...params: any[]) => any, defaultName: string, hasTheme?: boolean): void;
788
+ /**
789
+ * <p>Clones component properties. This method should not be invoked by client code directly but only from inside component code.</p>
790
+ * @param properties - <p>The properties to clone.</p>
791
+ */
792
+ protected cloneProperties(properties: any): void;
793
+ /**
794
+ * <p>Executes the post render procedure. This method should not be invoked by client code directly but only from inside component code.</p>
795
+ */
796
+ protected postRender(): void;
797
+ /**
798
+ * <p>Destroys the component.</p>
799
+ * @param keepEvents - <p>A value indicating if component events should be kept.</p>
800
+ * @param removeElement - <p>A value indicating if the corresponding HTML Element should be removed.</p>
801
+ */
802
+ destroy(keepEvents: boolean, removeElement?: boolean): void;
803
+ /**
804
+ * <p>Gets the CSS class name from the component property if it exists, otherwise returns the default CSS class.</p>
805
+ * @param classOption - <p>Object containing class options.</p>
806
+ * @param cssClassValue - <p>Default CSS class value.</p>
807
+ * @returns <p>The resolved CSS class name.</p>
808
+ */
809
+ getCssClass(classOption: any, cssClassValue: string): string;
810
+ }
811
+ interface methods
812
+ {
813
+ /**
814
+ * <p>Handles attribute mutations, updates corresponding properties, and triggers a single render after all mutations are processed.</p>
815
+ * @param mutations - <p>An array of mutation records containing details of the observed attribute changes.</p>
816
+ * @param observer - <p>The MutationObserver instance that is observing changes to the DOM.</p>
817
+ */
818
+ mutationCallback(mutations: MutationRecord[], observer: MutationObserver): void;
819
+ /**
820
+ * <p>Executes and XHR call. This method should not be invoked by client code directly but only from inside component code.</p>
821
+ * @param method - <p>The name of the method.</p>
822
+ * @param data - <p>The data to send.</p>
823
+ * @param events - <p>An object holding event handlers for various XHR events (onStart, onComplete, onSuccess, onError, onAbort, onProgress, onUploadProgress, onUploadError).</p>
824
+ * @param callArgs - <p>Arguments to pass to the global event handlers.</p>
825
+ */
826
+ ajaxCall(method: string, data: any | string, events?: any, callArgs?: any[]): any;
827
+ /**
828
+ * <p>Suppresses any change events fired by the underlying input element during the execution of the provided action. Use this when programmatically setting a component value to prevent the change event from propagating as a user interaction. The suppression is automatically lifted after the action completes, even if it throws.</p>
829
+ * @param action - <p>The action to execute with change events suppressed.</p>
830
+ */
831
+ suppressNextChangeEvent(action: (...params: any[]) => any): void;
832
+ /**
833
+ * <p>Hides the component when it's showing, otherwise it shows the component.</p>
834
+ */
835
+ toggle(): void;
836
+ /**
837
+ * <p>Shows the component.</p>
838
+ */
839
+ show(): void;
840
+ /**
841
+ * <p>Hides the component.</p>
842
+ */
843
+ hide(): void;
844
+ /**
845
+ * <p>Destroys the component.</p>
846
+ * @param keepEvents - <p>A value indicating if component events should be kept.</p>
847
+ * @param removeElement - <p>A value indicating if the corresponding HTML Element should be removed.</p>
848
+ */
849
+ destroy(keepEvents: boolean, removeElement?: boolean): void;
850
+ /**
851
+ * <p>Renders the component.</p>
852
+ * @param resourceHandler - <p>The callback method for registering script and css resources.</p>
853
+ * @param defaultName - <p>The default name is used as default css class and when $UI.useCustomElementNames is enabled, as the element tag name prefixed by $UI.tagPrefix (default 'cui-').</p>
854
+ * @param [hasTheme] - <p>A value indicating if the component has a CSS theme.</p>
855
+ * @param [tagName] - <p>The tag name of the component element.</p>
856
+ * @param [customTagName] - <p>The tag name of the component element when $UI.useCustomElementNames is enabled and a different tag than the default name is desired.</p>
857
+ */
858
+ render(resourceHandler: (...params: any[]) => any, defaultName: string, hasTheme?: boolean, tagName?: string, customTagName?: string): void;
859
+ /**
860
+ * <p>Initializes the render phase for the component.
861
+ * This method should not be invoked by client code directly but only from inside component code.</p>
862
+ * @param resourceHandler - <p>The callback method for registering script and css resources.</p>
863
+ * @param defaultName - <p>The default name is used as default css class and when $UI.useCustomElementNames is enabled, as the element tag name prefixed by $UI.tagPrefix (default 'cui-').</p>
864
+ * @param hasTheme - <p>A value indicating if the component has a CSS theme.</p>
865
+ */
866
+ initRenderPhase(resourceHandler: (...params: any[]) => any, defaultName: string, hasTheme: boolean): void;
867
+ /**
868
+ * <p>Creates the component's element and handles updates.
869
+ * This method should not be invoked by client code directly but only from inside component code.</p>
870
+ * @param defaultName - <p>The default name is used as default css class and when $UI.useCustomElementNames is enabled, as the element tag name prefixed by $UI.tagPrefix (default 'cui-').</p>
871
+ * @param tagName - <p>The tag name of the component element.</p>
872
+ * @param customTagName - <p>The tag name of the component element when $UI.useCustomElementNames is enabled and a different tag than the default name is desired.</p>
873
+ */
874
+ createElement(defaultName: string, tagName: string, customTagName: string): void;
875
+ /**
876
+ * <p>Configures the component's element.
877
+ * This method should not be invoked by client code directly but only from inside component code.</p>
878
+ * @param defaultName - <p>The default name is used as default css class and when $UI.useCustomElementNames is enabled, as the element tag name prefixed by $UI.tagPrefix (default 'cui-').</p>
879
+ */
880
+ configureElement(defaultName: string): void;
881
+ /**
882
+ * <p>Sets up the mutation observer to track attribute changes and DOM element removal.
883
+ * This method should not be invoked by client code directly but only from inside component code.</p>
884
+ */
885
+ setupMutationObserver(): void;
886
+ /**
887
+ * <p>Invokes pre-render actions and fires the <code>onPreRender</code> event.
888
+ * This method should not be invoked by client code directly but only from inside component code.</p>
889
+ */
890
+ invokePreRender(): void;
891
+ /**
892
+ * <p>Registers required resources (CSS and JS) for the component.
893
+ * This method should not be invoked by client code directly but only from inside component code.</p>
894
+ * @param resourceHandler - <p>The callback method for fetching resources.</p>
895
+ * @param callback - <p>The callback to call after resources are loaded.</p>
896
+ */
897
+ registerResources(resourceHandler: (...params: any[]) => any, callback: (...params: any[]) => any): void;
898
+ /**
899
+ * <p>Returns the CSS class string for the component's theme.
900
+ * This method should not be invoked by client code directly but only from inside component code.</p>
901
+ */
902
+ getThemeCSS(): void;
903
+ /**
904
+ * <p>Moves the component to a new position within the DOM.</p>
905
+ * @param container - <p>The new container element.</p>
906
+ * @param [before] - <p>The new before element.</p>
907
+ */
908
+ move(container: HTMLElement, before?: HTMLElement): void;
909
+ /**
910
+ * <p>Calls the render method on all child components. This method should not be invoked by client code directly but only from inside component code.</p>
911
+ */
912
+ renderChildren(): void;
913
+ /**
914
+ * <p>Checks if all child components have been rendered and calls the component's postRender method when this is the case. This method should not be invoked by client code directly but only from inside component code.
915
+ * This method is used as a postRender callback for child components.</p>
916
+ */
917
+ isReady(): void;
918
+ /**
919
+ * <p>Executes the post render procedure. This method should not be invoked by client code directly but only from inside component code.</p>
920
+ */
921
+ postRender(): void;
922
+ /**
923
+ * <p>Adds (or removes) a template.
924
+ * Templates for data-items provide support for property interpolations.
925
+ * These interpolations are curly bracket formatted markers which are replaced with item property values during template rendering.
926
+ * Example: {text} will output the value of item.text, while {customProperty} will output the value of item.attributes.customProperty.</p>
927
+ * @param id - <p>Id of the template.</p>
928
+ * @param content - <p>HTML string or element node array or element node. Pass null or empty string to remove the existing template.</p>
929
+ * @param [cloneable = true] - <p>Defines if the template can be cloned for multiple views.</p>
930
+ * @param [interpolate = true] - <p>Defines if a search and replace action on the inner HTML of the template will be performed to set the corresponding value for a interpolate tag (e.g. {value}).</p>
931
+ */
932
+ addTemplate(id: string, content: HTMLElement | HTMLElement[] | DocumentFragment | string | null, cloneable?: boolean, interpolate?: boolean): void;
933
+ /**
934
+ * <p>Checks if the template with the specified template id exists.</p>
935
+ * @param templateId - <p>The id of the template.</p>
936
+ * @returns <p>True if the template is present, otherwise false.</p>
937
+ */
938
+ hasTemplate(templateId: string): boolean;
939
+ /**
940
+ * <p>Gets all the template HTMLElements for the component and stores them in the component's internal template cache. This method should not be invoked by client code directly but only from inside component code.</p>
941
+ * @returns <p>A list of collected template elements.</p>
942
+ */
943
+ collectTemplates(): HTMLElement[];
944
+ /**
945
+ * <p>Gets the template HTMLElement and stores it in the component's internal template cache. This method should not be invoked by client code directly but only from inside component code.</p>
946
+ * @param element - <p>The template element.</p>
947
+ */
948
+ collectTemplate(element: HTMLElement): void;
949
+ /**
950
+ * <p>Gets the template content for the specified template id. This method should not be invoked by client code directly but only from inside component code.</p>
951
+ * @param templateId - <p>The id of the template.</p>
952
+ * @returns <p>The template content.</p>
953
+ */
954
+ getTemplateContent(templateId: string): DocumentFragment;
955
+ /**
956
+ * <p>Applies the template content. This method should not be invoked by client code directly but only from inside component code.</p>
957
+ * @param element - <p>The element to which the template content will be added.</p>
958
+ * @param templateId - <p>The id of the template.</p>
959
+ * @param [values] - <p>Template replacement values.</p>
960
+ * @param [matchHandler] - <p>Callback method for the template replacement values.</p>
961
+ */
962
+ applyTemplate(element: HTMLElement, templateId: string, values?: any, matchHandler?: (...params: any[]) => any): void;
963
+ /**
964
+ * <p>Executes a form post-back. This method should not be invoked by client code directly but only from inside component code.</p>
965
+ * @param arg - <p>The postback argument.</p>
966
+ * @param formId - <p>The id of the form.</p>
967
+ */
968
+ postBack(arg: string, formId: string): void;
969
+ /**
970
+ * <p>Sets the postback arguments. This method should not be invoked by client code directly but only from inside component code.</p>
971
+ * @param frm - <p>The form element.</p>
972
+ * @param arg - <p>The postback argument.</p>
973
+ */
974
+ setPostBackArgs(frm: HTMLElement, arg: string): void;
975
+ /**
976
+ * <p>Clones the source component. This method should not be invoked by client code directly but only from inside component code.</p>
977
+ * @param source - <p>The source component.</p>
978
+ * @param parent - <p>The parent component.</p>
979
+ * @param [cloneTemplates = true] - <p>A value indicating if templates are cloned.</p>
980
+ * @param [cloneEvents = true] - <p>A value indicating if events are cloned.</p>
981
+ * @param [omitKeys = null] - <p>An object with keys to omit from cloning.</p>
982
+ */
983
+ clone(source: componyx.UI.base.Component, parent: componyx.UI.base.Component, cloneTemplates?: boolean, cloneEvents?: boolean, omitKeys?: any): void;
984
+ /**
985
+ * <p>Clones component properties. This method should not be invoked by client code directly but only from inside component code.</p>
986
+ * @param properties - <p>The properties to clone.</p>
987
+ */
988
+ cloneProperties(properties: any): void;
989
+ /**
990
+ * <p>Clones component events. This method should not be invoked by client code directly but only from inside component code.</p>
991
+ * @param source - <p>The source events.</p>
992
+ */
993
+ cloneEvents(source: componyx.UI.base.Events): void;
994
+ /**
995
+ * <p>Checks the focus state of the component and fires the focus event accordingly. This method should not be invoked by client code directly but only from inside component code.</p>
996
+ * @param [instance] - <p>A component for which to check the focus state.</p>
997
+ */
998
+ onFocus(instance?: componyx.UI.base.Component): void;
999
+ /**
1000
+ * <p>Checks the blur state of the component and fires the blur event accordingly. This method should not be invoked by client code directly but only from inside component code.</p>
1001
+ * @param [instance] - <p>A component for which to check the blur state.</p>
1002
+ */
1003
+ onBlur(instance?: componyx.UI.base.Component): void;
1004
+ /**
1005
+ * <p>Delegates focus events on the current instance to the specified instance. This method should not be invoked by client code directly but only from inside component code.</p>
1006
+ * @param instance - <p>The component instance to which the focus / blur events are delegated.</p>
1007
+ */
1008
+ delegateFocusEvents(instance: componyx.UI.base.Component): void;
1009
+ /**
1010
+ * <p>Creates a (hidden) input field to store the input value and syncs it with the component. This method should not be invoked by client code directly but only from inside component code.</p>
1011
+ * @param sourceElementId - <p>The identifier of the source element.</p>
1012
+ * @param onChange - <p>The handler for the event which fires when the hidden input value changes.</p>
1013
+ * @param [isHidden = true] - <p>A value indicating if it is a hidden input.</p>
1014
+ */
1015
+ createSyncedInput(sourceElementId: string, onChange: (...params: any[]) => any, isHidden?: boolean): void;
1016
+ /**
1017
+ * <p>Gets the source element. This method should not be invoked by client code directly but only from inside component code.</p>
1018
+ * @param elementId - <p>The identifier of the source element.</p>
1019
+ */
1020
+ getSourceElement(elementId: string): void;
1021
+ }
1022
+ }
1023
+
1024
+ }
1025
+ }
1026
+
1027
+ /**
1028
+ * <p>componyx.UI ($UI) Contains global helper methods for UI components.</p>
1029
+ */
1030
+ declare var $UI: typeof componyx.UI;
1031
+ /**
1032
+ * <p>componyx.UI.base ($base) Base classes, static helpers and methods for UI components.</p>
1033
+ */
1034
+ declare var $base: typeof componyx.UI.base;