@itwin/components-react 3.5.0-dev.8 → 3.6.0-dev.1

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 (140) hide show
  1. package/CHANGELOG.md +62 -1
  2. package/lib/cjs/components-react/UiComponents.d.ts +1 -1
  3. package/lib/cjs/components-react/UiComponents.js +2 -2
  4. package/lib/cjs/components-react/UiComponents.js.map +1 -1
  5. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts +2 -0
  6. package/lib/cjs/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  7. package/lib/cjs/components-react/filter-builder/FilterBuilder.js +2 -2
  8. package/lib/cjs/components-react/filter-builder/FilterBuilder.js.map +1 -1
  9. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  10. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js +2 -2
  11. package/lib/cjs/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  12. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +1 -0
  13. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  14. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js +3 -2
  15. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  16. package/lib/cjs/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  17. package/lib/cjs/components-react/table/SimpleTableDataProvider.d.ts +1 -0
  18. package/lib/cjs/components-react/table/SimpleTableDataProvider.d.ts.map +1 -1
  19. package/lib/cjs/components-react/table/SimpleTableDataProvider.js +2 -0
  20. package/lib/cjs/components-react/table/SimpleTableDataProvider.js.map +1 -1
  21. package/lib/cjs/components-react/table/TableDataProvider.d.ts +8 -0
  22. package/lib/cjs/components-react/table/TableDataProvider.d.ts.map +1 -1
  23. package/lib/cjs/components-react/table/TableDataProvider.js +3 -0
  24. package/lib/cjs/components-react/table/TableDataProvider.js.map +1 -1
  25. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -0
  26. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.d.ts.map +1 -1
  27. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js +7 -0
  28. package/lib/cjs/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  29. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.d.ts.map +1 -1
  30. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.js +1 -0
  31. package/lib/cjs/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +1 -1
  32. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.d.ts.map +1 -1
  33. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.js +1 -0
  34. package/lib/cjs/components-react/table/columnfiltering/FilterableColumnBase.js.map +1 -1
  35. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.d.ts.map +1 -1
  36. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.js +1 -0
  37. package/lib/cjs/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +1 -1
  38. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.d.ts.map +1 -1
  39. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.js +1 -0
  40. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptor.js.map +1 -1
  41. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.d.ts.map +1 -1
  42. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.js +1 -0
  43. package/lib/cjs/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +1 -1
  44. package/lib/cjs/components-react/table/component/ColumnDragLayer.d.ts +1 -1
  45. package/lib/cjs/components-react/table/component/ColumnDragLayer.js +1 -1
  46. package/lib/cjs/components-react/table/component/ColumnDragLayer.js.map +1 -1
  47. package/lib/cjs/components-react/table/component/Table.d.ts +16 -8
  48. package/lib/cjs/components-react/table/component/Table.d.ts.map +1 -1
  49. package/lib/cjs/components-react/table/component/Table.js +4 -2
  50. package/lib/cjs/components-react/table/component/Table.js.map +1 -1
  51. package/lib/cjs/components-react/table/component/TableCell.d.ts +10 -4
  52. package/lib/cjs/components-react/table/component/TableCell.d.ts.map +1 -1
  53. package/lib/cjs/components-react/table/component/TableCell.js +5 -2
  54. package/lib/cjs/components-react/table/component/TableCell.js.map +1 -1
  55. package/lib/cjs/components-react/table/component/TableColumn.d.ts +2 -1
  56. package/lib/cjs/components-react/table/component/TableColumn.d.ts.map +1 -1
  57. package/lib/cjs/components-react/table/component/TableColumn.js.map +1 -1
  58. package/lib/cjs/components-react/toolbar/Items.d.ts.map +1 -1
  59. package/lib/cjs/components-react/toolbar/Items.js +1 -1
  60. package/lib/cjs/components-react/toolbar/Items.js.map +1 -1
  61. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts +1 -0
  62. package/lib/cjs/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  63. package/lib/cjs/components-react/tree/TreeDataProvider.js.map +1 -1
  64. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
  65. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js +17 -16
  66. package/lib/cjs/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  67. package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts +2 -0
  68. package/lib/cjs/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
  69. package/lib/cjs/components-react/tree/controlled/TreeModel.js +1 -0
  70. package/lib/cjs/components-react/tree/controlled/TreeModel.js.map +1 -1
  71. package/lib/esm/components-react/UiComponents.d.ts +1 -1
  72. package/lib/esm/components-react/UiComponents.js +2 -2
  73. package/lib/esm/components-react/UiComponents.js.map +1 -1
  74. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts +2 -0
  75. package/lib/esm/components-react/filter-builder/FilterBuilder.d.ts.map +1 -1
  76. package/lib/esm/components-react/filter-builder/FilterBuilder.js +2 -2
  77. package/lib/esm/components-react/filter-builder/FilterBuilder.js.map +1 -1
  78. package/lib/esm/components-react/filter-builder/FilterBuilderRule.d.ts.map +1 -1
  79. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js +2 -2
  80. package/lib/esm/components-react/filter-builder/FilterBuilderRule.js.map +1 -1
  81. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts +1 -0
  82. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.d.ts.map +1 -1
  83. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js +3 -2
  84. package/lib/esm/components-react/filter-builder/FilterBuilderRuleProperty.js.map +1 -1
  85. package/lib/esm/components-react/filter-builder/FilterBuilderRuleValue.js.map +1 -1
  86. package/lib/esm/components-react/table/SimpleTableDataProvider.d.ts +1 -0
  87. package/lib/esm/components-react/table/SimpleTableDataProvider.d.ts.map +1 -1
  88. package/lib/esm/components-react/table/SimpleTableDataProvider.js +2 -0
  89. package/lib/esm/components-react/table/SimpleTableDataProvider.js.map +1 -1
  90. package/lib/esm/components-react/table/TableDataProvider.d.ts +8 -0
  91. package/lib/esm/components-react/table/TableDataProvider.d.ts.map +1 -1
  92. package/lib/esm/components-react/table/TableDataProvider.js +3 -0
  93. package/lib/esm/components-react/table/TableDataProvider.js.map +1 -1
  94. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.d.ts +16 -0
  95. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.d.ts.map +1 -1
  96. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js +7 -0
  97. package/lib/esm/components-react/table/columnfiltering/ColumnFiltering.js.map +1 -1
  98. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.d.ts.map +1 -1
  99. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.js +1 -0
  100. package/lib/esm/components-react/table/columnfiltering/ColumnFilteringUtilities.js.map +1 -1
  101. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.d.ts.map +1 -1
  102. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.js +1 -0
  103. package/lib/esm/components-react/table/columnfiltering/FilterableColumnBase.js.map +1 -1
  104. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.d.ts.map +1 -1
  105. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.js +1 -0
  106. package/lib/esm/components-react/table/columnfiltering/TableColumnFilterDescriptor.js.map +1 -1
  107. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.d.ts.map +1 -1
  108. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.js +1 -0
  109. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptor.js.map +1 -1
  110. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.d.ts.map +1 -1
  111. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.js +1 -0
  112. package/lib/esm/components-react/table/columnfiltering/TableFilterDescriptorCollection.js.map +1 -1
  113. package/lib/esm/components-react/table/component/ColumnDragLayer.d.ts +1 -1
  114. package/lib/esm/components-react/table/component/ColumnDragLayer.js +1 -1
  115. package/lib/esm/components-react/table/component/ColumnDragLayer.js.map +1 -1
  116. package/lib/esm/components-react/table/component/Table.d.ts +16 -8
  117. package/lib/esm/components-react/table/component/Table.d.ts.map +1 -1
  118. package/lib/esm/components-react/table/component/Table.js +4 -2
  119. package/lib/esm/components-react/table/component/Table.js.map +1 -1
  120. package/lib/esm/components-react/table/component/TableCell.d.ts +10 -4
  121. package/lib/esm/components-react/table/component/TableCell.d.ts.map +1 -1
  122. package/lib/esm/components-react/table/component/TableCell.js +5 -2
  123. package/lib/esm/components-react/table/component/TableCell.js.map +1 -1
  124. package/lib/esm/components-react/table/component/TableColumn.d.ts +2 -1
  125. package/lib/esm/components-react/table/component/TableColumn.d.ts.map +1 -1
  126. package/lib/esm/components-react/table/component/TableColumn.js.map +1 -1
  127. package/lib/esm/components-react/toolbar/Items.d.ts.map +1 -1
  128. package/lib/esm/components-react/toolbar/Items.js +2 -2
  129. package/lib/esm/components-react/toolbar/Items.js.map +1 -1
  130. package/lib/esm/components-react/tree/TreeDataProvider.d.ts +1 -0
  131. package/lib/esm/components-react/tree/TreeDataProvider.d.ts.map +1 -1
  132. package/lib/esm/components-react/tree/TreeDataProvider.js.map +1 -1
  133. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.d.ts.map +1 -1
  134. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js +17 -16
  135. package/lib/esm/components-react/tree/controlled/TreeEventDispatcher.js.map +1 -1
  136. package/lib/esm/components-react/tree/controlled/TreeModel.d.ts +2 -0
  137. package/lib/esm/components-react/tree/controlled/TreeModel.d.ts.map +1 -1
  138. package/lib/esm/components-react/tree/controlled/TreeModel.js +1 -0
  139. package/lib/esm/components-react/tree/controlled/TreeModel.js.map +1 -1
  140. package/package.json +12 -12
package/CHANGELOG.md CHANGED
@@ -1,6 +1,67 @@
1
1
  # Change Log - @itwin/components-react
2
2
 
3
- This log was last generated on Thu, 01 Sep 2022 14:37:22 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 30 Nov 2022 14:28:19 GMT and should not be manually modified.
4
+
5
+ ## 3.4.7
6
+ Wed, 30 Nov 2022 14:28:19 GMT
7
+
8
+ _Version update only_
9
+
10
+ ## 3.4.6
11
+ Tue, 22 Nov 2022 14:24:19 GMT
12
+
13
+ _Version update only_
14
+
15
+ ## 3.4.5
16
+ Thu, 17 Nov 2022 21:32:50 GMT
17
+
18
+ _Version update only_
19
+
20
+ ## 3.4.4
21
+ Thu, 10 Nov 2022 19:32:17 GMT
22
+
23
+ _Version update only_
24
+
25
+ ## 3.4.3
26
+ Fri, 28 Oct 2022 13:34:57 GMT
27
+
28
+ _Version update only_
29
+
30
+ ## 3.4.2
31
+ Mon, 24 Oct 2022 13:23:45 GMT
32
+
33
+ _Version update only_
34
+
35
+ ## 3.4.1
36
+ Mon, 17 Oct 2022 20:06:51 GMT
37
+
38
+ _Version update only_
39
+
40
+ ## 3.4.0
41
+ Thu, 13 Oct 2022 20:24:47 GMT
42
+
43
+ ### Updates
44
+
45
+ - Fixed svg rendering when svg is provided as xml
46
+ - Updated Node types declaration to support latest v16
47
+ - Table: fix rows reloading when table is scrolled to the middle
48
+ - Fix/Remove skipped tests
49
+ - `MutableTreeModel`: Accept initial `TreeModel` in the constructor.
50
+
51
+ ## 3.3.5
52
+ Tue, 27 Sep 2022 11:50:59 GMT
53
+
54
+ _Version update only_
55
+
56
+ ## 3.3.4
57
+ Thu, 08 Sep 2022 19:00:04 GMT
58
+
59
+ _Version update only_
60
+
61
+ ## 3.3.3
62
+ Tue, 06 Sep 2022 20:54:19 GMT
63
+
64
+ _Version update only_
4
65
 
5
66
  ## 3.3.2
6
67
  Thu, 01 Sep 2022 14:37:22 GMT
@@ -26,7 +26,7 @@ export declare class UiComponents {
26
26
  static get localizationNamespace(): string;
27
27
  /** @internal */
28
28
  static get packageName(): string;
29
- /** Calls localization.getLocalizedStringWithNamespace with the "UiComponents" namespace. Do NOT include the namespace in the key.
29
+ /** Calls localization.getLocalizedString with the "UiComponents" namespace. Do NOT include the namespace in the key.
30
30
  * @internal
31
31
  */
32
32
  static translate(key: string | string[]): string;
@@ -58,7 +58,7 @@ class UiComponents {
58
58
  static get packageName() {
59
59
  return "components-react";
60
60
  }
61
- /** Calls localization.getLocalizedStringWithNamespace with the "UiComponents" namespace. Do NOT include the namespace in the key.
61
+ /** Calls localization.getLocalizedString with the "UiComponents" namespace. Do NOT include the namespace in the key.
62
62
  * @internal
63
63
  */
64
64
  static translate(key) {
@@ -66,7 +66,7 @@ class UiComponents {
66
66
  core_bentley_1.Logger.logError(UiComponents.loggerCategory(this), `translate: UiComponents.initialize has not been called. Returning blank string.`);
67
67
  return "";
68
68
  }
69
- return UiComponents.localization.getLocalizedStringWithNamespace(UiComponents.localizationNamespace, key);
69
+ return UiComponents.localization.getLocalizedString(key, { ns: UiComponents.localizationNamespace });
70
70
  }
71
71
  /** @internal */
72
72
  static loggerCategory(obj) {
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponents.js","sourceRoot":"","sources":["../../../src/components-react/UiComponents.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAAsC;AACtC,sDAA6C;AAE7C,0DAA8D;AAC9D,kDAA2C;AAE3C;;;GAGG;AACH,MAAa,YAAY;IAIvB;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAA0B;QACvD,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,qBAAM,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,wCAAwC,CAAC,CAAC;YACpG,OAAO;SACR;QAED,IAAA,qBAAa,GAAE,CAAC;QAChB,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC;QAC1C,MAAM,YAAY,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAEvF,MAAM,mBAAM,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACpD,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,0DAA0D;IACnD,MAAM,CAAC,SAAS;QACrB,IAAI,YAAY,CAAC,aAAa;YAC5B,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QACrF,YAAY,CAAC,aAAa,GAAG,SAAS,CAAC;QAEvC,mBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,sDAAsD;IAC/C,MAAM,KAAK,WAAW,KAAc,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9E;;OAEG;IACI,MAAM,KAAK,YAAY;QAC5B,IAAI,CAAC,YAAY,CAAC,aAAa;YAC7B,MAAM,IAAI,wBAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,mGAAmG,CAAC,CAAC;QAC5J,OAAO,YAAY,CAAC,aAAa,CAAC;IACpC,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,MAAM,KAAK,WAAW;QAC3B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS,CAAC,GAAsB;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC7B,qBAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,iFAAiF,CAAC,CAAC;YACtI,OAAO,EAAE,CAAC;SACX;QACD,OAAO,YAAY,CAAC,YAAY,CAAC,+BAA+B,CAAC,YAAY,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC5G,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,cAAc,CAAC,GAAQ;QACnC,MAAM,SAAS,GAAG,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC;IAClB,CAAC;;AAtEH,oCAwEC;AAvEgB,yBAAY,GAAG,KAAK,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\nimport { enablePatches } from \"immer\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { Localization } from \"@itwin/core-common\";\r\nimport { getClassName, UiError } from \"@itwin/appui-abstract\";\r\nimport { UiCore } from \"@itwin/core-react\";\r\n\r\n/**\r\n * Manages the localization service for the components-react package.\r\n * @public\r\n */\r\nexport class UiComponents {\r\n private static _initialized = false;\r\n private static _localization?: Localization;\r\n\r\n /**\r\n * Registers the localization service namespace for UiComponents. Also initializes UiCore.\r\n * @param localization The internationalization service created by the host application.\r\n */\r\n public static async initialize(localization: Localization): Promise<void> {\r\n if (UiComponents._initialized) {\r\n Logger.logInfo(UiComponents.loggerCategory(UiComponents), `UiComponents.initialize already called`);\r\n return;\r\n }\r\n\r\n enablePatches();\r\n UiComponents._localization = localization;\r\n await UiComponents._localization.registerNamespace(UiComponents.localizationNamespace);\r\n\r\n await UiCore.initialize(UiComponents._localization);\r\n UiComponents._initialized = true;\r\n }\r\n\r\n /** Unregisters the UiComponents localization namespace */\r\n public static terminate() {\r\n if (UiComponents._localization)\r\n UiComponents._localization.unregisterNamespace(UiComponents.localizationNamespace);\r\n UiComponents._localization = undefined;\r\n\r\n UiCore.terminate();\r\n UiComponents._initialized = false;\r\n }\r\n\r\n /** Determines if UiComponents has been initialized */\r\n public static get initialized(): boolean { return UiComponents._initialized; }\r\n\r\n /** The internationalization service created by the host application.\r\n * @internal\r\n */\r\n public static get localization(): Localization {\r\n if (!UiComponents._localization)\r\n throw new UiError(UiComponents.loggerCategory(this), \"_localization: UiComponents.initialize has not been called. Unable to return Localization object.\");\r\n return UiComponents._localization;\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return \"UiComponents\";\r\n }\r\n\r\n /** @internal */\r\n public static get packageName(): string {\r\n return \"components-react\";\r\n }\r\n\r\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiComponents\" namespace. Do NOT include the namespace in the key.\r\n * @internal\r\n */\r\n public static translate(key: string | string[]): string {\r\n if (!UiComponents.initialized) {\r\n Logger.logError(UiComponents.loggerCategory(this), `translate: UiComponents.initialize has not been called. Returning blank string.`);\r\n return \"\";\r\n }\r\n return UiComponents.localization.getLocalizedStringWithNamespace(UiComponents.localizationNamespace, key);\r\n }\r\n\r\n /** @internal */\r\n public static loggerCategory(obj: any): string {\r\n const className = getClassName(obj);\r\n const category = UiComponents.packageName + (className ? `.${className}` : \"\");\r\n return category;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"UiComponents.js","sourceRoot":"","sources":["../../../src/components-react/UiComponents.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAAsC;AACtC,sDAA6C;AAE7C,0DAA8D;AAC9D,kDAA2C;AAE3C;;;GAGG;AACH,MAAa,YAAY;IAIvB;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAA0B;QACvD,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,qBAAM,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,wCAAwC,CAAC,CAAC;YACpG,OAAO;SACR;QAED,IAAA,qBAAa,GAAE,CAAC;QAChB,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC;QAC1C,MAAM,YAAY,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAEvF,MAAM,mBAAM,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACpD,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,0DAA0D;IACnD,MAAM,CAAC,SAAS;QACrB,IAAI,YAAY,CAAC,aAAa;YAC5B,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QACrF,YAAY,CAAC,aAAa,GAAG,SAAS,CAAC;QAEvC,mBAAM,CAAC,SAAS,EAAE,CAAC;QACnB,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,sDAAsD;IAC/C,MAAM,KAAK,WAAW,KAAc,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9E;;OAEG;IACI,MAAM,KAAK,YAAY;QAC5B,IAAI,CAAC,YAAY,CAAC,aAAa;YAC7B,MAAM,IAAI,wBAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,mGAAmG,CAAC,CAAC;QAC5J,OAAO,YAAY,CAAC,aAAa,CAAC;IACpC,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,MAAM,KAAK,WAAW;QAC3B,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS,CAAC,GAAsB;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC7B,qBAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,iFAAiF,CAAC,CAAC;YACtI,OAAO,EAAE,CAAC;SACX;QACD,OAAO,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,cAAc,CAAC,GAAQ;QACnC,MAAM,SAAS,GAAG,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC;IAClB,CAAC;;AAtEH,oCAwEC;AAvEgB,yBAAY,GAAG,KAAK,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Common\r\n */\r\n\r\nimport { enablePatches } from \"immer\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { Localization } from \"@itwin/core-common\";\r\nimport { getClassName, UiError } from \"@itwin/appui-abstract\";\r\nimport { UiCore } from \"@itwin/core-react\";\r\n\r\n/**\r\n * Manages the localization service for the components-react package.\r\n * @public\r\n */\r\nexport class UiComponents {\r\n private static _initialized = false;\r\n private static _localization?: Localization;\r\n\r\n /**\r\n * Registers the localization service namespace for UiComponents. Also initializes UiCore.\r\n * @param localization The internationalization service created by the host application.\r\n */\r\n public static async initialize(localization: Localization): Promise<void> {\r\n if (UiComponents._initialized) {\r\n Logger.logInfo(UiComponents.loggerCategory(UiComponents), `UiComponents.initialize already called`);\r\n return;\r\n }\r\n\r\n enablePatches();\r\n UiComponents._localization = localization;\r\n await UiComponents._localization.registerNamespace(UiComponents.localizationNamespace);\r\n\r\n await UiCore.initialize(UiComponents._localization);\r\n UiComponents._initialized = true;\r\n }\r\n\r\n /** Unregisters the UiComponents localization namespace */\r\n public static terminate() {\r\n if (UiComponents._localization)\r\n UiComponents._localization.unregisterNamespace(UiComponents.localizationNamespace);\r\n UiComponents._localization = undefined;\r\n\r\n UiCore.terminate();\r\n UiComponents._initialized = false;\r\n }\r\n\r\n /** Determines if UiComponents has been initialized */\r\n public static get initialized(): boolean { return UiComponents._initialized; }\r\n\r\n /** The internationalization service created by the host application.\r\n * @internal\r\n */\r\n public static get localization(): Localization {\r\n if (!UiComponents._localization)\r\n throw new UiError(UiComponents.loggerCategory(this), \"_localization: UiComponents.initialize has not been called. Unable to return Localization object.\");\r\n return UiComponents._localization;\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return \"UiComponents\";\r\n }\r\n\r\n /** @internal */\r\n public static get packageName(): string {\r\n return \"components-react\";\r\n }\r\n\r\n /** Calls localization.getLocalizedString with the \"UiComponents\" namespace. Do NOT include the namespace in the key.\r\n * @internal\r\n */\r\n public static translate(key: string | string[]): string {\r\n if (!UiComponents.initialized) {\r\n Logger.logError(UiComponents.loggerCategory(this), `translate: UiComponents.initialize has not been called. Returning blank string.`);\r\n return \"\";\r\n }\r\n return UiComponents.localization.getLocalizedString(key, { ns: UiComponents.localizationNamespace });\r\n }\r\n\r\n /** @internal */\r\n public static loggerCategory(obj: any): string {\r\n const className = getClassName(obj);\r\n const category = UiComponents.packageName + (className ? `.${className}` : \"\");\r\n return category;\r\n }\r\n\r\n}\r\n"]}
@@ -13,6 +13,7 @@ export interface PropertyFilterBuilderProps {
13
13
  ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;
14
14
  ruleGroupDepthLimit?: number;
15
15
  propertyRenderer?: (name: string) => React.ReactNode;
16
+ disablePropertySelection?: boolean;
16
17
  }
17
18
  /** @alpha */
18
19
  export interface PropertyFilterBuilderContextProps {
@@ -28,6 +29,7 @@ export interface PropertyFilterBuilderRuleRenderingContextProps {
28
29
  ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;
29
30
  ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;
30
31
  propertyRenderer?: (name: string) => React.ReactNode;
32
+ disablePropertySelection?: boolean;
31
33
  }
32
34
  /** @alpha */
33
35
  export declare const PropertyFilterBuilderRuleRenderingContext: React.Context<PropertyFilterBuilderRuleRenderingContextProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAC6B,4BAA4B,EAC9D,kCAAkC,EACnC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,aAAa;AACb,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACtD;AAED,aAAa;AACb,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,4BAA4B,CAAC;IACtC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,aAAa;AACb,eAAO,MAAM,4BAA4B,kDAAgE,CAAC;AAE1G,aAAa;AACb,MAAM,WAAW,8CAA8C;IAC7D,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACtD;AAED,aAAa;AACb,eAAO,MAAM,yCAAyC,+DAA0E,CAAC;AAIjI,aAAa;AACb,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,eA6BtE;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,kCAAkC,GAAG,cAAc,GAAG,SAAS,CAI7G"}
1
+ {"version":3,"file":"FilterBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAC6B,4BAA4B,EAC9D,kCAAkC,EACnC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,aAAa;AACb,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,aAAa;AACb,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,4BAA4B,CAAC;IACtC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,aAAa;AACb,eAAO,MAAM,4BAA4B,kDAAgE,CAAC;AAE1G,aAAa;AACb,MAAM,WAAW,8CAA8C;IAC7D,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,aAAa;AACb,eAAO,MAAM,yCAAyC,+DAA0E,CAAC;AAIjI,aAAa;AACb,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,eA6BtE;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,kCAAkC,GAAG,cAAc,GAAG,SAAS,CAI7G"}
@@ -36,7 +36,7 @@ exports.PropertyFilterBuilderRuleRenderingContext = React.createContext({});
36
36
  const ROOT_GROUP_PATH = [];
37
37
  /** @alpha */
38
38
  function PropertyFilterBuilder(props) {
39
- const { properties, onFilterChanged, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer } = props;
39
+ const { properties, onFilterChanged, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer, disablePropertySelection } = props;
40
40
  const { state, actions } = (0, FilterBuilderState_1.usePropertyFilterBuilderState)();
41
41
  const rootRef = React.useRef(null);
42
42
  const filter = React.useMemo(() => buildPropertyFilter(state.rootGroup), [state]);
@@ -44,7 +44,7 @@ function PropertyFilterBuilder(props) {
44
44
  onFilterChanged(filter);
45
45
  }, [filter, onFilterChanged]);
46
46
  const contextValue = React.useMemo(() => ({ actions, properties, onRulePropertySelected, ruleGroupDepthLimit }), [actions, properties, onRulePropertySelected, ruleGroupDepthLimit]);
47
- const renderingContextValue = React.useMemo(() => ({ ruleOperatorRenderer, ruleValueRenderer, propertyRenderer }), [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer]);
47
+ const renderingContextValue = React.useMemo(() => ({ ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection }), [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection]);
48
48
  return (React.createElement(exports.PropertyFilterBuilderRuleRenderingContext.Provider, { value: renderingContextValue },
49
49
  React.createElement(exports.PropertyFilterBuilderContext.Provider, { value: contextValue },
50
50
  React.createElement(FilterBuilderRuleGroup_1.ActiveRuleGroupContext.Provider, { value: useActiveRuleGroupContextProps(rootRef) },
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,0DAAiF;AACjF,qEAA0G;AAG1G,6DAG8B;AAC9B,2CAA4D;AAsB5D,aAAa;AACA,QAAA,4BAA4B,GAAG,KAAK,CAAC,aAAa,CAAoC,IAAK,CAAC,CAAC;AAS1G,aAAa;AACA,QAAA,yCAAyC,GAAG,KAAK,CAAC,aAAa,CAAiD,EAAE,CAAC,CAAC;AAEjI,MAAM,eAAe,GAAa,EAAE,CAAC;AAErC,aAAa;AACb,SAAgB,qBAAqB,CAAC,KAAiC;IACrE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IACtJ,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAA,kDAA6B,GAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC,EAC5E,CAAC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CACnE,CAAC;IACF,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CACzC,GAAG,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,EACrE,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAC5D,CAAC;IACF,OAAO,CACL,oBAAC,iDAAyC,CAAC,QAAQ,IAAC,KAAK,EAAE,qBAAqB;QAC9E,oBAAC,oCAA4B,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY;YACxD,oBAAC,+CAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,8BAA8B,CAAC,OAAO,CAAC;gBAC7E,6BAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,gBAAgB;oBAC3C,oBAAC,+DAAsC,IAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,GAAI,CACrF,CAC0B,CACI,CACW,CACtD,CAAC;AACJ,CAAC;AA7BD,sDA6BC;AAED,gBAAgB;AAChB,SAAgB,mBAAmB,CAAC,SAA6C;IAC/E,IAAI,IAAA,qDAAgC,EAAC,SAAS,CAAC;QAC7C,OAAO,gCAAgC,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,2BAA2B,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAJD,kDAIC;AAED,SAAS,gCAAgC,CAAC,SAAyC;IACjF,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC9B,OAAO,SAAS,CAAC;IAEnB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAkB,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;QAClC,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YACP,OAAO,SAAS,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClB;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAElB,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,IAA+B;IAClE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS;QACrC,OAAO,SAAS,CAAC;IAEnB,IAAI,CAAC,IAAA,yCAA6B,EAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,oCAAmB,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;QACvJ,OAAO,SAAS,CAAC;IAEnB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,8BAA8B,CAAC,cAA4C;IAClF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAA2B,CAAC;IAEpF,MAAM,OAAO,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,aAAa,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACnH,OAAO;QAET,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAChF,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAyC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/E,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,qBAAqB;QACrB,IAAI,aAAa,KAAK,CAAC,CAAC,aAAa;YACnC,OAAO;QAET,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,aAAa;QACb,OAAO;QACP,MAAM;QACN,WAAW;QACX,UAAU;KACX,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { ActiveRuleGroupContext, PropertyFilterBuilderRuleGroupRenderer } from \"./FilterBuilderRuleGroup\";\r\nimport { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleValueProps } from \"./FilterBuilderRuleValue\";\r\nimport {\r\n isPropertyFilterBuilderRuleGroup, PropertyFilterBuilderActions, PropertyFilterBuilderRule, PropertyFilterBuilderRuleGroup,\r\n PropertyFilterBuilderRuleGroupItem, usePropertyFilterBuilderState,\r\n} from \"./FilterBuilderState\";\r\nimport { isUnaryPropertyFilterOperator } from \"./Operators\";\r\nimport { PropertyFilter } from \"./Types\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderProps {\r\n properties: PropertyDescription[];\r\n onFilterChanged: (filter?: PropertyFilter) => void;\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n ruleGroupDepthLimit?: number;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n}\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderContextProps {\r\n actions: PropertyFilterBuilderActions;\r\n properties: PropertyDescription[];\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n ruleGroupDepthLimit?: number;\r\n}\r\n\r\n/** @alpha */\r\nexport const PropertyFilterBuilderContext = React.createContext<PropertyFilterBuilderContextProps>(null!);\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleRenderingContextProps {\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n}\r\n\r\n/** @alpha */\r\nexport const PropertyFilterBuilderRuleRenderingContext = React.createContext<PropertyFilterBuilderRuleRenderingContextProps>({});\r\n\r\nconst ROOT_GROUP_PATH: string[] = [];\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilder(props: PropertyFilterBuilderProps) {\r\n const { properties, onFilterChanged, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer } = props;\r\n const { state, actions } = usePropertyFilterBuilderState();\r\n const rootRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const filter = React.useMemo(() => buildPropertyFilter(state.rootGroup), [state]);\r\n React.useEffect(() => {\r\n onFilterChanged(filter);\r\n }, [filter, onFilterChanged]);\r\n\r\n const contextValue = React.useMemo<PropertyFilterBuilderContextProps>(\r\n () => ({ actions, properties, onRulePropertySelected, ruleGroupDepthLimit }),\r\n [actions, properties, onRulePropertySelected, ruleGroupDepthLimit]\r\n );\r\n const renderingContextValue = React.useMemo<PropertyFilterBuilderRuleRenderingContextProps>(\r\n () => ({ ruleOperatorRenderer, ruleValueRenderer, propertyRenderer }),\r\n [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer]\r\n );\r\n return (\r\n <PropertyFilterBuilderRuleRenderingContext.Provider value={renderingContextValue}>\r\n <PropertyFilterBuilderContext.Provider value={contextValue}>\r\n <ActiveRuleGroupContext.Provider value={useActiveRuleGroupContextProps(rootRef)}>\r\n <div ref={rootRef} className=\"filter-builder\">\r\n <PropertyFilterBuilderRuleGroupRenderer path={ROOT_GROUP_PATH} group={state.rootGroup} />\r\n </div>\r\n </ActiveRuleGroupContext.Provider>\r\n </PropertyFilterBuilderContext.Provider>\r\n </PropertyFilterBuilderRuleRenderingContext.Provider>\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport function buildPropertyFilter(groupItem: PropertyFilterBuilderRuleGroupItem): PropertyFilter | undefined {\r\n if (isPropertyFilterBuilderRuleGroup(groupItem))\r\n return buildPropertyFilterFromRuleGroup(groupItem);\r\n return buildPropertyFilterFromRule(groupItem);\r\n}\r\n\r\nfunction buildPropertyFilterFromRuleGroup(rootGroup: PropertyFilterBuilderRuleGroup): PropertyFilter | undefined {\r\n if (rootGroup.items.length === 0)\r\n return undefined;\r\n\r\n const rules = new Array<PropertyFilter>();\r\n for (const item of rootGroup.items) {\r\n const rule = buildPropertyFilter(item);\r\n if (!rule)\r\n return undefined;\r\n rules.push(rule);\r\n }\r\n\r\n if (rules.length === 1)\r\n return rules[0];\r\n\r\n return {\r\n operator: rootGroup.operator,\r\n rules,\r\n };\r\n}\r\n\r\nfunction buildPropertyFilterFromRule(rule: PropertyFilterBuilderRule): PropertyFilter | undefined {\r\n const { property, operator, value } = rule;\r\n if (!property || operator === undefined)\r\n return undefined;\r\n\r\n if (!isUnaryPropertyFilterOperator(operator) && (value === undefined || value.valueFormat !== PropertyValueFormat.Primitive || value.value === undefined))\r\n return undefined;\r\n\r\n return { property, operator, value };\r\n}\r\n\r\nfunction useActiveRuleGroupContextProps(rootElementRef: React.RefObject<HTMLElement>) {\r\n const [activeElement, setActiveElement] = React.useState<HTMLElement | undefined>();\r\n\r\n const onFocus: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onBlur: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n if (activeElement !== e.currentTarget || (rootElementRef.current && rootElementRef.current.contains(e.relatedTarget)))\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement, rootElementRef]);\r\n\r\n const onMouseOver: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onMouseOut: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n // istanbul ignore if\r\n if (activeElement !== e.currentTarget)\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement]);\r\n\r\n return React.useMemo(() => ({\r\n activeElement,\r\n onFocus,\r\n onBlur,\r\n onMouseOver,\r\n onMouseOut,\r\n }), [activeElement, onFocus, onBlur, onMouseOver, onMouseOut]);\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilder.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilder.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { ActiveRuleGroupContext, PropertyFilterBuilderRuleGroupRenderer } from \"./FilterBuilderRuleGroup\";\r\nimport { PropertyFilterBuilderRuleOperatorProps } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleValueProps } from \"./FilterBuilderRuleValue\";\r\nimport {\r\n isPropertyFilterBuilderRuleGroup, PropertyFilterBuilderActions, PropertyFilterBuilderRule, PropertyFilterBuilderRuleGroup,\r\n PropertyFilterBuilderRuleGroupItem, usePropertyFilterBuilderState,\r\n} from \"./FilterBuilderState\";\r\nimport { isUnaryPropertyFilterOperator } from \"./Operators\";\r\nimport { PropertyFilter } from \"./Types\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderProps {\r\n properties: PropertyDescription[];\r\n onFilterChanged: (filter?: PropertyFilter) => void;\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n ruleGroupDepthLimit?: number;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n disablePropertySelection?: boolean;\r\n}\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderContextProps {\r\n actions: PropertyFilterBuilderActions;\r\n properties: PropertyDescription[];\r\n onRulePropertySelected?: (property: PropertyDescription) => void;\r\n ruleGroupDepthLimit?: number;\r\n}\r\n\r\n/** @alpha */\r\nexport const PropertyFilterBuilderContext = React.createContext<PropertyFilterBuilderContextProps>(null!);\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleRenderingContextProps {\r\n ruleOperatorRenderer?: (props: PropertyFilterBuilderRuleOperatorProps) => React.ReactNode;\r\n ruleValueRenderer?: (props: PropertyFilterBuilderRuleValueProps) => React.ReactNode;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n disablePropertySelection?: boolean;\r\n}\r\n\r\n/** @alpha */\r\nexport const PropertyFilterBuilderRuleRenderingContext = React.createContext<PropertyFilterBuilderRuleRenderingContextProps>({});\r\n\r\nconst ROOT_GROUP_PATH: string[] = [];\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilder(props: PropertyFilterBuilderProps) {\r\n const { properties, onFilterChanged, onRulePropertySelected, ruleOperatorRenderer, ruleValueRenderer, ruleGroupDepthLimit, propertyRenderer, disablePropertySelection } = props;\r\n const { state, actions } = usePropertyFilterBuilderState();\r\n const rootRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const filter = React.useMemo(() => buildPropertyFilter(state.rootGroup), [state]);\r\n React.useEffect(() => {\r\n onFilterChanged(filter);\r\n }, [filter, onFilterChanged]);\r\n\r\n const contextValue = React.useMemo<PropertyFilterBuilderContextProps>(\r\n () => ({ actions, properties, onRulePropertySelected, ruleGroupDepthLimit }),\r\n [actions, properties, onRulePropertySelected, ruleGroupDepthLimit]\r\n );\r\n const renderingContextValue = React.useMemo<PropertyFilterBuilderRuleRenderingContextProps>(\r\n () => ({ ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection }),\r\n [ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection]\r\n );\r\n return (\r\n <PropertyFilterBuilderRuleRenderingContext.Provider value={renderingContextValue}>\r\n <PropertyFilterBuilderContext.Provider value={contextValue}>\r\n <ActiveRuleGroupContext.Provider value={useActiveRuleGroupContextProps(rootRef)}>\r\n <div ref={rootRef} className=\"filter-builder\">\r\n <PropertyFilterBuilderRuleGroupRenderer path={ROOT_GROUP_PATH} group={state.rootGroup} />\r\n </div>\r\n </ActiveRuleGroupContext.Provider>\r\n </PropertyFilterBuilderContext.Provider>\r\n </PropertyFilterBuilderRuleRenderingContext.Provider>\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport function buildPropertyFilter(groupItem: PropertyFilterBuilderRuleGroupItem): PropertyFilter | undefined {\r\n if (isPropertyFilterBuilderRuleGroup(groupItem))\r\n return buildPropertyFilterFromRuleGroup(groupItem);\r\n return buildPropertyFilterFromRule(groupItem);\r\n}\r\n\r\nfunction buildPropertyFilterFromRuleGroup(rootGroup: PropertyFilterBuilderRuleGroup): PropertyFilter | undefined {\r\n if (rootGroup.items.length === 0)\r\n return undefined;\r\n\r\n const rules = new Array<PropertyFilter>();\r\n for (const item of rootGroup.items) {\r\n const rule = buildPropertyFilter(item);\r\n if (!rule)\r\n return undefined;\r\n rules.push(rule);\r\n }\r\n\r\n if (rules.length === 1)\r\n return rules[0];\r\n\r\n return {\r\n operator: rootGroup.operator,\r\n rules,\r\n };\r\n}\r\n\r\nfunction buildPropertyFilterFromRule(rule: PropertyFilterBuilderRule): PropertyFilter | undefined {\r\n const { property, operator, value } = rule;\r\n if (!property || operator === undefined)\r\n return undefined;\r\n\r\n if (!isUnaryPropertyFilterOperator(operator) && (value === undefined || value.valueFormat !== PropertyValueFormat.Primitive || value.value === undefined))\r\n return undefined;\r\n\r\n return { property, operator, value };\r\n}\r\n\r\nfunction useActiveRuleGroupContextProps(rootElementRef: React.RefObject<HTMLElement>) {\r\n const [activeElement, setActiveElement] = React.useState<HTMLElement | undefined>();\r\n\r\n const onFocus: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onBlur: React.FocusEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n if (activeElement !== e.currentTarget || (rootElementRef.current && rootElementRef.current.contains(e.relatedTarget)))\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement, rootElementRef]);\r\n\r\n const onMouseOver: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n setActiveElement(e.currentTarget);\r\n }, []);\r\n\r\n const onMouseOut: React.MouseEventHandler<HTMLElement> = React.useCallback((e) => {\r\n e.stopPropagation();\r\n // istanbul ignore if\r\n if (activeElement !== e.currentTarget)\r\n return;\r\n\r\n setActiveElement(undefined);\r\n }, [activeElement]);\r\n\r\n return React.useMemo(() => ({\r\n activeElement,\r\n onFocus,\r\n onBlur,\r\n onMouseOver,\r\n onMouseOut,\r\n }), [activeElement, onFocus, onBlur, onMouseOver, onMouseOut]);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRule.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,0BAA0B,CAAC;AAElC,aAAa;AACb,MAAM,WAAW,sCAAsC;IACrD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED,aAAa;AACb,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAqD9F"}
1
+ {"version":3,"file":"FilterBuilderRule.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,0BAA0B,CAAC;AAElC,aAAa;AACb,MAAM,WAAW,sCAAsC;IACrD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED,aAAa;AACb,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAsD9F"}
@@ -37,7 +37,7 @@ require("./FilterBuilderRule.scss");
37
37
  function PropertyFilterBuilderRuleRenderer(props) {
38
38
  const { path, rule } = props;
39
39
  const { properties, actions, onRulePropertySelected } = React.useContext(FilterBuilder_1.PropertyFilterBuilderContext);
40
- const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer } = React.useContext(FilterBuilder_1.PropertyFilterBuilderRuleRenderingContext);
40
+ const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection } = React.useContext(FilterBuilder_1.PropertyFilterBuilderRuleRenderingContext);
41
41
  const { property, operator, value } = rule;
42
42
  const onSelectedPropertyChanged = React.useCallback((newProperty) => {
43
43
  actions.setRuleProperty(path, newProperty);
@@ -68,7 +68,7 @@ function PropertyFilterBuilderRuleRenderer(props) {
68
68
  React.createElement(itwinui_react_1.IconButton, { onClick: removeRule, styleType: "borderless", size: "small" },
69
69
  React.createElement(itwinui_icons_react_1.SvgDelete, null))),
70
70
  React.createElement("div", { className: "rule-condition" },
71
- React.createElement(FilterBuilderRuleProperty_1.PropertyFilterBuilderRuleProperty, { properties: properties, selectedProperty: rule.property, onSelectedPropertyChanged: onSelectedPropertyChanged, propertyRenderer: propertyRenderer }),
71
+ React.createElement(FilterBuilderRuleProperty_1.PropertyFilterBuilderRuleProperty, { properties: properties, selectedProperty: rule.property, onSelectedPropertyChanged: onSelectedPropertyChanged, propertyRenderer: propertyRenderer, isDisabled: disablePropertySelection }),
72
72
  property && operatorRenderer(property),
73
73
  property && operator && !(0, Operators_1.isUnaryPropertyFilterOperator)(operator) && valueRenderer(property)));
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRule.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValue } from \"@itwin/appui-abstract\";\r\nimport { SvgDelete } from \"@itwin/itwinui-icons-react\";\r\nimport { IconButton } from \"@itwin/itwinui-react\";\r\nimport { PropertyFilterBuilderContext, PropertyFilterBuilderRuleRenderingContext } from \"./FilterBuilder\";\r\nimport { PropertyFilterBuilderRuleOperator } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleProperty } from \"./FilterBuilderRuleProperty\";\r\nimport { PropertyFilterBuilderRuleValue } from \"./FilterBuilderRuleValue\";\r\nimport { PropertyFilterBuilderRule } from \"./FilterBuilderState\";\r\nimport { isUnaryPropertyFilterOperator, PropertyFilterRuleOperator } from \"./Operators\";\r\nimport \"./FilterBuilderRule.scss\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleRendererProps {\r\n path: string[];\r\n rule: PropertyFilterBuilderRule;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleRenderer(props: PropertyFilterBuilderRuleRendererProps) {\r\n const { path, rule } = props;\r\n const { properties, actions, onRulePropertySelected } = React.useContext(PropertyFilterBuilderContext);\r\n const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer } = React.useContext(PropertyFilterBuilderRuleRenderingContext);\r\n const { property, operator, value } = rule;\r\n\r\n const onSelectedPropertyChanged = React.useCallback((newProperty?: PropertyDescription) => {\r\n actions.setRuleProperty(path, newProperty);\r\n // invoke 'onRulePropertySelected' when new property is selected. There is no way to deselect property\r\n // so 'newProperty' will be 'undefined' only if selected property is no longer in 'properties' list.\r\n if (onRulePropertySelected && newProperty)\r\n onRulePropertySelected(newProperty);\r\n }, [path, onRulePropertySelected, actions]);\r\n\r\n const onRuleOperatorChange = React.useCallback((newOperator: PropertyFilterRuleOperator) => {\r\n actions.setRuleOperator(path, newOperator);\r\n }, [path, actions]);\r\n\r\n const onRuleValueChange = React.useCallback((newValue: PropertyValue) => {\r\n actions.setRuleValue(path, newValue);\r\n }, [path, actions]);\r\n\r\n const removeRule = () => actions.removeItem(path);\r\n\r\n const operatorRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleOperatorRenderer)\r\n return ruleOperatorRenderer({ property: prop, operator, onChange: onRuleOperatorChange });\r\n return <PropertyFilterBuilderRuleOperator property={prop} onChange={onRuleOperatorChange} operator={operator} />;\r\n }, [operator, ruleOperatorRenderer, onRuleOperatorChange]);\r\n\r\n const valueRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleValueRenderer)\r\n return ruleValueRenderer({ property: prop, value, onChange: onRuleValueChange });\r\n return <PropertyFilterBuilderRuleValue property={prop} onChange={onRuleValueChange} value={value} />;\r\n }, [value, ruleValueRenderer, onRuleValueChange]);\r\n\r\n return <div className=\"rule\">\r\n <div className=\"rule-remove-action\">\r\n <IconButton onClick={removeRule} styleType=\"borderless\" size=\"small\">\r\n <SvgDelete />\r\n </IconButton>\r\n </div>\r\n <div className=\"rule-condition\">\r\n <PropertyFilterBuilderRuleProperty\r\n properties={properties}\r\n selectedProperty={rule.property}\r\n onSelectedPropertyChanged={onSelectedPropertyChanged}\r\n propertyRenderer={propertyRenderer}\r\n />\r\n {property && operatorRenderer(property)}\r\n {property && operator && !isUnaryPropertyFilterOperator(operator) && valueRenderer(property)}\r\n </div>\r\n </div>;\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilderRule.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRule.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyValue } from \"@itwin/appui-abstract\";\r\nimport { SvgDelete } from \"@itwin/itwinui-icons-react\";\r\nimport { IconButton } from \"@itwin/itwinui-react\";\r\nimport { PropertyFilterBuilderContext, PropertyFilterBuilderRuleRenderingContext } from \"./FilterBuilder\";\r\nimport { PropertyFilterBuilderRuleOperator } from \"./FilterBuilderRuleOperator\";\r\nimport { PropertyFilterBuilderRuleProperty } from \"./FilterBuilderRuleProperty\";\r\nimport { PropertyFilterBuilderRuleValue } from \"./FilterBuilderRuleValue\";\r\nimport { PropertyFilterBuilderRule } from \"./FilterBuilderState\";\r\nimport { isUnaryPropertyFilterOperator, PropertyFilterRuleOperator } from \"./Operators\";\r\nimport \"./FilterBuilderRule.scss\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleRendererProps {\r\n path: string[];\r\n rule: PropertyFilterBuilderRule;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleRenderer(props: PropertyFilterBuilderRuleRendererProps) {\r\n const { path, rule } = props;\r\n const { properties, actions, onRulePropertySelected } = React.useContext(PropertyFilterBuilderContext);\r\n const { ruleOperatorRenderer, ruleValueRenderer, propertyRenderer, disablePropertySelection } = React.useContext(PropertyFilterBuilderRuleRenderingContext);\r\n const { property, operator, value } = rule;\r\n\r\n const onSelectedPropertyChanged = React.useCallback((newProperty?: PropertyDescription) => {\r\n actions.setRuleProperty(path, newProperty);\r\n // invoke 'onRulePropertySelected' when new property is selected. There is no way to deselect property\r\n // so 'newProperty' will be 'undefined' only if selected property is no longer in 'properties' list.\r\n if (onRulePropertySelected && newProperty)\r\n onRulePropertySelected(newProperty);\r\n }, [path, onRulePropertySelected, actions]);\r\n\r\n const onRuleOperatorChange = React.useCallback((newOperator: PropertyFilterRuleOperator) => {\r\n actions.setRuleOperator(path, newOperator);\r\n }, [path, actions]);\r\n\r\n const onRuleValueChange = React.useCallback((newValue: PropertyValue) => {\r\n actions.setRuleValue(path, newValue);\r\n }, [path, actions]);\r\n\r\n const removeRule = () => actions.removeItem(path);\r\n\r\n const operatorRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleOperatorRenderer)\r\n return ruleOperatorRenderer({ property: prop, operator, onChange: onRuleOperatorChange });\r\n return <PropertyFilterBuilderRuleOperator property={prop} onChange={onRuleOperatorChange} operator={operator} />;\r\n }, [operator, ruleOperatorRenderer, onRuleOperatorChange]);\r\n\r\n const valueRenderer = React.useCallback((prop: PropertyDescription) => {\r\n if (ruleValueRenderer)\r\n return ruleValueRenderer({ property: prop, value, onChange: onRuleValueChange });\r\n return <PropertyFilterBuilderRuleValue property={prop} onChange={onRuleValueChange} value={value} />;\r\n }, [value, ruleValueRenderer, onRuleValueChange]);\r\n\r\n return <div className=\"rule\">\r\n <div className=\"rule-remove-action\">\r\n <IconButton onClick={removeRule} styleType=\"borderless\" size=\"small\">\r\n <SvgDelete />\r\n </IconButton>\r\n </div>\r\n <div className=\"rule-condition\">\r\n <PropertyFilterBuilderRuleProperty\r\n properties={properties}\r\n selectedProperty={rule.property}\r\n onSelectedPropertyChanged={onSelectedPropertyChanged}\r\n propertyRenderer={propertyRenderer}\r\n isDisabled={disablePropertySelection}\r\n />\r\n {property && operatorRenderer(property)}\r\n {property && operator && !isUnaryPropertyFilterOperator(operator) && valueRenderer(property)}\r\n </div>\r\n </div>;\r\n}\r\n"]}
@@ -6,6 +6,7 @@ export interface PropertyFilterBuilderRulePropertyProps {
6
6
  selectedProperty?: PropertyDescription;
7
7
  onSelectedPropertyChanged: (property?: PropertyDescription) => void;
8
8
  propertyRenderer?: (name: string) => React.ReactNode;
9
+ isDisabled?: boolean;
9
10
  }
10
11
  /** @alpha */
11
12
  export declare function PropertyFilterBuilderRuleProperty(props: PropertyFilterBuilderRulePropertyProps): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleProperty.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,aAAa;AACb,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACtD;AAED,aAAa;AACb,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAoC9F"}
1
+ {"version":3,"file":"FilterBuilderRuleProperty.d.ts","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,aAAa;AACb,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,aAAa;AACb,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sCAAsC,eAsC9F"}
@@ -29,7 +29,7 @@ const itwinui_react_1 = require("@itwin/itwinui-react");
29
29
  const UiComponents_1 = require("../UiComponents");
30
30
  /** @alpha */
31
31
  function PropertyFilterBuilderRuleProperty(props) {
32
- const { selectedProperty, properties, onSelectedPropertyChanged, propertyRenderer } = props;
32
+ const { selectedProperty, properties, onSelectedPropertyChanged, propertyRenderer, isDisabled } = props;
33
33
  const selectOptions = React.useMemo(() => properties.map((property) => ({
34
34
  id: property.name,
35
35
  label: property.displayLabel,
@@ -49,7 +49,8 @@ function PropertyFilterBuilderRuleProperty(props) {
49
49
  return React.createElement("div", { className: "rule-property" },
50
50
  React.createElement(itwinui_react_1.ComboBox, { options: selectOptions, onChange: onPropertyChanged, value: selectedProperty === null || selectedProperty === void 0 ? void 0 : selectedProperty.name, inputProps: {
51
51
  placeholder: UiComponents_1.UiComponents.translate("filterBuilder.chooseProperty"),
52
- }, itemRenderer: itemRenderer }));
52
+ disabled: isDisabled,
53
+ }, itemRenderer: itemRenderer, enableVirtualization: true }));
53
54
  }
54
55
  exports.PropertyFilterBuilderRuleProperty = PropertyFilterBuilderRuleProperty;
55
56
  //# sourceMappingURL=FilterBuilderRuleProperty.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleProperty.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAE/B,wDAAwE;AACxE,kDAA+C;AAU/C,aAAa;AACb,SAAgB,iCAAiC,CAAC,KAA6C;IAC7F,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAE5F,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAyB,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9F,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,KAAK,EAAE,QAAQ,CAAC,YAAY;QAC5B,KAAK,EAAE,QAAQ,CAAC,IAAI;KACrB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnB,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAC3D,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE5C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA,CAAC,CAAC;QACxG,IAAI,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,IAAI,OAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA;YAC1D,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,YAAkC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE;QAChG,OAAO,oBAAC,wBAAQ,IAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,IACrD,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CACpE,CAAC;IACd,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,6BAAK,SAAS,EAAC,eAAe;QACnC,oBAAC,wBAAQ,IACP,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,EAC7B,UAAU,EAAE;gBACV,WAAW,EAAE,2BAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC;aACpE,EACD,YAAY,EAAE,YAAY,GAC1B,CACE,CAAC;AACT,CAAC;AApCD,8EAoCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription } from \"@itwin/appui-abstract\";\r\nimport { ComboBox, MenuItem, SelectOption } from \"@itwin/itwinui-react\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRulePropertyProps {\r\n properties: PropertyDescription[];\r\n selectedProperty?: PropertyDescription;\r\n onSelectedPropertyChanged: (property?: PropertyDescription) => void;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleProperty(props: PropertyFilterBuilderRulePropertyProps) {\r\n const { selectedProperty, properties, onSelectedPropertyChanged, propertyRenderer } = props;\r\n\r\n const selectOptions = React.useMemo<SelectOption<string>[]>(() => properties.map((property) => ({\r\n id: property.name,\r\n label: property.displayLabel,\r\n value: property.name,\r\n })), [properties]);\r\n\r\n const onPropertyChanged = React.useCallback((name: string) => {\r\n onSelectedPropertyChanged(properties.find((property) => property.name === name));\r\n }, [properties, onSelectedPropertyChanged]);\r\n\r\n React.useEffect(() => {\r\n const currentSelectedProperty = properties.find((property) => property.name === selectedProperty?.name);\r\n if (currentSelectedProperty?.name !== selectedProperty?.name)\r\n onSelectedPropertyChanged(currentSelectedProperty);\r\n }, [properties, selectedProperty, onSelectedPropertyChanged]);\r\n\r\n const itemRenderer = React.useCallback((selectOption: SelectOption<string>, { isSelected, id }) => {\r\n return <MenuItem key={id} id={id} isSelected={isSelected}>\r\n {propertyRenderer ? propertyRenderer(selectOption.value) : selectOption.label}\r\n </MenuItem>;\r\n }, [propertyRenderer]);\r\n\r\n return <div className=\"rule-property\">\r\n <ComboBox\r\n options={selectOptions}\r\n onChange={onPropertyChanged}\r\n value={selectedProperty?.name}\r\n inputProps={{\r\n placeholder: UiComponents.translate(\"filterBuilder.chooseProperty\"),\r\n }}\r\n itemRenderer={itemRenderer}\r\n />\r\n </div>;\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilderRuleProperty.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleProperty.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAE/B,wDAAwE;AACxE,kDAA+C;AAW/C,aAAa;AACb,SAAgB,iCAAiC,CAAC,KAA6C;IAC7F,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAExG,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAyB,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9F,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,KAAK,EAAE,QAAQ,CAAC,YAAY;QAC5B,KAAK,EAAE,QAAQ,CAAC,IAAI;KACrB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnB,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QAC3D,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE5C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA,CAAC,CAAC;QACxG,IAAI,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,IAAI,OAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA;YAC1D,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,YAAkC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE;QAChG,OAAO,oBAAC,wBAAQ,IAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,IACrD,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CACpE,CAAC;IACd,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,6BAAK,SAAS,EAAC,eAAe;QACnC,oBAAC,wBAAQ,IACP,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,EAC7B,UAAU,EAAE;gBACV,WAAW,EAAE,2BAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC;gBACnE,QAAQ,EAAE,UAAU;aACrB,EACD,YAAY,EAAE,YAAY,EAC1B,oBAAoB,EAAE,IAAI,GAC1B,CACE,CAAC;AACT,CAAC;AAtCD,8EAsCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription } from \"@itwin/appui-abstract\";\r\nimport { ComboBox, MenuItem, SelectOption } from \"@itwin/itwinui-react\";\r\nimport { UiComponents } from \"../UiComponents\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRulePropertyProps {\r\n properties: PropertyDescription[];\r\n selectedProperty?: PropertyDescription;\r\n onSelectedPropertyChanged: (property?: PropertyDescription) => void;\r\n propertyRenderer?: (name: string) => React.ReactNode;\r\n isDisabled?: boolean;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleProperty(props: PropertyFilterBuilderRulePropertyProps) {\r\n const { selectedProperty, properties, onSelectedPropertyChanged, propertyRenderer, isDisabled } = props;\r\n\r\n const selectOptions = React.useMemo<SelectOption<string>[]>(() => properties.map((property) => ({\r\n id: property.name,\r\n label: property.displayLabel,\r\n value: property.name,\r\n })), [properties]);\r\n\r\n const onPropertyChanged = React.useCallback((name: string) => {\r\n onSelectedPropertyChanged(properties.find((property) => property.name === name));\r\n }, [properties, onSelectedPropertyChanged]);\r\n\r\n React.useEffect(() => {\r\n const currentSelectedProperty = properties.find((property) => property.name === selectedProperty?.name);\r\n if (currentSelectedProperty?.name !== selectedProperty?.name)\r\n onSelectedPropertyChanged(currentSelectedProperty);\r\n }, [properties, selectedProperty, onSelectedPropertyChanged]);\r\n\r\n const itemRenderer = React.useCallback((selectOption: SelectOption<string>, { isSelected, id }) => {\r\n return <MenuItem key={id} id={id} isSelected={isSelected}>\r\n {propertyRenderer ? propertyRenderer(selectOption.value) : selectOption.label}\r\n </MenuItem>;\r\n }, [propertyRenderer]);\r\n\r\n return <div className=\"rule-property\">\r\n <ComboBox\r\n options={selectOptions}\r\n onChange={onPropertyChanged}\r\n value={selectedProperty?.name}\r\n inputProps={{\r\n placeholder: UiComponents.translate(\"filterBuilder.chooseProperty\"),\r\n disabled: isDisabled,\r\n }}\r\n itemRenderer={itemRenderer}\r\n enableVirtualization={true}\r\n />\r\n </div>;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBuilderRuleValue.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,0DAAgH;AAChH,gEAAkF;AASlF,aAAa;AACb,SAAgB,8BAA8B,CAAC,KAA0C;IACvF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,IAAI,+BAAc,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAC,WAAW,EAAE,oCAAmB,CAAC,SAAS,EAAC,EAAE,QAAQ,CAAC,CAAC;IAC7F,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAC,QAAQ,EAAsB,EAAE,EAAE;QAC1E,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,6BAAK,SAAS,EAAC,YAAY;QAChC,oBAAC,iCAAe,IACd,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAE,CAAC,EAC7C,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,KAAK,GACf,CACE,CAAC;AACT,CAAC;AAnBD,wEAmBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyRecord, PropertyValue, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { EditorContainer, PropertyUpdatedArgs } from \"../editors/EditorContainer\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleValueProps {\r\n value?: PropertyValue;\r\n property: PropertyDescription;\r\n onChange: (value: PropertyValue) => void;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleValue(props: PropertyFilterBuilderRuleValueProps) {\r\n const { value, property, onChange } = props;\r\n\r\n const propertyRecord = React.useMemo(() => {\r\n return new PropertyRecord(value ?? {valueFormat: PropertyValueFormat.Primitive}, property);\r\n }, [value, property]);\r\n\r\n const onValueChange = React.useCallback(({newValue}: PropertyUpdatedArgs) => {\r\n onChange(newValue);\r\n }, [onChange]);\r\n\r\n return <div className=\"rule-value\">\r\n <EditorContainer\r\n propertyRecord={propertyRecord}\r\n onCancel={/* istanbul ignore next */ () => {}}\r\n onCommit={onValueChange}\r\n setFocus={false}\r\n />\r\n </div>;\r\n}\r\n"]}
1
+ {"version":3,"file":"FilterBuilderRuleValue.js","sourceRoot":"","sources":["../../../../src/components-react/filter-builder/FilterBuilderRuleValue.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,0DAAgH;AAChH,gEAAkF;AASlF,aAAa;AACb,SAAgB,8BAA8B,CAAC,KAA0C;IACvF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,IAAI,+BAAc,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,WAAW,EAAE,oCAAmB,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/F,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAuB,EAAE,EAAE;QAC5E,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,6BAAK,SAAS,EAAC,YAAY;QAChC,oBAAC,iCAAe,IACd,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9C,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,KAAK,GACf,CACE,CAAC;AACT,CAAC;AAnBD,wEAmBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport * as React from \"react\";\r\nimport { PropertyDescription, PropertyRecord, PropertyValue, PropertyValueFormat } from \"@itwin/appui-abstract\";\r\nimport { EditorContainer, PropertyUpdatedArgs } from \"../editors/EditorContainer\";\r\n\r\n/** @alpha */\r\nexport interface PropertyFilterBuilderRuleValueProps {\r\n value?: PropertyValue;\r\n property: PropertyDescription;\r\n onChange: (value: PropertyValue) => void;\r\n}\r\n\r\n/** @alpha */\r\nexport function PropertyFilterBuilderRuleValue(props: PropertyFilterBuilderRuleValueProps) {\r\n const { value, property, onChange } = props;\r\n\r\n const propertyRecord = React.useMemo(() => {\r\n return new PropertyRecord(value ?? { valueFormat: PropertyValueFormat.Primitive }, property);\r\n }, [value, property]);\r\n\r\n const onValueChange = React.useCallback(({ newValue }: PropertyUpdatedArgs) => {\r\n onChange(newValue);\r\n }, [onChange]);\r\n\r\n return <div className=\"rule-value\">\r\n <EditorContainer\r\n propertyRecord={propertyRecord}\r\n onCancel={/* istanbul ignore next */ () => { }}\r\n onCommit={onValueChange}\r\n setFocus={false}\r\n />\r\n </div>;\r\n}\r\n"]}
@@ -6,6 +6,7 @@ import { CompositeFilterDescriptorCollection, DistinctValueCollection } from "./
6
6
  import { ColumnDescription, MutableTableDataProvider, RowItem, TableDataChangeEvent } from "./TableDataProvider";
7
7
  /**
8
8
  * A Table Data Provider using an array of items.
9
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this class.
9
10
  * @public
10
11
  */
11
12
  export declare class SimpleTableDataProvider implements MutableTableDataProvider {
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTableDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/table/SimpleTableDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,mCAAmC,EAAE,uBAAuB,EAAsB,MAAM,mCAAmC,CAAC;AACrI,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIjH;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,wBAAwB;IACtE,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,yBAAyB,CAAC,CAAW;IAC7C,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,kBAAkB,CAAC,CAAsC;IAEjE,kEAAkE;IAC3D,gBAAgB,uBAA8B;IACrD,+DAA+D;IACxD,aAAa,uBAA8B;gBAEtC,OAAO,EAAE,iBAAiB,EAAE;IAOxC,2CAA2C;IACpC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAOvC,OAAO,CAAC,eAAe;IAQvB,wCAAwC;IAC3B,UAAU,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIvD,8BAA8B;IACjB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C,wCAAwC;IAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB7E,OAAO,CAAC,+BAA+B;IAYvC,6DAA6D;IAChD,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnF,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,QAAQ;IAoBhB;;OAEG;IACU,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuD/G;;OAEG;IACU,sBAAsB,CAAC,iBAAiB,EAAE,mCAAmC,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1G,4BAA4B;IACrB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAIvC,yCAAyC;IAClC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAczD,oBAAoB;IACb,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,qBAAqB,GAAE,OAAc,GAAG,IAAI;IAY/E,qCAAqC;IAC9B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAc1D,OAAO,CAAC,YAAY;CAOrB"}
1
+ {"version":3,"file":"SimpleTableDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/table/SimpleTableDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,mCAAmC,EAAE,uBAAuB,EAAsB,MAAM,mCAAmC,CAAC;AACrI,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAKjH;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,wBAAwB;IACtE,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,yBAAyB,CAAC,CAAW;IAC7C,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,kBAAkB,CAAC,CAAsC;IAEjE,kEAAkE;IAC3D,gBAAgB,uBAA8B;IACrD,+DAA+D;IACxD,aAAa,uBAA8B;gBAEtC,OAAO,EAAE,iBAAiB,EAAE;IAOxC,2CAA2C;IACpC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAOvC,OAAO,CAAC,eAAe;IAQvB,wCAAwC;IAC3B,UAAU,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIvD,8BAA8B;IACjB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C,wCAAwC;IAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB7E,OAAO,CAAC,+BAA+B;IAYvC,6DAA6D;IAChD,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnF,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,QAAQ;IAoBhB;;OAEG;IACU,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuD/G;;OAEG;IACU,sBAAsB,CAAC,iBAAiB,EAAE,mCAAmC,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1G,4BAA4B;IACrB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAIvC,yCAAyC;IAClC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAczD,oBAAoB;IACb,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,qBAAqB,GAAE,OAAc,GAAG,IAAI;IAY/E,qCAAqC;IAC9B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAc1D,OAAO,CAAC,YAAY;CAOrB"}
@@ -14,9 +14,11 @@ const TypeConverterManager_1 = require("../converters/TypeConverterManager");
14
14
  const UiComponents_1 = require("../UiComponents");
15
15
  const ColumnFiltering_1 = require("./columnfiltering/ColumnFiltering");
16
16
  const TableDataProvider_1 = require("./TableDataProvider");
17
+ /* eslint-disable deprecation/deprecation */
17
18
  // cSpell:ignore columnfiltering
18
19
  /**
19
20
  * A Table Data Provider using an array of items.
21
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this class.
20
22
  * @public
21
23
  */
22
24
  class SimpleTableDataProvider {
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTableDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/table/SimpleTableDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Table\r\n */\r\n\r\nimport { Primitives, PropertyRecord, PropertyValueFormat, UiError } from \"@itwin/appui-abstract\";\r\nimport { SortDirection } from \"@itwin/core-react\";\r\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport { CompositeFilterDescriptorCollection, DistinctValueCollection, TableDistinctValue } from \"./columnfiltering/ColumnFiltering\";\r\nimport { ColumnDescription, MutableTableDataProvider, RowItem, TableDataChangeEvent } from \"./TableDataProvider\";\r\n\r\n// cSpell:ignore columnfiltering\r\n\r\n/**\r\n * A Table Data Provider using an array of items.\r\n * @public\r\n */\r\nexport class SimpleTableDataProvider implements MutableTableDataProvider {\r\n private _items: RowItem[];\r\n private _rowItemIndices: number[]; // Used for both filtering and sorting\r\n private _columns: ColumnDescription[];\r\n private _secondarySortColumnStack?: number[];\r\n private _sortDirection: SortDirection = SortDirection.NoSort;\r\n private _sortColumnIndex: number = -1;\r\n private _filterDescriptors?: CompositeFilterDescriptorCollection;\r\n\r\n /** Event emitted by the data provider when column data changes */\r\n public onColumnsChanged = new TableDataChangeEvent();\r\n /** Event emitted by the data provider when row data changes */\r\n public onRowsChanged = new TableDataChangeEvent();\r\n\r\n constructor(columns: ColumnDescription[]) {\r\n this._columns = columns;\r\n this._items = [];\r\n this._rowItemIndices = [];\r\n this._secondarySortColumnStack = [];\r\n }\r\n\r\n /** Sets the row items based on an array */\r\n public setItems(items: RowItem[]): void {\r\n this._items = items;\r\n this._rowItemIndices = [];\r\n this.resetRowIndices();\r\n this.onRowsChanged.raiseEvent();\r\n }\r\n\r\n private resetRowIndices(): void {\r\n this._rowItemIndices.splice(0);\r\n\r\n for (let rowIndex = 0; rowIndex < this._items.length; rowIndex++) {\r\n this._rowItemIndices.push(rowIndex);\r\n }\r\n }\r\n\r\n /** Retrieves the column descriptions */\r\n public async getColumns(): Promise<ColumnDescription[]> {\r\n return this._columns;\r\n }\r\n\r\n /** Retrieves the row count */\r\n public async getRowsCount(): Promise<number> {\r\n return this._rowItemIndices.length;\r\n }\r\n\r\n /** Retrieves a specific row by index */\r\n public async getRow(rowIndex: number, unfiltered?: boolean): Promise<RowItem> {\r\n let realRowIndex: number = -1;\r\n\r\n if (unfiltered) {\r\n // istanbul ignore else\r\n if (0 <= rowIndex && rowIndex < this._items.length)\r\n realRowIndex = rowIndex;\r\n } else {\r\n if (0 <= rowIndex && rowIndex < this._rowItemIndices.length)\r\n realRowIndex = this.getRowIndexFromFilteredRowIndex(rowIndex);\r\n }\r\n\r\n if (0 <= realRowIndex && realRowIndex < this._items.length)\r\n return this._items[realRowIndex];\r\n\r\n throw new UiError(UiComponents.loggerCategory(this), `getRow: Invalid row index - ${rowIndex}`);\r\n }\r\n\r\n private getRowIndexFromFilteredRowIndex(filteredRowIndex: number): number {\r\n // istanbul ignore next\r\n if (filteredRowIndex === undefined)\r\n return filteredRowIndex;\r\n\r\n // istanbul ignore next\r\n if (filteredRowIndex < 0 || filteredRowIndex >= this._rowItemIndices.length)\r\n return -1;\r\n\r\n return this._rowItemIndices[filteredRowIndex];\r\n }\r\n\r\n /** Sorts the rows based on the value in a specific column */\r\n public async sort(columnIndex: number, sortDirection: SortDirection): Promise<void> {\r\n // istanbul ignore next\r\n if (columnIndex < 0 || columnIndex >= this._columns.length)\r\n return;\r\n\r\n this._sortColumnIndex = columnIndex;\r\n this._sortDirection = sortDirection;\r\n\r\n if (sortDirection === SortDirection.NoSort) {\r\n if (this._filterDescriptors)\r\n await this.applyFilterDescriptors(this._filterDescriptors);\r\n else\r\n this.resetRowIndices();\r\n return;\r\n }\r\n\r\n this._secondarySortColumnStack = [];\r\n this._secondarySortColumnStack.push(columnIndex);\r\n\r\n // Sort by the column\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const dataProvider = this;\r\n this._rowItemIndices.sort((a: number, b: number) => {\r\n return dataProvider.sortDispatcher(dataProvider._items[a], dataProvider._items[b], columnIndex, sortDirection);\r\n });\r\n\r\n delete this._secondarySortColumnStack;\r\n\r\n return;\r\n }\r\n\r\n private sortDispatcher(a: RowItem, b: RowItem, columnIndex: number, sortDirection: SortDirection): number {\r\n let result = this.sortRows(a, b, columnIndex, sortDirection);\r\n\r\n if (result !== 0)\r\n return result;\r\n\r\n // Secondary sort column support\r\n // istanbul ignore else\r\n const column = this._columns[columnIndex];\r\n if (this._secondarySortColumnStack !== undefined &&\r\n column.secondarySortColumn !== undefined &&\r\n column.secondarySortColumn !== columnIndex &&\r\n this._secondarySortColumnStack.indexOf(column.secondarySortColumn) < 0) {\r\n\r\n this._secondarySortColumnStack.push(column.secondarySortColumn);\r\n result = this.sortDispatcher(a, b, column.secondarySortColumn, sortDirection);\r\n this._secondarySortColumnStack.pop();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getPrimitiveValue(record: PropertyRecord) {\r\n let primitiveValue: Primitives.Value | undefined;\r\n const recordValue = record.value;\r\n // istanbul ignore else\r\n if (recordValue.valueFormat === PropertyValueFormat.Primitive)\r\n primitiveValue = recordValue.value;\r\n return primitiveValue;\r\n }\r\n\r\n private sortRows(a: RowItem, b: RowItem, columnIndex: number, sortDirection: SortDirection): number {\r\n const aCell = a.cells[columnIndex];\r\n const bCell = b.cells[columnIndex];\r\n\r\n let result: number = 0;\r\n const column = this._columns[columnIndex];\r\n\r\n const propertyDescription = column.propertyDescription;\r\n const valueA = this.getPrimitiveValue(aCell.record as PropertyRecord);\r\n const valueB = this.getPrimitiveValue(bCell.record as PropertyRecord);\r\n // istanbul ignore else\r\n if (valueA !== undefined && valueB !== undefined && propertyDescription)\r\n result = TypeConverterManager.getConverter(propertyDescription.typename, propertyDescription.converter?.name).sortCompare(valueA, valueB, column.sortIgnoreCase);\r\n\r\n if (sortDirection === SortDirection.Descending)\r\n result *= -1;\r\n\r\n return result;\r\n }\r\n\r\n /** Gets distinct values in a column\r\n * @public\r\n */\r\n public async getDistinctValues(columnKey: string, maximumValueCount?: number): Promise<DistinctValueCollection> {\r\n const distinctValues = new DistinctValueCollection();\r\n const columnIndex = this._columns.findIndex((description: ColumnDescription) => description.key === columnKey);\r\n if (columnIndex < 0 || columnIndex >= this._columns.length)\r\n return distinctValues;\r\n\r\n const columnDescription = this._columns[columnIndex];\r\n const propertyDescription = columnDescription.propertyDescription;\r\n const uniqueKeysMap: { [key: string]: TableDistinctValue } = {};\r\n const uniqueValues: any[] = [];\r\n\r\n // istanbul ignore next\r\n if (!propertyDescription)\r\n return distinctValues;\r\n\r\n for (const row of this._items) {\r\n const cell = row.cells[columnIndex];\r\n const record = cell.record;\r\n\r\n // istanbul ignore next\r\n if (record === undefined)\r\n continue;\r\n\r\n const value = this.getPrimitiveValue(record);\r\n const displayValue = await TypeConverterManager\r\n .getConverter(propertyDescription.typename, propertyDescription.converter?.name)\r\n .convertPropertyToString(propertyDescription, value);\r\n\r\n // istanbul ignore next\r\n if (value === undefined || typeof displayValue !== \"string\")\r\n continue;\r\n\r\n const valueKey = value.toString();\r\n if (!uniqueKeysMap.hasOwnProperty(valueKey)) {\r\n const propertyValue: TableDistinctValue = { value, label: displayValue };\r\n\r\n uniqueKeysMap[valueKey] = propertyValue;\r\n uniqueValues.push(propertyValue);\r\n }\r\n }\r\n\r\n distinctValues.values = uniqueValues;\r\n\r\n distinctValues.values.sort((a: TableDistinctValue, b: TableDistinctValue) => {\r\n if (a.value && b.value)\r\n return TypeConverterManager.getConverter(propertyDescription.typename, propertyDescription.converter?.name).sortCompare(a.value, b.value);\r\n return 0;\r\n });\r\n\r\n if (maximumValueCount !== undefined && distinctValues.values.length > maximumValueCount)\r\n distinctValues.values.splice(maximumValueCount);\r\n\r\n return distinctValues;\r\n }\r\n\r\n /** Apply a filter descriptor collection\r\n * @public\r\n */\r\n public async applyFilterDescriptors(filterDescriptors: CompositeFilterDescriptorCollection): Promise<void> {\r\n this._filterDescriptors = filterDescriptors;\r\n\r\n this._rowItemIndices.splice(0);\r\n\r\n this._items.forEach((row: RowItem, i: number) => {\r\n if (filterDescriptors.evaluateRow(row))\r\n this._rowItemIndices.push(i);\r\n });\r\n\r\n if (this._sortDirection !== SortDirection.NoSort) {\r\n await this.sort(this._sortColumnIndex, this._sortDirection);\r\n }\r\n }\r\n\r\n /** Adds a row to the end */\r\n public addRow(rowItem: RowItem): number {\r\n return this.insertRow(rowItem, -1);\r\n }\r\n\r\n /** Inserts a row at a given row index */\r\n public insertRow(rowItem: RowItem, index: number): number {\r\n let newIdx = index;\r\n\r\n if (index < 0 || index >= this._items.length)\r\n newIdx = this._items.push(rowItem) - 1;\r\n else\r\n this._items.splice(newIdx, 0, rowItem);\r\n\r\n this.resetRowIndices();\r\n this.onRowsChanged.raiseEvent();\r\n\r\n return newIdx;\r\n }\r\n\r\n /** Deletes a row */\r\n public deleteRow(rowItem: RowItem, raiseRowsChangedEvent: boolean = true): void {\r\n const rowIndex = this.findRowIndex(rowItem);\r\n if (rowIndex >= 0) {\r\n this._items.splice(rowIndex, 1);\r\n\r\n this.resetRowIndices();\r\n\r\n if (raiseRowsChangedEvent)\r\n this.onRowsChanged.raiseEvent();\r\n }\r\n }\r\n\r\n /** Moves a row to a new row index */\r\n public moveRow(rowItem: RowItem, newIndex: number): number {\r\n const oldIndex = this.findRowIndex(rowItem);\r\n if (oldIndex >= 0) {\r\n this.deleteRow(rowItem, false);\r\n\r\n if (newIndex > oldIndex)\r\n newIndex--; // removing the row will shrink the count by 1\r\n\r\n return this.insertRow(rowItem, newIndex);\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n private findRowIndex(item: RowItem): number {\r\n for (let i = 0; i < this._items.length; i++) {\r\n if (item === this._items[i])\r\n return i;\r\n }\r\n return -1;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SimpleTableDataProvider.js","sourceRoot":"","sources":["../../../../src/components-react/table/SimpleTableDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Table\r\n */\r\n\r\nimport { Primitives, PropertyRecord, PropertyValueFormat, UiError } from \"@itwin/appui-abstract\";\r\nimport { SortDirection } from \"@itwin/core-react\";\r\nimport { TypeConverterManager } from \"../converters/TypeConverterManager\";\r\nimport { UiComponents } from \"../UiComponents\";\r\nimport { CompositeFilterDescriptorCollection, DistinctValueCollection, TableDistinctValue } from \"./columnfiltering/ColumnFiltering\";\r\nimport { ColumnDescription, MutableTableDataProvider, RowItem, TableDataChangeEvent } from \"./TableDataProvider\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n// cSpell:ignore columnfiltering\r\n\r\n/**\r\n * A Table Data Provider using an array of items.\r\n * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this class.\r\n * @public\r\n */\r\nexport class SimpleTableDataProvider implements MutableTableDataProvider {\r\n private _items: RowItem[];\r\n private _rowItemIndices: number[]; // Used for both filtering and sorting\r\n private _columns: ColumnDescription[];\r\n private _secondarySortColumnStack?: number[];\r\n private _sortDirection: SortDirection = SortDirection.NoSort;\r\n private _sortColumnIndex: number = -1;\r\n private _filterDescriptors?: CompositeFilterDescriptorCollection;\r\n\r\n /** Event emitted by the data provider when column data changes */\r\n public onColumnsChanged = new TableDataChangeEvent();\r\n /** Event emitted by the data provider when row data changes */\r\n public onRowsChanged = new TableDataChangeEvent();\r\n\r\n constructor(columns: ColumnDescription[]) {\r\n this._columns = columns;\r\n this._items = [];\r\n this._rowItemIndices = [];\r\n this._secondarySortColumnStack = [];\r\n }\r\n\r\n /** Sets the row items based on an array */\r\n public setItems(items: RowItem[]): void {\r\n this._items = items;\r\n this._rowItemIndices = [];\r\n this.resetRowIndices();\r\n this.onRowsChanged.raiseEvent();\r\n }\r\n\r\n private resetRowIndices(): void {\r\n this._rowItemIndices.splice(0);\r\n\r\n for (let rowIndex = 0; rowIndex < this._items.length; rowIndex++) {\r\n this._rowItemIndices.push(rowIndex);\r\n }\r\n }\r\n\r\n /** Retrieves the column descriptions */\r\n public async getColumns(): Promise<ColumnDescription[]> {\r\n return this._columns;\r\n }\r\n\r\n /** Retrieves the row count */\r\n public async getRowsCount(): Promise<number> {\r\n return this._rowItemIndices.length;\r\n }\r\n\r\n /** Retrieves a specific row by index */\r\n public async getRow(rowIndex: number, unfiltered?: boolean): Promise<RowItem> {\r\n let realRowIndex: number = -1;\r\n\r\n if (unfiltered) {\r\n // istanbul ignore else\r\n if (0 <= rowIndex && rowIndex < this._items.length)\r\n realRowIndex = rowIndex;\r\n } else {\r\n if (0 <= rowIndex && rowIndex < this._rowItemIndices.length)\r\n realRowIndex = this.getRowIndexFromFilteredRowIndex(rowIndex);\r\n }\r\n\r\n if (0 <= realRowIndex && realRowIndex < this._items.length)\r\n return this._items[realRowIndex];\r\n\r\n throw new UiError(UiComponents.loggerCategory(this), `getRow: Invalid row index - ${rowIndex}`);\r\n }\r\n\r\n private getRowIndexFromFilteredRowIndex(filteredRowIndex: number): number {\r\n // istanbul ignore next\r\n if (filteredRowIndex === undefined)\r\n return filteredRowIndex;\r\n\r\n // istanbul ignore next\r\n if (filteredRowIndex < 0 || filteredRowIndex >= this._rowItemIndices.length)\r\n return -1;\r\n\r\n return this._rowItemIndices[filteredRowIndex];\r\n }\r\n\r\n /** Sorts the rows based on the value in a specific column */\r\n public async sort(columnIndex: number, sortDirection: SortDirection): Promise<void> {\r\n // istanbul ignore next\r\n if (columnIndex < 0 || columnIndex >= this._columns.length)\r\n return;\r\n\r\n this._sortColumnIndex = columnIndex;\r\n this._sortDirection = sortDirection;\r\n\r\n if (sortDirection === SortDirection.NoSort) {\r\n if (this._filterDescriptors)\r\n await this.applyFilterDescriptors(this._filterDescriptors);\r\n else\r\n this.resetRowIndices();\r\n return;\r\n }\r\n\r\n this._secondarySortColumnStack = [];\r\n this._secondarySortColumnStack.push(columnIndex);\r\n\r\n // Sort by the column\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const dataProvider = this;\r\n this._rowItemIndices.sort((a: number, b: number) => {\r\n return dataProvider.sortDispatcher(dataProvider._items[a], dataProvider._items[b], columnIndex, sortDirection);\r\n });\r\n\r\n delete this._secondarySortColumnStack;\r\n\r\n return;\r\n }\r\n\r\n private sortDispatcher(a: RowItem, b: RowItem, columnIndex: number, sortDirection: SortDirection): number {\r\n let result = this.sortRows(a, b, columnIndex, sortDirection);\r\n\r\n if (result !== 0)\r\n return result;\r\n\r\n // Secondary sort column support\r\n // istanbul ignore else\r\n const column = this._columns[columnIndex];\r\n if (this._secondarySortColumnStack !== undefined &&\r\n column.secondarySortColumn !== undefined &&\r\n column.secondarySortColumn !== columnIndex &&\r\n this._secondarySortColumnStack.indexOf(column.secondarySortColumn) < 0) {\r\n\r\n this._secondarySortColumnStack.push(column.secondarySortColumn);\r\n result = this.sortDispatcher(a, b, column.secondarySortColumn, sortDirection);\r\n this._secondarySortColumnStack.pop();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getPrimitiveValue(record: PropertyRecord) {\r\n let primitiveValue: Primitives.Value | undefined;\r\n const recordValue = record.value;\r\n // istanbul ignore else\r\n if (recordValue.valueFormat === PropertyValueFormat.Primitive)\r\n primitiveValue = recordValue.value;\r\n return primitiveValue;\r\n }\r\n\r\n private sortRows(a: RowItem, b: RowItem, columnIndex: number, sortDirection: SortDirection): number {\r\n const aCell = a.cells[columnIndex];\r\n const bCell = b.cells[columnIndex];\r\n\r\n let result: number = 0;\r\n const column = this._columns[columnIndex];\r\n\r\n const propertyDescription = column.propertyDescription;\r\n const valueA = this.getPrimitiveValue(aCell.record as PropertyRecord);\r\n const valueB = this.getPrimitiveValue(bCell.record as PropertyRecord);\r\n // istanbul ignore else\r\n if (valueA !== undefined && valueB !== undefined && propertyDescription)\r\n result = TypeConverterManager.getConverter(propertyDescription.typename, propertyDescription.converter?.name).sortCompare(valueA, valueB, column.sortIgnoreCase);\r\n\r\n if (sortDirection === SortDirection.Descending)\r\n result *= -1;\r\n\r\n return result;\r\n }\r\n\r\n /** Gets distinct values in a column\r\n * @public\r\n */\r\n public async getDistinctValues(columnKey: string, maximumValueCount?: number): Promise<DistinctValueCollection> {\r\n const distinctValues = new DistinctValueCollection();\r\n const columnIndex = this._columns.findIndex((description: ColumnDescription) => description.key === columnKey);\r\n if (columnIndex < 0 || columnIndex >= this._columns.length)\r\n return distinctValues;\r\n\r\n const columnDescription = this._columns[columnIndex];\r\n const propertyDescription = columnDescription.propertyDescription;\r\n const uniqueKeysMap: { [key: string]: TableDistinctValue } = {};\r\n const uniqueValues: any[] = [];\r\n\r\n // istanbul ignore next\r\n if (!propertyDescription)\r\n return distinctValues;\r\n\r\n for (const row of this._items) {\r\n const cell = row.cells[columnIndex];\r\n const record = cell.record;\r\n\r\n // istanbul ignore next\r\n if (record === undefined)\r\n continue;\r\n\r\n const value = this.getPrimitiveValue(record);\r\n const displayValue = await TypeConverterManager\r\n .getConverter(propertyDescription.typename, propertyDescription.converter?.name)\r\n .convertPropertyToString(propertyDescription, value);\r\n\r\n // istanbul ignore next\r\n if (value === undefined || typeof displayValue !== \"string\")\r\n continue;\r\n\r\n const valueKey = value.toString();\r\n if (!uniqueKeysMap.hasOwnProperty(valueKey)) {\r\n const propertyValue: TableDistinctValue = { value, label: displayValue };\r\n\r\n uniqueKeysMap[valueKey] = propertyValue;\r\n uniqueValues.push(propertyValue);\r\n }\r\n }\r\n\r\n distinctValues.values = uniqueValues;\r\n\r\n distinctValues.values.sort((a: TableDistinctValue, b: TableDistinctValue) => {\r\n if (a.value && b.value)\r\n return TypeConverterManager.getConverter(propertyDescription.typename, propertyDescription.converter?.name).sortCompare(a.value, b.value);\r\n return 0;\r\n });\r\n\r\n if (maximumValueCount !== undefined && distinctValues.values.length > maximumValueCount)\r\n distinctValues.values.splice(maximumValueCount);\r\n\r\n return distinctValues;\r\n }\r\n\r\n /** Apply a filter descriptor collection\r\n * @public\r\n */\r\n public async applyFilterDescriptors(filterDescriptors: CompositeFilterDescriptorCollection): Promise<void> {\r\n this._filterDescriptors = filterDescriptors;\r\n\r\n this._rowItemIndices.splice(0);\r\n\r\n this._items.forEach((row: RowItem, i: number) => {\r\n if (filterDescriptors.evaluateRow(row))\r\n this._rowItemIndices.push(i);\r\n });\r\n\r\n if (this._sortDirection !== SortDirection.NoSort) {\r\n await this.sort(this._sortColumnIndex, this._sortDirection);\r\n }\r\n }\r\n\r\n /** Adds a row to the end */\r\n public addRow(rowItem: RowItem): number {\r\n return this.insertRow(rowItem, -1);\r\n }\r\n\r\n /** Inserts a row at a given row index */\r\n public insertRow(rowItem: RowItem, index: number): number {\r\n let newIdx = index;\r\n\r\n if (index < 0 || index >= this._items.length)\r\n newIdx = this._items.push(rowItem) - 1;\r\n else\r\n this._items.splice(newIdx, 0, rowItem);\r\n\r\n this.resetRowIndices();\r\n this.onRowsChanged.raiseEvent();\r\n\r\n return newIdx;\r\n }\r\n\r\n /** Deletes a row */\r\n public deleteRow(rowItem: RowItem, raiseRowsChangedEvent: boolean = true): void {\r\n const rowIndex = this.findRowIndex(rowItem);\r\n if (rowIndex >= 0) {\r\n this._items.splice(rowIndex, 1);\r\n\r\n this.resetRowIndices();\r\n\r\n if (raiseRowsChangedEvent)\r\n this.onRowsChanged.raiseEvent();\r\n }\r\n }\r\n\r\n /** Moves a row to a new row index */\r\n public moveRow(rowItem: RowItem, newIndex: number): number {\r\n const oldIndex = this.findRowIndex(rowItem);\r\n if (oldIndex >= 0) {\r\n this.deleteRow(rowItem, false);\r\n\r\n if (newIndex > oldIndex)\r\n newIndex--; // removing the row will shrink the count by 1\r\n\r\n return this.insertRow(rowItem, newIndex);\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n private findRowIndex(item: RowItem): number {\r\n for (let i = 0; i < this._items.length; i++) {\r\n if (item === this._items[i])\r\n return i;\r\n }\r\n return -1;\r\n }\r\n}\r\n"]}
@@ -7,6 +7,7 @@ import { HorizontalAlignment, SortDirection } from "@itwin/core-react";
7
7
  import { ItemColorOverrides, ItemStyle } from "../properties/ItemStyle";
8
8
  import { CompositeFilterDescriptorCollection, DistinctValueCollection } from "./columnfiltering/ColumnFiltering";
9
9
  /** Filter Renderer for a Table column
10
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this interface.
10
11
  * @public
11
12
  */
12
13
  export declare enum FilterRenderer {
@@ -18,6 +19,7 @@ export declare enum FilterRenderer {
18
19
  }
19
20
  /**
20
21
  * Column definition provided to Table.
22
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this interface.
21
23
  * @public
22
24
  */
23
25
  export interface ColumnDescription {
@@ -56,6 +58,7 @@ export interface ColumnDescription {
56
58
  }
57
59
  /**
58
60
  * Cell definition provided to Table.
61
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this interface.
59
62
  * @public
60
63
  */
61
64
  export interface CellItem {
@@ -78,6 +81,7 @@ export interface CellItem {
78
81
  }
79
82
  /**
80
83
  * Row definition provided to Table.
84
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this interface.
81
85
  * @public
82
86
  */
83
87
  export interface RowItem {
@@ -103,10 +107,12 @@ export interface RowItem {
103
107
  getValueFromCell?: (columnKey: string) => any;
104
108
  }
105
109
  /** An interface table data change listeners
110
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this type.
106
111
  * @public
107
112
  */
108
113
  export declare type TableDataChangesListener = () => void;
109
114
  /** An event broadcasted on table data changes
115
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this class.
110
116
  * @public
111
117
  */
112
118
  export declare class TableDataChangeEvent extends BeEvent<TableDataChangesListener> {
@@ -114,6 +120,7 @@ export declare class TableDataChangeEvent extends BeEvent<TableDataChangesListen
114
120
  /**
115
121
  * TableDataProvider provides data to the Table.
116
122
  * It also provides support for data Sorting & Filtering.
123
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this interface.
117
124
  * @public
118
125
  */
119
126
  export interface TableDataProvider {
@@ -143,6 +150,7 @@ export interface TableDataProvider {
143
150
  /**
144
151
  * MutableTableDataProvider provides mutation methods for data in the Table.
145
152
  * Useful for Drag & Drop processing.
153
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this interface.
146
154
  * @public
147
155
  */
148
156
  export interface MutableTableDataProvider extends TableDataProvider {
@@ -1 +1 @@
1
- {"version":3,"file":"TableDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/table/TableDataProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/components-react/table/TableDataProvider.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,10 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.TableDataChangeEvent = exports.FilterRenderer = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
+ /* eslint-disable deprecation/deprecation */
12
13
  // cSpell:ignore columnfiltering
13
14
  /** Filter Renderer for a Table column
15
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this interface.
14
16
  * @public
15
17
  */
16
18
  var FilterRenderer;
@@ -22,6 +24,7 @@ var FilterRenderer;
22
24
  FilterRenderer[FilterRenderer["MultiValue"] = 5] = "MultiValue";
23
25
  })(FilterRenderer = exports.FilterRenderer || (exports.FilterRenderer = {}));
24
26
  /** An event broadcasted on table data changes
27
+ * @deprecated Use the Table component in @itwin/itwinui-react instead, which does not use this class.
25
28
  * @public
26
29
  */
27
30
  class TableDataChangeEvent extends core_bentley_1.BeEvent {