@talxis/base-controls 1.2410.4 → 1.2410.6

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 (89) hide show
  1. package/dist/components/DatasetControl/DatasetControl.js +3 -8
  2. package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
  3. package/dist/components/Grid/constants.d.ts +1 -2
  4. package/dist/components/Grid/constants.js +2 -2
  5. package/dist/components/Grid/constants.js.map +1 -1
  6. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +2 -3
  7. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  8. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +2 -2
  9. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +8 -4
  10. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +1 -1
  11. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +1 -0
  12. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +20 -9
  13. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  14. package/dist/components/Grid/core/components/Cell/Commands/Commands.d.ts +2 -2
  15. package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -1
  16. package/dist/components/Grid/core/components/Cell/Commands/Icon.d.ts +2 -2
  17. package/dist/components/Grid/core/components/Cell/Commands/Icon.js.map +1 -1
  18. package/dist/components/Grid/core/components/Cell/Commands/useCommands.d.ts +2 -2
  19. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js +2 -0
  20. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js.map +1 -1
  21. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +4 -4
  22. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -1
  23. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.d.ts +11 -0
  24. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +93 -0
  25. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +1 -0
  26. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.d.ts +36 -0
  27. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js +42 -0
  28. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js.map +1 -0
  29. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.d.ts +2 -2
  30. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +106 -41
  31. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -1
  32. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.d.ts +2 -2
  33. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +3 -3
  34. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +1 -1
  35. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +49 -2
  36. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +51 -4
  37. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -1
  38. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +1 -1
  39. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
  40. package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +2 -0
  41. package/dist/components/Grid/core/components/ColumnHeader/styles.js +2 -0
  42. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -1
  43. package/dist/components/Grid/core/components/Component/model/Component.js +11 -9
  44. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -1
  45. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
  46. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +5 -0
  47. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +1 -1
  48. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
  49. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +9 -18
  50. package/dist/components/Grid/core/model/Grid.d.ts +7 -7
  51. package/dist/components/Grid/core/model/Grid.js +52 -62
  52. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  53. package/dist/components/Grid/core/model/GridDependency.d.ts +1 -1
  54. package/dist/components/Grid/core/model/Metadata.d.ts +2 -3
  55. package/dist/components/Grid/core/model/Metadata.js +13 -9
  56. package/dist/components/Grid/core/model/Metadata.js.map +1 -1
  57. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.d.ts +8 -8
  58. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +21 -25
  59. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +1 -1
  60. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +16 -16
  61. package/dist/components/Grid/filtering/model/Condition.js +7 -3
  62. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  63. package/dist/components/Grid/filtering/model/Filtering.js +4 -4
  64. package/dist/components/Grid/filtering/model/Filtering.js.map +1 -1
  65. package/dist/components/Grid/interfaces.d.ts +3 -12
  66. package/dist/components/Grid/selection/controllers/useSelectionController.d.ts +2 -2
  67. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +1 -1
  68. package/dist/components/Grid/selection/model/Selection.d.ts +3 -3
  69. package/dist/components/Grid/selection/model/Selection.js.map +1 -1
  70. package/dist/components/Grid/sorting/Sorting.js +3 -3
  71. package/dist/components/Grid/sorting/Sorting.js.map +1 -1
  72. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +3 -3
  73. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
  74. package/dist/components/Grid/translations.d.ts +4 -0
  75. package/dist/components/Grid/translations.js +1 -0
  76. package/dist/components/Grid/translations.js.map +1 -1
  77. package/dist/components/Grid/validation/controllers/useRecordValidationController.d.ts +2 -2
  78. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +2 -2
  79. package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +1 -1
  80. package/dist/hooks/useControl.js +1 -1
  81. package/dist/hooks/useControl.js.map +1 -1
  82. package/dist/hooks/useThemeOverride.d.ts +1 -0
  83. package/dist/hooks/useThemeOverride.js +23 -0
  84. package/dist/hooks/useThemeOverride.js.map +1 -0
  85. package/dist/index.d.ts +313 -346
  86. package/dist/interfaces/property.d.ts +0 -29
  87. package/dist/utils/Theme.js +26 -0
  88. package/dist/utils/Theme.js.map +1 -1
  89. package/package.json +4 -3
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,49 +88,272 @@ type ITranslations<T> = {
26
88
  [Property in keyof T]: T[Property] extends string[] ? string[] : string;
27
89
  };
28
90
 
29
- declare const gridTranslations: {
30
- "condition-none": {
31
- 1029: string;
32
- 1033: string;
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;
33
101
  };
34
- "condition-equal": {
35
- 1029: string;
36
- 1033: string;
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;
37
116
  };
38
- "condition-notequal": {
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: {
39
197
  1029: string;
40
198
  1033: string;
41
199
  };
42
- "condition-greaterthan": {
200
+ goToToday: {
43
201
  1029: string;
44
202
  1033: string;
45
203
  };
46
- "condition-lessthan": {
204
+ invalidTimeInput: {
47
205
  1029: string;
48
206
  1033: string;
49
207
  };
50
- "condition-greaterequal": {
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: {
51
237
  1029: string;
52
238
  1033: string;
53
239
  };
54
- "condition-lessequal": {
240
+ goToToday: {
55
241
  1029: string;
56
242
  1033: string;
57
243
  };
58
- "condition-like": {
244
+ invalidTimeInput: {
59
245
  1029: string;
60
246
  1033: string;
61
247
  };
62
- "condition-notlike": {
63
- 1029: string;
64
- 1033: string;
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[];
65
280
  };
66
- "condition-null": {
67
- 1029: string;
68
- 1033: string;
281
+ minutes: {
282
+ 1029: string[];
283
+ 1033: string[];
69
284
  };
70
- "condition-notnull": {
71
- 1029: string;
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
+
314
+ declare const gridTranslations: {
315
+ "condition-none": {
316
+ 1029: string;
317
+ 1033: string;
318
+ };
319
+ "condition-equal": {
320
+ 1029: string;
321
+ 1033: string;
322
+ };
323
+ "condition-notequal": {
324
+ 1029: string;
325
+ 1033: string;
326
+ };
327
+ "condition-greaterthan": {
328
+ 1029: string;
329
+ 1033: string;
330
+ };
331
+ "condition-lessthan": {
332
+ 1029: string;
333
+ 1033: string;
334
+ };
335
+ "condition-greaterequal": {
336
+ 1029: string;
337
+ 1033: string;
338
+ };
339
+ "condition-lessequal": {
340
+ 1029: string;
341
+ 1033: string;
342
+ };
343
+ "condition-like": {
344
+ 1029: string;
345
+ 1033: string;
346
+ };
347
+ "condition-notlike": {
348
+ 1029: string;
349
+ 1033: string;
350
+ };
351
+ "condition-null": {
352
+ 1029: string;
353
+ 1033: string;
354
+ };
355
+ "condition-notnull": {
356
+ 1029: string;
72
357
  1033: string;
73
358
  };
74
359
  "condition-beginwith": {
@@ -335,20 +620,14 @@ declare const gridTranslations: {
335
620
  1029: string;
336
621
  1033: string;
337
622
  };
623
+ "value-not-editable": {
624
+ 1029: string;
625
+ 1033: string;
626
+ };
338
627
  };
339
628
 
340
629
  interface IGrid extends IControl<IGridParameters, IGridOutputs, Partial<ITranslation<typeof gridTranslations>>, AgGridReactProps> {
341
630
  }
342
- interface IEntityColumn extends ComponentFramework.PropertyHelper.DataSetApi.Column {
343
- isResizable?: boolean;
344
- isFilterable?: boolean;
345
- isEditable?: boolean;
346
- isRequired?: boolean;
347
- }
348
- interface IEntityRecord extends ComponentFramework.PropertyHelper.DataSetApi.EntityRecord {
349
- setValue: (columnName: string, value: any) => void;
350
- save: () => Promise<void>;
351
- }
352
631
  interface IGridParameters extends IParameters$1 {
353
632
  EnableEditing?: Omit<ITwoOptionsProperty, 'attributes'>;
354
633
  EnablePagination?: Omit<ITwoOptionsProperty, 'attributes'>;
@@ -359,323 +638,11 @@ interface IGridParameters extends IParameters$1 {
359
638
  Height?: IStringProperty;
360
639
  InlineRibbonButtonIds?: IStringProperty;
361
640
  SelectableRows?: Omit<ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">, 'type'>;
362
- Grid: IDatasetProperty;
641
+ Grid: IDataset;
363
642
  }
364
643
  interface IGridOutputs extends IOutputs$1 {
365
644
  }
366
645
 
367
- type ExcludedProps = Pick<ComponentFramework.PropertyTypes.Property, 'formatted'>;
368
- interface IProperty extends Omit<Partial<ComponentFramework.PropertyTypes.Property>, keyof ExcludedProps | 'attributes'> {
369
- }
370
- interface IStringProperty extends IProperty, Partial<ComponentFramework.PropertyTypes.StringProperty> {
371
- raw: string | null;
372
- }
373
- interface IDecimalNumberProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.DecimalNumberProperty>, 'attributes'> {
374
- raw: number | null;
375
- type: 'Whole.None' | 'Decimal' | 'Currency';
376
- formatted?: string;
377
- attributes?: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.DecimalNumberMetadata>;
378
- }
379
- interface IWholeNumberProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.WholeNumberProperty>, 'attributes'> {
380
- raw: number | null;
381
- }
382
- interface IDateTimeProperty extends IProperty, Partial<ComponentFramework.PropertyTypes.DateTimeProperty> {
383
- raw: Date | null;
384
- attributes: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.DateTimeMetadata> & {
385
- Behavior: ComponentFramework.FormattingApi.Types.DateTimeFieldBehavior;
386
- Format: string;
387
- };
388
- }
389
- interface IOptionSetProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.OptionSetProperty>, 'attributes'> {
390
- raw: number | null;
391
- attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
392
- Options: ComponentFramework.PropertyHelper.OptionMetadata[];
393
- };
394
- }
395
- interface ITwoOptionsProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.TwoOptionsProperty>, 'attributes'> {
396
- raw: boolean;
397
- attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
398
- Options: [ComponentFramework.PropertyHelper.OptionMetadata, ComponentFramework.PropertyHelper.OptionMetadata];
399
- };
400
- }
401
- interface ITwoOptionsProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.TwoOptionsProperty>, 'attributes'> {
402
- raw: boolean;
403
- attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
404
- Options: [ComponentFramework.PropertyHelper.OptionMetadata, ComponentFramework.PropertyHelper.OptionMetadata];
405
- };
406
- }
407
- interface IMultiSelectOptionSetProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.MultiSelectOptionSetProperty>, 'attributes'> {
408
- raw: number[] | null;
409
- attributes: Omit<Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.OptionSetMetadata>, 'DefaultValue'> & {
410
- Options: ComponentFramework.PropertyHelper.OptionMetadata[];
411
- };
412
- }
413
- interface ILookupProperty extends IProperty, Omit<Partial<ComponentFramework.PropertyTypes.LookupProperty>, 'attributes' | 'getViewId'> {
414
- raw: ComponentFramework.LookupValue[];
415
- attributes: Partial<ComponentFramework.PropertyHelper.FieldPropertyMetadata.LookupMetadata> & {
416
- Targets: string[];
417
- };
418
- /**
419
- * Gets all views for entity (including non-lookup ones).
420
- */
421
- getAllViews: (entityName: string) => Promise<{
422
- isDefault: boolean;
423
- viewId: string;
424
- fetchXml?: string;
425
- }[]>;
426
- }
427
- interface IDatasetProperty extends IProperty, Omit<ComponentFramework.PropertyTypes.DataSet, 'error' | 'errorMessage'> {
428
- columns: IEntityColumn[];
429
- records: {
430
- [id: string]: IEntityRecord;
431
- };
432
- paging: ComponentFramework.PropertyHelper.DataSetApi.Paging & {
433
- pageNumber: number;
434
- };
435
- retrieveRecordCommand: (recordIds: string[], specificCommands?: string[], filterByPriority?: boolean, useNestedFormat?: boolean, refreshAllRules?: boolean) => {
436
- canExecute: boolean;
437
- /**
438
- * Seems to be always empty - buttons present in Flyout and SplitButton are put on first level (the array of buttons is flattened).
439
- */
440
- children: any[];
441
- commandId: string;
442
- commandButtonId: string;
443
- controlType: any;
444
- icon: string;
445
- label: string;
446
- shouldBeVisible: boolean;
447
- tooltip: string;
448
- /**
449
- * Temp portal property
450
- */
451
- __isInline?: boolean;
452
- execute: () => Promise<void>;
453
- }[];
454
- }
455
-
456
- interface IOutputs {
457
- [key: string]: any;
458
- }
459
- interface IParameters$1 {
460
- [key: string]: IProperty | undefined;
461
- }
462
-
463
- interface ITheme extends ITheme$1 {
464
- effects: ITheme$1['effects'] & {
465
- underlined?: boolean;
466
- };
467
- }
468
-
469
- type ITranslation<T> = {
470
- [Property in keyof Required<T>]: (variables?: any) => string;
471
- };
472
- interface IDefaultTranslations {
473
- [LCID: number]: string | string[];
474
- [key: string]: any;
475
- }
476
- interface IControlController<TTranslations, TOutputs> {
477
- labels: Required<ITranslation<TTranslations>>;
478
- sizing: {
479
- width?: number;
480
- height?: number;
481
- };
482
- theme: ITheme;
483
- onNotifyOutputChanged: (outputs: TOutputs) => void;
484
- }
485
- /**
486
- * Provides automatic checking if the given outputs are different from the provided inputs. Use the provided method any time you want
487
- * 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.
488
- */
489
- declare const useControl: <TParameters extends IParameters$1, TOutputs extends IOutputs, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, defaultTranslations?: IDefaultTranslations) => IControlController<TTranslations, TOutputs>;
490
-
491
- declare const useControlSizing: (mode: ComponentFramework.Mode) => {
492
- height?: number;
493
- width?: number;
494
- };
495
-
496
- declare const useFocusIn: (ref: React.RefObject<HTMLElement>, delay?: number) => boolean;
497
-
498
- interface IParameters {
499
- [key: string]: IProperty | undefined;
500
- }
501
- interface IInputParameters extends IBaseParameters {
502
- value: IProperty;
503
- /**
504
- * Tells the control to trigger `notifyOutputChanged` on it's unmount changes occured in bound parameter value.
505
- * Should only be use in edge cases in input based controls where the notifyOutputChanged cannot be called naturally via the blur event.
506
- */
507
- NotifyOutputChangedOnUnmount?: Omit<ITwoOptionsProperty, 'attributes'>;
508
- EnableCopyButton?: Omit<ITwoOptionsProperty, 'attributes'>;
509
- EnableDeleteButton?: Omit<ITwoOptionsProperty, 'attributes'>;
510
- /**
511
- * Shows the error message within the control. By default, the error is represented only by red outline.
512
- */
513
- ShowErrorMessage?: Omit<ITwoOptionsProperty, 'attributes'>;
514
- }
515
- interface IBaseParameters extends IParameters {
516
- /**
517
- * Decides whether the input should get focus on first render.
518
- */
519
- AutoFocus?: Omit<ITwoOptionsProperty, 'attributes'>;
520
- ForceDisable?: Omit<ITwoOptionsProperty, 'attributes'>;
521
- }
522
-
523
- /**
524
- * Description
525
- * @param {any} value:any
526
- * @returns {any}
527
- */
528
- interface IControlOptions {
529
- defaultTranslations?: IDefaultTranslations;
530
- /**
531
- * Formatting function that will format the bound value every time a new one comes from the props.
532
- */
533
- formatter?: (value: any) => any;
534
- valueExtractor?: (value: any) => any;
535
- }
536
- /**
537
- * Use when working with components that need to store value changes internally before triggering `notifyOutputChanged`.
538
- * An example of this is a standard Decimal component - we do not want to trigger `notifyOutputChanged` on every value change,
539
- * since this would trigger decimal validation on every keystroke which would result in a bad UX. In this case, the `notifyOutputChanged` should
540
- * be triggered when the user looses focus on the component (`onBlur` event).
541
- * @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.
542
- * Use this for displaying the up-to-date value to the user.
543
- * Second prop contains the translations for this component.
544
- *
545
- * 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.
546
- *
547
- * The last prop is a method that will notify the framework that you wish to write changes.
548
- * The method will notify the framework only if the provided output differs from the current inputs.
549
- */
550
- interface IInputBasedControlController<TValue, TTranslations, TOutputs> extends IControlController<TTranslations, TOutputs> {
551
- value: TValue;
552
- setValue: (value: TValue) => void;
553
- }
554
- 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>;
555
-
556
- declare const useMouseOver: (ref: React.RefObject<HTMLElement>) => boolean;
557
-
558
- declare const useControlTheme: (fluentDesignLanguage?: ComponentFramework.FluentDesignState) => ITheme;
559
-
560
- declare const getDefaultDateTimeTranslations: (dateFormattingInfo: ComponentFramework.UserSettingApi.DateFormattingInfo) => {
561
- time: {
562
- 1029: string;
563
- 1033: string;
564
- };
565
- goToToday: {
566
- 1029: string;
567
- 1033: string;
568
- };
569
- invalidTimeInput: {
570
- 1029: string;
571
- 1033: string;
572
- };
573
- days: string[];
574
- months: string[];
575
- shortDays: string[];
576
- shortMonths: string[];
577
- };
578
-
579
- interface IDateTime extends IControl<IDateTimeParameters, IDateTimeOutputs, Partial<ITranslations<ReturnType<typeof getDefaultDateTimeTranslations>>>, IDatePickerProps> {
580
- }
581
- interface IDateTimeParameters extends IInputParameters {
582
- value: IDateTimeProperty;
583
- EnableMonthPicker?: ITwoOptionsProperty;
584
- EnableDayPicker?: ITwoOptionsProperty;
585
- /**
586
- * JSON array of dates that should not be selectable, example: ['2019-01-10', '2019-01-11']
587
- */
588
- RestrictedDates?: IStringProperty;
589
- /**
590
- * JSON array of week days that should not be selectable (0 = Sunday,...6 = Saturday), example: [0,2,3]
591
- */
592
- RestrictedDaysOfWeek?: IStringProperty;
593
- }
594
- interface IDateTimeOutputs extends IOutputs$1 {
595
- value?: Date;
596
- }
597
-
598
- declare const DateTime: (componentProps: IDateTime) => JSX.Element;
599
-
600
- declare const useDateTime: (props: IDateTime, ref: React.RefObject<HTMLDivElement>) => [boolean, ITheme, ITranslation<Partial<ITranslations<{
601
- time: {
602
- 1029: string;
603
- 1033: string;
604
- };
605
- goToToday: {
606
- 1029: string;
607
- 1033: string;
608
- };
609
- invalidTimeInput: {
610
- 1029: string;
611
- 1033: string;
612
- };
613
- days: string[];
614
- months: string[];
615
- shortDays: string[];
616
- shortMonths: string[];
617
- }>>>, {
618
- get: () => Date | undefined;
619
- getFormatted: () => string | undefined;
620
- set: (date?: Date, time?: string) => void;
621
- setDateString: (value: string | undefined) => void;
622
- clear: () => void;
623
- }, {
624
- shortDatePattern: string;
625
- shortTimePattern: string;
626
- fullDateTimePattern: string;
627
- }];
628
-
629
- interface IDecimal extends IControl<IDecimalParameters, IDecimalOutputs, any, ITextFieldProps> {
630
- }
631
- interface IDecimalParameters extends IInputParameters {
632
- value: IDecimalNumberProperty;
633
- EnableSpinButton?: Omit<ITwoOptionsProperty, 'attributes'>;
634
- }
635
- interface IDecimalOutputs extends IOutputs$1 {
636
- value?: number;
637
- }
638
-
639
- declare const Decimal: (props: IDecimal) => JSX.Element;
640
-
641
- declare const getDefaultDurationTranslations: () => {
642
- minute: {
643
- 1029: string[];
644
- 1033: string[];
645
- };
646
- minutes: {
647
- 1029: string[];
648
- 1033: string[];
649
- };
650
- hour: {
651
- 1029: string[];
652
- 1033: string[];
653
- };
654
- hours: {
655
- 1029: string[];
656
- 1033: string[];
657
- };
658
- day: {
659
- 1029: string[];
660
- 1033: string[];
661
- };
662
- days: {
663
- 1029: string[];
664
- 1033: string[];
665
- };
666
- };
667
-
668
- interface IDuration extends IControl<IDurationParameters, IDurationOutputs, Partial<ITranslations<ReturnType<typeof getDefaultDurationTranslations>>>, IComboBoxProps> {
669
- }
670
- interface IDurationParameters extends IInputParameters {
671
- value: IWholeNumberProperty;
672
- }
673
- interface IDurationOutputs extends IOutputs$1 {
674
- value?: number;
675
- }
676
-
677
- declare const Duration: (props: IDuration) => JSX.Element;
678
-
679
646
  declare const Grid: (props: IGrid) => JSX.Element;
680
647
 
681
648
  declare const lookupTranslations: {
@@ -879,4 +846,4 @@ interface IDatasetControl extends IControl<IGridParameters, IGridOutputs, Partia
879
846
 
880
847
  declare const DatasetControl: (props: IDatasetControl) => JSX.Element;
881
848
 
882
- export { DatasetControl, DateTime, Decimal, Duration, Grid, IControl, IControlController, IDatasetControl, 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, OptionSet, TextField, TwoOptions, useControl, useControlSizing, useControlTheme, useDateTime, useFocusIn, useInputBasedControl, useLookup, useMouseOver };
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 };