@itwin/appui-abstract 4.0.0-dev.10 → 4.0.0-dev.100

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 (193) hide show
  1. package/CHANGELOG.md +144 -1
  2. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts +5 -5
  3. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -1
  4. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js +4 -3
  5. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js.map +1 -1
  6. package/lib/cjs/appui-abstract/UiAdmin.js +1 -1
  7. package/lib/cjs/appui-abstract/UiAdmin.js.map +1 -1
  8. package/lib/cjs/appui-abstract/UiItemsManager.d.ts +6 -6
  9. package/lib/cjs/appui-abstract/UiItemsManager.d.ts.map +1 -1
  10. package/lib/cjs/appui-abstract/UiItemsManager.js +17 -22
  11. package/lib/cjs/appui-abstract/UiItemsManager.js.map +1 -1
  12. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts +5 -4
  13. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts.map +1 -1
  14. package/lib/cjs/appui-abstract/UiItemsProvider.js.map +1 -1
  15. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts +3 -3
  16. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts.map +1 -1
  17. package/lib/cjs/appui-abstract/backstage/BackstageItem.js +3 -3
  18. package/lib/cjs/appui-abstract/backstage/BackstageItem.js.map +1 -1
  19. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js.map +1 -1
  20. package/lib/cjs/appui-abstract/common/KeyboardKey.js.map +1 -1
  21. package/lib/cjs/appui-abstract/content/ContentLayoutProps.js.map +1 -1
  22. package/lib/cjs/appui-abstract/content/StandardContentLayouts.js +1 -1
  23. package/lib/cjs/appui-abstract/content/StandardContentLayouts.js.map +1 -1
  24. package/lib/cjs/appui-abstract/dialogs/DialogItem.d.ts +1 -1
  25. package/lib/cjs/appui-abstract/dialogs/DialogItem.js.map +1 -1
  26. package/lib/cjs/appui-abstract/dialogs/UiDataProvider.js.map +1 -1
  27. package/lib/cjs/appui-abstract/dialogs/UiLayoutDataProvider.js +1 -1
  28. package/lib/cjs/appui-abstract/dialogs/UiLayoutDataProvider.js.map +1 -1
  29. package/lib/cjs/appui-abstract/items/AbstractItemProps.d.ts +1 -1
  30. package/lib/cjs/appui-abstract/items/AbstractItemProps.d.ts.map +1 -1
  31. package/lib/cjs/appui-abstract/items/AbstractItemProps.js.map +1 -1
  32. package/lib/cjs/appui-abstract/items/AbstractMenuItemProps.js.map +1 -1
  33. package/lib/cjs/appui-abstract/items/AbstractToolbarProps.js.map +1 -1
  34. package/lib/cjs/appui-abstract/items/BadgeType.js.map +1 -1
  35. package/lib/cjs/appui-abstract/items/ConditionalBooleanValue.js.map +1 -1
  36. package/lib/cjs/appui-abstract/items/ConditionalStringValue.js.map +1 -1
  37. package/lib/cjs/appui-abstract/items/ProvidedItem.js.map +1 -1
  38. package/lib/cjs/appui-abstract/items/RelativePosition.js.map +1 -1
  39. package/lib/cjs/appui-abstract/items/StageUsage.js.map +1 -1
  40. package/lib/cjs/appui-abstract/notification/MessagePresenter.js.map +1 -1
  41. package/lib/cjs/appui-abstract/notification/MessageSeverity.js.map +1 -1
  42. package/lib/cjs/appui-abstract/properties/Description.d.ts +1 -4
  43. package/lib/cjs/appui-abstract/properties/Description.d.ts.map +1 -1
  44. package/lib/cjs/appui-abstract/properties/Description.js.map +1 -1
  45. package/lib/cjs/appui-abstract/properties/EditorParams.d.ts +1 -1
  46. package/lib/cjs/appui-abstract/properties/EditorParams.d.ts.map +1 -1
  47. package/lib/cjs/appui-abstract/properties/EditorParams.js.map +1 -1
  48. package/lib/cjs/appui-abstract/properties/PrimitiveTypes.js.map +1 -1
  49. package/lib/cjs/appui-abstract/properties/Record.js.map +1 -1
  50. package/lib/cjs/appui-abstract/properties/StandardEditorNames.js.map +1 -1
  51. package/lib/cjs/appui-abstract/properties/StandardTypeNames.js.map +1 -1
  52. package/lib/cjs/appui-abstract/properties/Value.d.ts +1 -1
  53. package/lib/cjs/appui-abstract/properties/Value.d.ts.map +1 -1
  54. package/lib/cjs/appui-abstract/properties/Value.js.map +1 -1
  55. package/lib/cjs/appui-abstract/quantity/BaseQuantityDescription.js.map +1 -1
  56. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts +6 -6
  57. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts.map +1 -1
  58. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js +1 -1
  59. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js.map +1 -1
  60. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -1
  61. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts +5 -5
  62. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts.map +1 -1
  63. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js +1 -1
  64. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  65. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -1
  66. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.d.ts +12 -0
  67. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.d.ts.map +1 -1
  68. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.js +20 -1
  69. package/lib/cjs/appui-abstract/utils/IconSpecUtilities.js.map +1 -1
  70. package/lib/cjs/appui-abstract/utils/PointProps.js.map +1 -1
  71. package/lib/cjs/appui-abstract/utils/UiError.js.map +1 -1
  72. package/lib/cjs/appui-abstract/utils/UiEvent.js.map +1 -1
  73. package/lib/cjs/appui-abstract/utils/UiEventDispatcher.js.map +1 -1
  74. package/lib/cjs/appui-abstract/utils/callbacks.d.ts +4 -4
  75. package/lib/cjs/appui-abstract/utils/callbacks.d.ts.map +1 -1
  76. package/lib/cjs/appui-abstract/utils/callbacks.js.map +1 -1
  77. package/lib/cjs/appui-abstract/utils/filter/charCode.js.map +1 -1
  78. package/lib/cjs/appui-abstract/utils/filter/filters.d.ts +3 -3
  79. package/lib/cjs/appui-abstract/utils/filter/filters.d.ts.map +1 -1
  80. package/lib/cjs/appui-abstract/utils/filter/filters.js +28 -28
  81. package/lib/cjs/appui-abstract/utils/filter/filters.js.map +1 -1
  82. package/lib/cjs/appui-abstract/utils/filter/map.js +15 -17
  83. package/lib/cjs/appui-abstract/utils/filter/map.js.map +1 -1
  84. package/lib/cjs/appui-abstract/utils/filter/strings.js +2 -2
  85. package/lib/cjs/appui-abstract/utils/filter/strings.js.map +1 -1
  86. package/lib/cjs/appui-abstract/utils/isLetter.js.map +1 -1
  87. package/lib/cjs/appui-abstract/utils/misc.js.map +1 -1
  88. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts +24 -7
  89. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts.map +1 -1
  90. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js.map +1 -1
  91. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts +19 -4
  92. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts.map +1 -1
  93. package/lib/cjs/appui-abstract/widget/StagePanel.js +21 -5
  94. package/lib/cjs/appui-abstract/widget/StagePanel.js.map +1 -1
  95. package/lib/cjs/appui-abstract/widget/WidgetState.js.map +1 -1
  96. package/lib/cjs/appui-abstract.js +5 -1
  97. package/lib/cjs/appui-abstract.js.map +1 -1
  98. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts +5 -5
  99. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -1
  100. package/lib/esm/appui-abstract/BaseUiItemsProvider.js +4 -3
  101. package/lib/esm/appui-abstract/BaseUiItemsProvider.js.map +1 -1
  102. package/lib/esm/appui-abstract/UiAdmin.js +2 -1
  103. package/lib/esm/appui-abstract/UiAdmin.js.map +1 -1
  104. package/lib/esm/appui-abstract/UiItemsManager.d.ts +6 -6
  105. package/lib/esm/appui-abstract/UiItemsManager.d.ts.map +1 -1
  106. package/lib/esm/appui-abstract/UiItemsManager.js +18 -22
  107. package/lib/esm/appui-abstract/UiItemsManager.js.map +1 -1
  108. package/lib/esm/appui-abstract/UiItemsProvider.d.ts +5 -4
  109. package/lib/esm/appui-abstract/UiItemsProvider.d.ts.map +1 -1
  110. package/lib/esm/appui-abstract/UiItemsProvider.js.map +1 -1
  111. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts +3 -3
  112. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts.map +1 -1
  113. package/lib/esm/appui-abstract/backstage/BackstageItem.js +4 -3
  114. package/lib/esm/appui-abstract/backstage/BackstageItem.js.map +1 -1
  115. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js.map +1 -1
  116. package/lib/esm/appui-abstract/common/KeyboardKey.js.map +1 -1
  117. package/lib/esm/appui-abstract/content/ContentLayoutProps.js.map +1 -1
  118. package/lib/esm/appui-abstract/content/StandardContentLayouts.js +2 -1
  119. package/lib/esm/appui-abstract/content/StandardContentLayouts.js.map +1 -1
  120. package/lib/esm/appui-abstract/dialogs/DialogItem.d.ts +1 -1
  121. package/lib/esm/appui-abstract/dialogs/DialogItem.js.map +1 -1
  122. package/lib/esm/appui-abstract/dialogs/UiDataProvider.js.map +1 -1
  123. package/lib/esm/appui-abstract/dialogs/UiLayoutDataProvider.js +2 -1
  124. package/lib/esm/appui-abstract/dialogs/UiLayoutDataProvider.js.map +1 -1
  125. package/lib/esm/appui-abstract/items/AbstractItemProps.d.ts +1 -1
  126. package/lib/esm/appui-abstract/items/AbstractItemProps.d.ts.map +1 -1
  127. package/lib/esm/appui-abstract/items/AbstractItemProps.js.map +1 -1
  128. package/lib/esm/appui-abstract/items/AbstractMenuItemProps.js.map +1 -1
  129. package/lib/esm/appui-abstract/items/AbstractToolbarProps.js.map +1 -1
  130. package/lib/esm/appui-abstract/items/BadgeType.js.map +1 -1
  131. package/lib/esm/appui-abstract/items/ConditionalBooleanValue.js.map +1 -1
  132. package/lib/esm/appui-abstract/items/ConditionalStringValue.js.map +1 -1
  133. package/lib/esm/appui-abstract/items/ProvidedItem.js.map +1 -1
  134. package/lib/esm/appui-abstract/items/RelativePosition.js.map +1 -1
  135. package/lib/esm/appui-abstract/items/StageUsage.js.map +1 -1
  136. package/lib/esm/appui-abstract/notification/MessagePresenter.js.map +1 -1
  137. package/lib/esm/appui-abstract/notification/MessageSeverity.js.map +1 -1
  138. package/lib/esm/appui-abstract/properties/Description.d.ts +1 -4
  139. package/lib/esm/appui-abstract/properties/Description.d.ts.map +1 -1
  140. package/lib/esm/appui-abstract/properties/Description.js.map +1 -1
  141. package/lib/esm/appui-abstract/properties/EditorParams.d.ts +1 -1
  142. package/lib/esm/appui-abstract/properties/EditorParams.d.ts.map +1 -1
  143. package/lib/esm/appui-abstract/properties/EditorParams.js.map +1 -1
  144. package/lib/esm/appui-abstract/properties/PrimitiveTypes.js.map +1 -1
  145. package/lib/esm/appui-abstract/properties/Record.js.map +1 -1
  146. package/lib/esm/appui-abstract/properties/StandardEditorNames.js.map +1 -1
  147. package/lib/esm/appui-abstract/properties/StandardTypeNames.js.map +1 -1
  148. package/lib/esm/appui-abstract/properties/Value.d.ts +1 -1
  149. package/lib/esm/appui-abstract/properties/Value.d.ts.map +1 -1
  150. package/lib/esm/appui-abstract/properties/Value.js.map +1 -1
  151. package/lib/esm/appui-abstract/quantity/BaseQuantityDescription.js.map +1 -1
  152. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts +6 -6
  153. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts.map +1 -1
  154. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js +2 -1
  155. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js.map +1 -1
  156. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -1
  157. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts +5 -5
  158. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts.map +1 -1
  159. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js +2 -1
  160. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  161. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -1
  162. package/lib/esm/appui-abstract/utils/IconSpecUtilities.d.ts +12 -0
  163. package/lib/esm/appui-abstract/utils/IconSpecUtilities.d.ts.map +1 -1
  164. package/lib/esm/appui-abstract/utils/IconSpecUtilities.js +21 -1
  165. package/lib/esm/appui-abstract/utils/IconSpecUtilities.js.map +1 -1
  166. package/lib/esm/appui-abstract/utils/PointProps.js.map +1 -1
  167. package/lib/esm/appui-abstract/utils/UiError.js.map +1 -1
  168. package/lib/esm/appui-abstract/utils/UiEvent.js.map +1 -1
  169. package/lib/esm/appui-abstract/utils/UiEventDispatcher.js.map +1 -1
  170. package/lib/esm/appui-abstract/utils/callbacks.d.ts +4 -4
  171. package/lib/esm/appui-abstract/utils/callbacks.d.ts.map +1 -1
  172. package/lib/esm/appui-abstract/utils/callbacks.js.map +1 -1
  173. package/lib/esm/appui-abstract/utils/filter/charCode.js.map +1 -1
  174. package/lib/esm/appui-abstract/utils/filter/filters.d.ts +3 -3
  175. package/lib/esm/appui-abstract/utils/filter/filters.d.ts.map +1 -1
  176. package/lib/esm/appui-abstract/utils/filter/filters.js +28 -28
  177. package/lib/esm/appui-abstract/utils/filter/filters.js.map +1 -1
  178. package/lib/esm/appui-abstract/utils/filter/map.js +15 -17
  179. package/lib/esm/appui-abstract/utils/filter/map.js.map +1 -1
  180. package/lib/esm/appui-abstract/utils/filter/strings.js +2 -2
  181. package/lib/esm/appui-abstract/utils/filter/strings.js.map +1 -1
  182. package/lib/esm/appui-abstract/utils/isLetter.js.map +1 -1
  183. package/lib/esm/appui-abstract/utils/misc.js.map +1 -1
  184. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts +24 -7
  185. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts.map +1 -1
  186. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js.map +1 -1
  187. package/lib/esm/appui-abstract/widget/StagePanel.d.ts +19 -4
  188. package/lib/esm/appui-abstract/widget/StagePanel.d.ts.map +1 -1
  189. package/lib/esm/appui-abstract/widget/StagePanel.js +20 -4
  190. package/lib/esm/appui-abstract/widget/StagePanel.js.map +1 -1
  191. package/lib/esm/appui-abstract/widget/WidgetState.js.map +1 -1
  192. package/lib/esm/appui-abstract.js.map +1 -1
  193. package/package.json +26 -19
@@ -1 +1 @@
1
- {"version":3,"file":"charCode.js","sourceRoot":"","sources":["../../../../../src/appui-abstract/utils/filter/charCode.ts"],"names":[],"mappings":";AAAA;;;+FAG+F","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\n// file copied from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/charCode.ts\n/* eslint-disable no-restricted-syntax */\n\n// Names from https://blog.codinghorror.com/ascii-pronunciation-rules-for-programmers/\n\n/**\n * An inlined enum containing useful character codes (to be used with String.charCodeAt).\n * Please leave the const keyword such that it gets inlined when compiled to JavaScript!\n * @internal\n */\nexport const enum CharCode {\n Null = 0,\n /**\n * The `\\b` character.\n */\n Backspace = 8,\n /**\n * The `\\t` character.\n */\n Tab = 9,\n /**\n * The `\\n` character.\n */\n LineFeed = 10,\n /**\n * The `\\r` character.\n */\n CarriageReturn = 13,\n Space = 32,\n /**\n * The `!` character.\n */\n ExclamationMark = 33,\n /**\n * The `\"` character.\n */\n DoubleQuote = 34,\n /**\n * The `#` character.\n */\n Hash = 35,\n /**\n * The `$` character.\n */\n DollarSign = 36,\n /**\n * The `%` character.\n */\n PercentSign = 37,\n /**\n * The `&` character.\n */\n Ampersand = 38,\n /**\n * The `'` character.\n */\n SingleQuote = 39,\n /**\n * The `(` character.\n */\n OpenParen = 40,\n /**\n * The `)` character.\n */\n CloseParen = 41,\n /**\n * The `*` character.\n */\n Asterisk = 42,\n /**\n * The `+` character.\n */\n Plus = 43,\n /**\n * The `,` character.\n */\n Comma = 44,\n /**\n * The `-` character.\n */\n Dash = 45,\n /**\n * The `.` character.\n */\n Period = 46,\n /**\n * The `/` character.\n */\n Slash = 47,\n\n Digit0 = 48,\n Digit1 = 49,\n Digit2 = 50,\n Digit3 = 51,\n Digit4 = 52,\n Digit5 = 53,\n Digit6 = 54,\n Digit7 = 55,\n Digit8 = 56,\n Digit9 = 57,\n\n /**\n * The `:` character.\n */\n Colon = 58,\n /**\n * The `;` character.\n */\n Semicolon = 59,\n /**\n * The `<` character.\n */\n LessThan = 60,\n /**\n * The `=` character.\n */\n Equals = 61,\n /**\n * The `>` character.\n */\n GreaterThan = 62,\n /**\n * The `?` character.\n */\n QuestionMark = 63,\n /**\n * The `@` character.\n */\n AtSign = 64,\n\n A = 65,\n B = 66,\n C = 67,\n D = 68,\n E = 69,\n F = 70,\n G = 71,\n H = 72,\n I = 73,\n J = 74,\n K = 75,\n L = 76,\n M = 77,\n N = 78,\n O = 79,\n P = 80,\n Q = 81,\n R = 82,\n S = 83,\n T = 84,\n U = 85,\n V = 86,\n W = 87,\n X = 88,\n Y = 89,\n Z = 90,\n\n /**\n * The `[` character.\n */\n OpenSquareBracket = 91,\n /**\n * The `\\` character.\n */\n Backslash = 92,\n /**\n * The `]` character.\n */\n CloseSquareBracket = 93,\n /**\n * The `^` character.\n */\n Caret = 94,\n /**\n * The `_` character.\n */\n Underline = 95,\n /**\n * The ``(`)`` character.\n */\n BackTick = 96,\n\n a = 97,\n b = 98,\n c = 99,\n d = 100,\n e = 101,\n f = 102,\n g = 103,\n h = 104,\n i = 105,\n j = 106,\n k = 107,\n l = 108,\n m = 109,\n n = 110,\n o = 111,\n p = 112,\n q = 113,\n r = 114,\n s = 115,\n t = 116,\n u = 117,\n v = 118,\n w = 119,\n x = 120,\n y = 121,\n z = 122,\n\n /**\n * The `{` character.\n */\n OpenCurlyBrace = 123,\n /**\n * The `|` character.\n */\n Pipe = 124,\n /**\n * The `}` character.\n */\n CloseCurlyBrace = 125,\n /**\n * The `~` character.\n */\n Tilde = 126,\n\n U_Combining_Grave_Accent = 0x0300,// U+0300Combining Grave Accent\n U_Combining_Acute_Accent = 0x0301,// U+0301Combining Acute Accent\n U_Combining_Circumflex_Accent = 0x0302,// U+0302Combining Circumflex Accent\n U_Combining_Tilde = 0x0303,// U+0303Combining Tilde\n U_Combining_Macron = 0x0304,// U+0304Combining Macron\n U_Combining_Overline = 0x0305,// U+0305Combining Overline\n U_Combining_Breve = 0x0306,// U+0306Combining Breve\n U_Combining_Dot_Above = 0x0307,// U+0307Combining Dot Above\n U_Combining_Diaeresis = 0x0308,// U+0308Combining Diaeresis\n U_Combining_Hook_Above = 0x0309,// U+0309Combining Hook Above\n U_Combining_Ring_Above = 0x030A,// U+030ACombining Ring Above\n U_Combining_Double_Acute_Accent = 0x030B,// U+030BCombining Double Acute Accent\n U_Combining_Caron = 0x030C,// U+030CCombining Caron\n U_Combining_Vertical_Line_Above = 0x030D,// U+030DCombining Vertical Line Above\n U_Combining_Double_Vertical_Line_Above = 0x030E,// U+030ECombining Double Vertical Line Above\n U_Combining_Double_Grave_Accent = 0x030F,// U+030FCombining Double Grave Accent\n U_Combining_Candrabindu = 0x0310,// U+0310Combining Candrabindu\n U_Combining_Inverted_Breve = 0x0311,// U+0311Combining Inverted Breve\n U_Combining_Turned_Comma_Above = 0x0312,// U+0312Combining Turned Comma Above\n U_Combining_Comma_Above = 0x0313,// U+0313Combining Comma Above\n U_Combining_Reversed_Comma_Above = 0x0314,// U+0314Combining Reversed Comma Above\n U_Combining_Comma_Above_Right = 0x0315,// U+0315Combining Comma Above Right\n U_Combining_Grave_Accent_Below = 0x0316,// U+0316Combining Grave Accent Below\n U_Combining_Acute_Accent_Below = 0x0317,// U+0317Combining Acute Accent Below\n U_Combining_Left_Tack_Below = 0x0318,// U+0318Combining Left Tack Below\n U_Combining_Right_Tack_Below = 0x0319,// U+0319Combining Right Tack Below\n U_Combining_Left_Angle_Above = 0x031A,// U+031ACombining Left Angle Above\n U_Combining_Horn = 0x031B,// U+031BCombining Horn\n U_Combining_Left_Half_Ring_Below = 0x031C,// U+031CCombining Left Half Ring Below\n U_Combining_Up_Tack_Below = 0x031D,// U+031DCombining Up Tack Below\n U_Combining_Down_Tack_Below = 0x031E,// U+031ECombining Down Tack Below\n U_Combining_Plus_Sign_Below = 0x031F,// U+031FCombining Plus Sign Below\n U_Combining_Minus_Sign_Below = 0x0320,// U+0320Combining Minus Sign Below\n U_Combining_Palatalized_Hook_Below = 0x0321,// U+0321Combining Palatalized Hook Below\n U_Combining_Retroflex_Hook_Below = 0x0322,// U+0322Combining Retroflex Hook Below\n U_Combining_Dot_Below = 0x0323,// U+0323Combining Dot Below\n U_Combining_Diaeresis_Below = 0x0324,// U+0324Combining Diaeresis Below\n U_Combining_Ring_Below = 0x0325,// U+0325Combining Ring Below\n U_Combining_Comma_Below = 0x0326,// U+0326Combining Comma Below\n U_Combining_Cedilla = 0x0327,// U+0327Combining Cedilla\n U_Combining_Ogonek = 0x0328,// U+0328Combining Ogonek\n U_Combining_Vertical_Line_Below = 0x0329,// U+0329Combining Vertical Line Below\n U_Combining_Bridge_Below = 0x032A,// U+032ACombining Bridge Below\n U_Combining_Inverted_Double_Arch_Below = 0x032B,// U+032BCombining Inverted Double Arch Below\n U_Combining_Caron_Below = 0x032C,// U+032CCombining Caron Below\n U_Combining_Circumflex_Accent_Below = 0x032D,// U+032DCombining Circumflex Accent Below\n U_Combining_Breve_Below = 0x032E,// U+032ECombining Breve Below\n U_Combining_Inverted_Breve_Below = 0x032F,// U+032FCombining Inverted Breve Below\n U_Combining_Tilde_Below = 0x0330,// U+0330Combining Tilde Below\n U_Combining_Macron_Below = 0x0331,// U+0331Combining Macron Below\n U_Combining_Low_Line = 0x0332,// U+0332Combining Low Line\n U_Combining_Double_Low_Line = 0x0333,// U+0333Combining Double Low Line\n U_Combining_Tilde_Overlay = 0x0334,// U+0334Combining Tilde Overlay\n U_Combining_Short_Stroke_Overlay = 0x0335,// U+0335Combining Short Stroke Overlay\n U_Combining_Long_Stroke_Overlay = 0x0336,// U+0336Combining Long Stroke Overlay\n U_Combining_Short_Solidus_Overlay = 0x0337,// U+0337Combining Short Solidus Overlay\n U_Combining_Long_Solidus_Overlay = 0x0338,// U+0338Combining Long Solidus Overlay\n U_Combining_Right_Half_Ring_Below = 0x0339,// U+0339Combining Right Half Ring Below\n U_Combining_Inverted_Bridge_Below = 0x033A,// U+033ACombining Inverted Bridge Below\n U_Combining_Square_Below = 0x033B,// U+033BCombining Square Below\n U_Combining_Seagull_Below = 0x033C,// U+033CCombining Seagull Below\n U_Combining_X_Above = 0x033D,// U+033DCombining X Above\n U_Combining_Vertical_Tilde = 0x033E,// U+033ECombining Vertical Tilde\n U_Combining_Double_Overline = 0x033F,// U+033FCombining Double Overline\n U_Combining_Grave_Tone_Mark = 0x0340,// U+0340Combining Grave Tone Mark\n U_Combining_Acute_Tone_Mark = 0x0341,// U+0341Combining Acute Tone Mark\n U_Combining_Greek_Perispomeni = 0x0342,// U+0342Combining Greek Perispomeni\n U_Combining_Greek_Koronis = 0x0343,// U+0343Combining Greek Koronis\n U_Combining_Greek_Dialytika_Tonos = 0x0344,// U+0344Combining Greek Dialytika Tonos\n U_Combining_Greek_Ypogegrammeni = 0x0345,// U+0345Combining Greek Ypogegrammeni\n U_Combining_Bridge_Above = 0x0346,// U+0346Combining Bridge Above\n U_Combining_Equals_Sign_Below = 0x0347,// U+0347Combining Equals Sign Below\n U_Combining_Double_Vertical_Line_Below = 0x0348,// U+0348Combining Double Vertical Line Below\n U_Combining_Left_Angle_Below = 0x0349,// U+0349Combining Left Angle Below\n U_Combining_Not_Tilde_Above = 0x034A,// U+034ACombining Not Tilde Above\n U_Combining_Homothetic_Above = 0x034B,// U+034BCombining Homothetic Above\n U_Combining_Almost_Equal_To_Above = 0x034C,// U+034CCombining Almost Equal To Above\n U_Combining_Left_Right_Arrow_Below = 0x034D,// U+034DCombining Left Right Arrow Below\n U_Combining_Upwards_Arrow_Below = 0x034E,// U+034ECombining Upwards Arrow Below\n U_Combining_Grapheme_Joiner = 0x034F,// U+034FCombining Grapheme Joiner\n U_Combining_Right_Arrowhead_Above = 0x0350,// U+0350Combining Right Arrowhead Above\n U_Combining_Left_Half_Ring_Above = 0x0351,// U+0351Combining Left Half Ring Above\n U_Combining_Fermata = 0x0352,// U+0352Combining Fermata\n U_Combining_X_Below = 0x0353,// U+0353Combining X Below\n U_Combining_Left_Arrowhead_Below = 0x0354,// U+0354Combining Left Arrowhead Below\n U_Combining_Right_Arrowhead_Below = 0x0355,// U+0355Combining Right Arrowhead Below\n U_Combining_Right_Arrowhead_And_Up_Arrowhead_Below = 0x0356,// U+0356Combining Right Arrowhead And Up Arrowhead Below\n U_Combining_Right_Half_Ring_Above = 0x0357,// U+0357Combining Right Half Ring Above\n U_Combining_Dot_Above_Right = 0x0358,// U+0358Combining Dot Above Right\n U_Combining_Asterisk_Below = 0x0359,// U+0359Combining Asterisk Below\n U_Combining_Double_Ring_Below = 0x035A,// U+035ACombining Double Ring Below\n U_Combining_Zigzag_Above = 0x035B,// U+035BCombining Zigzag Above\n U_Combining_Double_Breve_Below = 0x035C,// U+035CCombining Double Breve Below\n U_Combining_Double_Breve = 0x035D,// U+035DCombining Double Breve\n U_Combining_Double_Macron = 0x035E,// U+035ECombining Double Macron\n U_Combining_Double_Macron_Below = 0x035F,// U+035FCombining Double Macron Below\n U_Combining_Double_Tilde = 0x0360,// U+0360Combining Double Tilde\n U_Combining_Double_Inverted_Breve = 0x0361,// U+0361Combining Double Inverted Breve\n U_Combining_Double_Rightwards_Arrow_Below = 0x0362,// U+0362Combining Double Rightwards Arrow Below\n U_Combining_Latin_Small_Letter_A = 0x0363, // U+0363Combining Latin Small Letter A\n U_Combining_Latin_Small_Letter_E = 0x0364, // U+0364Combining Latin Small Letter E\n U_Combining_Latin_Small_Letter_I = 0x0365, // U+0365Combining Latin Small Letter I\n U_Combining_Latin_Small_Letter_O = 0x0366, // U+0366Combining Latin Small Letter O\n U_Combining_Latin_Small_Letter_U = 0x0367, // U+0367Combining Latin Small Letter U\n U_Combining_Latin_Small_Letter_C = 0x0368, // U+0368Combining Latin Small Letter C\n U_Combining_Latin_Small_Letter_D = 0x0369, // U+0369Combining Latin Small Letter D\n U_Combining_Latin_Small_Letter_H = 0x036A, // U+036ACombining Latin Small Letter H\n U_Combining_Latin_Small_Letter_M = 0x036B, // U+036BCombining Latin Small Letter M\n U_Combining_Latin_Small_Letter_R = 0x036C, // U+036CCombining Latin Small Letter R\n U_Combining_Latin_Small_Letter_T = 0x036D, // U+036DCombining Latin Small Letter T\n U_Combining_Latin_Small_Letter_V = 0x036E, // U+036ECombining Latin Small Letter V\n U_Combining_Latin_Small_Letter_X = 0x036F, // U+036FCombining Latin Small Letter X\n\n /**\n * Unicode Character 'LINE SEPARATOR' (U+2028)\n * http://www.fileformat.info/info/unicode/char/2028/index.htm\n */\n LINE_SEPARATOR = 0x2028,\n /**\n * Unicode Character 'PARAGRAPH SEPARATOR' (U+2029)\n * http://www.fileformat.info/info/unicode/char/2029/index.htm\n */\n PARAGRAPH_SEPARATOR = 0x2029,\n /**\n * Unicode Character 'NEXT LINE' (U+0085)\n * http://www.fileformat.info/info/unicode/char/0085/index.htm\n */\n NEXT_LINE = 0x0085,\n\n // http://www.fileformat.info/info/unicode/category/Sk/list.htm\n U_CIRCUMFLEX = 0x005E,// U+005ECIRCUMFLEX\n U_GRAVE_ACCENT = 0x0060,// U+0060GRAVE ACCENT\n U_DIAERESIS = 0x00A8,// U+00A8DIAERESIS\n U_MACRON = 0x00AF,// U+00AFMACRON\n U_ACUTE_ACCENT = 0x00B4,// U+00B4ACUTE ACCENT\n U_CEDILLA = 0x00B8,// U+00B8CEDILLA\n U_MODIFIER_LETTER_LEFT_ARROWHEAD = 0x02C2,// U+02C2MODIFIER LETTER LEFT ARROWHEAD\n U_MODIFIER_LETTER_RIGHT_ARROWHEAD = 0x02C3,// U+02C3MODIFIER LETTER RIGHT ARROWHEAD\n U_MODIFIER_LETTER_UP_ARROWHEAD = 0x02C4,// U+02C4MODIFIER LETTER UP ARROWHEAD\n U_MODIFIER_LETTER_DOWN_ARROWHEAD = 0x02C5,// U+02C5MODIFIER LETTER DOWN ARROWHEAD\n U_MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING = 0x02D2,// U+02D2MODIFIER LETTER CENTRED RIGHT HALF RING\n U_MODIFIER_LETTER_CENTRED_LEFT_HALF_RING = 0x02D3,// U+02D3MODIFIER LETTER CENTRED LEFT HALF RING\n U_MODIFIER_LETTER_UP_TACK = 0x02D4,// U+02D4MODIFIER LETTER UP TACK\n U_MODIFIER_LETTER_DOWN_TACK = 0x02D5,// U+02D5MODIFIER LETTER DOWN TACK\n U_MODIFIER_LETTER_PLUS_SIGN = 0x02D6,// U+02D6MODIFIER LETTER PLUS SIGN\n U_MODIFIER_LETTER_MINUS_SIGN = 0x02D7,// U+02D7MODIFIER LETTER MINUS SIGN\n U_BREVE = 0x02D8,// U+02D8BREVE\n U_DOT_ABOVE = 0x02D9,// U+02D9DOT ABOVE\n U_RING_ABOVE = 0x02DA,// U+02DARING ABOVE\n U_OGONEK = 0x02DB,// U+02DBOGONEK\n U_SMALL_TILDE = 0x02DC,// U+02DCSMALL TILDE\n U_DOUBLE_ACUTE_ACCENT = 0x02DD,// U+02DDDOUBLE ACUTE ACCENT\n U_MODIFIER_LETTER_RHOTIC_HOOK = 0x02DE,// U+02DEMODIFIER LETTER RHOTIC HOOK\n U_MODIFIER_LETTER_CROSS_ACCENT = 0x02DF,// U+02DFMODIFIER LETTER CROSS ACCENT\n U_MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR = 0x02E5,// U+02E5MODIFIER LETTER EXTRA-HIGH TONE BAR\n U_MODIFIER_LETTER_HIGH_TONE_BAR = 0x02E6,// U+02E6MODIFIER LETTER HIGH TONE BAR\n U_MODIFIER_LETTER_MID_TONE_BAR = 0x02E7,// U+02E7MODIFIER LETTER MID TONE BAR\n U_MODIFIER_LETTER_LOW_TONE_BAR = 0x02E8,// U+02E8MODIFIER LETTER LOW TONE BAR\n U_MODIFIER_LETTER_EXTRA_LOW_TONE_BAR = 0x02E9,// U+02E9MODIFIER LETTER EXTRA-LOW TONE BAR\n U_MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK = 0x02EA,// U+02EAMODIFIER LETTER YIN DEPARTING TONE MARK\n U_MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK = 0x02EB,// U+02EBMODIFIER LETTER YANG DEPARTING TONE MARK\n U_MODIFIER_LETTER_UNASPIRATED = 0x02ED,// U+02EDMODIFIER LETTER UNASPIRATED\n U_MODIFIER_LETTER_LOW_DOWN_ARROWHEAD = 0x02EF,// U+02EFMODIFIER LETTER LOW DOWN ARROWHEAD\n U_MODIFIER_LETTER_LOW_UP_ARROWHEAD = 0x02F0,// U+02F0MODIFIER LETTER LOW UP ARROWHEAD\n U_MODIFIER_LETTER_LOW_LEFT_ARROWHEAD = 0x02F1,// U+02F1MODIFIER LETTER LOW LEFT ARROWHEAD\n U_MODIFIER_LETTER_LOW_RIGHT_ARROWHEAD = 0x02F2,// U+02F2MODIFIER LETTER LOW RIGHT ARROWHEAD\n U_MODIFIER_LETTER_LOW_RING = 0x02F3,// U+02F3MODIFIER LETTER LOW RING\n U_MODIFIER_LETTER_MIDDLE_GRAVE_ACCENT = 0x02F4,// U+02F4MODIFIER LETTER MIDDLE GRAVE ACCENT\n U_MODIFIER_LETTER_MIDDLE_DOUBLE_GRAVE_ACCENT = 0x02F5,// U+02F5MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT\n U_MODIFIER_LETTER_MIDDLE_DOUBLE_ACUTE_ACCENT = 0x02F6,// U+02F6MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT\n U_MODIFIER_LETTER_LOW_TILDE = 0x02F7,// U+02F7MODIFIER LETTER LOW TILDE\n U_MODIFIER_LETTER_RAISED_COLON = 0x02F8,// U+02F8MODIFIER LETTER RAISED COLON\n U_MODIFIER_LETTER_BEGIN_HIGH_TONE = 0x02F9,// U+02F9MODIFIER LETTER BEGIN HIGH TONE\n U_MODIFIER_LETTER_END_HIGH_TONE = 0x02FA,// U+02FAMODIFIER LETTER END HIGH TONE\n U_MODIFIER_LETTER_BEGIN_LOW_TONE = 0x02FB,// U+02FBMODIFIER LETTER BEGIN LOW TONE\n U_MODIFIER_LETTER_END_LOW_TONE = 0x02FC,// U+02FCMODIFIER LETTER END LOW TONE\n U_MODIFIER_LETTER_SHELF = 0x02FD,// U+02FDMODIFIER LETTER SHELF\n U_MODIFIER_LETTER_OPEN_SHELF = 0x02FE,// U+02FEMODIFIER LETTER OPEN SHELF\n U_MODIFIER_LETTER_LOW_LEFT_ARROW = 0x02FF,// U+02FFMODIFIER LETTER LOW LEFT ARROW\n U_GREEK_LOWER_NUMERAL_SIGN = 0x0375,// U+0375GREEK LOWER NUMERAL SIGN\n U_GREEK_TONOS = 0x0384,// U+0384GREEK TONOS\n U_GREEK_DIALYTIKA_TONOS = 0x0385,// U+0385GREEK DIALYTIKA TONOS\n U_GREEK_KORONIS = 0x1FBD,// U+1FBDGREEK KORONIS\n U_GREEK_PSILI = 0x1FBF,// U+1FBFGREEK PSILI\n U_GREEK_PERISPOMENI = 0x1FC0,// U+1FC0GREEK PERISPOMENI\n U_GREEK_DIALYTIKA_AND_PERISPOMENI = 0x1FC1,// U+1FC1GREEK DIALYTIKA AND PERISPOMENI\n U_GREEK_PSILI_AND_VARIA = 0x1FCD,// U+1FCDGREEK PSILI AND VARIA\n U_GREEK_PSILI_AND_OXIA = 0x1FCE,// U+1FCEGREEK PSILI AND OXIA\n U_GREEK_PSILI_AND_PERISPOMENI = 0x1FCF,// U+1FCFGREEK PSILI AND PERISPOMENI\n U_GREEK_DASIA_AND_VARIA = 0x1FDD,// U+1FDDGREEK DASIA AND VARIA\n U_GREEK_DASIA_AND_OXIA = 0x1FDE,// U+1FDEGREEK DASIA AND OXIA\n U_GREEK_DASIA_AND_PERISPOMENI = 0x1FDF,// U+1FDFGREEK DASIA AND PERISPOMENI\n U_GREEK_DIALYTIKA_AND_VARIA = 0x1FED,// U+1FEDGREEK DIALYTIKA AND VARIA\n U_GREEK_DIALYTIKA_AND_OXIA = 0x1FEE,// U+1FEEGREEK DIALYTIKA AND OXIA\n U_GREEK_VARIA = 0x1FEF,// U+1FEFGREEK VARIA\n U_GREEK_OXIA = 0x1FFD,// U+1FFDGREEK OXIA\n U_GREEK_DASIA = 0x1FFE,// U+1FFEGREEK DASIA\n\n U_OVERLINE = 0x203E, // Unicode Character 'OVERLINE'\n\n /**\n * UTF-8 BOM\n * Unicode Character 'ZERO WIDTH NO-BREAK SPACE' (U+FEFF)\n * http://www.fileformat.info/info/unicode/char/feff/index.htm\n */\n UTF8_BOM = 65279\n}\n"]}
1
+ {"version":3,"file":"charCode.js","sourceRoot":"","sources":["../../../../../src/appui-abstract/utils/filter/charCode.ts"],"names":[],"mappings":";AAAA;;;+FAG+F","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\r\n// file copied from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/charCode.ts\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n// Names from https://blog.codinghorror.com/ascii-pronunciation-rules-for-programmers/\r\n\r\n/**\r\n * An inlined enum containing useful character codes (to be used with String.charCodeAt).\r\n * Please leave the const keyword such that it gets inlined when compiled to JavaScript!\r\n * @internal\r\n */\r\nexport const enum CharCode {\r\n Null = 0,\r\n /**\r\n * The `\\b` character.\r\n */\r\n Backspace = 8,\r\n /**\r\n * The `\\t` character.\r\n */\r\n Tab = 9,\r\n /**\r\n * The `\\n` character.\r\n */\r\n LineFeed = 10,\r\n /**\r\n * The `\\r` character.\r\n */\r\n CarriageReturn = 13,\r\n Space = 32,\r\n /**\r\n * The `!` character.\r\n */\r\n ExclamationMark = 33,\r\n /**\r\n * The `\"` character.\r\n */\r\n DoubleQuote = 34,\r\n /**\r\n * The `#` character.\r\n */\r\n Hash = 35,\r\n /**\r\n * The `$` character.\r\n */\r\n DollarSign = 36,\r\n /**\r\n * The `%` character.\r\n */\r\n PercentSign = 37,\r\n /**\r\n * The `&` character.\r\n */\r\n Ampersand = 38,\r\n /**\r\n * The `'` character.\r\n */\r\n SingleQuote = 39,\r\n /**\r\n * The `(` character.\r\n */\r\n OpenParen = 40,\r\n /**\r\n * The `)` character.\r\n */\r\n CloseParen = 41,\r\n /**\r\n * The `*` character.\r\n */\r\n Asterisk = 42,\r\n /**\r\n * The `+` character.\r\n */\r\n Plus = 43,\r\n /**\r\n * The `,` character.\r\n */\r\n Comma = 44,\r\n /**\r\n * The `-` character.\r\n */\r\n Dash = 45,\r\n /**\r\n * The `.` character.\r\n */\r\n Period = 46,\r\n /**\r\n * The `/` character.\r\n */\r\n Slash = 47,\r\n\r\n Digit0 = 48,\r\n Digit1 = 49,\r\n Digit2 = 50,\r\n Digit3 = 51,\r\n Digit4 = 52,\r\n Digit5 = 53,\r\n Digit6 = 54,\r\n Digit7 = 55,\r\n Digit8 = 56,\r\n Digit9 = 57,\r\n\r\n /**\r\n * The `:` character.\r\n */\r\n Colon = 58,\r\n /**\r\n * The `;` character.\r\n */\r\n Semicolon = 59,\r\n /**\r\n * The `<` character.\r\n */\r\n LessThan = 60,\r\n /**\r\n * The `=` character.\r\n */\r\n Equals = 61,\r\n /**\r\n * The `>` character.\r\n */\r\n GreaterThan = 62,\r\n /**\r\n * The `?` character.\r\n */\r\n QuestionMark = 63,\r\n /**\r\n * The `@` character.\r\n */\r\n AtSign = 64,\r\n\r\n A = 65,\r\n B = 66,\r\n C = 67,\r\n D = 68,\r\n E = 69,\r\n F = 70,\r\n G = 71,\r\n H = 72,\r\n I = 73,\r\n J = 74,\r\n K = 75,\r\n L = 76,\r\n M = 77,\r\n N = 78,\r\n O = 79,\r\n P = 80,\r\n Q = 81,\r\n R = 82,\r\n S = 83,\r\n T = 84,\r\n U = 85,\r\n V = 86,\r\n W = 87,\r\n X = 88,\r\n Y = 89,\r\n Z = 90,\r\n\r\n /**\r\n * The `[` character.\r\n */\r\n OpenSquareBracket = 91,\r\n /**\r\n * The `\\` character.\r\n */\r\n Backslash = 92,\r\n /**\r\n * The `]` character.\r\n */\r\n CloseSquareBracket = 93,\r\n /**\r\n * The `^` character.\r\n */\r\n Caret = 94,\r\n /**\r\n * The `_` character.\r\n */\r\n Underline = 95,\r\n /**\r\n * The ``(`)`` character.\r\n */\r\n BackTick = 96,\r\n\r\n a = 97,\r\n b = 98,\r\n c = 99,\r\n d = 100,\r\n e = 101,\r\n f = 102,\r\n g = 103,\r\n h = 104,\r\n i = 105,\r\n j = 106,\r\n k = 107,\r\n l = 108,\r\n m = 109,\r\n n = 110,\r\n o = 111,\r\n p = 112,\r\n q = 113,\r\n r = 114,\r\n s = 115,\r\n t = 116,\r\n u = 117,\r\n v = 118,\r\n w = 119,\r\n x = 120,\r\n y = 121,\r\n z = 122,\r\n\r\n /**\r\n * The `{` character.\r\n */\r\n OpenCurlyBrace = 123,\r\n /**\r\n * The `|` character.\r\n */\r\n Pipe = 124,\r\n /**\r\n * The `}` character.\r\n */\r\n CloseCurlyBrace = 125,\r\n /**\r\n * The `~` character.\r\n */\r\n Tilde = 126,\r\n\r\n U_Combining_Grave_Accent = 0x0300,// U+0300Combining Grave Accent\r\n U_Combining_Acute_Accent = 0x0301,// U+0301Combining Acute Accent\r\n U_Combining_Circumflex_Accent = 0x0302,// U+0302Combining Circumflex Accent\r\n U_Combining_Tilde = 0x0303,// U+0303Combining Tilde\r\n U_Combining_Macron = 0x0304,// U+0304Combining Macron\r\n U_Combining_Overline = 0x0305,// U+0305Combining Overline\r\n U_Combining_Breve = 0x0306,// U+0306Combining Breve\r\n U_Combining_Dot_Above = 0x0307,// U+0307Combining Dot Above\r\n U_Combining_Diaeresis = 0x0308,// U+0308Combining Diaeresis\r\n U_Combining_Hook_Above = 0x0309,// U+0309Combining Hook Above\r\n U_Combining_Ring_Above = 0x030A,// U+030ACombining Ring Above\r\n U_Combining_Double_Acute_Accent = 0x030B,// U+030BCombining Double Acute Accent\r\n U_Combining_Caron = 0x030C,// U+030CCombining Caron\r\n U_Combining_Vertical_Line_Above = 0x030D,// U+030DCombining Vertical Line Above\r\n U_Combining_Double_Vertical_Line_Above = 0x030E,// U+030ECombining Double Vertical Line Above\r\n U_Combining_Double_Grave_Accent = 0x030F,// U+030FCombining Double Grave Accent\r\n U_Combining_Candrabindu = 0x0310,// U+0310Combining Candrabindu\r\n U_Combining_Inverted_Breve = 0x0311,// U+0311Combining Inverted Breve\r\n U_Combining_Turned_Comma_Above = 0x0312,// U+0312Combining Turned Comma Above\r\n U_Combining_Comma_Above = 0x0313,// U+0313Combining Comma Above\r\n U_Combining_Reversed_Comma_Above = 0x0314,// U+0314Combining Reversed Comma Above\r\n U_Combining_Comma_Above_Right = 0x0315,// U+0315Combining Comma Above Right\r\n U_Combining_Grave_Accent_Below = 0x0316,// U+0316Combining Grave Accent Below\r\n U_Combining_Acute_Accent_Below = 0x0317,// U+0317Combining Acute Accent Below\r\n U_Combining_Left_Tack_Below = 0x0318,// U+0318Combining Left Tack Below\r\n U_Combining_Right_Tack_Below = 0x0319,// U+0319Combining Right Tack Below\r\n U_Combining_Left_Angle_Above = 0x031A,// U+031ACombining Left Angle Above\r\n U_Combining_Horn = 0x031B,// U+031BCombining Horn\r\n U_Combining_Left_Half_Ring_Below = 0x031C,// U+031CCombining Left Half Ring Below\r\n U_Combining_Up_Tack_Below = 0x031D,// U+031DCombining Up Tack Below\r\n U_Combining_Down_Tack_Below = 0x031E,// U+031ECombining Down Tack Below\r\n U_Combining_Plus_Sign_Below = 0x031F,// U+031FCombining Plus Sign Below\r\n U_Combining_Minus_Sign_Below = 0x0320,// U+0320Combining Minus Sign Below\r\n U_Combining_Palatalized_Hook_Below = 0x0321,// U+0321Combining Palatalized Hook Below\r\n U_Combining_Retroflex_Hook_Below = 0x0322,// U+0322Combining Retroflex Hook Below\r\n U_Combining_Dot_Below = 0x0323,// U+0323Combining Dot Below\r\n U_Combining_Diaeresis_Below = 0x0324,// U+0324Combining Diaeresis Below\r\n U_Combining_Ring_Below = 0x0325,// U+0325Combining Ring Below\r\n U_Combining_Comma_Below = 0x0326,// U+0326Combining Comma Below\r\n U_Combining_Cedilla = 0x0327,// U+0327Combining Cedilla\r\n U_Combining_Ogonek = 0x0328,// U+0328Combining Ogonek\r\n U_Combining_Vertical_Line_Below = 0x0329,// U+0329Combining Vertical Line Below\r\n U_Combining_Bridge_Below = 0x032A,// U+032ACombining Bridge Below\r\n U_Combining_Inverted_Double_Arch_Below = 0x032B,// U+032BCombining Inverted Double Arch Below\r\n U_Combining_Caron_Below = 0x032C,// U+032CCombining Caron Below\r\n U_Combining_Circumflex_Accent_Below = 0x032D,// U+032DCombining Circumflex Accent Below\r\n U_Combining_Breve_Below = 0x032E,// U+032ECombining Breve Below\r\n U_Combining_Inverted_Breve_Below = 0x032F,// U+032FCombining Inverted Breve Below\r\n U_Combining_Tilde_Below = 0x0330,// U+0330Combining Tilde Below\r\n U_Combining_Macron_Below = 0x0331,// U+0331Combining Macron Below\r\n U_Combining_Low_Line = 0x0332,// U+0332Combining Low Line\r\n U_Combining_Double_Low_Line = 0x0333,// U+0333Combining Double Low Line\r\n U_Combining_Tilde_Overlay = 0x0334,// U+0334Combining Tilde Overlay\r\n U_Combining_Short_Stroke_Overlay = 0x0335,// U+0335Combining Short Stroke Overlay\r\n U_Combining_Long_Stroke_Overlay = 0x0336,// U+0336Combining Long Stroke Overlay\r\n U_Combining_Short_Solidus_Overlay = 0x0337,// U+0337Combining Short Solidus Overlay\r\n U_Combining_Long_Solidus_Overlay = 0x0338,// U+0338Combining Long Solidus Overlay\r\n U_Combining_Right_Half_Ring_Below = 0x0339,// U+0339Combining Right Half Ring Below\r\n U_Combining_Inverted_Bridge_Below = 0x033A,// U+033ACombining Inverted Bridge Below\r\n U_Combining_Square_Below = 0x033B,// U+033BCombining Square Below\r\n U_Combining_Seagull_Below = 0x033C,// U+033CCombining Seagull Below\r\n U_Combining_X_Above = 0x033D,// U+033DCombining X Above\r\n U_Combining_Vertical_Tilde = 0x033E,// U+033ECombining Vertical Tilde\r\n U_Combining_Double_Overline = 0x033F,// U+033FCombining Double Overline\r\n U_Combining_Grave_Tone_Mark = 0x0340,// U+0340Combining Grave Tone Mark\r\n U_Combining_Acute_Tone_Mark = 0x0341,// U+0341Combining Acute Tone Mark\r\n U_Combining_Greek_Perispomeni = 0x0342,// U+0342Combining Greek Perispomeni\r\n U_Combining_Greek_Koronis = 0x0343,// U+0343Combining Greek Koronis\r\n U_Combining_Greek_Dialytika_Tonos = 0x0344,// U+0344Combining Greek Dialytika Tonos\r\n U_Combining_Greek_Ypogegrammeni = 0x0345,// U+0345Combining Greek Ypogegrammeni\r\n U_Combining_Bridge_Above = 0x0346,// U+0346Combining Bridge Above\r\n U_Combining_Equals_Sign_Below = 0x0347,// U+0347Combining Equals Sign Below\r\n U_Combining_Double_Vertical_Line_Below = 0x0348,// U+0348Combining Double Vertical Line Below\r\n U_Combining_Left_Angle_Below = 0x0349,// U+0349Combining Left Angle Below\r\n U_Combining_Not_Tilde_Above = 0x034A,// U+034ACombining Not Tilde Above\r\n U_Combining_Homothetic_Above = 0x034B,// U+034BCombining Homothetic Above\r\n U_Combining_Almost_Equal_To_Above = 0x034C,// U+034CCombining Almost Equal To Above\r\n U_Combining_Left_Right_Arrow_Below = 0x034D,// U+034DCombining Left Right Arrow Below\r\n U_Combining_Upwards_Arrow_Below = 0x034E,// U+034ECombining Upwards Arrow Below\r\n U_Combining_Grapheme_Joiner = 0x034F,// U+034FCombining Grapheme Joiner\r\n U_Combining_Right_Arrowhead_Above = 0x0350,// U+0350Combining Right Arrowhead Above\r\n U_Combining_Left_Half_Ring_Above = 0x0351,// U+0351Combining Left Half Ring Above\r\n U_Combining_Fermata = 0x0352,// U+0352Combining Fermata\r\n U_Combining_X_Below = 0x0353,// U+0353Combining X Below\r\n U_Combining_Left_Arrowhead_Below = 0x0354,// U+0354Combining Left Arrowhead Below\r\n U_Combining_Right_Arrowhead_Below = 0x0355,// U+0355Combining Right Arrowhead Below\r\n U_Combining_Right_Arrowhead_And_Up_Arrowhead_Below = 0x0356,// U+0356Combining Right Arrowhead And Up Arrowhead Below\r\n U_Combining_Right_Half_Ring_Above = 0x0357,// U+0357Combining Right Half Ring Above\r\n U_Combining_Dot_Above_Right = 0x0358,// U+0358Combining Dot Above Right\r\n U_Combining_Asterisk_Below = 0x0359,// U+0359Combining Asterisk Below\r\n U_Combining_Double_Ring_Below = 0x035A,// U+035ACombining Double Ring Below\r\n U_Combining_Zigzag_Above = 0x035B,// U+035BCombining Zigzag Above\r\n U_Combining_Double_Breve_Below = 0x035C,// U+035CCombining Double Breve Below\r\n U_Combining_Double_Breve = 0x035D,// U+035DCombining Double Breve\r\n U_Combining_Double_Macron = 0x035E,// U+035ECombining Double Macron\r\n U_Combining_Double_Macron_Below = 0x035F,// U+035FCombining Double Macron Below\r\n U_Combining_Double_Tilde = 0x0360,// U+0360Combining Double Tilde\r\n U_Combining_Double_Inverted_Breve = 0x0361,// U+0361Combining Double Inverted Breve\r\n U_Combining_Double_Rightwards_Arrow_Below = 0x0362,// U+0362Combining Double Rightwards Arrow Below\r\n U_Combining_Latin_Small_Letter_A = 0x0363, // U+0363Combining Latin Small Letter A\r\n U_Combining_Latin_Small_Letter_E = 0x0364, // U+0364Combining Latin Small Letter E\r\n U_Combining_Latin_Small_Letter_I = 0x0365, // U+0365Combining Latin Small Letter I\r\n U_Combining_Latin_Small_Letter_O = 0x0366, // U+0366Combining Latin Small Letter O\r\n U_Combining_Latin_Small_Letter_U = 0x0367, // U+0367Combining Latin Small Letter U\r\n U_Combining_Latin_Small_Letter_C = 0x0368, // U+0368Combining Latin Small Letter C\r\n U_Combining_Latin_Small_Letter_D = 0x0369, // U+0369Combining Latin Small Letter D\r\n U_Combining_Latin_Small_Letter_H = 0x036A, // U+036ACombining Latin Small Letter H\r\n U_Combining_Latin_Small_Letter_M = 0x036B, // U+036BCombining Latin Small Letter M\r\n U_Combining_Latin_Small_Letter_R = 0x036C, // U+036CCombining Latin Small Letter R\r\n U_Combining_Latin_Small_Letter_T = 0x036D, // U+036DCombining Latin Small Letter T\r\n U_Combining_Latin_Small_Letter_V = 0x036E, // U+036ECombining Latin Small Letter V\r\n U_Combining_Latin_Small_Letter_X = 0x036F, // U+036FCombining Latin Small Letter X\r\n\r\n /**\r\n * Unicode Character 'LINE SEPARATOR' (U+2028)\r\n * http://www.fileformat.info/info/unicode/char/2028/index.htm\r\n */\r\n LINE_SEPARATOR = 0x2028,\r\n /**\r\n * Unicode Character 'PARAGRAPH SEPARATOR' (U+2029)\r\n * http://www.fileformat.info/info/unicode/char/2029/index.htm\r\n */\r\n PARAGRAPH_SEPARATOR = 0x2029,\r\n /**\r\n * Unicode Character 'NEXT LINE' (U+0085)\r\n * http://www.fileformat.info/info/unicode/char/0085/index.htm\r\n */\r\n NEXT_LINE = 0x0085,\r\n\r\n // http://www.fileformat.info/info/unicode/category/Sk/list.htm\r\n U_CIRCUMFLEX = 0x005E,// U+005ECIRCUMFLEX\r\n U_GRAVE_ACCENT = 0x0060,// U+0060GRAVE ACCENT\r\n U_DIAERESIS = 0x00A8,// U+00A8DIAERESIS\r\n U_MACRON = 0x00AF,// U+00AFMACRON\r\n U_ACUTE_ACCENT = 0x00B4,// U+00B4ACUTE ACCENT\r\n U_CEDILLA = 0x00B8,// U+00B8CEDILLA\r\n U_MODIFIER_LETTER_LEFT_ARROWHEAD = 0x02C2,// U+02C2MODIFIER LETTER LEFT ARROWHEAD\r\n U_MODIFIER_LETTER_RIGHT_ARROWHEAD = 0x02C3,// U+02C3MODIFIER LETTER RIGHT ARROWHEAD\r\n U_MODIFIER_LETTER_UP_ARROWHEAD = 0x02C4,// U+02C4MODIFIER LETTER UP ARROWHEAD\r\n U_MODIFIER_LETTER_DOWN_ARROWHEAD = 0x02C5,// U+02C5MODIFIER LETTER DOWN ARROWHEAD\r\n U_MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING = 0x02D2,// U+02D2MODIFIER LETTER CENTRED RIGHT HALF RING\r\n U_MODIFIER_LETTER_CENTRED_LEFT_HALF_RING = 0x02D3,// U+02D3MODIFIER LETTER CENTRED LEFT HALF RING\r\n U_MODIFIER_LETTER_UP_TACK = 0x02D4,// U+02D4MODIFIER LETTER UP TACK\r\n U_MODIFIER_LETTER_DOWN_TACK = 0x02D5,// U+02D5MODIFIER LETTER DOWN TACK\r\n U_MODIFIER_LETTER_PLUS_SIGN = 0x02D6,// U+02D6MODIFIER LETTER PLUS SIGN\r\n U_MODIFIER_LETTER_MINUS_SIGN = 0x02D7,// U+02D7MODIFIER LETTER MINUS SIGN\r\n U_BREVE = 0x02D8,// U+02D8BREVE\r\n U_DOT_ABOVE = 0x02D9,// U+02D9DOT ABOVE\r\n U_RING_ABOVE = 0x02DA,// U+02DARING ABOVE\r\n U_OGONEK = 0x02DB,// U+02DBOGONEK\r\n U_SMALL_TILDE = 0x02DC,// U+02DCSMALL TILDE\r\n U_DOUBLE_ACUTE_ACCENT = 0x02DD,// U+02DDDOUBLE ACUTE ACCENT\r\n U_MODIFIER_LETTER_RHOTIC_HOOK = 0x02DE,// U+02DEMODIFIER LETTER RHOTIC HOOK\r\n U_MODIFIER_LETTER_CROSS_ACCENT = 0x02DF,// U+02DFMODIFIER LETTER CROSS ACCENT\r\n U_MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR = 0x02E5,// U+02E5MODIFIER LETTER EXTRA-HIGH TONE BAR\r\n U_MODIFIER_LETTER_HIGH_TONE_BAR = 0x02E6,// U+02E6MODIFIER LETTER HIGH TONE BAR\r\n U_MODIFIER_LETTER_MID_TONE_BAR = 0x02E7,// U+02E7MODIFIER LETTER MID TONE BAR\r\n U_MODIFIER_LETTER_LOW_TONE_BAR = 0x02E8,// U+02E8MODIFIER LETTER LOW TONE BAR\r\n U_MODIFIER_LETTER_EXTRA_LOW_TONE_BAR = 0x02E9,// U+02E9MODIFIER LETTER EXTRA-LOW TONE BAR\r\n U_MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK = 0x02EA,// U+02EAMODIFIER LETTER YIN DEPARTING TONE MARK\r\n U_MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK = 0x02EB,// U+02EBMODIFIER LETTER YANG DEPARTING TONE MARK\r\n U_MODIFIER_LETTER_UNASPIRATED = 0x02ED,// U+02EDMODIFIER LETTER UNASPIRATED\r\n U_MODIFIER_LETTER_LOW_DOWN_ARROWHEAD = 0x02EF,// U+02EFMODIFIER LETTER LOW DOWN ARROWHEAD\r\n U_MODIFIER_LETTER_LOW_UP_ARROWHEAD = 0x02F0,// U+02F0MODIFIER LETTER LOW UP ARROWHEAD\r\n U_MODIFIER_LETTER_LOW_LEFT_ARROWHEAD = 0x02F1,// U+02F1MODIFIER LETTER LOW LEFT ARROWHEAD\r\n U_MODIFIER_LETTER_LOW_RIGHT_ARROWHEAD = 0x02F2,// U+02F2MODIFIER LETTER LOW RIGHT ARROWHEAD\r\n U_MODIFIER_LETTER_LOW_RING = 0x02F3,// U+02F3MODIFIER LETTER LOW RING\r\n U_MODIFIER_LETTER_MIDDLE_GRAVE_ACCENT = 0x02F4,// U+02F4MODIFIER LETTER MIDDLE GRAVE ACCENT\r\n U_MODIFIER_LETTER_MIDDLE_DOUBLE_GRAVE_ACCENT = 0x02F5,// U+02F5MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT\r\n U_MODIFIER_LETTER_MIDDLE_DOUBLE_ACUTE_ACCENT = 0x02F6,// U+02F6MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT\r\n U_MODIFIER_LETTER_LOW_TILDE = 0x02F7,// U+02F7MODIFIER LETTER LOW TILDE\r\n U_MODIFIER_LETTER_RAISED_COLON = 0x02F8,// U+02F8MODIFIER LETTER RAISED COLON\r\n U_MODIFIER_LETTER_BEGIN_HIGH_TONE = 0x02F9,// U+02F9MODIFIER LETTER BEGIN HIGH TONE\r\n U_MODIFIER_LETTER_END_HIGH_TONE = 0x02FA,// U+02FAMODIFIER LETTER END HIGH TONE\r\n U_MODIFIER_LETTER_BEGIN_LOW_TONE = 0x02FB,// U+02FBMODIFIER LETTER BEGIN LOW TONE\r\n U_MODIFIER_LETTER_END_LOW_TONE = 0x02FC,// U+02FCMODIFIER LETTER END LOW TONE\r\n U_MODIFIER_LETTER_SHELF = 0x02FD,// U+02FDMODIFIER LETTER SHELF\r\n U_MODIFIER_LETTER_OPEN_SHELF = 0x02FE,// U+02FEMODIFIER LETTER OPEN SHELF\r\n U_MODIFIER_LETTER_LOW_LEFT_ARROW = 0x02FF,// U+02FFMODIFIER LETTER LOW LEFT ARROW\r\n U_GREEK_LOWER_NUMERAL_SIGN = 0x0375,// U+0375GREEK LOWER NUMERAL SIGN\r\n U_GREEK_TONOS = 0x0384,// U+0384GREEK TONOS\r\n U_GREEK_DIALYTIKA_TONOS = 0x0385,// U+0385GREEK DIALYTIKA TONOS\r\n U_GREEK_KORONIS = 0x1FBD,// U+1FBDGREEK KORONIS\r\n U_GREEK_PSILI = 0x1FBF,// U+1FBFGREEK PSILI\r\n U_GREEK_PERISPOMENI = 0x1FC0,// U+1FC0GREEK PERISPOMENI\r\n U_GREEK_DIALYTIKA_AND_PERISPOMENI = 0x1FC1,// U+1FC1GREEK DIALYTIKA AND PERISPOMENI\r\n U_GREEK_PSILI_AND_VARIA = 0x1FCD,// U+1FCDGREEK PSILI AND VARIA\r\n U_GREEK_PSILI_AND_OXIA = 0x1FCE,// U+1FCEGREEK PSILI AND OXIA\r\n U_GREEK_PSILI_AND_PERISPOMENI = 0x1FCF,// U+1FCFGREEK PSILI AND PERISPOMENI\r\n U_GREEK_DASIA_AND_VARIA = 0x1FDD,// U+1FDDGREEK DASIA AND VARIA\r\n U_GREEK_DASIA_AND_OXIA = 0x1FDE,// U+1FDEGREEK DASIA AND OXIA\r\n U_GREEK_DASIA_AND_PERISPOMENI = 0x1FDF,// U+1FDFGREEK DASIA AND PERISPOMENI\r\n U_GREEK_DIALYTIKA_AND_VARIA = 0x1FED,// U+1FEDGREEK DIALYTIKA AND VARIA\r\n U_GREEK_DIALYTIKA_AND_OXIA = 0x1FEE,// U+1FEEGREEK DIALYTIKA AND OXIA\r\n U_GREEK_VARIA = 0x1FEF,// U+1FEFGREEK VARIA\r\n U_GREEK_OXIA = 0x1FFD,// U+1FFDGREEK OXIA\r\n U_GREEK_DASIA = 0x1FFE,// U+1FFEGREEK DASIA\r\n\r\n U_OVERLINE = 0x203E, // Unicode Character 'OVERLINE'\r\n\r\n /**\r\n * UTF-8 BOM\r\n * Unicode Character 'ZERO WIDTH NO-BREAK SPACE' (U+FEFF)\r\n * http://www.fileformat.info/info/unicode/char/feff/index.htm\r\n */\r\n UTF8_BOM = 65279\r\n}\r\n"]}
@@ -14,7 +14,7 @@ export interface IMatch {
14
14
  * @param wordToMatchAgainst string to search for matches
15
15
  * @internal
16
16
  */
17
- export declare type IFilter = (word: string, wordToMatchAgainst: string) => IMatch[] | null;
17
+ export type IFilter = (word: string, wordToMatchAgainst: string) => IMatch[] | null;
18
18
  /**
19
19
  * @returns A filter which combines the provided set
20
20
  * of filters with an or. The *first* filters that
@@ -77,7 +77,7 @@ export declare function isPatternInWord(patternLow: string, patternPos: number,
77
77
  * 2. the offset at which matching started
78
78
  * @internal
79
79
  */
80
- export declare type FuzzyScore = [number, number, number];
80
+ export type FuzzyScore = [number, number, number];
81
81
  /** @internal */
82
82
  export declare namespace FuzzyScore {
83
83
  /**
@@ -89,7 +89,7 @@ export declare namespace FuzzyScore {
89
89
  function isDefault(score?: FuzzyScore): score is [-100, 0, 0];
90
90
  }
91
91
  /** @internal */
92
- export declare type FuzzyScorer = (pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, firstMatchCanBeWeak: boolean) => FuzzyScore | undefined;
92
+ export type FuzzyScorer = (pattern: string, lowPattern: string, patternPos: number, word: string, lowWord: string, wordPos: number, firstMatchCanBeWeak: boolean) => FuzzyScore | undefined;
93
93
  /** @internal */
94
94
  export declare function fuzzyScore(pattern: string, patternLow: string, patternStart: number, word: string, wordLow: string, wordStart: number, firstMatchCanBeWeak: boolean): FuzzyScore | undefined;
95
95
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../src/appui-abstract/utils/filter/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../src/appui-abstract/utils/filter/filters.ts"],"names":[],"mappings":"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"}
@@ -92,19 +92,19 @@ function _matchesSubString(word, wordToMatchAgainst, i, j) {
92
92
  }
93
93
  // CamelCase
94
94
  function isLower(code) {
95
- return 97 /* a */ <= code && code <= 122 /* z */;
95
+ return 97 /* CharCode.a */ <= code && code <= 122 /* CharCode.z */;
96
96
  }
97
97
  function isUpper(code) {
98
- return 65 /* A */ <= code && code <= 90 /* Z */;
98
+ return 65 /* CharCode.A */ <= code && code <= 90 /* CharCode.Z */;
99
99
  }
100
100
  function isNumber(code) {
101
- return 48 /* Digit0 */ <= code && code <= 57 /* Digit9 */;
101
+ return 48 /* CharCode.Digit0 */ <= code && code <= 57 /* CharCode.Digit9 */;
102
102
  }
103
103
  function isWhitespace(code) {
104
- return (code === 32 /* Space */
105
- || code === 9 /* Tab */
106
- || code === 10 /* LineFeed */
107
- || code === 13 /* CarriageReturn */);
104
+ return (code === 32 /* CharCode.Space */
105
+ || code === 9 /* CharCode.Tab */
106
+ || code === 10 /* CharCode.LineFeed */
107
+ || code === 13 /* CharCode.CarriageReturn */);
108
108
  }
109
109
  const wordSeparators = new Set();
110
110
  '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?'
@@ -399,16 +399,16 @@ function isSeparatorAtPos(value, index) {
399
399
  }
400
400
  const code = value.charCodeAt(index);
401
401
  switch (code) {
402
- case 95 /* Underline */:
403
- case 45 /* Dash */:
404
- case 46 /* Period */:
405
- case 32 /* Space */:
406
- case 47 /* Slash */:
407
- case 92 /* Backslash */:
408
- case 39 /* SingleQuote */:
409
- case 34 /* DoubleQuote */:
410
- case 58 /* Colon */:
411
- case 36 /* DollarSign */:
402
+ case 95 /* CharCode.Underline */:
403
+ case 45 /* CharCode.Dash */:
404
+ case 46 /* CharCode.Period */:
405
+ case 32 /* CharCode.Space */:
406
+ case 47 /* CharCode.Slash */:
407
+ case 92 /* CharCode.Backslash */:
408
+ case 39 /* CharCode.SingleQuote */:
409
+ case 34 /* CharCode.DoubleQuote */:
410
+ case 58 /* CharCode.Colon */:
411
+ case 36 /* CharCode.DollarSign */:
412
412
  return true;
413
413
  default:
414
414
  return false;
@@ -421,8 +421,8 @@ function isWhitespaceAtPos(value, index) {
421
421
  const code = value.charCodeAt(index);
422
422
  switch (code) {
423
423
  // istanbul ignore next
424
- case 32 /* Space */:
425
- case 9 /* Tab */:
424
+ case 32 /* CharCode.Space */:
425
+ case 9 /* CharCode.Tab */:
426
426
  return true;
427
427
  default:
428
428
  return false;
@@ -492,30 +492,30 @@ function fuzzyScore(pattern, patternLow, patternStart, word, wordLow, wordStart,
492
492
  // left or diag
493
493
  if (left > diag) {
494
494
  _table[row][column] = left;
495
- _arrows[row][column] = 4 /* Left */;
495
+ _arrows[row][column] = 4 /* Arrow.Left */;
496
496
  }
497
497
  else if (left === diag) {
498
498
  _table[row][column] = left;
499
- _arrows[row][column] = 4 /* Left */ | 2 /* Diag */;
499
+ _arrows[row][column] = 4 /* Arrow.Left */ | 2 /* Arrow.Diag */;
500
500
  }
501
501
  else {
502
502
  _table[row][column] = diag;
503
- _arrows[row][column] = 2 /* Diag */;
503
+ _arrows[row][column] = 2 /* Arrow.Diag */;
504
504
  }
505
505
  }
506
506
  else {
507
507
  // top or diag
508
508
  if (top > diag) {
509
509
  _table[row][column] = top;
510
- _arrows[row][column] = 1 /* Top */;
510
+ _arrows[row][column] = 1 /* Arrow.Top */;
511
511
  }
512
512
  else if (top === diag) {
513
513
  _table[row][column] = top;
514
- _arrows[row][column] = 1 /* Top */ | 2 /* Diag */;
514
+ _arrows[row][column] = 1 /* Arrow.Top */ | 2 /* Arrow.Diag */;
515
515
  }
516
516
  else {
517
517
  _table[row][column] = diag;
518
- _arrows[row][column] = 2 /* Diag */;
518
+ _arrows[row][column] = 2 /* Arrow.Diag */;
519
519
  }
520
520
  }
521
521
  }
@@ -587,7 +587,7 @@ function _findAllMatches2(row, column, total, matches, lastMatched) {
587
587
  while (row > 0 && column > 0) {
588
588
  const score = _scores[row][column];
589
589
  const arrow = _arrows[row][column];
590
- if (arrow === 4 /* Left */) {
590
+ if (arrow === 4 /* Arrow.Left */) {
591
591
  // left -> no match, skip a word character
592
592
  column -= 1;
593
593
  if (lastMatched) {
@@ -601,8 +601,8 @@ function _findAllMatches2(row, column, total, matches, lastMatched) {
601
601
  }
602
602
  else {
603
603
  /* istanbul ignore else */
604
- if (arrow & 2 /* Diag */) {
605
- if (arrow & 4 /* Left */) {
604
+ if (arrow & 2 /* Arrow.Diag */) {
605
+ if (arrow & 4 /* Arrow.Left */) {
606
606
  // left
607
607
  _findAllMatches2(row, column - 1, matches !== 0 ? total - 1 : total, // gap penalty after first match
608
608
  matches, lastMatched);
@@ -1 +1 @@
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
+ {"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"]}
@@ -33,44 +33,42 @@ class LinkedMap {
33
33
  return this._size;
34
34
  }
35
35
  get first() {
36
- var _b;
37
- return (_b = this._head) === null || _b === void 0 ? void 0 : _b.value;
36
+ return this._head?.value;
38
37
  }
39
38
  get last() {
40
- var _b;
41
- return (_b = this._tail) === null || _b === void 0 ? void 0 : _b.value;
39
+ return this._tail?.value;
42
40
  }
43
41
  has(key) {
44
42
  return this._map.has(key);
45
43
  }
46
- get(key, touch = 0 /* None */) {
44
+ get(key, touch = 0 /* Touch.None */) {
47
45
  const item = this._map.get(key);
48
46
  if (!item) {
49
47
  return undefined;
50
48
  }
51
- if (touch !== 0 /* None */) {
49
+ if (touch !== 0 /* Touch.None */) {
52
50
  this.touch(item, touch);
53
51
  }
54
52
  return item.value;
55
53
  }
56
- set(key, value, touch = 0 /* None */) {
54
+ set(key, value, touch = 0 /* Touch.None */) {
57
55
  let item = this._map.get(key);
58
56
  if (item) {
59
57
  item.value = value;
60
- if (touch !== 0 /* None */) {
58
+ if (touch !== 0 /* Touch.None */) {
61
59
  this.touch(item, touch);
62
60
  }
63
61
  }
64
62
  else {
65
63
  item = { key, value, next: undefined, previous: undefined };
66
64
  switch (touch) {
67
- case 0 /* None */:
65
+ case 0 /* Touch.None */:
68
66
  this.addItemLast(item);
69
67
  break;
70
- case 1 /* AsOld */:
68
+ case 1 /* Touch.AsOld */:
71
69
  this.addItemFirst(item);
72
70
  break;
73
- case 2 /* AsNew */:
71
+ case 2 /* Touch.AsNew */:
74
72
  this.addItemLast(item);
75
73
  break;
76
74
  default:
@@ -292,10 +290,10 @@ class LinkedMap {
292
290
  if (!this._head || !this._tail) {
293
291
  throw new Error("Invalid list");
294
292
  }
295
- if ((touch !== 1 /* AsOld */ && touch !== 2 /* AsNew */)) {
293
+ if ((touch !== 1 /* Touch.AsOld */ && touch !== 2 /* Touch.AsNew */)) {
296
294
  return;
297
295
  }
298
- if (touch === 1 /* AsOld */) {
296
+ if (touch === 1 /* Touch.AsOld */) {
299
297
  if (item === this._head) {
300
298
  return;
301
299
  }
@@ -320,7 +318,7 @@ class LinkedMap {
320
318
  this._head = item;
321
319
  this._state++;
322
320
  }
323
- else if (touch === 2 /* AsNew */) {
321
+ else if (touch === 2 /* Touch.AsNew */) {
324
322
  if (item === this._tail) {
325
323
  return;
326
324
  }
@@ -384,14 +382,14 @@ class LRUCache extends LinkedMap {
384
382
  this._ratio = Math.min(Math.max(0, ratio), 1);
385
383
  this.checkTrim();
386
384
  }
387
- get(key, touch = 2 /* AsNew */) {
385
+ get(key, touch = 2 /* Touch.AsNew */) {
388
386
  return super.get(key, touch);
389
387
  }
390
388
  peek(key) {
391
- return super.get(key, 0 /* None */);
389
+ return super.get(key, 0 /* Touch.None */);
392
390
  }
393
391
  set(key, value) {
394
- super.set(key, value, 2 /* AsNew */);
392
+ super.set(key, value, 2 /* Touch.AsNew */);
395
393
  this.checkTrim();
396
394
  return this;
397
395
  }