@fkui/vue 6.26.0 → 6.28.0

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.
@@ -430,7 +430,7 @@ export declare class FInteractiveTablePageObject implements BasePageObject {
430
430
  * Both row and column are 1-indexed, i.e. 1:1 selects the first cell in the
431
431
  * first row.
432
432
  *
433
- * Neither the marker for expandable rows or the checkbox for selectable
433
+ * Neither the marker for expandable rows or the radio/checkbox for selectable
434
434
  * rows are included in the column count, i.e. `1` always refers to the
435
435
  * first column with content.
436
436
  *
@@ -454,7 +454,7 @@ export declare class FInteractiveTablePageObject implements BasePageObject {
454
454
  /**
455
455
  * Get table header cell (`<th>` in `<thead>`).
456
456
  *
457
- * Neither the marker for expandable rows or the checkbox for selectable
457
+ * Neither the marker for expandable rows or the radio/checkbox for selectable
458
458
  * rows are included in the column count, i.e. `1` always refers to the
459
459
  * first column with content.
460
460
  *
@@ -466,7 +466,7 @@ export declare class FInteractiveTablePageObject implements BasePageObject {
466
466
  /**
467
467
  * Get all table headers (`<th>` in `<thead>`).
468
468
  *
469
- * Includes the headers for checkboxes in selectable rows and markers in expandable rows.
469
+ * Includes the headers for radios/checkboxes in selectable rows and markers in expandable rows.
470
470
  */
471
471
  headersRow(): DefaultCypressChainable;
472
472
  /**
@@ -491,17 +491,34 @@ export declare class FInteractiveTablePageObject implements BasePageObject {
491
491
  * parent row while if the first row is expanded the second row refers to
492
492
  * the first expanded row under the first row.
493
493
  *
494
- * Requires a `selectable` table.
494
+ * Requires a `selectable` table of type `multi`.
495
495
  *
496
496
  * @public
497
+ * @deprecated Use ´.selectable()´ instead. Deprecated since v6.28.0.
497
498
  * @param row - Row number (1-indexed).
498
499
  * @returns Page object for `FCheckboxField`.
499
500
  */
500
501
  checkbox(row: number): FCheckboxFieldPageObject;
502
+ /**
503
+ * Get selectable input element (checkbox or radio) in given row.
504
+ *
505
+ * For expandable rows the row count depend on whenever a row is expanded or
506
+ * not. If the first row is collapsed the second row refers to the next
507
+ * parent row while if the first row is expanded the second row refers to
508
+ * the first expanded row under the first row.
509
+ *
510
+ * Requires a `selectable` table.
511
+ *
512
+ * @public
513
+ * @since v6.28.0
514
+ * @param row - Row number (1-indexed).
515
+ * @returns Input element.
516
+ */
517
+ selectable(row: number): DefaultCypressChainable;
501
518
  /**
502
519
  * Get sort order icon in given column.
503
520
  *
504
- * Index includes the columns for checkboxes in selectable rows and markers in expandable rows.
521
+ * Index includes the columns for radios/checkboxes in selectable rows and markers in expandable rows.
505
522
  *
506
523
  * @param index - Column index (0-indexed).
507
524
  * @param order - Column sort order.
@@ -934,7 +951,7 @@ export declare class FTableColumnPageObject implements BasePageObject {
934
951
  */
935
952
  tableRowHeaderContent(): DefaultCypressChainable;
936
953
  /**
937
- * @deprecated Use ´FInteractiveTablePageObject.checkbox()´ instead. Deprecated since v6.11.0.
954
+ * @deprecated Use ´FInteractiveTablePageObject.selectable()´ instead. Deprecated since v6.11.0.
938
955
  */
939
956
  checkbox(): FCheckboxFieldPageObject;
940
957
  }
@@ -2177,6 +2177,7 @@ expandedClass(): string;
2177
2177
  hasOutsideSlot(): boolean;
2178
2178
  haveNotifications(): boolean;
2179
2179
  screenReaderNotificationText(): string;
2180
+ notificationTitle(): string;
2180
2181
  }, {
2181
2182
  onClickHeadingButton(event: MouseEvent): void;
2182
2183
  }, ComponentOptions, ComponentOptionsMixin, "toggle"[], "toggle", PublicProps, Readonly<ExtractPropTypes< {
@@ -3101,103 +3102,71 @@ flip: string;
3101
3102
  rotate: string;
3102
3103
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
3103
3104
 
3104
- declare const __VLS_export_23: <T extends object, K extends keyof T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_4<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3105
- props: __VLS_PrettifyLocal_4<ExtractPublicPropTypes< {
3106
- /**
3107
- * The rows to be listed.
3108
- * The rows will be listed in the given array order.
3109
- */
3110
- rows: {
3111
- type: PropType<T[]>;
3112
- required: boolean;
3113
- };
3114
- /**
3115
- * When enabled hovering over a row will be highlighted.
3116
- */
3117
- hover: {
3118
- type: BooleanConstructor;
3119
- };
3120
- /**
3121
- * Unique attribute in rows.
3122
- */
3123
- keyAttribute: {
3124
- type: StringConstructor;
3125
- required: boolean;
3126
- default: undefined;
3127
- };
3128
- /**
3129
- * Attribute of expandable content in rows.
3130
- * If provided, the table can contain expandable rows.
3131
- */
3132
- expandableAttribute: {
3133
- type: StringConstructor;
3134
- default: string;
3135
- };
3136
- /**
3137
- * Element id for aria-describedby on expandable rows to describe expanded content.
3138
- */
3139
- expandableDescribedby: {
3140
- type: StringConstructor;
3141
- default: string;
3142
- };
3143
- /**
3144
- * When enabled the table rows will be selectable.
3145
- *
3146
- * The current set of selected rows can be accessed with `v-model`.
3147
- *
3148
- * The `select` and `unselect` events will be emitted when a row is selected
3149
- * or deselected.
3150
- */
3151
- selectable: {
3152
- type: BooleanConstructor;
3153
- };
3154
- /**
3155
- * When enabled alternating rows will use a different background color.
3156
- */
3157
- striped: {
3158
- type: BooleanConstructor;
3159
- };
3160
- /**
3161
- * Enable scrolling inside table.
3162
- *
3163
- * Can be one of the following values:
3164
- *
3165
- * - `"horizontal"`: Enables horizontal scrolling
3166
- * - `"vertical"`: Does nothing (deprecated)
3167
- * - `"both"`: Acts as horizontal (deprecated)
3168
- * - `"none"`: Disables scrolling (default)
3169
- */
3170
- scroll: {
3171
- type: PropType<TableScroll>;
3172
- default: TableScroll;
3173
- validator(value: string): boolean;
3174
- };
3175
- /**
3176
- * Enable showing the active row.
3177
- */
3178
- showActive: {
3179
- type: BooleanConstructor;
3180
- required: boolean;
3181
- default: boolean;
3182
- };
3183
- /**
3184
- * Currently selected rows.
3185
- * Requires `selectable` to be set.
3186
- */
3187
- modelValue: {
3188
- type: PropType<T[] | undefined>;
3189
- required: boolean;
3190
- default: undefined;
3191
- };
3192
- /**
3193
- * Current active row.
3194
- */
3195
- active: {
3196
- type: PropType<T | undefined>;
3197
- required: boolean;
3198
- default: undefined;
3199
- };
3200
- }> & {
3105
+ declare const __VLS_export_23: <T extends object, KeyAttribute extends AnyPropertyOf<T> = AnyPropertyOf<T>, ExpandableAttribute extends ArrayPropertyOf<T> = ArrayPropertyOf<T>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_4<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3106
+ props: __VLS_PrettifyLocal_4<{
3107
+ /**
3108
+ * The rows to be listed.
3109
+ * The rows will be listed in the given array order.
3110
+ */
3111
+ rows: T[];
3112
+ /**
3113
+ * When enabled hovering over a row will be highlighted.
3114
+ */
3115
+ hover?: boolean;
3116
+ /**
3117
+ * Unique attribute in rows.
3118
+ */
3119
+ keyAttribute?: KeyAttribute;
3120
+ /**
3121
+ * Attribute of expandable content in rows.
3122
+ * If provided, the table can contain expandable rows.
3123
+ */
3124
+ expandableAttribute?: ExpandableAttribute;
3125
+ /**
3126
+ * Element id for aria-describedby on expandable rows to describe expanded content.
3127
+ */
3128
+ expandableDescribedby?: string;
3129
+ /**
3130
+ * When set the table rows will be selectable.
3131
+ *
3132
+ * For multiselect, set value to `"multi"` (or `true`).
3133
+ * For single select, set value to `"single"`.
3134
+ *
3135
+ * The current set of selected rows can be accessed with `v-model`.
3136
+ *
3137
+ * The `select` and `unselect` events will be emitted when a row is selected
3138
+ * or deselected.
3139
+ */
3140
+ selectable?: boolean | "single" | "multi";
3141
+ /**
3142
+ * When enabled alternating rows will use a different background color.
3143
+ */
3144
+ striped?: boolean;
3145
+ /**
3146
+ * Enable scrolling inside table.
3147
+ *
3148
+ * Can be one of the following values:
3149
+ *
3150
+ * - `"horizontal"`: Enables horizontal scrolling
3151
+ * - `"vertical"`: Does nothing (deprecated)
3152
+ * - `"both"`: Acts as horizontal (deprecated)
3153
+ * - `"none"`: Disables scrolling (default)
3154
+ */
3155
+ scroll?: TableScroll;
3156
+ /**
3157
+ * Enable showing the active row.
3158
+ */
3159
+ showActive?: boolean;
3160
+ /**
3161
+ * Currently selected rows.
3162
+ * Requires `selectable` to be set.
3163
+ */
3164
+ modelValue?: T[];
3165
+ /**
3166
+ * Current active row.
3167
+ */
3168
+ active?: T;
3169
+ } & {
3201
3170
  onSelect?: ((row: T) => any) | undefined;
3202
3171
  onCollapse?: ((row: T) => any) | undefined;
3203
3172
  "onUpdate:modelValue"?: ((rows: T[]) => any) | undefined;
@@ -3221,6 +3190,18 @@ declare const __VLS_export_23: <T extends object, K extends keyof T>(__VLS_props
3221
3190
  'checkbox-description'?: (props: {
3222
3191
  row: T;
3223
3192
  }) => any;
3193
+ } & {
3194
+ 'selectable-description'?: (props: {
3195
+ row: T;
3196
+ }) => any;
3197
+ } & {
3198
+ 'checkbox-description'?: (props: {
3199
+ row: T;
3200
+ }) => any;
3201
+ } & {
3202
+ 'selectable-description'?: (props: {
3203
+ row: T;
3204
+ }) => any;
3224
3205
  } & {
3225
3206
  default?: (props: {
3226
3207
  row: T;
@@ -3231,7 +3212,7 @@ declare const __VLS_export_23: <T extends object, K extends keyof T>(__VLS_props
3231
3212
  }) => any;
3232
3213
  } & {
3233
3214
  expandable?: (props: {
3234
- expandableRow: T;
3215
+ expandableRow: T[ExpandableAttribute] extends any[] ? T[ExpandableAttribute][number] : never;
3235
3216
  parentRow: T;
3236
3217
  }) => any;
3237
3218
  } & {
@@ -4396,9 +4377,8 @@ default: string;
4396
4377
  * The size of modal. 'large' and 'fullscreen' is valid.
4397
4378
  */
4398
4379
  size: {
4399
- type: StringConstructor;
4380
+ type: PropType<(typeof sizes)[number]>;
4400
4381
  default: string;
4401
- validator(value: string): boolean;
4402
4382
  };
4403
4383
  /**
4404
4384
  * The aria-label attribute text for the top right close button.
@@ -4467,9 +4447,8 @@ default: string;
4467
4447
  * The size of modal. 'large' and 'fullscreen' is valid.
4468
4448
  */
4469
4449
  size: {
4470
- type: StringConstructor;
4450
+ type: PropType<(typeof sizes)[number]>;
4471
4451
  default: string;
4472
- validator(value: string): boolean;
4473
4452
  };
4474
4453
  /**
4475
4454
  * The aria-label attribute text for the top right close button.
@@ -4501,7 +4480,7 @@ validator(value: string): boolean;
4501
4480
  }>> & Readonly<{
4502
4481
  [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
4503
4482
  }>, {
4504
- size: string;
4483
+ size: "" | "small" | "medium" | "large" | "fullscreen" | "fullwidth";
4505
4484
  content: string;
4506
4485
  isOpen: boolean;
4507
4486
  fullscreen: boolean;
@@ -4535,9 +4514,8 @@ default: string;
4535
4514
  validator(value: string): boolean;
4536
4515
  };
4537
4516
  size: {
4538
- type: StringConstructor;
4517
+ type: PropType<(typeof sizes)[number]>;
4539
4518
  default: string;
4540
- validator(value: string): boolean;
4541
4519
  };
4542
4520
  focus: {
4543
4521
  type: PropType<"on" | "off" | "open">;
@@ -4580,9 +4558,8 @@ default: string;
4580
4558
  validator(value: string): boolean;
4581
4559
  };
4582
4560
  size: {
4583
- type: StringConstructor;
4561
+ type: PropType<(typeof sizes)[number]>;
4584
4562
  default: string;
4585
- validator(value: string): boolean;
4586
4563
  };
4587
4564
  focus: {
4588
4565
  type: PropType<"on" | "off" | "open">;
@@ -4593,7 +4570,7 @@ validator(value: string): boolean;
4593
4570
  onClose?: ((...args: any[]) => any) | undefined;
4594
4571
  }>, {
4595
4572
  type: "" | "warning" | "error" | "information";
4596
- size: string;
4573
+ size: "" | "small" | "medium" | "large" | "fullscreen" | "fullwidth";
4597
4574
  isOpen: boolean;
4598
4575
  fullscreen: boolean;
4599
4576
  id: string;
@@ -4679,9 +4656,8 @@ default: boolean;
4679
4656
  * See <f-modal> `size` props.
4680
4657
  */
4681
4658
  size: {
4682
- type: StringConstructor;
4659
+ type: PropType<(typeof sizes)[number]>;
4683
4660
  default: string;
4684
- validator(value: string): boolean;
4685
4661
  };
4686
4662
  /**
4687
4663
  * @ignore
@@ -4803,9 +4779,8 @@ default: boolean;
4803
4779
  * See <f-modal> `size` props.
4804
4780
  */
4805
4781
  size: {
4806
- type: StringConstructor;
4782
+ type: PropType<(typeof sizes)[number]>;
4807
4783
  default: string;
4808
- validator(value: string): boolean;
4809
4784
  };
4810
4785
  /**
4811
4786
  * @ignore
@@ -4889,7 +4864,7 @@ data?: any;
4889
4864
  onCancel?: (() => any) | undefined;
4890
4865
  }>, {
4891
4866
  value: Record<string, any>;
4892
- size: string;
4867
+ size: "" | "small" | "medium" | "large" | "fullscreen" | "fullwidth";
4893
4868
  isOpen: boolean;
4894
4869
  fullscreen: boolean;
4895
4870
  ariaCloseText: string;
@@ -4925,9 +4900,8 @@ default: string;
4925
4900
  validator(value: string): boolean;
4926
4901
  };
4927
4902
  size: {
4928
- type: StringConstructor;
4903
+ type: PropType<(typeof sizes)[number]>;
4929
4904
  default: string;
4930
- validator(value: string): boolean;
4931
4905
  };
4932
4906
  focus: {
4933
4907
  type: PropType<"on" | "off" | "open">;
@@ -4970,9 +4944,8 @@ default: string;
4970
4944
  validator(value: string): boolean;
4971
4945
  };
4972
4946
  size: {
4973
- type: StringConstructor;
4947
+ type: PropType<(typeof sizes)[number]>;
4974
4948
  default: string;
4975
- validator(value: string): boolean;
4976
4949
  };
4977
4950
  focus: {
4978
4951
  type: PropType<"on" | "off" | "open">;
@@ -4983,7 +4956,7 @@ validator(value: string): boolean;
4983
4956
  onClose?: ((...args: any[]) => any) | undefined;
4984
4957
  }>, {
4985
4958
  type: "" | "warning" | "error" | "information";
4986
- size: string;
4959
+ size: "" | "small" | "medium" | "large" | "fullscreen" | "fullwidth";
4987
4960
  isOpen: boolean;
4988
4961
  fullscreen: boolean;
4989
4962
  id: string;
@@ -5373,9 +5346,8 @@ validator(value: string): boolean;
5373
5346
  * The size of modal in desktop mode.
5374
5347
  */
5375
5348
  size: {
5376
- type: StringConstructor;
5349
+ type: PropType<(typeof sizes)[number]>;
5377
5350
  default: string;
5378
- validator(value: string): boolean;
5379
5351
  };
5380
5352
  /**
5381
5353
  * Default behavior is that the modal will restore focus to previous element once closed.
@@ -5451,9 +5423,8 @@ validator(value: string): boolean;
5451
5423
  * The size of modal in desktop mode.
5452
5424
  */
5453
5425
  size: {
5454
- type: StringConstructor;
5426
+ type: PropType<(typeof sizes)[number]>;
5455
5427
  default: string;
5456
- validator(value: string): boolean;
5457
5428
  };
5458
5429
  /**
5459
5430
  * Default behavior is that the modal will restore focus to previous element once closed.
@@ -5470,7 +5441,7 @@ validator(value: string): boolean;
5470
5441
  onClose?: ((...args: any[]) => any) | undefined;
5471
5442
  }>, {
5472
5443
  type: "" | "warning" | "error" | "information";
5473
- size: string;
5444
+ size: "" | "small" | "medium" | "large" | "fullscreen" | "fullwidth";
5474
5445
  isOpen: boolean;
5475
5446
  fullscreen: boolean;
5476
5447
  id: string;
@@ -16998,6 +16969,14 @@ declare const __VLS_export_9: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_
16998
16969
  required: boolean;
16999
16970
  default: string;
17000
16971
  };
16972
+ /**
16973
+ * Property for changing the "add" and "modify" modal size
16974
+ */
16975
+ formModalSize: {
16976
+ type: PropType<(typeof sizes)[number]>;
16977
+ required: boolean;
16978
+ default: string;
16979
+ };
17001
16980
  }> & {
17002
16981
  onCreated?: ((item: T) => any) | undefined;
17003
16982
  onUpdated?: ((item: T) => any) | undefined;
@@ -17251,7 +17230,7 @@ export declare function ActivateItemInjected<T>(): ActivateItemInterface<T>;
17251
17230
  export declare interface ActivateItemInterface<T> {
17252
17231
  registerCallbackAfterItemAdd(callback: ActivateItemCallback<T>): void;
17253
17232
  registerCallbackBeforeItemDelete(callback: ActivateItemCallback<T>): void;
17254
- setNestedKey(key: keyof T): void;
17233
+ setNestedKey(key: keyof T | null | undefined): void;
17255
17234
  }
17256
17235
 
17257
17236
  /**
@@ -17262,6 +17241,12 @@ export declare interface ActivateItemInterface<T> {
17262
17241
  */
17263
17242
  export declare type AnimationCallback = (expand: boolean) => void | Promise<void>;
17264
17243
 
17244
+ declare type AnyPropertyOf<T> = keyof T;
17245
+
17246
+ declare type ArrayPropertyOf<T> = {
17247
+ [K in keyof T]: IsArray<T[K], K>;
17248
+ }[keyof T];
17249
+
17265
17250
  /**
17266
17251
  * @public
17267
17252
  */
@@ -18263,6 +18248,8 @@ declare interface IPopupListboxProps {
18263
18248
 
18264
18249
  export declare const IPopupMenu: typeof __VLS_export_74;
18265
18250
 
18251
+ declare type IsArray<T, U> = T extends any[] | undefined ? U : never;
18252
+
18266
18253
  /**
18267
18254
  * @public
18268
18255
  */
@@ -18672,6 +18659,8 @@ export declare function setInternalKeys<T>(items: T[], key?: keyof T, nestedKey?
18672
18659
  */
18673
18660
  export declare function setRunningContext(app: App): void;
18674
18661
 
18662
+ declare const sizes: readonly ["", "small", "medium", "large", "fullscreen", "fullwidth"];
18663
+
18675
18664
  /**
18676
18665
  * Represents the attributes used when sorting.
18677
18666
  *
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.53.3"
8
+ "packageVersion": "7.54.0"
9
9
  }
10
10
  ]
11
11
  }
@@ -9,9 +9,10 @@ module.exports = {
9
9
  rules: {
10
10
  "fkui/button-group": "error",
11
11
  "fkui/class-deprecated": "error",
12
+ "fkui/slot-deprecated": "error",
12
13
  "fkui/prefer-ficon": "error",
13
14
  "fkui/required-max-length": "error",
14
- "fkui/finteractivetable-checkbox-description": "error",
15
+ "fkui/finteractivetable-selectable-description": "error",
15
16
  "fkui/ftextfield-formatter-validation": "error",
16
17
  "fkui/no-template-modal": "error",
17
18
  "fkui/ftablecolumn-name": "error",
@@ -448,6 +448,7 @@ module.exports = defineMetadata({
448
448
  "caption",
449
449
  "row-description",
450
450
  "checkbox-description",
451
+ "selectable-description",
451
452
  "empty",
452
453
  "expandable",
453
454
  ],
@@ -1050,6 +1051,9 @@ module.exports = defineMetadata({
1050
1051
  attributes: {
1051
1052
  value: ["/.*/"],
1052
1053
  beforeCreate: ["/.*/"],
1054
+ "form-modal-size": {
1055
+ enum: ["small", "medium", "large", "fullwidth"],
1056
+ },
1053
1057
  },
1054
1058
  },
1055
1059
 
@@ -12,4 +12,22 @@ function getDocumentationUrl(path) {
12
12
  return `${homepage}${path}`;
13
13
  }
14
14
 
15
- module.exports = { getDocumentationUrl };
15
+ /**
16
+ * @internal
17
+ * @param {import("html-validate").HtmlElement} element
18
+ * @returns {string[]}
19
+ */
20
+ function getSlots(element) {
21
+ return Object.fromEntries(
22
+ element.childElements
23
+ .filter((it) => it.is("template"))
24
+ .map((it) => {
25
+ const key = it.attributes.find((jt) =>
26
+ jt.key.startsWith("#"),
27
+ )?.key;
28
+ return [key, it];
29
+ }),
30
+ );
31
+ }
32
+
33
+ module.exports = { getDocumentationUrl, getSlots };
@@ -0,0 +1,57 @@
1
+ const {
2
+ Rule,
3
+ TextClassification,
4
+ classifyNodeText,
5
+ } = require("html-validate/node");
6
+ const { getDocumentationUrl, getSlots } = require("./common");
7
+
8
+ /**
9
+ * @param {import("html-validate").ElementReadyEvent} event
10
+ * @returns {boolean}
11
+ */
12
+ function isRelevant(event) {
13
+ return event.target.is("f-interactive-table");
14
+ }
15
+
16
+ class FInteractiveTableSelectableDescription extends Rule {
17
+ documentation() {
18
+ return {
19
+ description:
20
+ "`#selectable-description` slot must implemented and non-empty when `selectable` is enabled",
21
+ url: getDocumentationUrl("/components/table-and-list/table.html"),
22
+ };
23
+ }
24
+
25
+ setup() {
26
+ this.on("element:ready", isRelevant, (event) => {
27
+ const { target } = event;
28
+ const selectable = target.getAttribute("selectable");
29
+ if (!selectable) {
30
+ return;
31
+ }
32
+ const slots = getSlots(target);
33
+ const selectableDescription = slots["#selectable-description"];
34
+ if (!selectableDescription) {
35
+ this.report({
36
+ node: target,
37
+ location: selectable.keyLocation,
38
+ message:
39
+ "#selectable-description slot must be implemented when selectable is enabled",
40
+ });
41
+ return;
42
+ }
43
+
44
+ const textContent = classifyNodeText(selectableDescription);
45
+ if (textContent === TextClassification.EMPTY_TEXT) {
46
+ this.report({
47
+ node: selectableDescription,
48
+ location: selectableDescription.location,
49
+ message:
50
+ "#selectable-description cannot be empty when selectable is enabled",
51
+ });
52
+ }
53
+ });
54
+ }
55
+ }
56
+
57
+ module.exports = FInteractiveTableSelectableDescription;
@@ -1,20 +1,22 @@
1
1
  const buttongroup = require("./buttongroup.rule");
2
2
  const classdeprecated = require("./classdeprecated.rule");
3
- const FInteractiveTableCheckboxDescription = require("./finteractivetable-checkbox-description.rule");
3
+ const FInteractiveTableSelectableDescription = require("./finteractivetable-selectable-description.rule");
4
4
  const FTableColumnName = require("./ftablecolumn-name.rule");
5
5
  const ftextfieldFormatterValidation = require("./ftextfieldFormatterValidation.rule");
6
6
  const NoTemplateModal = require("./no-template-modal.rule");
7
7
  const PreferFIcon = require("./prefer-ficon.rule");
8
8
  const requiredmaxlength = require("./requiredmaxlength.rule");
9
+ const slotdeprecated = require("./slotdeprecated.rule");
9
10
 
10
11
  module.exports = {
11
12
  "fkui/button-group": buttongroup,
12
13
  "fkui/class-deprecated": classdeprecated,
13
14
  "fkui/prefer-ficon": PreferFIcon,
14
15
  "fkui/required-max-length": requiredmaxlength,
15
- "fkui/finteractivetable-checkbox-description":
16
- FInteractiveTableCheckboxDescription,
16
+ "fkui/finteractivetable-selectable-description":
17
+ FInteractiveTableSelectableDescription,
17
18
  "fkui/ftextfield-formatter-validation": ftextfieldFormatterValidation,
18
19
  "fkui/no-template-modal": NoTemplateModal,
19
20
  "fkui/ftablecolumn-name": FTableColumnName,
21
+ "fkui/slot-deprecated": slotdeprecated,
20
22
  };