@itwin/appui-abstract 4.0.0-dev.52 → 4.0.0-dev.54

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts +30 -30
  2. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -1
  3. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js +79 -79
  4. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js.map +1 -1
  5. package/lib/cjs/appui-abstract/UiAdmin.d.ts +221 -221
  6. package/lib/cjs/appui-abstract/UiAdmin.js +224 -224
  7. package/lib/cjs/appui-abstract/UiAdmin.js.map +1 -1
  8. package/lib/cjs/appui-abstract/UiItemsManager.d.ts +113 -113
  9. package/lib/cjs/appui-abstract/UiItemsManager.d.ts.map +1 -1
  10. package/lib/cjs/appui-abstract/UiItemsManager.js +193 -193
  11. package/lib/cjs/appui-abstract/UiItemsManager.js.map +1 -1
  12. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts +29 -29
  13. package/lib/cjs/appui-abstract/UiItemsProvider.js +9 -9
  14. package/lib/cjs/appui-abstract/UiItemsProvider.js.map +1 -1
  15. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts +91 -91
  16. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts.map +1 -1
  17. package/lib/cjs/appui-abstract/backstage/BackstageItem.js +70 -70
  18. package/lib/cjs/appui-abstract/backstage/BackstageItem.js.map +1 -1
  19. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.d.ts +38 -38
  20. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js +133 -133
  21. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js.map +1 -1
  22. package/lib/cjs/appui-abstract/common/KeyboardKey.d.ts +51 -51
  23. package/lib/cjs/appui-abstract/common/KeyboardKey.js +63 -63
  24. package/lib/cjs/appui-abstract/common/KeyboardKey.js.map +1 -1
  25. package/lib/cjs/appui-abstract/content/ContentLayoutProps.d.ts +62 -62
  26. package/lib/cjs/appui-abstract/content/ContentLayoutProps.js +9 -9
  27. package/lib/cjs/appui-abstract/content/ContentLayoutProps.js.map +1 -1
  28. package/lib/cjs/appui-abstract/content/StandardContentLayouts.d.ts +19 -19
  29. package/lib/cjs/appui-abstract/content/StandardContentLayouts.js +108 -108
  30. package/lib/cjs/appui-abstract/content/StandardContentLayouts.js.map +1 -1
  31. package/lib/cjs/appui-abstract/dialogs/DialogItem.d.ts +76 -76
  32. package/lib/cjs/appui-abstract/dialogs/DialogItem.js +67 -67
  33. package/lib/cjs/appui-abstract/dialogs/DialogItem.js.map +1 -1
  34. package/lib/cjs/appui-abstract/dialogs/UiDataProvider.d.ts +55 -55
  35. package/lib/cjs/appui-abstract/dialogs/UiDataProvider.js +66 -66
  36. package/lib/cjs/appui-abstract/dialogs/UiDataProvider.js.map +1 -1
  37. package/lib/cjs/appui-abstract/dialogs/UiLayoutDataProvider.d.ts +97 -97
  38. package/lib/cjs/appui-abstract/dialogs/UiLayoutDataProvider.js +175 -175
  39. package/lib/cjs/appui-abstract/dialogs/UiLayoutDataProvider.js.map +1 -1
  40. package/lib/cjs/appui-abstract/items/AbstractItemProps.d.ts +53 -53
  41. package/lib/cjs/appui-abstract/items/AbstractItemProps.d.ts.map +1 -1
  42. package/lib/cjs/appui-abstract/items/AbstractItemProps.js +9 -9
  43. package/lib/cjs/appui-abstract/items/AbstractItemProps.js.map +1 -1
  44. package/lib/cjs/appui-abstract/items/AbstractMenuItemProps.d.ts +20 -20
  45. package/lib/cjs/appui-abstract/items/AbstractMenuItemProps.js +9 -9
  46. package/lib/cjs/appui-abstract/items/AbstractMenuItemProps.js.map +1 -1
  47. package/lib/cjs/appui-abstract/items/AbstractToolbarProps.d.ts +13 -13
  48. package/lib/cjs/appui-abstract/items/AbstractToolbarProps.js +9 -9
  49. package/lib/cjs/appui-abstract/items/AbstractToolbarProps.js.map +1 -1
  50. package/lib/cjs/appui-abstract/items/BadgeType.d.ts +14 -14
  51. package/lib/cjs/appui-abstract/items/BadgeType.js +22 -22
  52. package/lib/cjs/appui-abstract/items/BadgeType.js.map +1 -1
  53. package/lib/cjs/appui-abstract/items/ConditionalBooleanValue.d.ts +27 -27
  54. package/lib/cjs/appui-abstract/items/ConditionalBooleanValue.js +60 -60
  55. package/lib/cjs/appui-abstract/items/ConditionalBooleanValue.js.map +1 -1
  56. package/lib/cjs/appui-abstract/items/ConditionalStringValue.d.ts +29 -29
  57. package/lib/cjs/appui-abstract/items/ConditionalStringValue.js +62 -62
  58. package/lib/cjs/appui-abstract/items/ConditionalStringValue.js.map +1 -1
  59. package/lib/cjs/appui-abstract/items/ProvidedItem.d.ts +11 -11
  60. package/lib/cjs/appui-abstract/items/ProvidedItem.js +9 -9
  61. package/lib/cjs/appui-abstract/items/ProvidedItem.js.map +1 -1
  62. package/lib/cjs/appui-abstract/items/RelativePosition.d.ts +18 -18
  63. package/lib/cjs/appui-abstract/items/RelativePosition.js +26 -26
  64. package/lib/cjs/appui-abstract/items/RelativePosition.js.map +1 -1
  65. package/lib/cjs/appui-abstract/items/StageUsage.d.ts +16 -16
  66. package/lib/cjs/appui-abstract/items/StageUsage.js +24 -24
  67. package/lib/cjs/appui-abstract/items/StageUsage.js.map +1 -1
  68. package/lib/cjs/appui-abstract/notification/MessagePresenter.d.ts +42 -42
  69. package/lib/cjs/appui-abstract/notification/MessagePresenter.js +24 -24
  70. package/lib/cjs/appui-abstract/notification/MessagePresenter.js.map +1 -1
  71. package/lib/cjs/appui-abstract/notification/MessageSeverity.d.ts +15 -15
  72. package/lib/cjs/appui-abstract/notification/MessageSeverity.js +23 -23
  73. package/lib/cjs/appui-abstract/notification/MessageSeverity.js.map +1 -1
  74. package/lib/cjs/appui-abstract/properties/Description.d.ts +127 -127
  75. package/lib/cjs/appui-abstract/properties/Description.js +196 -196
  76. package/lib/cjs/appui-abstract/properties/Description.js.map +1 -1
  77. package/lib/cjs/appui-abstract/properties/EditorParams.d.ts +260 -260
  78. package/lib/cjs/appui-abstract/properties/EditorParams.d.ts.map +1 -1
  79. package/lib/cjs/appui-abstract/properties/EditorParams.js +106 -106
  80. package/lib/cjs/appui-abstract/properties/EditorParams.js.map +1 -1
  81. package/lib/cjs/appui-abstract/properties/PrimitiveTypes.d.ts +60 -60
  82. package/lib/cjs/appui-abstract/properties/PrimitiveTypes.js +9 -9
  83. package/lib/cjs/appui-abstract/properties/PrimitiveTypes.js.map +1 -1
  84. package/lib/cjs/appui-abstract/properties/Record.d.ts +57 -57
  85. package/lib/cjs/appui-abstract/properties/Record.js +78 -78
  86. package/lib/cjs/appui-abstract/properties/Record.js.map +1 -1
  87. package/lib/cjs/appui-abstract/properties/StandardEditorNames.d.ts +22 -22
  88. package/lib/cjs/appui-abstract/properties/StandardEditorNames.js +30 -30
  89. package/lib/cjs/appui-abstract/properties/StandardEditorNames.js.map +1 -1
  90. package/lib/cjs/appui-abstract/properties/StandardTypeNames.d.ts +30 -30
  91. package/lib/cjs/appui-abstract/properties/StandardTypeNames.js +39 -39
  92. package/lib/cjs/appui-abstract/properties/StandardTypeNames.js.map +1 -1
  93. package/lib/cjs/appui-abstract/properties/Value.d.ts +49 -49
  94. package/lib/cjs/appui-abstract/properties/Value.d.ts.map +1 -1
  95. package/lib/cjs/appui-abstract/properties/Value.js +20 -20
  96. package/lib/cjs/appui-abstract/properties/Value.js.map +1 -1
  97. package/lib/cjs/appui-abstract/quantity/BaseQuantityDescription.d.ts +22 -22
  98. package/lib/cjs/appui-abstract/quantity/BaseQuantityDescription.js +48 -48
  99. package/lib/cjs/appui-abstract/quantity/BaseQuantityDescription.js.map +1 -1
  100. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts +128 -128
  101. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts.map +1 -1
  102. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js +87 -87
  103. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js.map +1 -1
  104. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.d.ts +39 -39
  105. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js +135 -135
  106. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -1
  107. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts +121 -121
  108. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts.map +1 -1
  109. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js +64 -64
  110. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  111. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.d.ts +45 -45
  112. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js +235 -235
  113. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -1
  114. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.d.ts +29 -29
  115. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.js +51 -51
  116. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.js.map +1 -1
  117. package/lib/cjs/appui-abstract/utils/PointProps.d.ts +10 -10
  118. package/lib/cjs/appui-abstract/utils/PointProps.js +9 -9
  119. package/lib/cjs/appui-abstract/utils/PointProps.js.map +1 -1
  120. package/lib/cjs/appui-abstract/utils/UiError.d.ts +12 -12
  121. package/lib/cjs/appui-abstract/utils/UiError.js +22 -22
  122. package/lib/cjs/appui-abstract/utils/UiError.js.map +1 -1
  123. package/lib/cjs/appui-abstract/utils/UiEvent.d.ts +9 -9
  124. package/lib/cjs/appui-abstract/utils/UiEvent.js +17 -17
  125. package/lib/cjs/appui-abstract/utils/UiEvent.js.map +1 -1
  126. package/lib/cjs/appui-abstract/utils/UiEventDispatcher.d.ts +46 -46
  127. package/lib/cjs/appui-abstract/utils/UiEventDispatcher.js +131 -131
  128. package/lib/cjs/appui-abstract/utils/UiEventDispatcher.js.map +1 -1
  129. package/lib/cjs/appui-abstract/utils/callbacks.d.ts +20 -20
  130. package/lib/cjs/appui-abstract/utils/callbacks.d.ts.map +1 -1
  131. package/lib/cjs/appui-abstract/utils/callbacks.js +9 -9
  132. package/lib/cjs/appui-abstract/utils/callbacks.js.map +1 -1
  133. package/lib/cjs/appui-abstract/utils/filter/charCode.d.ts +416 -416
  134. package/lib/cjs/appui-abstract/utils/filter/charCode.js +6 -6
  135. package/lib/cjs/appui-abstract/utils/filter/charCode.js.map +1 -1
  136. package/lib/cjs/appui-abstract/utils/filter/filters.d.ts +98 -98
  137. package/lib/cjs/appui-abstract/utils/filter/filters.d.ts.map +1 -1
  138. package/lib/cjs/appui-abstract/utils/filter/filters.js +709 -709
  139. package/lib/cjs/appui-abstract/utils/filter/filters.js.map +1 -1
  140. package/lib/cjs/appui-abstract/utils/filter/map.d.ts +59 -59
  141. package/lib/cjs/appui-abstract/utils/filter/map.js +402 -402
  142. package/lib/cjs/appui-abstract/utils/filter/map.js.map +1 -1
  143. package/lib/cjs/appui-abstract/utils/filter/strings.d.ts +20 -20
  144. package/lib/cjs/appui-abstract/utils/filter/strings.js +78 -78
  145. package/lib/cjs/appui-abstract/utils/filter/strings.js.map +1 -1
  146. package/lib/cjs/appui-abstract/utils/isLetter.d.ts +9 -9
  147. package/lib/cjs/appui-abstract/utils/isLetter.js +19 -19
  148. package/lib/cjs/appui-abstract/utils/isLetter.js.map +1 -1
  149. package/lib/cjs/appui-abstract/utils/misc.d.ts +11 -11
  150. package/lib/cjs/appui-abstract/utils/misc.js +36 -36
  151. package/lib/cjs/appui-abstract/utils/misc.js.map +1 -1
  152. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts +86 -86
  153. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js +9 -9
  154. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js.map +1 -1
  155. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts +36 -36
  156. package/lib/cjs/appui-abstract/widget/StagePanel.js +46 -46
  157. package/lib/cjs/appui-abstract/widget/StagePanel.js.map +1 -1
  158. package/lib/cjs/appui-abstract/widget/WidgetState.d.ts +19 -19
  159. package/lib/cjs/appui-abstract/widget/WidgetState.js +27 -27
  160. package/lib/cjs/appui-abstract/widget/WidgetState.js.map +1 -1
  161. package/lib/cjs/appui-abstract.d.ts +103 -103
  162. package/lib/cjs/appui-abstract.js +123 -119
  163. package/lib/cjs/appui-abstract.js.map +1 -1
  164. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts +30 -30
  165. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -1
  166. package/lib/esm/appui-abstract/BaseUiItemsProvider.js +75 -75
  167. package/lib/esm/appui-abstract/BaseUiItemsProvider.js.map +1 -1
  168. package/lib/esm/appui-abstract/UiAdmin.d.ts +221 -221
  169. package/lib/esm/appui-abstract/UiAdmin.js +220 -219
  170. package/lib/esm/appui-abstract/UiAdmin.js.map +1 -1
  171. package/lib/esm/appui-abstract/UiItemsManager.d.ts +113 -113
  172. package/lib/esm/appui-abstract/UiItemsManager.d.ts.map +1 -1
  173. package/lib/esm/appui-abstract/UiItemsManager.js +190 -189
  174. package/lib/esm/appui-abstract/UiItemsManager.js.map +1 -1
  175. package/lib/esm/appui-abstract/UiItemsProvider.d.ts +29 -29
  176. package/lib/esm/appui-abstract/UiItemsProvider.js +8 -8
  177. package/lib/esm/appui-abstract/UiItemsProvider.js.map +1 -1
  178. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts +91 -91
  179. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts.map +1 -1
  180. package/lib/esm/appui-abstract/backstage/BackstageItem.js +65 -64
  181. package/lib/esm/appui-abstract/backstage/BackstageItem.js.map +1 -1
  182. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.d.ts +38 -38
  183. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js +129 -129
  184. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js.map +1 -1
  185. package/lib/esm/appui-abstract/common/KeyboardKey.d.ts +51 -51
  186. package/lib/esm/appui-abstract/common/KeyboardKey.js +59 -59
  187. package/lib/esm/appui-abstract/common/KeyboardKey.js.map +1 -1
  188. package/lib/esm/appui-abstract/content/ContentLayoutProps.d.ts +62 -62
  189. package/lib/esm/appui-abstract/content/ContentLayoutProps.js +8 -8
  190. package/lib/esm/appui-abstract/content/ContentLayoutProps.js.map +1 -1
  191. package/lib/esm/appui-abstract/content/StandardContentLayouts.d.ts +19 -19
  192. package/lib/esm/appui-abstract/content/StandardContentLayouts.js +105 -104
  193. package/lib/esm/appui-abstract/content/StandardContentLayouts.js.map +1 -1
  194. package/lib/esm/appui-abstract/dialogs/DialogItem.d.ts +76 -76
  195. package/lib/esm/appui-abstract/dialogs/DialogItem.js +63 -63
  196. package/lib/esm/appui-abstract/dialogs/DialogItem.js.map +1 -1
  197. package/lib/esm/appui-abstract/dialogs/UiDataProvider.d.ts +55 -55
  198. package/lib/esm/appui-abstract/dialogs/UiDataProvider.js +61 -61
  199. package/lib/esm/appui-abstract/dialogs/UiDataProvider.js.map +1 -1
  200. package/lib/esm/appui-abstract/dialogs/UiLayoutDataProvider.d.ts +97 -97
  201. package/lib/esm/appui-abstract/dialogs/UiLayoutDataProvider.js +171 -170
  202. package/lib/esm/appui-abstract/dialogs/UiLayoutDataProvider.js.map +1 -1
  203. package/lib/esm/appui-abstract/items/AbstractItemProps.d.ts +53 -53
  204. package/lib/esm/appui-abstract/items/AbstractItemProps.d.ts.map +1 -1
  205. package/lib/esm/appui-abstract/items/AbstractItemProps.js +8 -8
  206. package/lib/esm/appui-abstract/items/AbstractItemProps.js.map +1 -1
  207. package/lib/esm/appui-abstract/items/AbstractMenuItemProps.d.ts +20 -20
  208. package/lib/esm/appui-abstract/items/AbstractMenuItemProps.js +8 -8
  209. package/lib/esm/appui-abstract/items/AbstractMenuItemProps.js.map +1 -1
  210. package/lib/esm/appui-abstract/items/AbstractToolbarProps.d.ts +13 -13
  211. package/lib/esm/appui-abstract/items/AbstractToolbarProps.js +8 -8
  212. package/lib/esm/appui-abstract/items/AbstractToolbarProps.js.map +1 -1
  213. package/lib/esm/appui-abstract/items/BadgeType.d.ts +14 -14
  214. package/lib/esm/appui-abstract/items/BadgeType.js +19 -19
  215. package/lib/esm/appui-abstract/items/BadgeType.js.map +1 -1
  216. package/lib/esm/appui-abstract/items/ConditionalBooleanValue.d.ts +27 -27
  217. package/lib/esm/appui-abstract/items/ConditionalBooleanValue.js +56 -56
  218. package/lib/esm/appui-abstract/items/ConditionalBooleanValue.js.map +1 -1
  219. package/lib/esm/appui-abstract/items/ConditionalStringValue.d.ts +29 -29
  220. package/lib/esm/appui-abstract/items/ConditionalStringValue.js +58 -58
  221. package/lib/esm/appui-abstract/items/ConditionalStringValue.js.map +1 -1
  222. package/lib/esm/appui-abstract/items/ProvidedItem.d.ts +11 -11
  223. package/lib/esm/appui-abstract/items/ProvidedItem.js +8 -8
  224. package/lib/esm/appui-abstract/items/ProvidedItem.js.map +1 -1
  225. package/lib/esm/appui-abstract/items/RelativePosition.d.ts +18 -18
  226. package/lib/esm/appui-abstract/items/RelativePosition.js +23 -23
  227. package/lib/esm/appui-abstract/items/RelativePosition.js.map +1 -1
  228. package/lib/esm/appui-abstract/items/StageUsage.d.ts +16 -16
  229. package/lib/esm/appui-abstract/items/StageUsage.js +21 -21
  230. package/lib/esm/appui-abstract/items/StageUsage.js.map +1 -1
  231. package/lib/esm/appui-abstract/notification/MessagePresenter.d.ts +42 -42
  232. package/lib/esm/appui-abstract/notification/MessagePresenter.js +21 -21
  233. package/lib/esm/appui-abstract/notification/MessagePresenter.js.map +1 -1
  234. package/lib/esm/appui-abstract/notification/MessageSeverity.d.ts +15 -15
  235. package/lib/esm/appui-abstract/notification/MessageSeverity.js +20 -20
  236. package/lib/esm/appui-abstract/notification/MessageSeverity.js.map +1 -1
  237. package/lib/esm/appui-abstract/properties/Description.d.ts +127 -127
  238. package/lib/esm/appui-abstract/properties/Description.js +192 -192
  239. package/lib/esm/appui-abstract/properties/Description.js.map +1 -1
  240. package/lib/esm/appui-abstract/properties/EditorParams.d.ts +260 -260
  241. package/lib/esm/appui-abstract/properties/EditorParams.d.ts.map +1 -1
  242. package/lib/esm/appui-abstract/properties/EditorParams.js +97 -97
  243. package/lib/esm/appui-abstract/properties/EditorParams.js.map +1 -1
  244. package/lib/esm/appui-abstract/properties/PrimitiveTypes.d.ts +60 -60
  245. package/lib/esm/appui-abstract/properties/PrimitiveTypes.js +8 -8
  246. package/lib/esm/appui-abstract/properties/PrimitiveTypes.js.map +1 -1
  247. package/lib/esm/appui-abstract/properties/Record.d.ts +57 -57
  248. package/lib/esm/appui-abstract/properties/Record.js +74 -74
  249. package/lib/esm/appui-abstract/properties/Record.js.map +1 -1
  250. package/lib/esm/appui-abstract/properties/StandardEditorNames.d.ts +22 -22
  251. package/lib/esm/appui-abstract/properties/StandardEditorNames.js +27 -27
  252. package/lib/esm/appui-abstract/properties/StandardEditorNames.js.map +1 -1
  253. package/lib/esm/appui-abstract/properties/StandardTypeNames.d.ts +30 -30
  254. package/lib/esm/appui-abstract/properties/StandardTypeNames.js +36 -36
  255. package/lib/esm/appui-abstract/properties/StandardTypeNames.js.map +1 -1
  256. package/lib/esm/appui-abstract/properties/Value.d.ts +49 -49
  257. package/lib/esm/appui-abstract/properties/Value.d.ts.map +1 -1
  258. package/lib/esm/appui-abstract/properties/Value.js +17 -17
  259. package/lib/esm/appui-abstract/properties/Value.js.map +1 -1
  260. package/lib/esm/appui-abstract/quantity/BaseQuantityDescription.d.ts +22 -22
  261. package/lib/esm/appui-abstract/quantity/BaseQuantityDescription.js +44 -44
  262. package/lib/esm/appui-abstract/quantity/BaseQuantityDescription.js.map +1 -1
  263. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts +128 -128
  264. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts.map +1 -1
  265. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js +81 -80
  266. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js.map +1 -1
  267. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.d.ts +39 -39
  268. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js +131 -131
  269. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -1
  270. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts +121 -121
  271. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts.map +1 -1
  272. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js +61 -60
  273. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  274. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.d.ts +45 -45
  275. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js +231 -231
  276. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -1
  277. package/lib/esm/appui-abstract/utils/IconSpecUtilities.d.ts +29 -29
  278. package/lib/esm/appui-abstract/utils/IconSpecUtilities.js +48 -47
  279. package/lib/esm/appui-abstract/utils/IconSpecUtilities.js.map +1 -1
  280. package/lib/esm/appui-abstract/utils/PointProps.d.ts +10 -10
  281. package/lib/esm/appui-abstract/utils/PointProps.js +8 -8
  282. package/lib/esm/appui-abstract/utils/PointProps.js.map +1 -1
  283. package/lib/esm/appui-abstract/utils/UiError.d.ts +12 -12
  284. package/lib/esm/appui-abstract/utils/UiError.js +18 -18
  285. package/lib/esm/appui-abstract/utils/UiError.js.map +1 -1
  286. package/lib/esm/appui-abstract/utils/UiEvent.d.ts +9 -9
  287. package/lib/esm/appui-abstract/utils/UiEvent.js +13 -13
  288. package/lib/esm/appui-abstract/utils/UiEvent.js.map +1 -1
  289. package/lib/esm/appui-abstract/utils/UiEventDispatcher.d.ts +46 -46
  290. package/lib/esm/appui-abstract/utils/UiEventDispatcher.js +126 -126
  291. package/lib/esm/appui-abstract/utils/UiEventDispatcher.js.map +1 -1
  292. package/lib/esm/appui-abstract/utils/callbacks.d.ts +20 -20
  293. package/lib/esm/appui-abstract/utils/callbacks.d.ts.map +1 -1
  294. package/lib/esm/appui-abstract/utils/callbacks.js +8 -8
  295. package/lib/esm/appui-abstract/utils/callbacks.js.map +1 -1
  296. package/lib/esm/appui-abstract/utils/filter/charCode.d.ts +416 -416
  297. package/lib/esm/appui-abstract/utils/filter/charCode.js +5 -5
  298. package/lib/esm/appui-abstract/utils/filter/charCode.js.map +1 -1
  299. package/lib/esm/appui-abstract/utils/filter/filters.d.ts +98 -98
  300. package/lib/esm/appui-abstract/utils/filter/filters.d.ts.map +1 -1
  301. package/lib/esm/appui-abstract/utils/filter/filters.js +694 -694
  302. package/lib/esm/appui-abstract/utils/filter/filters.js.map +1 -1
  303. package/lib/esm/appui-abstract/utils/filter/map.d.ts +59 -59
  304. package/lib/esm/appui-abstract/utils/filter/map.js +397 -397
  305. package/lib/esm/appui-abstract/utils/filter/map.js.map +1 -1
  306. package/lib/esm/appui-abstract/utils/filter/strings.d.ts +20 -20
  307. package/lib/esm/appui-abstract/utils/filter/strings.js +70 -70
  308. package/lib/esm/appui-abstract/utils/filter/strings.js.map +1 -1
  309. package/lib/esm/appui-abstract/utils/isLetter.d.ts +9 -9
  310. package/lib/esm/appui-abstract/utils/isLetter.js +15 -15
  311. package/lib/esm/appui-abstract/utils/isLetter.js.map +1 -1
  312. package/lib/esm/appui-abstract/utils/misc.d.ts +11 -11
  313. package/lib/esm/appui-abstract/utils/misc.js +31 -31
  314. package/lib/esm/appui-abstract/utils/misc.js.map +1 -1
  315. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts +86 -86
  316. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js +8 -8
  317. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js.map +1 -1
  318. package/lib/esm/appui-abstract/widget/StagePanel.d.ts +36 -36
  319. package/lib/esm/appui-abstract/widget/StagePanel.js +43 -43
  320. package/lib/esm/appui-abstract/widget/StagePanel.js.map +1 -1
  321. package/lib/esm/appui-abstract/widget/WidgetState.d.ts +19 -19
  322. package/lib/esm/appui-abstract/widget/WidgetState.js +24 -24
  323. package/lib/esm/appui-abstract/widget/WidgetState.js.map +1 -1
  324. package/lib/esm/appui-abstract.d.ts +103 -103
  325. package/lib/esm/appui-abstract.js +107 -107
  326. package/lib/esm/appui-abstract.js.map +1 -1
  327. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../../src/appui-abstract/utils/filter/filters.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 Utilities\r\n */\r\n\r\n// file copied from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/filters.ts\r\n\r\n/* eslint-disable no-console */\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable no-restricted-syntax */\r\n\r\nimport { CharCode } from \"./charCode\";\r\nimport { LRUCache } from \"./map\";\r\nimport * as strings from \"./strings\";\r\n\r\n/** Interface that returns indices of matches\r\n * @public\r\n */\r\nexport interface IMatch {\r\n start: number;\r\n end: number;\r\n}\r\n\r\n/**\r\n * IFilter defines filter function type\r\n * @param word filter string\r\n * @param wordToMatchAgainst string to search for matches\r\n * @internal\r\n */\r\nexport type IFilter = (word: string, wordToMatchAgainst: string) => IMatch[] | null;\r\n\r\n// Combined filters\r\n\r\n/**\r\n * @returns A filter which combines the provided set\r\n * of filters with an or. The *first* filters that\r\n * matches defined the return value of the returned\r\n * filter.\r\n * @internal\r\n */\r\nexport function or(...filter: IFilter[]): IFilter {\r\n return function (word: string, wordToMatchAgainst: string): IMatch[] | null {\r\n for (let i = 0, len = filter.length; i < len; i++) {\r\n const match = filter[i](word, wordToMatchAgainst);\r\n if (match) {\r\n return match;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\n// Prefix\r\n\r\n/** @internal */\r\nexport const matchesStrictPrefix: IFilter = _matchesPrefix.bind(undefined, false);\r\n/** @internal */\r\nexport const matchesPrefix: IFilter = _matchesPrefix.bind(undefined, true);\r\n\r\nfunction _matchesPrefix(ignoreCase: boolean, word: string, wordToMatchAgainst: string): IMatch[] | null {\r\n if (!wordToMatchAgainst || wordToMatchAgainst.length < word.length) {\r\n return null;\r\n }\r\n\r\n let matches: boolean;\r\n if (ignoreCase) {\r\n matches = strings.startsWithIgnoreCase(wordToMatchAgainst, word);\r\n } else {\r\n matches = wordToMatchAgainst.indexOf(word) === 0;\r\n }\r\n\r\n if (!matches) {\r\n return null;\r\n }\r\n\r\n return word.length > 0 ? [{ start: 0, end: word.length }] : [];\r\n}\r\n\r\n// Contiguous Substring\r\n\r\n/** @internal */\r\nexport function matchesContiguousSubString(word: string, wordToMatchAgainst: string): IMatch[] | null {\r\n const index = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());\r\n if (index === -1) {\r\n return null;\r\n }\r\n\r\n return [{ start: index, end: index + word.length }];\r\n}\r\n\r\n// Substring\r\n\r\n/**\r\n * Return case insensitive substring matches\r\n * @param word filter string\r\n * @param wordToMatchAgainst string to test\r\n * @internal\r\n */\r\nexport function matchesSubString(word: string, wordToMatchAgainst: string): IMatch[] | null {\r\n return _matchesSubString(word.toLowerCase(), wordToMatchAgainst.toLowerCase(), 0, 0);\r\n}\r\n\r\nfunction _matchesSubString(word: string, wordToMatchAgainst: string, i: number, j: number): IMatch[] | null {\r\n if (i === word.length) {\r\n return [];\r\n } else if (j === wordToMatchAgainst.length) {\r\n return null;\r\n } else {\r\n if (word[i] === wordToMatchAgainst[j]) {\r\n let result: IMatch[] | null = null;\r\n if (result = _matchesSubString(word, wordToMatchAgainst, i + 1, j + 1)) {\r\n return join({ start: j, end: j + 1 }, result);\r\n }\r\n return null;\r\n }\r\n\r\n return _matchesSubString(word, wordToMatchAgainst, i, j + 1);\r\n }\r\n}\r\n\r\n// CamelCase\r\n\r\nfunction isLower(code: number): boolean {\r\n return CharCode.a <= code && code <= CharCode.z;\r\n}\r\n\r\nfunction isUpper(code: number): boolean {\r\n return CharCode.A <= code && code <= CharCode.Z;\r\n}\r\n\r\nfunction isNumber(code: number): boolean {\r\n return CharCode.Digit0 <= code && code <= CharCode.Digit9;\r\n}\r\n\r\nfunction isWhitespace(code: number): boolean {\r\n return (\r\n code === CharCode.Space\r\n || code === CharCode.Tab\r\n || code === CharCode.LineFeed\r\n || code === CharCode.CarriageReturn\r\n );\r\n}\r\n\r\nconst wordSeparators = new Set<number>();\r\n'`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?'\r\n .split(\"\")\r\n .forEach((s) => wordSeparators.add(s.charCodeAt(0)));\r\n\r\nfunction isWordSeparator(code: number): boolean {\r\n return isWhitespace(code) || wordSeparators.has(code);\r\n}\r\n\r\nfunction charactersMatch(codeA: number, codeB: number): boolean {\r\n return (codeA === codeB) || (isWordSeparator(codeA) && isWordSeparator(codeB));\r\n}\r\n\r\nfunction isAlphanumeric(code: number): boolean {\r\n return isLower(code) || isUpper(code) || isNumber(code);\r\n}\r\n\r\nfunction join(head: IMatch, tail: IMatch[]): IMatch[] {\r\n if (tail.length === 0) {\r\n tail = [head];\r\n } else if (head.end === tail[0].start) {\r\n tail[0].start = head.start;\r\n } else {\r\n tail.unshift(head);\r\n }\r\n return tail;\r\n}\r\n\r\nfunction nextAnchor(camelCaseWord: string, start: number): number {\r\n for (let i = start; i < camelCaseWord.length; i++) {\r\n const c = camelCaseWord.charCodeAt(i);\r\n if (isUpper(c) || isNumber(c) || (i > 0 && !isAlphanumeric(camelCaseWord.charCodeAt(i - 1)))) {\r\n return i;\r\n }\r\n }\r\n return camelCaseWord.length;\r\n}\r\n\r\nfunction _matchesCamelCase(word: string, camelCaseWord: string, i: number, j: number): IMatch[] | null {\r\n if (i === word.length) {\r\n return [];\r\n } else if (j === camelCaseWord.length) {\r\n return null;\r\n } else if (word[i] !== camelCaseWord[j].toLowerCase()) {\r\n return null;\r\n } else {\r\n let result: IMatch[] | null = null;\r\n let nextUpperIndex = j + 1;\r\n result = _matchesCamelCase(word, camelCaseWord, i + 1, j + 1);\r\n while (!result && (nextUpperIndex = nextAnchor(camelCaseWord, nextUpperIndex)) < camelCaseWord.length) {\r\n result = _matchesCamelCase(word, camelCaseWord, i + 1, nextUpperIndex);\r\n nextUpperIndex++;\r\n }\r\n return result === null ? null : join({ start: j, end: j + 1 }, result);\r\n }\r\n}\r\n\r\ninterface ICamelCaseAnalysis {\r\n upperPercent: number;\r\n lowerPercent: number;\r\n alphaPercent: number;\r\n numericPercent: number;\r\n}\r\n\r\n// Heuristic to avoid computing camel case matcher for words that don't\r\n// look like camelCaseWords.\r\nfunction analyzeCamelCaseWord(word: string): ICamelCaseAnalysis {\r\n let upper = 0, lower = 0, alpha = 0, numeric = 0, code = 0;\r\n\r\n for (let i = 0; i < word.length; i++) {\r\n code = word.charCodeAt(i);\r\n\r\n if (isUpper(code)) { upper++; }\r\n if (isLower(code)) { lower++; }\r\n if (isAlphanumeric(code)) { alpha++; }\r\n if (isNumber(code)) { numeric++; }\r\n }\r\n\r\n const upperPercent = upper / word.length;\r\n const lowerPercent = lower / word.length;\r\n const alphaPercent = alpha / word.length;\r\n const numericPercent = numeric / word.length;\r\n\r\n return { upperPercent, lowerPercent, alphaPercent, numericPercent };\r\n}\r\n\r\nfunction isUpperCaseWord(analysis: ICamelCaseAnalysis): boolean {\r\n const { upperPercent, lowerPercent } = analysis;\r\n return lowerPercent === 0 && upperPercent > 0.6;\r\n}\r\n\r\nfunction isCamelCaseWord(analysis: ICamelCaseAnalysis): boolean {\r\n const { upperPercent, lowerPercent, alphaPercent, numericPercent } = analysis;\r\n return lowerPercent > 0.2 && upperPercent < 0.8 && alphaPercent > 0.6 && numericPercent < 0.2;\r\n}\r\n\r\n// Heuristic to avoid computing camel case matcher for words that don't\r\n// look like camel case patterns.\r\nfunction isCamelCasePattern(word: string): boolean {\r\n let upper = 0, lower = 0, code = 0, whitespace = 0;\r\n\r\n for (let i = 0; i < word.length; i++) {\r\n code = word.charCodeAt(i);\r\n\r\n if (isUpper(code)) { upper++; }\r\n if (isLower(code)) { lower++; }\r\n if (isWhitespace(code)) { whitespace++; }\r\n }\r\n\r\n if ((upper === 0 || lower === 0) && whitespace === 0) {\r\n return word.length <= 30;\r\n } else {\r\n return upper <= 5;\r\n }\r\n}\r\n\r\n/**\r\n * Return matches treating \"camelCase\" words separately. For example the filter string \"gp\" would return two matches in string \"Git Pull\".\r\n * @param word filter string\r\n * @param wordToMatchAgainst string to test\r\n * @internal\r\n */\r\nexport function matchesCamelCase(word: string, camelCaseWord: string): IMatch[] | null {\r\n if (!camelCaseWord) {\r\n return null;\r\n }\r\n\r\n camelCaseWord = camelCaseWord.trim();\r\n\r\n if (camelCaseWord.length === 0) {\r\n return null;\r\n }\r\n\r\n if (!isCamelCasePattern(camelCaseWord)) {\r\n return null;\r\n }\r\n\r\n if (camelCaseWord.length > 60) {\r\n return null;\r\n }\r\n\r\n const analysis = analyzeCamelCaseWord(camelCaseWord);\r\n\r\n if (!isCamelCaseWord(analysis)) {\r\n // istanbul ignore next\r\n if (!isUpperCaseWord(analysis)) {\r\n return null;\r\n }\r\n\r\n camelCaseWord = camelCaseWord.toLowerCase();\r\n }\r\n\r\n let result: IMatch[] | null = null;\r\n let i = 0;\r\n\r\n word = word.toLowerCase();\r\n while (i < camelCaseWord.length && (result = _matchesCamelCase(word, camelCaseWord, 0, i)) === null) {\r\n i = nextAnchor(camelCaseWord, i + 1);\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Matches beginning of words supporting non-ASCII languages.\r\n * @param word Filter string\r\n * @param target String being searched\r\n * @param contiguous - If true the filter string must be found \"contiguous\" in the searched string (E.g. \"pul\" will match \"Git: Pull\").\r\n * Otherwise also matches sub string of the word with beginnings of the words in the target (e.g. \"gp\" or \"g p\" will match \"Git: Pull\").\r\n * Useful in cases where the target is words (e.g. command labels)\r\n * @internal\r\n */\r\nexport function matchesWords(word: string, target: string, contiguous: boolean = false): IMatch[] | null {\r\n if (!target || target.length === 0) {\r\n return null;\r\n }\r\n\r\n let result: IMatch[] | null = null;\r\n let i = 0;\r\n\r\n word = word.toLowerCase();\r\n target = target.toLowerCase();\r\n while (i < target.length && (result = _matchesWords(word, target, 0, i, contiguous)) === null) {\r\n i = nextWord(target, i + 1);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction _matchesWords(word: string, target: string, i: number, j: number, contiguous: boolean): IMatch[] | null {\r\n if (i === word.length) {\r\n return [];\r\n } else if (j === target.length) {\r\n return null;\r\n } else if (!charactersMatch(word.charCodeAt(i), target.charCodeAt(j))) {\r\n return null;\r\n } else {\r\n let result: IMatch[] | null = null;\r\n let nextWordIndex = j + 1;\r\n result = _matchesWords(word, target, i + 1, j + 1, contiguous);\r\n // istanbul ignore else\r\n if (!contiguous) {\r\n while (!result && (nextWordIndex = nextWord(target, nextWordIndex)) < target.length) {\r\n result = _matchesWords(word, target, i + 1, nextWordIndex, contiguous);\r\n nextWordIndex++;\r\n }\r\n }\r\n return result === null ? null : join({ start: j, end: j + 1 }, result);\r\n }\r\n}\r\n\r\nfunction nextWord(word: string, start: number): number {\r\n for (let i = start; i < word.length; i++) {\r\n if (isWordSeparator(word.charCodeAt(i)) ||\r\n (i > 0 && isWordSeparator(word.charCodeAt(i - 1)))) {\r\n return i;\r\n }\r\n }\r\n return word.length;\r\n}\r\n\r\n// Fuzzy\r\n\r\nconst fuzzyContiguousFilter = or(matchesPrefix, matchesCamelCase, matchesContiguousSubString);\r\nconst fuzzySeparateFilter = or(matchesPrefix, matchesCamelCase, matchesSubString);\r\nconst fuzzyRegExpCache = new LRUCache<string, RegExp>(10000); // bounded to 10000 elements\r\n\r\n/**\r\n * Match pattern against word in a fuzzy way. This will only return a single match.\r\n * @internal\r\n */\r\nexport function matchesFuzzy(word: string, wordToMatchAgainst: string, enableSeparateSubstringMatching = false): IMatch[] | null {\r\n // istanbul ignore next\r\n if (typeof word !== \"string\" || typeof wordToMatchAgainst !== \"string\") {\r\n return null; // return early for invalid input\r\n }\r\n\r\n // Form RegExp for wildcard matches\r\n let regexp = fuzzyRegExpCache.get(word);\r\n if (!regexp) {\r\n regexp = new RegExp(strings.convertSimple2RegExpPattern(word), \"i\");\r\n fuzzyRegExpCache.set(word, regexp);\r\n }\r\n\r\n // RegExp Filter\r\n const match = regexp.exec(wordToMatchAgainst);\r\n if (match) {\r\n return [{ start: match.index, end: match.index + match[0].length }];\r\n }\r\n\r\n // Default Filter\r\n return enableSeparateSubstringMatching ? /* istanbul ignore next */ fuzzySeparateFilter(word, wordToMatchAgainst) : fuzzyContiguousFilter(word, wordToMatchAgainst);\r\n}\r\n\r\n/**\r\n * Match pattern against word in a fuzzy way. As in IntelliSense and faster and more\r\n * powerful than `matchesFuzzy`. This will only return a single match.\r\n * @internal\r\n */\r\nexport function matchesFuzzy2(pattern: string, word: string): IMatch[] | null {\r\n const score = fuzzyScore(pattern, pattern.toLowerCase(), 0, word, word.toLowerCase(), 0, true);\r\n return score ? createMatches(score) : null;\r\n}\r\n\r\n// #region --- fuzzyScore ---\r\n/**\r\n * @internal\r\n */\r\nexport function createMatches(score: undefined | FuzzyScore): IMatch[] {\r\n // istanbul ignore next\r\n if (typeof score === \"undefined\") {\r\n return [];\r\n }\r\n\r\n const matches = score[1].toString(2);\r\n const wordStart = score[2];\r\n const res: IMatch[] = [];\r\n\r\n for (let pos = wordStart; pos < _maxLen; pos++) {\r\n if (matches[matches.length - (pos + 1)] === \"1\") {\r\n const last = res[res.length - 1];\r\n if (last && last.end === pos) {\r\n last.end = pos + 1;\r\n } else {\r\n res.push({ start: pos, end: pos + 1 });\r\n }\r\n }\r\n }\r\n return res;\r\n}\r\n\r\nconst _maxLen = 128;\r\n\r\nfunction initTable() {\r\n const table: number[][] = [];\r\n const row: number[] = [0];\r\n for (let i = 1; i <= _maxLen; i++) {\r\n row.push(-i);\r\n }\r\n for (let i = 0; i <= _maxLen; i++) {\r\n const thisRow = row.slice(0);\r\n thisRow[0] = -i;\r\n table.push(thisRow);\r\n }\r\n return table;\r\n}\r\n\r\nconst _table = initTable();\r\nconst _scores = initTable();\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\r\nconst _arrows = <Arrow[][]>initTable();\r\nconst _debug = false;\r\n\r\nfunction isSeparatorAtPos(value: string, index: number): boolean {\r\n if (index < 0 || index >= value.length) {\r\n return false;\r\n }\r\n const code = value.charCodeAt(index);\r\n switch (code) {\r\n case CharCode.Underline:\r\n case CharCode.Dash:\r\n case CharCode.Period:\r\n case CharCode.Space:\r\n case CharCode.Slash:\r\n case CharCode.Backslash:\r\n case CharCode.SingleQuote:\r\n case CharCode.DoubleQuote:\r\n case CharCode.Colon:\r\n case CharCode.DollarSign:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nfunction isWhitespaceAtPos(value: string, index: number): boolean {\r\n if (index < 0 || index >= value.length) {\r\n return false;\r\n }\r\n const code = value.charCodeAt(index);\r\n switch (code) {\r\n // istanbul ignore next\r\n case CharCode.Space:\r\n case CharCode.Tab:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nfunction isUpperCaseAtPos(pos: number, word: string, wordLow: string): boolean {\r\n return word[pos] !== wordLow[pos];\r\n}\r\n\r\n/** @internal */\r\nexport function isPatternInWord(patternLow: string, patternPos: number, patternLen: number, wordLow: string, wordPos: number, wordLen: number): boolean {\r\n while (patternPos < patternLen && wordPos < wordLen) {\r\n if (patternLow[patternPos] === wordLow[wordPos]) {\r\n patternPos += 1;\r\n }\r\n wordPos += 1;\r\n }\r\n return patternPos === patternLen; // pattern must be exhausted\r\n}\r\n\r\nconst enum Arrow { Top = 0b1, Diag = 0b10, Left = 0b100 }\r\n\r\n/**\r\n * A tuple of three values.\r\n * 0. the score\r\n * 1. the matches encoded as bitmask (2^53)\r\n * 2. the offset at which matching started\r\n * @internal\r\n */\r\nexport type FuzzyScore = [number, number, number];\r\n\r\n/** @internal */\r\nexport namespace FuzzyScore { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /**\r\n * No matches and value `-100`\r\n * @internal\r\n */\r\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\r\n export const Default: [-100, 0, 0] = <[-100, 0, 0]>Object.freeze([-100, 0, 0]);\r\n\r\n // istanbul ignore next\r\n /** @internal */\r\n export function isDefault(score?: FuzzyScore): score is [-100, 0, 0] {\r\n return !score || (score[0] === -100 && score[1] === 0 && score[2] === 0);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type FuzzyScorer = (pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, firstMatchCanBeWeak: boolean) => FuzzyScore | undefined;\r\n\r\n/** @internal */\r\nexport function fuzzyScore(pattern: string, patternLow: string, patternStart: number, word: string, wordLow: string, wordStart: number, firstMatchCanBeWeak: boolean): FuzzyScore | undefined {\r\n // istanbul ignore next\r\n const patternLen = pattern.length > _maxLen ? _maxLen : pattern.length;\r\n const wordLen = word.length > _maxLen ? _maxLen : word.length;\r\n\r\n if (patternStart >= patternLen || wordStart >= wordLen || (patternLen - patternStart) > (wordLen - wordStart)) {\r\n return undefined;\r\n }\r\n\r\n // Run a simple check if the characters of pattern occur\r\n // (in order) at all in word. If that isn't the case we\r\n // stop because no match will be possible\r\n if (!isPatternInWord(patternLow, patternStart, patternLen, wordLow, wordStart, wordLen)) {\r\n return undefined;\r\n }\r\n\r\n let row: number = 1;\r\n let column: number = 1;\r\n let patternPos = patternStart;\r\n let wordPos = wordStart;\r\n\r\n let hasStrongFirstMatch = false;\r\n\r\n // There will be a match, fill in tables\r\n for (row = 1, patternPos = patternStart; patternPos < patternLen; row++, patternPos++) {\r\n\r\n for (column = 1, wordPos = wordStart; wordPos < wordLen; column++, wordPos++) {\r\n\r\n const score = _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos);\r\n\r\n if (patternPos === patternStart && score > 1) {\r\n hasStrongFirstMatch = true;\r\n }\r\n\r\n _scores[row][column] = score;\r\n\r\n const diag = _table[row - 1][column - 1] + (score > 1 ? 1 : score);\r\n const top = _table[row - 1][column] + -1;\r\n const left = _table[row][column - 1] + -1;\r\n\r\n if (left >= top) {\r\n // left or diag\r\n if (left > diag) {\r\n _table[row][column] = left;\r\n _arrows[row][column] = Arrow.Left;\r\n } else if (left === diag) {\r\n _table[row][column] = left;\r\n _arrows[row][column] = Arrow.Left | Arrow.Diag;\r\n } else {\r\n _table[row][column] = diag;\r\n _arrows[row][column] = Arrow.Diag;\r\n }\r\n } else {\r\n // top or diag\r\n if (top > diag) {\r\n _table[row][column] = top;\r\n _arrows[row][column] = Arrow.Top;\r\n } else if (top === diag) {\r\n _table[row][column] = top;\r\n _arrows[row][column] = Arrow.Top | Arrow.Diag;\r\n } else {\r\n _table[row][column] = diag;\r\n _arrows[row][column] = Arrow.Diag;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!hasStrongFirstMatch && !firstMatchCanBeWeak) {\r\n return undefined;\r\n }\r\n\r\n _matchesCount = 0;\r\n _topScore = -100;\r\n _wordStart = wordStart;\r\n _firstMatchCanBeWeak = firstMatchCanBeWeak;\r\n\r\n _findAllMatches2(row - 1, column - 1, patternLen === wordLen ? 1 : 0, 0, false);\r\n if (_matchesCount === 0) {\r\n return undefined;\r\n }\r\n\r\n return [_topScore, _topMatch2, wordStart];\r\n}\r\n\r\nfunction _doScore(pattern: string, patternLow: string, patternPos: number, patternStart: number, word: string, wordLow: string, wordPos: number) {\r\n if (patternLow[patternPos] !== wordLow[wordPos]) {\r\n return -1;\r\n }\r\n if (wordPos === (patternPos - patternStart)) {\r\n // common prefix: `foobar <-> foobaz`\r\n // ^^^^^\r\n if (pattern[patternPos] === word[wordPos]) {\r\n return 7;\r\n } else {\r\n return 5;\r\n }\r\n } else if (isUpperCaseAtPos(wordPos, word, wordLow) && (wordPos === 0 || !isUpperCaseAtPos(wordPos - 1, word, wordLow))) {\r\n // hitting upper-case: `foo <-> forOthers`\r\n // ^^ ^\r\n if (pattern[patternPos] === word[wordPos]) {\r\n return 7;\r\n } else {\r\n return 5;\r\n }\r\n } else if (isSeparatorAtPos(wordLow, wordPos) && (wordPos === 0 || !isSeparatorAtPos(wordLow, wordPos - 1))) {\r\n // hitting a separator: `. <-> foo.bar`\r\n // ^\r\n return 5;\r\n\r\n } else if (isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1)) {\r\n // post separator: `foo <-> bar_foo`\r\n // ^^^\r\n return 5;\r\n\r\n } else {\r\n return 1;\r\n }\r\n}\r\n\r\nlet _matchesCount: number = 0;\r\nlet _topMatch2: number = 0;\r\nlet _topScore: number = 0;\r\nlet _wordStart: number = 0;\r\nlet _firstMatchCanBeWeak: boolean = false;\r\n\r\nfunction _findAllMatches2(row: number, column: number, total: number, matches: number, lastMatched: boolean): void {\r\n\r\n if (_matchesCount >= 10 || total < -25) {\r\n // stop when having already 10 results, or\r\n // when a potential alignment as already 5 gaps\r\n return;\r\n }\r\n\r\n let simpleMatchCount = 0;\r\n\r\n while (row > 0 && column > 0) {\r\n\r\n const score = _scores[row][column];\r\n const arrow = _arrows[row][column];\r\n\r\n if (arrow === Arrow.Left) {\r\n // left -> no match, skip a word character\r\n column -= 1;\r\n if (lastMatched) {\r\n total -= 5; // new gap penalty\r\n } else if (matches !== 0) {\r\n total -= 1; // gap penalty after first match\r\n }\r\n lastMatched = false;\r\n simpleMatchCount = 0;\r\n } else {\r\n /* istanbul ignore else */\r\n if (arrow & Arrow.Diag) {\r\n if (arrow & Arrow.Left) {\r\n // left\r\n _findAllMatches2(\r\n row,\r\n column - 1,\r\n matches !== 0 ? total - 1 : total, // gap penalty after first match\r\n matches,\r\n lastMatched\r\n );\r\n }\r\n\r\n // diag\r\n total += score;\r\n row -= 1;\r\n column -= 1;\r\n lastMatched = true;\r\n\r\n // match -> set a 1 at the word pos\r\n matches += 2 ** (column + _wordStart);\r\n\r\n // count simple matches and boost a row of\r\n // simple matches when they yield in a\r\n // strong match.\r\n if (score === 1) {\r\n simpleMatchCount += 1;\r\n\r\n if (row === 0 && !_firstMatchCanBeWeak) {\r\n // when the first match is a weak\r\n // match we discard it\r\n return undefined;\r\n }\r\n\r\n } else {\r\n // boost\r\n total += 1 + (simpleMatchCount * (score - 1));\r\n simpleMatchCount = 0;\r\n }\r\n\r\n } else {\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n }\r\n }\r\n\r\n total -= column >= 3 ? 9 : column * 3; // late start penalty\r\n\r\n // dynamically keep track of the current top score\r\n // and insert the current best score at head, the rest at tail\r\n _matchesCount += 1;\r\n if (total > _topScore) {\r\n _topScore = total;\r\n _topMatch2 = matches;\r\n }\r\n}\r\n\r\n// #endregion\r\n\r\n// #region --- graceful ---\r\n/** @internal */\r\nexport function fuzzyScoreGracefulAggressive(pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, firstMatchCanBeWeak: boolean): FuzzyScore | undefined {\r\n return fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, true, firstMatchCanBeWeak);\r\n}\r\n\r\n/** @internal */\r\nexport function fuzzyScoreGraceful(pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, firstMatchCanBeWeak: boolean): FuzzyScore | undefined {\r\n return fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, false, firstMatchCanBeWeak);\r\n}\r\n\r\nfunction fuzzyScoreWithPermutations(pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, aggressive: boolean, firstMatchCanBeWeak: boolean): FuzzyScore | undefined {\r\n let top = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, firstMatchCanBeWeak);\r\n\r\n if (top && !aggressive) {\r\n // when using the original pattern yield a result we`\r\n // return it unless we are aggressive and try to find\r\n // a better alignment, e.g. `cno` -> `^co^ns^ole` or `^c^o^nsole`.\r\n return top;\r\n }\r\n\r\n // istanbul ignore else\r\n if (pattern.length >= 3) {\r\n // When the pattern is long enough then try a few (max 7)\r\n // permutations of the pattern to find a better match. The\r\n // permutations only swap neighbouring characters, e.g\r\n // `cnoso` becomes `conso`, `cnsoo`, `cnoos`.\r\n const tries = Math.min(7, pattern.length - 1);\r\n for (let movingPatternPos = patternPos + 1; movingPatternPos < tries; movingPatternPos++) {\r\n const newPattern = nextTypoPermutation(pattern, movingPatternPos);\r\n // istanbul ignore else\r\n if (newPattern) {\r\n const candidate = fuzzyScore(newPattern, newPattern.toLowerCase(), patternPos, word, lowWord, wordPos, firstMatchCanBeWeak);\r\n if (candidate) {\r\n candidate[0] -= 3; // permutation penalty\r\n // istanbul ignore else\r\n if (!top || candidate[0] > top[0]) {\r\n top = candidate;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return top;\r\n}\r\n\r\nfunction nextTypoPermutation(pattern: string, patternPos: number): string | undefined {\r\n\r\n // istanbul ignore next\r\n if (patternPos + 1 >= pattern.length) {\r\n return undefined;\r\n }\r\n\r\n const swap1 = pattern[patternPos];\r\n const swap2 = pattern[patternPos + 1];\r\n\r\n // istanbul ignore next\r\n if (swap1 === swap2) {\r\n return undefined;\r\n }\r\n\r\n return pattern.slice(0, patternPos)\r\n + swap2\r\n + swap1\r\n + pattern.slice(patternPos + 2);\r\n}\r\n\r\n// #endregion\r\n"]}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../../src/appui-abstract/utils/filter/filters.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\n// file copied from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/filters.ts\n\n/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-restricted-syntax */\n\nimport { CharCode } from \"./charCode\";\nimport { LRUCache } from \"./map\";\nimport * as strings from \"./strings\";\n\n/** Interface that returns indices of matches\n * @public\n */\nexport interface IMatch {\n start: number;\n end: number;\n}\n\n/**\n * IFilter defines filter function type\n * @param word filter string\n * @param wordToMatchAgainst string to search for matches\n * @internal\n */\nexport type IFilter = (word: string, wordToMatchAgainst: string) => IMatch[] | null;\n\n// Combined filters\n\n/**\n * @returns A filter which combines the provided set\n * of filters with an or. The *first* filters that\n * matches defined the return value of the returned\n * filter.\n * @internal\n */\nexport function or(...filter: IFilter[]): IFilter {\n return function (word: string, wordToMatchAgainst: string): IMatch[] | null {\n for (let i = 0, len = filter.length; i < len; i++) {\n const match = filter[i](word, wordToMatchAgainst);\n if (match) {\n return match;\n }\n }\n return null;\n };\n}\n\n// Prefix\n\n/** @internal */\nexport const matchesStrictPrefix: IFilter = _matchesPrefix.bind(undefined, false);\n/** @internal */\nexport const matchesPrefix: IFilter = _matchesPrefix.bind(undefined, true);\n\nfunction _matchesPrefix(ignoreCase: boolean, word: string, wordToMatchAgainst: string): IMatch[] | null {\n if (!wordToMatchAgainst || wordToMatchAgainst.length < word.length) {\n return null;\n }\n\n let matches: boolean;\n if (ignoreCase) {\n matches = strings.startsWithIgnoreCase(wordToMatchAgainst, word);\n } else {\n matches = wordToMatchAgainst.indexOf(word) === 0;\n }\n\n if (!matches) {\n return null;\n }\n\n return word.length > 0 ? [{ start: 0, end: word.length }] : [];\n}\n\n// Contiguous Substring\n\n/** @internal */\nexport function matchesContiguousSubString(word: string, wordToMatchAgainst: string): IMatch[] | null {\n const index = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());\n if (index === -1) {\n return null;\n }\n\n return [{ start: index, end: index + word.length }];\n}\n\n// Substring\n\n/**\n * Return case insensitive substring matches\n * @param word filter string\n * @param wordToMatchAgainst string to test\n * @internal\n */\nexport function matchesSubString(word: string, wordToMatchAgainst: string): IMatch[] | null {\n return _matchesSubString(word.toLowerCase(), wordToMatchAgainst.toLowerCase(), 0, 0);\n}\n\nfunction _matchesSubString(word: string, wordToMatchAgainst: string, i: number, j: number): IMatch[] | null {\n if (i === word.length) {\n return [];\n } else if (j === wordToMatchAgainst.length) {\n return null;\n } else {\n if (word[i] === wordToMatchAgainst[j]) {\n let result: IMatch[] | null = null;\n if (result = _matchesSubString(word, wordToMatchAgainst, i + 1, j + 1)) {\n return join({ start: j, end: j + 1 }, result);\n }\n return null;\n }\n\n return _matchesSubString(word, wordToMatchAgainst, i, j + 1);\n }\n}\n\n// CamelCase\n\nfunction isLower(code: number): boolean {\n return CharCode.a <= code && code <= CharCode.z;\n}\n\nfunction isUpper(code: number): boolean {\n return CharCode.A <= code && code <= CharCode.Z;\n}\n\nfunction isNumber(code: number): boolean {\n return CharCode.Digit0 <= code && code <= CharCode.Digit9;\n}\n\nfunction isWhitespace(code: number): boolean {\n return (\n code === CharCode.Space\n || code === CharCode.Tab\n || code === CharCode.LineFeed\n || code === CharCode.CarriageReturn\n );\n}\n\nconst wordSeparators = new Set<number>();\n'`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?'\n .split(\"\")\n .forEach((s) => wordSeparators.add(s.charCodeAt(0)));\n\nfunction isWordSeparator(code: number): boolean {\n return isWhitespace(code) || wordSeparators.has(code);\n}\n\nfunction charactersMatch(codeA: number, codeB: number): boolean {\n return (codeA === codeB) || (isWordSeparator(codeA) && isWordSeparator(codeB));\n}\n\nfunction isAlphanumeric(code: number): boolean {\n return isLower(code) || isUpper(code) || isNumber(code);\n}\n\nfunction join(head: IMatch, tail: IMatch[]): IMatch[] {\n if (tail.length === 0) {\n tail = [head];\n } else if (head.end === tail[0].start) {\n tail[0].start = head.start;\n } else {\n tail.unshift(head);\n }\n return tail;\n}\n\nfunction nextAnchor(camelCaseWord: string, start: number): number {\n for (let i = start; i < camelCaseWord.length; i++) {\n const c = camelCaseWord.charCodeAt(i);\n if (isUpper(c) || isNumber(c) || (i > 0 && !isAlphanumeric(camelCaseWord.charCodeAt(i - 1)))) {\n return i;\n }\n }\n return camelCaseWord.length;\n}\n\nfunction _matchesCamelCase(word: string, camelCaseWord: string, i: number, j: number): IMatch[] | null {\n if (i === word.length) {\n return [];\n } else if (j === camelCaseWord.length) {\n return null;\n } else if (word[i] !== camelCaseWord[j].toLowerCase()) {\n return null;\n } else {\n let result: IMatch[] | null = null;\n let nextUpperIndex = j + 1;\n result = _matchesCamelCase(word, camelCaseWord, i + 1, j + 1);\n while (!result && (nextUpperIndex = nextAnchor(camelCaseWord, nextUpperIndex)) < camelCaseWord.length) {\n result = _matchesCamelCase(word, camelCaseWord, i + 1, nextUpperIndex);\n nextUpperIndex++;\n }\n return result === null ? null : join({ start: j, end: j + 1 }, result);\n }\n}\n\ninterface ICamelCaseAnalysis {\n upperPercent: number;\n lowerPercent: number;\n alphaPercent: number;\n numericPercent: number;\n}\n\n// Heuristic to avoid computing camel case matcher for words that don't\n// look like camelCaseWords.\nfunction analyzeCamelCaseWord(word: string): ICamelCaseAnalysis {\n let upper = 0, lower = 0, alpha = 0, numeric = 0, code = 0;\n\n for (let i = 0; i < word.length; i++) {\n code = word.charCodeAt(i);\n\n if (isUpper(code)) { upper++; }\n if (isLower(code)) { lower++; }\n if (isAlphanumeric(code)) { alpha++; }\n if (isNumber(code)) { numeric++; }\n }\n\n const upperPercent = upper / word.length;\n const lowerPercent = lower / word.length;\n const alphaPercent = alpha / word.length;\n const numericPercent = numeric / word.length;\n\n return { upperPercent, lowerPercent, alphaPercent, numericPercent };\n}\n\nfunction isUpperCaseWord(analysis: ICamelCaseAnalysis): boolean {\n const { upperPercent, lowerPercent } = analysis;\n return lowerPercent === 0 && upperPercent > 0.6;\n}\n\nfunction isCamelCaseWord(analysis: ICamelCaseAnalysis): boolean {\n const { upperPercent, lowerPercent, alphaPercent, numericPercent } = analysis;\n return lowerPercent > 0.2 && upperPercent < 0.8 && alphaPercent > 0.6 && numericPercent < 0.2;\n}\n\n// Heuristic to avoid computing camel case matcher for words that don't\n// look like camel case patterns.\nfunction isCamelCasePattern(word: string): boolean {\n let upper = 0, lower = 0, code = 0, whitespace = 0;\n\n for (let i = 0; i < word.length; i++) {\n code = word.charCodeAt(i);\n\n if (isUpper(code)) { upper++; }\n if (isLower(code)) { lower++; }\n if (isWhitespace(code)) { whitespace++; }\n }\n\n if ((upper === 0 || lower === 0) && whitespace === 0) {\n return word.length <= 30;\n } else {\n return upper <= 5;\n }\n}\n\n/**\n * Return matches treating \"camelCase\" words separately. For example the filter string \"gp\" would return two matches in string \"Git Pull\".\n * @param word filter string\n * @param wordToMatchAgainst string to test\n * @internal\n */\nexport function matchesCamelCase(word: string, camelCaseWord: string): IMatch[] | null {\n if (!camelCaseWord) {\n return null;\n }\n\n camelCaseWord = camelCaseWord.trim();\n\n if (camelCaseWord.length === 0) {\n return null;\n }\n\n if (!isCamelCasePattern(camelCaseWord)) {\n return null;\n }\n\n if (camelCaseWord.length > 60) {\n return null;\n }\n\n const analysis = analyzeCamelCaseWord(camelCaseWord);\n\n if (!isCamelCaseWord(analysis)) {\n // istanbul ignore next\n if (!isUpperCaseWord(analysis)) {\n return null;\n }\n\n camelCaseWord = camelCaseWord.toLowerCase();\n }\n\n let result: IMatch[] | null = null;\n let i = 0;\n\n word = word.toLowerCase();\n while (i < camelCaseWord.length && (result = _matchesCamelCase(word, camelCaseWord, 0, i)) === null) {\n i = nextAnchor(camelCaseWord, i + 1);\n }\n\n return result;\n}\n\n/**\n * Matches beginning of words supporting non-ASCII languages.\n * @param word Filter string\n * @param target String being searched\n * @param contiguous - If true the filter string must be found \"contiguous\" in the searched string (E.g. \"pul\" will match \"Git: Pull\").\n * Otherwise also matches sub string of the word with beginnings of the words in the target (e.g. \"gp\" or \"g p\" will match \"Git: Pull\").\n * Useful in cases where the target is words (e.g. command labels)\n * @internal\n */\nexport function matchesWords(word: string, target: string, contiguous: boolean = false): IMatch[] | null {\n if (!target || target.length === 0) {\n return null;\n }\n\n let result: IMatch[] | null = null;\n let i = 0;\n\n word = word.toLowerCase();\n target = target.toLowerCase();\n while (i < target.length && (result = _matchesWords(word, target, 0, i, contiguous)) === null) {\n i = nextWord(target, i + 1);\n }\n\n return result;\n}\n\nfunction _matchesWords(word: string, target: string, i: number, j: number, contiguous: boolean): IMatch[] | null {\n if (i === word.length) {\n return [];\n } else if (j === target.length) {\n return null;\n } else if (!charactersMatch(word.charCodeAt(i), target.charCodeAt(j))) {\n return null;\n } else {\n let result: IMatch[] | null = null;\n let nextWordIndex = j + 1;\n result = _matchesWords(word, target, i + 1, j + 1, contiguous);\n // istanbul ignore else\n if (!contiguous) {\n while (!result && (nextWordIndex = nextWord(target, nextWordIndex)) < target.length) {\n result = _matchesWords(word, target, i + 1, nextWordIndex, contiguous);\n nextWordIndex++;\n }\n }\n return result === null ? null : join({ start: j, end: j + 1 }, result);\n }\n}\n\nfunction nextWord(word: string, start: number): number {\n for (let i = start; i < word.length; i++) {\n if (isWordSeparator(word.charCodeAt(i)) ||\n (i > 0 && isWordSeparator(word.charCodeAt(i - 1)))) {\n return i;\n }\n }\n return word.length;\n}\n\n// Fuzzy\n\nconst fuzzyContiguousFilter = or(matchesPrefix, matchesCamelCase, matchesContiguousSubString);\nconst fuzzySeparateFilter = or(matchesPrefix, matchesCamelCase, matchesSubString);\nconst fuzzyRegExpCache = new LRUCache<string, RegExp>(10000); // bounded to 10000 elements\n\n/**\n * Match pattern against word in a fuzzy way. This will only return a single match.\n * @internal\n */\nexport function matchesFuzzy(word: string, wordToMatchAgainst: string, enableSeparateSubstringMatching = false): IMatch[] | null {\n // istanbul ignore next\n if (typeof word !== \"string\" || typeof wordToMatchAgainst !== \"string\") {\n return null; // return early for invalid input\n }\n\n // Form RegExp for wildcard matches\n let regexp = fuzzyRegExpCache.get(word);\n if (!regexp) {\n regexp = new RegExp(strings.convertSimple2RegExpPattern(word), \"i\");\n fuzzyRegExpCache.set(word, regexp);\n }\n\n // RegExp Filter\n const match = regexp.exec(wordToMatchAgainst);\n if (match) {\n return [{ start: match.index, end: match.index + match[0].length }];\n }\n\n // Default Filter\n return enableSeparateSubstringMatching ? /* istanbul ignore next */ fuzzySeparateFilter(word, wordToMatchAgainst) : fuzzyContiguousFilter(word, wordToMatchAgainst);\n}\n\n/**\n * Match pattern against word in a fuzzy way. As in IntelliSense and faster and more\n * powerful than `matchesFuzzy`. This will only return a single match.\n * @internal\n */\nexport function matchesFuzzy2(pattern: string, word: string): IMatch[] | null {\n const score = fuzzyScore(pattern, pattern.toLowerCase(), 0, word, word.toLowerCase(), 0, true);\n return score ? createMatches(score) : null;\n}\n\n// #region --- fuzzyScore ---\n/**\n * @internal\n */\nexport function createMatches(score: undefined | FuzzyScore): IMatch[] {\n // istanbul ignore next\n if (typeof score === \"undefined\") {\n return [];\n }\n\n const matches = score[1].toString(2);\n const wordStart = score[2];\n const res: IMatch[] = [];\n\n for (let pos = wordStart; pos < _maxLen; pos++) {\n if (matches[matches.length - (pos + 1)] === \"1\") {\n const last = res[res.length - 1];\n if (last && last.end === pos) {\n last.end = pos + 1;\n } else {\n res.push({ start: pos, end: pos + 1 });\n }\n }\n }\n return res;\n}\n\nconst _maxLen = 128;\n\nfunction initTable() {\n const table: number[][] = [];\n const row: number[] = [0];\n for (let i = 1; i <= _maxLen; i++) {\n row.push(-i);\n }\n for (let i = 0; i <= _maxLen; i++) {\n const thisRow = row.slice(0);\n thisRow[0] = -i;\n table.push(thisRow);\n }\n return table;\n}\n\nconst _table = initTable();\nconst _scores = initTable();\n// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\nconst _arrows = <Arrow[][]>initTable();\nconst _debug = false;\n\nfunction isSeparatorAtPos(value: string, index: number): boolean {\n if (index < 0 || index >= value.length) {\n return false;\n }\n const code = value.charCodeAt(index);\n switch (code) {\n case CharCode.Underline:\n case CharCode.Dash:\n case CharCode.Period:\n case CharCode.Space:\n case CharCode.Slash:\n case CharCode.Backslash:\n case CharCode.SingleQuote:\n case CharCode.DoubleQuote:\n case CharCode.Colon:\n case CharCode.DollarSign:\n return true;\n default:\n return false;\n }\n}\n\nfunction isWhitespaceAtPos(value: string, index: number): boolean {\n if (index < 0 || index >= value.length) {\n return false;\n }\n const code = value.charCodeAt(index);\n switch (code) {\n // istanbul ignore next\n case CharCode.Space:\n case CharCode.Tab:\n return true;\n default:\n return false;\n }\n}\n\nfunction isUpperCaseAtPos(pos: number, word: string, wordLow: string): boolean {\n return word[pos] !== wordLow[pos];\n}\n\n/** @internal */\nexport function isPatternInWord(patternLow: string, patternPos: number, patternLen: number, wordLow: string, wordPos: number, wordLen: number): boolean {\n while (patternPos < patternLen && wordPos < wordLen) {\n if (patternLow[patternPos] === wordLow[wordPos]) {\n patternPos += 1;\n }\n wordPos += 1;\n }\n return patternPos === patternLen; // pattern must be exhausted\n}\n\nconst enum Arrow { Top = 0b1, Diag = 0b10, Left = 0b100 }\n\n/**\n * A tuple of three values.\n * 0. the score\n * 1. the matches encoded as bitmask (2^53)\n * 2. the offset at which matching started\n * @internal\n */\nexport type FuzzyScore = [number, number, number];\n\n/** @internal */\nexport namespace FuzzyScore { // eslint-disable-line @typescript-eslint/no-redeclare\n /**\n * No matches and value `-100`\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n export const Default: [-100, 0, 0] = <[-100, 0, 0]>Object.freeze([-100, 0, 0]);\n\n // istanbul ignore next\n /** @internal */\n export function isDefault(score?: FuzzyScore): score is [-100, 0, 0] {\n return !score || (score[0] === -100 && score[1] === 0 && score[2] === 0);\n }\n}\n\n/** @internal */\nexport type FuzzyScorer = (pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, firstMatchCanBeWeak: boolean) => FuzzyScore | undefined;\n\n/** @internal */\nexport function fuzzyScore(pattern: string, patternLow: string, patternStart: number, word: string, wordLow: string, wordStart: number, firstMatchCanBeWeak: boolean): FuzzyScore | undefined {\n // istanbul ignore next\n const patternLen = pattern.length > _maxLen ? _maxLen : pattern.length;\n const wordLen = word.length > _maxLen ? _maxLen : word.length;\n\n if (patternStart >= patternLen || wordStart >= wordLen || (patternLen - patternStart) > (wordLen - wordStart)) {\n return undefined;\n }\n\n // Run a simple check if the characters of pattern occur\n // (in order) at all in word. If that isn't the case we\n // stop because no match will be possible\n if (!isPatternInWord(patternLow, patternStart, patternLen, wordLow, wordStart, wordLen)) {\n return undefined;\n }\n\n let row: number = 1;\n let column: number = 1;\n let patternPos = patternStart;\n let wordPos = wordStart;\n\n let hasStrongFirstMatch = false;\n\n // There will be a match, fill in tables\n for (row = 1, patternPos = patternStart; patternPos < patternLen; row++, patternPos++) {\n\n for (column = 1, wordPos = wordStart; wordPos < wordLen; column++, wordPos++) {\n\n const score = _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos);\n\n if (patternPos === patternStart && score > 1) {\n hasStrongFirstMatch = true;\n }\n\n _scores[row][column] = score;\n\n const diag = _table[row - 1][column - 1] + (score > 1 ? 1 : score);\n const top = _table[row - 1][column] + -1;\n const left = _table[row][column - 1] + -1;\n\n if (left >= top) {\n // left or diag\n if (left > diag) {\n _table[row][column] = left;\n _arrows[row][column] = Arrow.Left;\n } else if (left === diag) {\n _table[row][column] = left;\n _arrows[row][column] = Arrow.Left | Arrow.Diag;\n } else {\n _table[row][column] = diag;\n _arrows[row][column] = Arrow.Diag;\n }\n } else {\n // top or diag\n if (top > diag) {\n _table[row][column] = top;\n _arrows[row][column] = Arrow.Top;\n } else if (top === diag) {\n _table[row][column] = top;\n _arrows[row][column] = Arrow.Top | Arrow.Diag;\n } else {\n _table[row][column] = diag;\n _arrows[row][column] = Arrow.Diag;\n }\n }\n }\n }\n\n if (!hasStrongFirstMatch && !firstMatchCanBeWeak) {\n return undefined;\n }\n\n _matchesCount = 0;\n _topScore = -100;\n _wordStart = wordStart;\n _firstMatchCanBeWeak = firstMatchCanBeWeak;\n\n _findAllMatches2(row - 1, column - 1, patternLen === wordLen ? 1 : 0, 0, false);\n if (_matchesCount === 0) {\n return undefined;\n }\n\n return [_topScore, _topMatch2, wordStart];\n}\n\nfunction _doScore(pattern: string, patternLow: string, patternPos: number, patternStart: number, word: string, wordLow: string, wordPos: number) {\n if (patternLow[patternPos] !== wordLow[wordPos]) {\n return -1;\n }\n if (wordPos === (patternPos - patternStart)) {\n // common prefix: `foobar <-> foobaz`\n // ^^^^^\n if (pattern[patternPos] === word[wordPos]) {\n return 7;\n } else {\n return 5;\n }\n } else if (isUpperCaseAtPos(wordPos, word, wordLow) && (wordPos === 0 || !isUpperCaseAtPos(wordPos - 1, word, wordLow))) {\n // hitting upper-case: `foo <-> forOthers`\n // ^^ ^\n if (pattern[patternPos] === word[wordPos]) {\n return 7;\n } else {\n return 5;\n }\n } else if (isSeparatorAtPos(wordLow, wordPos) && (wordPos === 0 || !isSeparatorAtPos(wordLow, wordPos - 1))) {\n // hitting a separator: `. <-> foo.bar`\n // ^\n return 5;\n\n } else if (isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1)) {\n // post separator: `foo <-> bar_foo`\n // ^^^\n return 5;\n\n } else {\n return 1;\n }\n}\n\nlet _matchesCount: number = 0;\nlet _topMatch2: number = 0;\nlet _topScore: number = 0;\nlet _wordStart: number = 0;\nlet _firstMatchCanBeWeak: boolean = false;\n\nfunction _findAllMatches2(row: number, column: number, total: number, matches: number, lastMatched: boolean): void {\n\n if (_matchesCount >= 10 || total < -25) {\n // stop when having already 10 results, or\n // when a potential alignment as already 5 gaps\n return;\n }\n\n let simpleMatchCount = 0;\n\n while (row > 0 && column > 0) {\n\n const score = _scores[row][column];\n const arrow = _arrows[row][column];\n\n if (arrow === Arrow.Left) {\n // left -> no match, skip a word character\n column -= 1;\n if (lastMatched) {\n total -= 5; // new gap penalty\n } else if (matches !== 0) {\n total -= 1; // gap penalty after first match\n }\n lastMatched = false;\n simpleMatchCount = 0;\n } else {\n /* istanbul ignore else */\n if (arrow & Arrow.Diag) {\n if (arrow & Arrow.Left) {\n // left\n _findAllMatches2(\n row,\n column - 1,\n matches !== 0 ? total - 1 : total, // gap penalty after first match\n matches,\n lastMatched\n );\n }\n\n // diag\n total += score;\n row -= 1;\n column -= 1;\n lastMatched = true;\n\n // match -> set a 1 at the word pos\n matches += 2 ** (column + _wordStart);\n\n // count simple matches and boost a row of\n // simple matches when they yield in a\n // strong match.\n if (score === 1) {\n simpleMatchCount += 1;\n\n if (row === 0 && !_firstMatchCanBeWeak) {\n // when the first match is a weak\n // match we discard it\n return undefined;\n }\n\n } else {\n // boost\n total += 1 + (simpleMatchCount * (score - 1));\n simpleMatchCount = 0;\n }\n\n } else {\n // istanbul ignore next\n return undefined;\n }\n }\n }\n\n total -= column >= 3 ? 9 : column * 3; // late start penalty\n\n // dynamically keep track of the current top score\n // and insert the current best score at head, the rest at tail\n _matchesCount += 1;\n if (total > _topScore) {\n _topScore = total;\n _topMatch2 = matches;\n }\n}\n\n// #endregion\n\n// #region --- graceful ---\n/** @internal */\nexport function fuzzyScoreGracefulAggressive(pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, firstMatchCanBeWeak: boolean): FuzzyScore | undefined {\n return fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, true, firstMatchCanBeWeak);\n}\n\n/** @internal */\nexport function fuzzyScoreGraceful(pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, firstMatchCanBeWeak: boolean): FuzzyScore | undefined {\n return fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, false, firstMatchCanBeWeak);\n}\n\nfunction fuzzyScoreWithPermutations(pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, aggressive: boolean, firstMatchCanBeWeak: boolean): FuzzyScore | undefined {\n let top = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, firstMatchCanBeWeak);\n\n if (top && !aggressive) {\n // when using the original pattern yield a result we`\n // return it unless we are aggressive and try to find\n // a better alignment, e.g. `cno` -> `^co^ns^ole` or `^c^o^nsole`.\n return top;\n }\n\n // istanbul ignore else\n if (pattern.length >= 3) {\n // When the pattern is long enough then try a few (max 7)\n // permutations of the pattern to find a better match. The\n // permutations only swap neighbouring characters, e.g\n // `cnoso` becomes `conso`, `cnsoo`, `cnoos`.\n const tries = Math.min(7, pattern.length - 1);\n for (let movingPatternPos = patternPos + 1; movingPatternPos < tries; movingPatternPos++) {\n const newPattern = nextTypoPermutation(pattern, movingPatternPos);\n // istanbul ignore else\n if (newPattern) {\n const candidate = fuzzyScore(newPattern, newPattern.toLowerCase(), patternPos, word, lowWord, wordPos, firstMatchCanBeWeak);\n if (candidate) {\n candidate[0] -= 3; // permutation penalty\n // istanbul ignore else\n if (!top || candidate[0] > top[0]) {\n top = candidate;\n }\n }\n }\n }\n }\n\n return top;\n}\n\nfunction nextTypoPermutation(pattern: string, patternPos: number): string | undefined {\n\n // istanbul ignore next\n if (patternPos + 1 >= pattern.length) {\n return undefined;\n }\n\n const swap1 = pattern[patternPos];\n const swap2 = pattern[patternPos + 1];\n\n // istanbul ignore next\n if (swap1 === swap2) {\n return undefined;\n }\n\n return pattern.slice(0, patternPos)\n + swap2\n + swap1\n + pattern.slice(patternPos + 2);\n}\n\n// #endregion\n"]}
@@ -1,60 +1,60 @@
1
- /**
2
- * @internal
3
- */
4
- export declare const enum Touch {
5
- None = 0,
6
- AsOld = 1,
7
- AsNew = 2
8
- }
9
- /**
10
- * @internal
11
- */
12
- export declare class LinkedMap<K, V> implements Map<K, V> {
13
- readonly [Symbol.toStringTag] = "LinkedMap";
14
- private _map;
15
- private _head;
16
- private _tail;
17
- private _size;
18
- private _state;
19
- constructor();
20
- clear(): void;
21
- isEmpty(): boolean;
22
- get size(): number;
23
- get first(): V | undefined;
24
- get last(): V | undefined;
25
- has(key: K): boolean;
26
- get(key: K, touch?: Touch): V | undefined;
27
- set(key: K, value: V, touch?: Touch): this;
28
- delete(key: K): boolean;
29
- remove(key: K): V | undefined;
30
- shift(): V | undefined;
31
- forEach(callbackfn: (value: V, key: K, map: LinkedMap<K, V>) => void, thisArg?: any): void;
32
- keys(): IterableIterator<K>;
33
- values(): IterableIterator<V>;
34
- entries(): IterableIterator<[K, V]>;
35
- [Symbol.iterator](): IterableIterator<[K, V]>;
36
- protected trimOld(newSize: number): void;
37
- private addItemFirst;
38
- private addItemLast;
39
- private removeItem;
40
- private touch;
41
- toJSON(): [K, V][];
42
- fromJSON(data: [K, V][]): void;
43
- }
44
- /**
45
- * @internal
46
- */
47
- export declare class LRUCache<K, V> extends LinkedMap<K, V> {
48
- private _limit;
49
- private _ratio;
50
- constructor(limit: number, ratio?: number);
51
- get limit(): number;
52
- set limit(limit: number);
53
- get ratio(): number;
54
- set ratio(ratio: number);
55
- get(key: K, touch?: Touch): V | undefined;
56
- peek(key: K): V | undefined;
57
- set(key: K, value: V): this;
58
- private checkTrim;
59
- }
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare const enum Touch {
5
+ None = 0,
6
+ AsOld = 1,
7
+ AsNew = 2
8
+ }
9
+ /**
10
+ * @internal
11
+ */
12
+ export declare class LinkedMap<K, V> implements Map<K, V> {
13
+ readonly [Symbol.toStringTag] = "LinkedMap";
14
+ private _map;
15
+ private _head;
16
+ private _tail;
17
+ private _size;
18
+ private _state;
19
+ constructor();
20
+ clear(): void;
21
+ isEmpty(): boolean;
22
+ get size(): number;
23
+ get first(): V | undefined;
24
+ get last(): V | undefined;
25
+ has(key: K): boolean;
26
+ get(key: K, touch?: Touch): V | undefined;
27
+ set(key: K, value: V, touch?: Touch): this;
28
+ delete(key: K): boolean;
29
+ remove(key: K): V | undefined;
30
+ shift(): V | undefined;
31
+ forEach(callbackfn: (value: V, key: K, map: LinkedMap<K, V>) => void, thisArg?: any): void;
32
+ keys(): IterableIterator<K>;
33
+ values(): IterableIterator<V>;
34
+ entries(): IterableIterator<[K, V]>;
35
+ [Symbol.iterator](): IterableIterator<[K, V]>;
36
+ protected trimOld(newSize: number): void;
37
+ private addItemFirst;
38
+ private addItemLast;
39
+ private removeItem;
40
+ private touch;
41
+ toJSON(): [K, V][];
42
+ fromJSON(data: [K, V][]): void;
43
+ }
44
+ /**
45
+ * @internal
46
+ */
47
+ export declare class LRUCache<K, V> extends LinkedMap<K, V> {
48
+ private _limit;
49
+ private _ratio;
50
+ constructor(limit: number, ratio?: number);
51
+ get limit(): number;
52
+ set limit(limit: number);
53
+ get ratio(): number;
54
+ set ratio(ratio: number);
55
+ get(key: K, touch?: Touch): V | undefined;
56
+ peek(key: K): V | undefined;
57
+ set(key: K, value: V): this;
58
+ private checkTrim;
59
+ }
60
60
  //# sourceMappingURL=map.d.ts.map