@talxis/base-controls 1.2410.3 → 1.2410.5

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 (138) hide show
  1. package/README.md +20 -11
  2. package/dist/components/DatasetControl/DatasetControl.d.ts +3 -0
  3. package/dist/components/DatasetControl/DatasetControl.js +58 -0
  4. package/dist/components/DatasetControl/DatasetControl.js.map +1 -0
  5. package/dist/components/DatasetControl/hooks/useRerender.d.ts +1 -0
  6. package/dist/components/DatasetControl/hooks/useRerender.js +9 -0
  7. package/dist/components/DatasetControl/hooks/useRerender.js.map +1 -0
  8. package/dist/components/DatasetControl/index.d.ts +2 -0
  9. package/dist/components/DatasetControl/index.js +2 -0
  10. package/dist/components/DatasetControl/index.js.map +1 -0
  11. package/dist/components/DatasetControl/interfaces.d.ts +10 -0
  12. package/dist/components/DatasetControl/styles.d.ts +8 -0
  13. package/dist/components/DatasetControl/styles.js +17 -0
  14. package/dist/components/DatasetControl/styles.js.map +1 -0
  15. package/dist/components/DatasetControl/translations.d.ts +10 -0
  16. package/dist/components/DatasetControl/translations.js +7 -0
  17. package/dist/components/DatasetControl/translations.js.map +1 -0
  18. package/dist/components/Decimal/Decimal.js +1 -1
  19. package/dist/components/Decimal/Decimal.js.map +1 -1
  20. package/dist/components/Duration/Duration.js +1 -1
  21. package/dist/components/Duration/Duration.js.map +1 -1
  22. package/dist/components/Grid/Grid.js +9 -2
  23. package/dist/components/Grid/Grid.js.map +1 -1
  24. package/dist/components/Grid/constants.d.ts +1 -2
  25. package/dist/components/Grid/constants.js +2 -2
  26. package/dist/components/Grid/constants.js.map +1 -1
  27. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +21 -47
  28. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  29. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +2 -3
  30. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +12 -8
  31. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +1 -1
  32. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +1 -2
  33. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +20 -16
  34. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  35. package/dist/components/Grid/core/components/AgGrid/styles.d.ts +1 -4
  36. package/dist/components/Grid/core/components/AgGrid/styles.js +6 -9
  37. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
  38. package/dist/components/Grid/core/components/Cell/Commands/Commands.d.ts +2 -2
  39. package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -1
  40. package/dist/components/Grid/core/components/Cell/Commands/Icon.d.ts +2 -2
  41. package/dist/components/Grid/core/components/Cell/Commands/Icon.js.map +1 -1
  42. package/dist/components/Grid/core/components/Cell/Commands/useCommands.d.ts +2 -2
  43. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js +2 -0
  44. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js.map +1 -1
  45. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +4 -6
  46. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -1
  47. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.d.ts +11 -0
  48. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +93 -0
  49. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +1 -0
  50. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.d.ts +36 -0
  51. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js +42 -0
  52. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js.map +1 -0
  53. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.d.ts +2 -2
  54. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +106 -29
  55. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -1
  56. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.d.ts +2 -2
  57. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +3 -3
  58. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +1 -1
  59. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +49 -2
  60. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +51 -4
  61. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -1
  62. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +1 -1
  63. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
  64. package/dist/components/Grid/core/components/Component/model/Component.js +18 -11
  65. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -1
  66. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
  67. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +8 -0
  68. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +1 -1
  69. package/dist/components/Grid/core/constants.d.ts +1 -0
  70. package/dist/components/Grid/core/constants.js +4 -0
  71. package/dist/components/Grid/core/constants.js.map +1 -0
  72. package/dist/components/Grid/core/controllers/useGridController.d.ts +0 -2
  73. package/dist/components/Grid/core/controllers/useGridController.js +1 -17
  74. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
  75. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +9 -18
  76. package/dist/components/Grid/core/model/Grid.d.ts +17 -10
  77. package/dist/components/Grid/core/model/Grid.js +93 -74
  78. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  79. package/dist/components/Grid/core/model/GridDependency.d.ts +1 -1
  80. package/dist/components/Grid/core/model/Metadata.d.ts +2 -3
  81. package/dist/components/Grid/core/model/Metadata.js +13 -9
  82. package/dist/components/Grid/core/model/Metadata.js.map +1 -1
  83. package/dist/components/Grid/core/services/KeyListener.d.ts +8 -0
  84. package/dist/components/Grid/core/services/KeyListener.js +22 -0
  85. package/dist/components/Grid/core/services/KeyListener.js.map +1 -0
  86. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.d.ts +8 -8
  87. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +22 -26
  88. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +1 -1
  89. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +16 -16
  90. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +1 -1
  91. package/dist/components/Grid/filtering/model/Condition.js +7 -3
  92. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  93. package/dist/components/Grid/filtering/model/Filtering.js +4 -4
  94. package/dist/components/Grid/filtering/model/Filtering.js.map +1 -1
  95. package/dist/components/Grid/interfaces.d.ts +5 -14
  96. package/dist/components/Grid/paging/components/Paging/Paging.js +7 -1
  97. package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -1
  98. package/dist/components/Grid/paging/controllers/usePagingController.d.ts +2 -1
  99. package/dist/components/Grid/paging/controllers/usePagingController.js +1 -0
  100. package/dist/components/Grid/paging/controllers/usePagingController.js.map +1 -1
  101. package/dist/components/Grid/paging/model/Paging.d.ts +2 -1
  102. package/dist/components/Grid/paging/model/Paging.js +22 -4
  103. package/dist/components/Grid/paging/model/Paging.js.map +1 -1
  104. package/dist/components/Grid/selection/controllers/useSelectionController.d.ts +2 -2
  105. package/dist/components/Grid/selection/controllers/useSelectionController.js +7 -3
  106. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +1 -1
  107. package/dist/components/Grid/selection/model/Selection.d.ts +3 -3
  108. package/dist/components/Grid/selection/model/Selection.js +7 -4
  109. package/dist/components/Grid/selection/model/Selection.js.map +1 -1
  110. package/dist/components/Grid/sorting/Sorting.js +5 -6
  111. package/dist/components/Grid/sorting/Sorting.js.map +1 -1
  112. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +3 -3
  113. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
  114. package/dist/components/Grid/translations.d.ts +8 -0
  115. package/dist/components/Grid/translations.js +3 -1
  116. package/dist/components/Grid/translations.js.map +1 -1
  117. package/dist/components/Grid/validation/controllers/useRecordValidationController.d.ts +2 -2
  118. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +2 -2
  119. package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +1 -1
  120. package/dist/hooks/useControl.js +1 -1
  121. package/dist/hooks/useControl.js.map +1 -1
  122. package/dist/hooks/useThemeOverride.d.ts +1 -0
  123. package/dist/hooks/useThemeOverride.js +23 -0
  124. package/dist/hooks/useThemeOverride.js.map +1 -0
  125. package/dist/index.d.ts +351 -367
  126. package/dist/index.js +1 -1
  127. package/dist/interfaces/property.d.ts +0 -29
  128. package/dist/utils/Theme.js +26 -0
  129. package/dist/utils/Theme.js.map +1 -1
  130. package/dist/utils/index.d.ts +0 -1
  131. package/dist/utils/index.js +0 -1
  132. package/dist/utils/index.js.map +1 -1
  133. package/package.json +4 -3
  134. package/dist/components/Grid/core/hooks/useRerender.js +0 -13
  135. package/dist/components/Grid/core/hooks/useRerender.js.map +0 -1
  136. package/dist/utils/Numeral.d.ts +0 -6
  137. package/dist/utils/Numeral.js +0 -64
  138. package/dist/utils/Numeral.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,8 +1,70 @@
1
1
  /// <reference types="powerapps-component-framework" />
2
2
  /// <reference types="react" />
3
- import { AgGridReactProps } from '@ag-grid-community/react';
4
3
  import { ITheme as ITheme$1, IToggleProps } from '@fluentui/react';
5
4
  import { IDatePickerProps, ITextFieldProps, IComboBoxProps, ITagPickerProps } from '@talxis/react-components';
5
+ import { AgGridReactProps } from '@ag-grid-community/react';
6
+ import { IDataset } from '@talxis/client-libraries';
7
+
8
+ type ExcludedProps = Pick<ComponentFramework.PropertyTypes.Property, 'formatted'>;
9
+ interface IProperty extends Omit<Partial<ComponentFramework.PropertyTypes.Property>, keyof ExcludedProps | 'attributes'> {
10
+ }
11
+ interface IStringProperty extends IProperty, Partial<ComponentFramework.PropertyTypes.StringProperty> {
12
+ raw: string | null;
13
+ }
14
+ interface IDecimalNumberProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.DecimalNumberProperty>, 'attributes'> {
15
+ raw: number | null;
16
+ type: 'Whole.None' | 'Decimal' | 'Currency';
17
+ formatted?: string;
18
+ attributes?: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.DecimalNumberMetadata>;
19
+ }
20
+ interface IWholeNumberProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.WholeNumberProperty>, 'attributes'> {
21
+ raw: number | null;
22
+ }
23
+ interface IDateTimeProperty extends IProperty, Partial<ComponentFramework.PropertyTypes.DateTimeProperty> {
24
+ raw: Date | null;
25
+ attributes: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.DateTimeMetadata> & {
26
+ Behavior: ComponentFramework.FormattingApi.Types.DateTimeFieldBehavior;
27
+ Format: string;
28
+ };
29
+ }
30
+ interface IOptionSetProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.OptionSetProperty>, 'attributes'> {
31
+ raw: number | null;
32
+ attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
33
+ Options: ComponentFramework.PropertyHelper.OptionMetadata[];
34
+ };
35
+ }
36
+ interface ITwoOptionsProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.TwoOptionsProperty>, 'attributes'> {
37
+ raw: boolean;
38
+ attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
39
+ Options: [ComponentFramework.PropertyHelper.OptionMetadata, ComponentFramework.PropertyHelper.OptionMetadata];
40
+ };
41
+ }
42
+ interface ITwoOptionsProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.TwoOptionsProperty>, 'attributes'> {
43
+ raw: boolean;
44
+ attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
45
+ Options: [ComponentFramework.PropertyHelper.OptionMetadata, ComponentFramework.PropertyHelper.OptionMetadata];
46
+ };
47
+ }
48
+ interface IMultiSelectOptionSetProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.MultiSelectOptionSetProperty>, 'attributes'> {
49
+ raw: number[] | null;
50
+ attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
51
+ Options: ComponentFramework.PropertyHelper.OptionMetadata[];
52
+ };
53
+ }
54
+ interface ILookupProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.LookupProperty>, 'attributes' | 'getViewId'> {
55
+ raw: ComponentFramework.LookupValue[];
56
+ attributes: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.LookupMetadata> & {
57
+ Targets: string[];
58
+ };
59
+ /**
60
+ * Gets all views for entity (including non-lookup ones).
61
+ */
62
+ getAllViews: (entityName: string) => Promise<{
63
+ isDefault: boolean;
64
+ viewId: string;
65
+ fetchXml?: string;
66
+ }[]>;
67
+ }
6
68
 
7
69
  interface IOutputs$1 {
8
70
  [key: string]: any;
@@ -26,6 +88,229 @@ type ITranslations<T> = {
26
88
  [Property in keyof T]: T[Property] extends string[] ? string[] : string;
27
89
  };
28
90
 
91
+ interface IOutputs {
92
+ [key: string]: any;
93
+ }
94
+ interface IParameters$1 {
95
+ [key: string]: IProperty | undefined;
96
+ }
97
+
98
+ interface ITheme extends ITheme$1 {
99
+ effects: ITheme$1['effects'] & {
100
+ underlined?: boolean;
101
+ };
102
+ }
103
+
104
+ type ITranslation<T> = {
105
+ [Property in keyof Required<T>]: (variables?: any) => string;
106
+ };
107
+ interface IDefaultTranslations {
108
+ [LCID: number]: string | string[];
109
+ [key: string]: any;
110
+ }
111
+ interface IControlController<TTranslations, TOutputs> {
112
+ labels: Required<ITranslation<TTranslations>>;
113
+ sizing: {
114
+ width?: number;
115
+ height?: number;
116
+ };
117
+ theme: ITheme;
118
+ onNotifyOutputChanged: (outputs: TOutputs) => void;
119
+ }
120
+ /**
121
+ * Provides automatic checking if the given outputs are different from the provided inputs. Use the provided method any time you want
122
+ * to notify the framework that you wish to write changes. The hook will notify the framework only if the provided output differs from the current inputs.
123
+ */
124
+ declare const useControl: <TParameters extends IParameters$1, TOutputs extends IOutputs, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, defaultTranslations?: IDefaultTranslations) => IControlController<TTranslations, TOutputs>;
125
+
126
+ declare const useControlSizing: (mode: ComponentFramework.Mode) => {
127
+ height?: number;
128
+ width?: number;
129
+ };
130
+
131
+ declare const useFocusIn: (ref: React.RefObject<HTMLElement>, delay?: number) => boolean;
132
+
133
+ interface IParameters {
134
+ [key: string]: IProperty | undefined;
135
+ }
136
+ interface IInputParameters extends IBaseParameters {
137
+ value: IProperty;
138
+ /**
139
+ * Tells the control to trigger `notifyOutputChanged` on it's unmount changes occured in bound parameter value.
140
+ * Should only be use in edge cases in input based controls where the notifyOutputChanged cannot be called naturally via the blur event.
141
+ */
142
+ NotifyOutputChangedOnUnmount?: Omit<ITwoOptionsProperty, 'attributes'>;
143
+ EnableCopyButton?: Omit<ITwoOptionsProperty, 'attributes'>;
144
+ EnableDeleteButton?: Omit<ITwoOptionsProperty, 'attributes'>;
145
+ /**
146
+ * Shows the error message within the control. By default, the error is represented only by red outline.
147
+ */
148
+ ShowErrorMessage?: Omit<ITwoOptionsProperty, 'attributes'>;
149
+ }
150
+ interface IBaseParameters extends IParameters {
151
+ /**
152
+ * Decides whether the input should get focus on first render.
153
+ */
154
+ AutoFocus?: Omit<ITwoOptionsProperty, 'attributes'>;
155
+ ForceDisable?: Omit<ITwoOptionsProperty, 'attributes'>;
156
+ }
157
+
158
+ /**
159
+ * Description
160
+ * @param {any} value:any
161
+ * @returns {any}
162
+ */
163
+ interface IControlOptions {
164
+ defaultTranslations?: IDefaultTranslations;
165
+ /**
166
+ * Formatting function that will format the bound value every time a new one comes from the props.
167
+ */
168
+ formatter?: (value: any) => any;
169
+ valueExtractor?: (value: any) => any;
170
+ }
171
+ /**
172
+ * Use when working with components that need to store value changes internally before triggering `notifyOutputChanged`.
173
+ * An example of this is a standard Decimal component - we do not want to trigger `notifyOutputChanged` on every value change,
174
+ * since this would trigger decimal validation on every keystroke which would result in a bad UX. In this case, the `notifyOutputChanged` should
175
+ * be triggered when the user looses focus on the component (`onBlur` event).
176
+ * @returns {[]} The hook returns an array with three props. First `value` prop is a value that will will always be in sync with the value that comes from the `value` parameter.
177
+ * Use this for displaying the up-to-date value to the user.
178
+ * Second prop contains the translations for this component.
179
+ *
180
+ * Third prop is a method that can be used to change the current value. The new value will get propagated to the `value` variable returned from this hook. This method wont propagate the value to the framework.
181
+ *
182
+ * The last prop is a method that will notify the framework that you wish to write changes.
183
+ * The method will notify the framework only if the provided output differs from the current inputs.
184
+ */
185
+ interface IInputBasedControlController<TValue, TTranslations, TOutputs> extends IControlController<TTranslations, TOutputs> {
186
+ value: TValue;
187
+ setValue: (value: TValue) => void;
188
+ }
189
+ declare const useInputBasedControl: <TValue, TParameters extends IInputParameters, TOutputs extends IOutputs$1, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, options?: IControlOptions) => IInputBasedControlController<TValue, TTranslations, TOutputs>;
190
+
191
+ declare const useMouseOver: (ref: React.RefObject<HTMLElement>) => boolean;
192
+
193
+ declare const useControlTheme: (fluentDesignLanguage?: ComponentFramework.FluentDesignState) => ITheme;
194
+
195
+ declare const getDefaultDateTimeTranslations: (dateFormattingInfo: ComponentFramework.UserSettingApi.DateFormattingInfo) => {
196
+ time: {
197
+ 1029: string;
198
+ 1033: string;
199
+ };
200
+ goToToday: {
201
+ 1029: string;
202
+ 1033: string;
203
+ };
204
+ invalidTimeInput: {
205
+ 1029: string;
206
+ 1033: string;
207
+ };
208
+ days: string[];
209
+ months: string[];
210
+ shortDays: string[];
211
+ shortMonths: string[];
212
+ };
213
+
214
+ interface IDateTime extends IControl<IDateTimeParameters, IDateTimeOutputs, Partial<ITranslations<ReturnType<typeof getDefaultDateTimeTranslations>>>, IDatePickerProps> {
215
+ }
216
+ interface IDateTimeParameters extends IInputParameters {
217
+ value: IDateTimeProperty;
218
+ EnableMonthPicker?: ITwoOptionsProperty;
219
+ EnableDayPicker?: ITwoOptionsProperty;
220
+ /**
221
+ * JSON array of dates that should not be selectable, example: ['2019-01-10', '2019-01-11']
222
+ */
223
+ RestrictedDates?: IStringProperty;
224
+ /**
225
+ * JSON array of week days that should not be selectable (0 = Sunday,...6 = Saturday), example: [0,2,3]
226
+ */
227
+ RestrictedDaysOfWeek?: IStringProperty;
228
+ }
229
+ interface IDateTimeOutputs extends IOutputs$1 {
230
+ value?: Date;
231
+ }
232
+
233
+ declare const DateTime: (componentProps: IDateTime) => JSX.Element;
234
+
235
+ declare const useDateTime: (props: IDateTime, ref: React.RefObject<HTMLDivElement>) => [boolean, ITheme, ITranslation<Partial<ITranslations<{
236
+ time: {
237
+ 1029: string;
238
+ 1033: string;
239
+ };
240
+ goToToday: {
241
+ 1029: string;
242
+ 1033: string;
243
+ };
244
+ invalidTimeInput: {
245
+ 1029: string;
246
+ 1033: string;
247
+ };
248
+ days: string[];
249
+ months: string[];
250
+ shortDays: string[];
251
+ shortMonths: string[];
252
+ }>>>, {
253
+ get: () => Date | undefined;
254
+ getFormatted: () => string | undefined;
255
+ set: (date?: Date, time?: string) => void;
256
+ setDateString: (value: string | undefined) => void;
257
+ clear: () => void;
258
+ }, {
259
+ shortDatePattern: string;
260
+ shortTimePattern: string;
261
+ fullDateTimePattern: string;
262
+ }];
263
+
264
+ interface IDecimal extends IControl<IDecimalParameters, IDecimalOutputs, any, ITextFieldProps> {
265
+ }
266
+ interface IDecimalParameters extends IInputParameters {
267
+ value: IDecimalNumberProperty;
268
+ EnableSpinButton?: Omit<ITwoOptionsProperty, 'attributes'>;
269
+ }
270
+ interface IDecimalOutputs extends IOutputs$1 {
271
+ value?: number;
272
+ }
273
+
274
+ declare const Decimal: (props: IDecimal) => JSX.Element;
275
+
276
+ declare const getDefaultDurationTranslations: () => {
277
+ minute: {
278
+ 1029: string[];
279
+ 1033: string[];
280
+ };
281
+ minutes: {
282
+ 1029: string[];
283
+ 1033: string[];
284
+ };
285
+ hour: {
286
+ 1029: string[];
287
+ 1033: string[];
288
+ };
289
+ hours: {
290
+ 1029: string[];
291
+ 1033: string[];
292
+ };
293
+ day: {
294
+ 1029: string[];
295
+ 1033: string[];
296
+ };
297
+ days: {
298
+ 1029: string[];
299
+ 1033: string[];
300
+ };
301
+ };
302
+
303
+ interface IDuration extends IControl<IDurationParameters, IDurationOutputs, Partial<ITranslations<ReturnType<typeof getDefaultDurationTranslations>>>, IComboBoxProps> {
304
+ }
305
+ interface IDurationParameters extends IInputParameters {
306
+ value: IWholeNumberProperty;
307
+ }
308
+ interface IDurationOutputs extends IOutputs$1 {
309
+ value?: number;
310
+ }
311
+
312
+ declare const Duration: (props: IDuration) => JSX.Element;
313
+
29
314
  declare const gridTranslations: {
30
315
  "condition-none": {
31
316
  1029: string;
@@ -279,399 +564,85 @@ declare const gridTranslations: {
279
564
  1029: string;
280
565
  1033: string;
281
566
  };
282
- norecordsfound: {
283
- 1029: string;
284
- 1033: string;
285
- };
286
- "saving-changenotification": {
287
- 1029: string;
288
- 1033: string;
289
- };
290
- "saving-save": {
291
- 1029: string;
292
- 1033: string;
293
- };
294
- "saving-saving": {
295
- 1029: string;
296
- 1033: string;
297
- };
298
- "saving-changepreview-title": {
299
- 1033: string;
300
- 1029: string;
301
- };
302
- "saving-validation-error": {
303
- 1029: string;
304
- 1033: string;
305
- };
306
- "validation-input-value": {
307
- 1029: string;
308
- 1033: string;
309
- };
310
- "validation-email": {
311
- 1029: string;
312
- 1033: string;
313
- };
314
- "validation-url": {
315
- 1029: string;
316
- 1033: string;
317
- };
318
- "validation-date": {
319
- 1029: string;
320
- 1033: string;
321
- };
322
- "validation-number": {
323
- 1029: string;
324
- 1033: string;
325
- };
326
- "no-name": {
327
- 1029: string;
328
- 1033: string;
329
- };
330
- download: {
331
- 1029: string;
332
- 1033: string;
333
- };
334
- };
335
-
336
- interface IGrid extends IControl<IGridParameters, IGridOutputs, Partial<ITranslation<typeof gridTranslations>>, AgGridReactProps> {
337
- }
338
- interface IEntityColumn extends ComponentFramework.PropertyHelper.DataSetApi.Column {
339
- isResizable?: boolean;
340
- isFilterable?: boolean;
341
- isEditable?: boolean;
342
- isRequired?: boolean;
343
- }
344
- interface IEntityRecord extends ComponentFramework.PropertyHelper.DataSetApi.EntityRecord {
345
- setValue: (columnName: string, value: any) => void;
346
- save: () => Promise<void>;
347
- }
348
- interface IGridParameters extends IParameters$1 {
349
- EnableEditing?: Omit<ITwoOptionsProperty, 'attributes'>;
350
- EnablePagination?: Omit<ITwoOptionsProperty, 'attributes'>;
351
- EnableFiltering?: Omit<ITwoOptionsProperty, 'attributes'>;
352
- EnableSorting?: Omit<ITwoOptionsProperty, 'attributes'>;
353
- EnableNavigation?: Omit<ITwoOptionsProperty, 'attributes'>;
354
- EnableOptionSetColors?: Omit<ITwoOptionsProperty, 'attributes'>;
355
- UseContainerAsHeight?: Omit<ITwoOptionsProperty, 'attributes'>;
356
- InlineRibbonButtonIds?: IStringProperty;
357
- SelectableRows?: ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">;
358
- Grid: IDatasetProperty;
359
- }
360
- interface IGridOutputs extends IOutputs$1 {
361
- }
362
-
363
- type ExcludedProps = Pick<ComponentFramework.PropertyTypes.Property, 'formatted'>;
364
- interface IProperty extends Omit<Partial<ComponentFramework.PropertyTypes.Property>, keyof ExcludedProps | 'attributes'> {
365
- }
366
- interface IStringProperty extends IProperty, Partial<ComponentFramework.PropertyTypes.StringProperty> {
367
- raw: string | null;
368
- }
369
- interface IDecimalNumberProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.DecimalNumberProperty>, 'attributes'> {
370
- raw: number | null;
371
- type: 'Whole.None' | 'Decimal' | 'Currency';
372
- formatted?: string;
373
- attributes?: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.DecimalNumberMetadata>;
374
- }
375
- interface IWholeNumberProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.WholeNumberProperty>, 'attributes'> {
376
- raw: number | null;
377
- }
378
- interface IDateTimeProperty extends IProperty, Partial<ComponentFramework.PropertyTypes.DateTimeProperty> {
379
- raw: Date | null;
380
- attributes: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.DateTimeMetadata> & {
381
- Behavior: ComponentFramework.FormattingApi.Types.DateTimeFieldBehavior;
382
- Format: string;
383
- };
384
- }
385
- interface IOptionSetProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.OptionSetProperty>, 'attributes'> {
386
- raw: number | null;
387
- attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
388
- Options: ComponentFramework.PropertyHelper.OptionMetadata[];
389
- };
390
- }
391
- interface ITwoOptionsProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.TwoOptionsProperty>, 'attributes'> {
392
- raw: boolean;
393
- attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
394
- Options: [ComponentFramework.PropertyHelper.OptionMetadata, ComponentFramework.PropertyHelper.OptionMetadata];
395
- };
396
- }
397
- interface ITwoOptionsProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.TwoOptionsProperty>, 'attributes'> {
398
- raw: boolean;
399
- attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
400
- Options: [ComponentFramework.PropertyHelper.OptionMetadata, ComponentFramework.PropertyHelper.OptionMetadata];
401
- };
402
- }
403
- interface IMultiSelectOptionSetProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.MultiSelectOptionSetProperty>, 'attributes'> {
404
- raw: number[] | null;
405
- attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
406
- Options: ComponentFramework.PropertyHelper.OptionMetadata[];
407
- };
408
- }
409
- interface ILookupProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.LookupProperty>, 'attributes' | 'getViewId'> {
410
- raw: ComponentFramework.LookupValue[];
411
- attributes: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.LookupMetadata> & {
412
- Targets: string[];
413
- };
414
- /**
415
- * Gets all views for entity (including non-lookup ones).
416
- */
417
- getAllViews: (entityName: string) => Promise<{
418
- isDefault: boolean;
419
- viewId: string;
420
- fetchXml?: string;
421
- }[]>;
422
- }
423
- interface IDatasetProperty extends IProperty, Omit<ComponentFramework.PropertyTypes.DataSet, 'error' | 'errorMessage'> {
424
- columns: IEntityColumn[];
425
- records: {
426
- [id: string]: IEntityRecord;
427
- };
428
- paging: ComponentFramework.PropertyHelper.DataSetApi.Paging & {
429
- pageNumber: number;
430
- };
431
- retrieveRecordCommand: (recordIds: string[], specificCommands?: string[], filterByPriority?: boolean, useNestedFormat?: boolean, refreshAllRules?: boolean) => {
432
- canExecute: boolean;
433
- /**
434
- * Seems to be always empty - buttons present in Flyout and SplitButton are put on first level (the array of buttons is flattened).
435
- */
436
- children: any[];
437
- commandId: string;
438
- commandButtonId: string;
439
- controlType: any;
440
- icon: string;
441
- label: string;
442
- shouldBeVisible: boolean;
443
- tooltip: string;
444
- /**
445
- * Temp portal property
446
- */
447
- __isInline?: boolean;
448
- execute: () => Promise<void>;
449
- }[];
450
- }
451
-
452
- interface IOutputs {
453
- [key: string]: any;
454
- }
455
- interface IParameters$1 {
456
- [key: string]: IProperty | undefined;
457
- }
458
-
459
- interface ITheme extends ITheme$1 {
460
- effects: ITheme$1['effects'] & {
461
- underlined?: boolean;
567
+ "paging-pages-totalcount": {
568
+ 1029: string;
569
+ 1033: string;
462
570
  };
463
- }
464
-
465
- type ITranslation<T> = {
466
- [Property in keyof Required<T>]: (variables?: any) => string;
467
- };
468
- interface IDefaultTranslations {
469
- [LCID: number]: string | string[];
470
- [key: string]: any;
471
- }
472
- interface IControlController<TTranslations, TOutputs> {
473
- labels: Required<ITranslation<TTranslations>>;
474
- sizing: {
475
- width?: number;
476
- height?: number;
571
+ norecordsfound: {
572
+ 1029: string;
573
+ 1033: string;
477
574
  };
478
- theme: ITheme;
479
- onNotifyOutputChanged: (outputs: TOutputs) => void;
480
- }
481
- /**
482
- * Provides automatic checking if the given outputs are different from the provided inputs. Use the provided method any time you want
483
- * to notify the framework that you wish to write changes. The hook will notify the framework only if the provided output differs from the current inputs.
484
- */
485
- declare const useControl: <TParameters extends IParameters$1, TOutputs extends IOutputs, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, defaultTranslations?: IDefaultTranslations) => IControlController<TTranslations, TOutputs>;
486
-
487
- declare const useControlSizing: (mode: ComponentFramework.Mode) => {
488
- height?: number;
489
- width?: number;
490
- };
491
-
492
- declare const useFocusIn: (ref: React.RefObject<HTMLElement>, delay?: number) => boolean;
493
-
494
- interface IParameters {
495
- [key: string]: IProperty | undefined;
496
- }
497
- interface IInputParameters extends IBaseParameters {
498
- value: IProperty;
499
- /**
500
- * Tells the control to trigger `notifyOutputChanged` on it's unmount changes occured in bound parameter value.
501
- * Should only be use in edge cases in input based controls where the notifyOutputChanged cannot be called naturally via the blur event.
502
- */
503
- NotifyOutputChangedOnUnmount?: Omit<ITwoOptionsProperty, 'attributes'>;
504
- EnableCopyButton?: Omit<ITwoOptionsProperty, 'attributes'>;
505
- EnableDeleteButton?: Omit<ITwoOptionsProperty, 'attributes'>;
506
- /**
507
- * Shows the error message within the control. By default, the error is represented only by red outline.
508
- */
509
- ShowErrorMessage?: Omit<ITwoOptionsProperty, 'attributes'>;
510
- }
511
- interface IBaseParameters extends IParameters {
512
- /**
513
- * Decides whether the input should get focus on first render.
514
- */
515
- AutoFocus?: Omit<ITwoOptionsProperty, 'attributes'>;
516
- ForceDisable?: Omit<ITwoOptionsProperty, 'attributes'>;
517
- }
518
-
519
- /**
520
- * Description
521
- * @param {any} value:any
522
- * @returns {any}
523
- */
524
- interface IControlOptions {
525
- defaultTranslations?: IDefaultTranslations;
526
- /**
527
- * Formatting function that will format the bound value every time a new one comes from the props.
528
- */
529
- formatter?: (value: any) => any;
530
- valueExtractor?: (value: any) => any;
531
- }
532
- /**
533
- * Use when working with components that need to store value changes internally before triggering `notifyOutputChanged`.
534
- * An example of this is a standard Decimal component - we do not want to trigger `notifyOutputChanged` on every value change,
535
- * since this would trigger decimal validation on every keystroke which would result in a bad UX. In this case, the `notifyOutputChanged` should
536
- * be triggered when the user looses focus on the component (`onBlur` event).
537
- * @returns {[]} The hook returns an array with three props. First `value` prop is a value that will will always be in sync with the value that comes from the `value` parameter.
538
- * Use this for displaying the up-to-date value to the user.
539
- * Second prop contains the translations for this component.
540
- *
541
- * Third prop is a method that can be used to change the current value. The new value will get propagated to the `value` variable returned from this hook. This method wont propagate the value to the framework.
542
- *
543
- * The last prop is a method that will notify the framework that you wish to write changes.
544
- * The method will notify the framework only if the provided output differs from the current inputs.
545
- */
546
- interface IInputBasedControlController<TValue, TTranslations, TOutputs> extends IControlController<TTranslations, TOutputs> {
547
- value: TValue;
548
- setValue: (value: TValue) => void;
549
- }
550
- declare const useInputBasedControl: <TValue, TParameters extends IInputParameters, TOutputs extends IOutputs$1, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, options?: IControlOptions) => IInputBasedControlController<TValue, TTranslations, TOutputs>;
551
-
552
- declare const useMouseOver: (ref: React.RefObject<HTMLElement>) => boolean;
553
-
554
- declare const useControlTheme: (fluentDesignLanguage?: ComponentFramework.FluentDesignState) => ITheme;
555
-
556
- declare const getDefaultDateTimeTranslations: (dateFormattingInfo: ComponentFramework.UserSettingApi.DateFormattingInfo) => {
557
- time: {
575
+ "saving-changenotification": {
558
576
  1029: string;
559
577
  1033: string;
560
578
  };
561
- goToToday: {
579
+ "saving-save": {
562
580
  1029: string;
563
581
  1033: string;
564
582
  };
565
- invalidTimeInput: {
583
+ "saving-saving": {
566
584
  1029: string;
567
585
  1033: string;
568
586
  };
569
- days: string[];
570
- months: string[];
571
- shortDays: string[];
572
- shortMonths: string[];
573
- };
574
-
575
- interface IDateTime extends IControl<IDateTimeParameters, IDateTimeOutputs, Partial<ITranslations<ReturnType<typeof getDefaultDateTimeTranslations>>>, IDatePickerProps> {
576
- }
577
- interface IDateTimeParameters extends IInputParameters {
578
- value: IDateTimeProperty;
579
- EnableMonthPicker?: ITwoOptionsProperty;
580
- EnableDayPicker?: ITwoOptionsProperty;
581
- /**
582
- * JSON array of dates that should not be selectable, example: ['2019-01-10', '2019-01-11']
583
- */
584
- RestrictedDates?: IStringProperty;
585
- /**
586
- * JSON array of week days that should not be selectable (0 = Sunday,...6 = Saturday), example: [0,2,3]
587
- */
588
- RestrictedDaysOfWeek?: IStringProperty;
589
- }
590
- interface IDateTimeOutputs extends IOutputs$1 {
591
- value?: Date;
592
- }
593
-
594
- declare const DateTime: (componentProps: IDateTime) => JSX.Element;
595
-
596
- declare const useDateTime: (props: IDateTime, ref: React.RefObject<HTMLDivElement>) => [boolean, ITheme, ITranslation<Partial<ITranslations<{
597
- time: {
587
+ "saving-changepreview-title": {
588
+ 1033: string;
589
+ 1029: string;
590
+ };
591
+ "saving-validation-error": {
598
592
  1029: string;
599
593
  1033: string;
600
594
  };
601
- goToToday: {
595
+ "validation-input-value": {
602
596
  1029: string;
603
597
  1033: string;
604
598
  };
605
- invalidTimeInput: {
599
+ "validation-email": {
606
600
  1029: string;
607
601
  1033: string;
608
602
  };
609
- days: string[];
610
- months: string[];
611
- shortDays: string[];
612
- shortMonths: string[];
613
- }>>>, {
614
- get: () => Date | undefined;
615
- getFormatted: () => string | undefined;
616
- set: (date?: Date, time?: string) => void;
617
- setDateString: (value: string | undefined) => void;
618
- clear: () => void;
619
- }, {
620
- shortDatePattern: string;
621
- shortTimePattern: string;
622
- fullDateTimePattern: string;
623
- }];
624
-
625
- interface IDecimal extends IControl<IDecimalParameters, IDecimalOutputs, any, ITextFieldProps> {
626
- }
627
- interface IDecimalParameters extends IInputParameters {
628
- value: IDecimalNumberProperty;
629
- EnableSpinButton?: Omit<ITwoOptionsProperty, 'attributes'>;
630
- }
631
- interface IDecimalOutputs extends IOutputs$1 {
632
- value?: number;
633
- }
634
-
635
- declare const Decimal: (props: IDecimal) => JSX.Element;
636
-
637
- declare const getDefaultDurationTranslations: () => {
638
- minute: {
639
- 1029: string[];
640
- 1033: string[];
603
+ "validation-url": {
604
+ 1029: string;
605
+ 1033: string;
641
606
  };
642
- minutes: {
643
- 1029: string[];
644
- 1033: string[];
607
+ "validation-date": {
608
+ 1029: string;
609
+ 1033: string;
645
610
  };
646
- hour: {
647
- 1029: string[];
648
- 1033: string[];
611
+ "validation-number": {
612
+ 1029: string;
613
+ 1033: string;
649
614
  };
650
- hours: {
651
- 1029: string[];
652
- 1033: string[];
615
+ "no-name": {
616
+ 1029: string;
617
+ 1033: string;
653
618
  };
654
- day: {
655
- 1029: string[];
656
- 1033: string[];
619
+ download: {
620
+ 1029: string;
621
+ 1033: string;
657
622
  };
658
- days: {
659
- 1029: string[];
660
- 1033: string[];
623
+ "value-not-editable": {
624
+ 1029: string;
625
+ 1033: string;
661
626
  };
662
627
  };
663
628
 
664
- interface IDuration extends IControl<IDurationParameters, IDurationOutputs, Partial<ITranslations<ReturnType<typeof getDefaultDurationTranslations>>>, IComboBoxProps> {
629
+ interface IGrid extends IControl<IGridParameters, IGridOutputs, Partial<ITranslation<typeof gridTranslations>>, AgGridReactProps> {
665
630
  }
666
- interface IDurationParameters extends IInputParameters {
667
- value: IWholeNumberProperty;
631
+ interface IGridParameters extends IParameters$1 {
632
+ EnableEditing?: Omit<ITwoOptionsProperty, 'attributes'>;
633
+ EnablePagination?: Omit<ITwoOptionsProperty, 'attributes'>;
634
+ EnableFiltering?: Omit<ITwoOptionsProperty, 'attributes'>;
635
+ EnableSorting?: Omit<ITwoOptionsProperty, 'attributes'>;
636
+ EnableNavigation?: Omit<ITwoOptionsProperty, 'attributes'>;
637
+ EnableOptionSetColors?: Omit<ITwoOptionsProperty, 'attributes'>;
638
+ Height?: IStringProperty;
639
+ InlineRibbonButtonIds?: IStringProperty;
640
+ SelectableRows?: Omit<ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">, 'type'>;
641
+ Grid: IDataset;
668
642
  }
669
- interface IDurationOutputs extends IOutputs$1 {
670
- value?: number;
643
+ interface IGridOutputs extends IOutputs$1 {
671
644
  }
672
645
 
673
- declare const Duration: (props: IDuration) => JSX.Element;
674
-
675
646
  declare const Grid: (props: IGrid) => JSX.Element;
676
647
 
677
648
  declare const lookupTranslations: {
@@ -856,10 +827,23 @@ interface ITwoOptionsOutputs extends IOutputs$1 {
856
827
 
857
828
  declare const TwoOptions: (props: ITwoOptions) => JSX.Element;
858
829
 
859
- declare class Numeral {
860
- static decimal(formatting: ComponentFramework.UserSettingApi.NumberFormattingInfo): void;
861
- static currency(formatting: ComponentFramework.UserSettingApi.NumberFormattingInfo): void;
862
- private static get _locales();
830
+ declare const datasetControlTranslations: {
831
+ search: {
832
+ 1029: string;
833
+ 1033: string;
834
+ };
835
+ records: {
836
+ 1029: string;
837
+ 1033: string;
838
+ };
839
+ };
840
+
841
+ interface IDatasetControl extends IControl<IGridParameters, IGridOutputs, Partial<ITranslation<typeof datasetControlTranslations & typeof gridTranslations>>, any & {
842
+ onDatasetInit: () => void;
843
+ }> {
844
+ EnableQuickFind?: Omit<ITwoOptionsProperty, 'attributes'>;
863
845
  }
864
846
 
865
- export { DateTime, Decimal, Duration, Grid, IControl, IControlController, IDatasetProperty, IDateTime, IDateTimeOutputs, IDateTimeParameters, IDateTimeProperty, IDecimal, IDecimalNumberProperty, IDecimalOutputs, IDecimalParameters, IDefaultTranslations, IDuration, IDurationOutputs, IDurationParameters, IEntity, IEntityColumn, IEntityRecord, IGrid, IGridOutputs, IGridParameters, ILayout, ILookup, ILookupOutputs, ILookupParameters, ILookupProperty, IMetadata, IMultiSelectOptionSet, IMultiSelectOptionSetOutputs, IMultiSelectOptionSetParameters, IMultiSelectOptionSetProperty, IOptionSet, IOptionSetOutputs, IOptionSetParameters, IOptionSetProperty, IOutputs, IParameters$1 as IParameters, IProperty, IStringProperty, ITextField, ITextFieldOutputs, ITextFieldParameters, ITranslation, ITranslations, ITwoOptions, ITwoOptionsOutputs, ITwoOptionsParameters, ITwoOptionsProperty, IWholeNumberProperty, Lookup, MultiSelectOptionSet, Numeral, OptionSet, TextField, TwoOptions, useControl, useControlSizing, useControlTheme, useDateTime, useFocusIn, useInputBasedControl, useLookup, useMouseOver };
847
+ declare const DatasetControl: (props: IDatasetControl) => JSX.Element;
848
+
849
+ export { DatasetControl, DateTime, Decimal, Duration, Grid, IControl, IControlController, IDatasetControl, IDateTime, IDateTimeOutputs, IDateTimeParameters, IDateTimeProperty, IDecimal, IDecimalNumberProperty, IDecimalOutputs, IDecimalParameters, IDefaultTranslations, IDuration, IDurationOutputs, IDurationParameters, IEntity, IGrid, IGridOutputs, IGridParameters, ILayout, ILookup, ILookupOutputs, ILookupParameters, ILookupProperty, IMetadata, IMultiSelectOptionSet, IMultiSelectOptionSetOutputs, IMultiSelectOptionSetParameters, IMultiSelectOptionSetProperty, IOptionSet, IOptionSetOutputs, IOptionSetParameters, IOptionSetProperty, IOutputs, IParameters$1 as IParameters, IProperty, IStringProperty, ITextField, ITextFieldOutputs, ITextFieldParameters, ITranslation, ITranslations, ITwoOptions, ITwoOptionsOutputs, ITwoOptionsParameters, ITwoOptionsProperty, IWholeNumberProperty, Lookup, MultiSelectOptionSet, OptionSet, TextField, TwoOptions, useControl, useControlSizing, useControlTheme, useDateTime, useFocusIn, useInputBasedControl, useLookup, useMouseOver };