@aquera/nile-elements 0.1.70-beta-1.0 → 0.1.70-beta-1.2

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 (297) hide show
  1. package/README.md +15 -0
  2. package/demo/index.html +248 -332
  3. package/dist/{fixture-28d63bc4.cjs.js → fixture-5b79f853.cjs.js} +2 -2
  4. package/dist/{fixture-28d63bc4.cjs.js.map → fixture-5b79f853.cjs.js.map} +1 -1
  5. package/dist/{fixture-ba65eb22.esm.js → fixture-90b199c4.esm.js} +1 -1
  6. package/dist/{fixture-78a015b8.esm.js → fixture-cf7bfcf5.esm.js} +1 -1
  7. package/dist/{fixture-324a7ef9.cjs.js → fixture-dbd66009.cjs.js} +2 -2
  8. package/dist/{fixture-324a7ef9.cjs.js.map → fixture-dbd66009.cjs.js.map} +1 -1
  9. package/dist/index.cjs.js +1 -1
  10. package/dist/index.esm.js +1 -1
  11. package/dist/index.js +103 -118
  12. package/dist/internal/resizable-table-helper.cjs.js +1 -1
  13. package/dist/internal/resizable-table-helper.cjs.js.map +1 -1
  14. package/dist/internal/resizable-table-helper.esm.js +1 -1
  15. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  16. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  17. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  18. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  19. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  20. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  21. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  22. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  23. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  24. package/dist/nile-button/nile-button.test.esm.js +1 -1
  25. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  26. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  27. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  28. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  29. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  30. package/dist/nile-card/nile-card.test.esm.js +1 -1
  31. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  32. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  33. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  34. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  35. package/dist/nile-code-editor/extensionSetup.cjs.js +3 -3
  36. package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
  37. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  38. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  39. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  40. package/dist/nile-code-editor/nile-code-editor.esm.js +2 -2
  41. package/dist/nile-code-editor/theme.cjs.js +1 -1
  42. package/dist/nile-code-editor/theme.cjs.js.map +1 -1
  43. package/dist/nile-code-editor/theme.esm.js +1 -1
  44. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  45. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  46. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  47. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  48. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  49. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  50. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  51. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  52. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  53. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  54. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  55. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  56. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  57. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  58. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  59. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  60. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  61. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  62. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  63. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  64. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  65. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  66. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  67. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  68. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  69. package/dist/nile-input/nile-input.test.esm.js +1 -1
  70. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  71. package/dist/nile-link/nile-link.test.esm.js +1 -1
  72. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  73. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  74. package/dist/nile-option/nile-option.cjs.js +1 -1
  75. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  76. package/dist/nile-option/nile-option.esm.js +2 -2
  77. package/dist/nile-option-group/nile-option-group.cjs.js +1 -1
  78. package/dist/nile-option-group/nile-option-group.cjs.js.map +1 -1
  79. package/dist/nile-option-group/nile-option-group.esm.js +5 -5
  80. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  81. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  82. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  83. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  84. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  85. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  86. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  87. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  88. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  89. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  90. package/dist/nile-select/nile-select.cjs.js +1 -1
  91. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  92. package/dist/nile-select/nile-select.esm.js +9 -9
  93. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  94. package/dist/nile-select/nile-select.test.esm.js +1 -1
  95. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  96. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  97. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  98. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  99. package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
  100. package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
  101. package/dist/nile-table-body/nile-table-body.esm.js +3 -2
  102. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
  103. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
  104. package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +1 -1
  105. package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
  106. package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
  107. package/dist/nile-table-header-item/nile-table-header-item.esm.js +2 -2
  108. package/dist/nile-table-row/nile-table-row.cjs.js +1 -1
  109. package/dist/nile-table-row/nile-table-row.cjs.js.map +1 -1
  110. package/dist/nile-table-row/nile-table-row.css.cjs.js +1 -1
  111. package/dist/nile-table-row/nile-table-row.css.cjs.js.map +1 -1
  112. package/dist/nile-table-row/nile-table-row.css.esm.js +0 -47
  113. package/dist/nile-table-row/nile-table-row.esm.js +6 -33
  114. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  115. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  116. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  117. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  118. package/dist/src/index.d.ts +1 -0
  119. package/dist/src/index.js +1 -0
  120. package/dist/src/index.js.map +1 -1
  121. package/dist/src/internal/resizable-helper.d.ts +59 -0
  122. package/dist/src/internal/resizable-helper.js +115 -0
  123. package/dist/src/internal/resizable-helper.js.map +1 -0
  124. package/dist/src/internal/resizable-styles.d.ts +16 -0
  125. package/dist/src/internal/resizable-styles.js +144 -0
  126. package/dist/src/internal/resizable-styles.js.map +1 -0
  127. package/dist/src/internal/resizable-table-helper.d.ts +5 -0
  128. package/dist/src/internal/resizable-table-helper.js +27 -4
  129. package/dist/src/internal/resizable-table-helper.js.map +1 -1
  130. package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +17 -0
  131. package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +310 -0
  132. package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +34 -0
  133. package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +31 -0
  134. package/dist/src/nile-code-editor/nile-code-editor.d.ts +2 -0
  135. package/dist/src/nile-code-editor/nile-code-editor.js +22 -5
  136. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  137. package/dist/src/nile-code-editor/theme.d.ts +9 -0
  138. package/dist/src/nile-code-editor/theme.js +9 -0
  139. package/dist/src/nile-code-editor/theme.js.map +1 -1
  140. package/dist/src/nile-grid/data-processor.d.ts +37 -0
  141. package/dist/src/nile-grid/data-processor.js +122 -0
  142. package/dist/src/nile-grid/data-processor.js.map +1 -0
  143. package/dist/src/nile-grid/event-handlers.d.ts +35 -0
  144. package/dist/src/nile-grid/event-handlers.js +158 -0
  145. package/dist/src/nile-grid/event-handlers.js.map +1 -0
  146. package/dist/src/nile-grid/index.d.ts +5 -0
  147. package/dist/src/nile-grid/index.js +6 -0
  148. package/dist/src/nile-grid/index.js.map +1 -0
  149. package/dist/src/nile-grid/nile-grid.css.d.ts +1 -0
  150. package/dist/src/nile-grid/nile-grid.css.js +120 -0
  151. package/dist/src/nile-grid/nile-grid.css.js.map +1 -0
  152. package/dist/src/nile-grid/nile-grid.d.ts +39 -0
  153. package/dist/src/nile-grid/nile-grid.js +182 -0
  154. package/dist/src/nile-grid/nile-grid.js.map +1 -0
  155. package/dist/src/nile-grid/renderer.d.ts +8 -0
  156. package/dist/src/nile-grid/renderer.js +78 -0
  157. package/dist/src/nile-grid/renderer.js.map +1 -0
  158. package/dist/src/nile-grid/resize-handler.d.ts +4 -0
  159. package/dist/src/nile-grid/resize-handler.js +36 -0
  160. package/dist/src/nile-grid/resize-handler.js.map +1 -0
  161. package/dist/src/nile-grid/types.d.ts +32 -0
  162. package/dist/src/nile-grid/types.js +2 -0
  163. package/dist/src/nile-grid/types.js.map +1 -0
  164. package/dist/src/nile-grid/utils.d.ts +4 -0
  165. package/dist/src/nile-grid/utils.js +32 -0
  166. package/dist/src/nile-grid/utils.js.map +1 -0
  167. package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +47 -0
  168. package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +16 -0
  169. package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +75 -0
  170. package/dist/src/nile-option/nile-option.d.ts +1 -0
  171. package/dist/src/nile-option/nile-option.js +5 -0
  172. package/dist/src/nile-option/nile-option.js.map +1 -1
  173. package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +22 -0
  174. package/dist/src/nile-select/nile-select.d.ts +6 -0
  175. package/dist/src/nile-select/nile-select.js +59 -1
  176. package/dist/src/nile-select/nile-select.js.map +1 -1
  177. package/dist/src/nile-table-body/nile-table-body.d.ts +1 -3
  178. package/dist/src/nile-table-body/nile-table-body.js +3 -31
  179. package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
  180. package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +9 -0
  181. package/dist/src/nile-table-body/virtual-scroll-helper.js +24 -0
  182. package/dist/src/nile-table-body/virtual-scroll-helper.js.map +1 -0
  183. package/dist/src/nile-table-cell-item/nile-table-cell-item.d.ts +2 -1
  184. package/dist/src/nile-table-cell-item/nile-table-cell-item.js +12 -1
  185. package/dist/src/nile-table-cell-item/nile-table-cell-item.js.map +1 -1
  186. package/dist/src/nile-table-header-item/nile-table-header-item.d.ts +2 -1
  187. package/dist/src/nile-table-header-item/nile-table-header-item.js +12 -1
  188. package/dist/src/nile-table-header-item/nile-table-header-item.js.map +1 -1
  189. package/dist/src/nile-table-row/nile-table-row.css.js +0 -47
  190. package/dist/src/nile-table-row/nile-table-row.css.js.map +1 -1
  191. package/dist/src/nile-table-row/nile-table-row.d.ts +1 -10
  192. package/dist/src/nile-table-row/nile-table-row.js +9 -88
  193. package/dist/src/nile-table-row/nile-table-row.js.map +1 -1
  194. package/dist/src/nile-virtual-table-body/index.d.ts +2 -0
  195. package/dist/src/nile-virtual-table-body/index.js +3 -0
  196. package/dist/src/nile-virtual-table-body/index.js.map +1 -0
  197. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +1 -0
  198. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +44 -0
  199. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +1 -0
  200. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +50 -0
  201. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +135 -0
  202. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +1 -0
  203. package/dist/src/nile-virtual-table-body/renderer.d.ts +16 -0
  204. package/dist/src/nile-virtual-table-body/renderer.js +49 -0
  205. package/dist/src/nile-virtual-table-body/renderer.js.map +1 -0
  206. package/dist/tsconfig.tsbuildinfo +1 -1
  207. package/package.json +3 -2
  208. package/src/index.ts +2 -1
  209. package/src/internal/resizable-table-helper.ts +31 -8
  210. package/src/nile-code-editor/nile-code-editor.ts +25 -6
  211. package/src/nile-code-editor/theme.ts +11 -1
  212. package/src/nile-option/nile-option.ts +3 -0
  213. package/src/nile-option-group/index.ts +1 -0
  214. package/src/nile-option-group/nile-option-group.css.ts +60 -0
  215. package/src/nile-option-group/nile-option-group.interface.ts +25 -0
  216. package/src/nile-option-group/nile-option-group.ts +84 -0
  217. package/src/nile-select/nile-select.interface.ts +5 -0
  218. package/src/nile-select/nile-select.ts +74 -2
  219. package/src/nile-table-body/nile-table-body.ts +3 -27
  220. package/src/nile-table-cell-item/nile-table-cell-item.ts +15 -1
  221. package/src/nile-table-header-item/nile-table-header-item.ts +15 -1
  222. package/src/nile-table-row/nile-table-row.css.ts +0 -47
  223. package/src/nile-table-row/nile-table-row.ts +5 -87
  224. package/vscode-html-custom-data.json +37 -29
  225. package/dist/aquera-nile-elements-0.1.57-beta-2.0.tgz +0 -0
  226. package/dist/axe.min-2b379f29.cjs.js +0 -12
  227. package/dist/axe.min-2b379f29.cjs.js.map +0 -1
  228. package/dist/axe.min-c2cd8733.esm.js +0 -12
  229. package/dist/fixture-add72f26.esm.js +0 -569
  230. package/dist/fixture-c1bd203f.cjs.js +0 -395
  231. package/dist/fixture-c1bd203f.cjs.js.map +0 -1
  232. package/dist/fixture-cb376a7f.cjs.js +0 -395
  233. package/dist/fixture-cb376a7f.cjs.js.map +0 -1
  234. package/dist/fixture-f2693d97.esm.js +0 -569
  235. package/dist/src/internal/expandable-row-helper.d.ts +0 -13
  236. package/dist/src/internal/expandable-row-helper.js +0 -37
  237. package/dist/src/internal/expandable-row-helper.js.map +0 -1
  238. package/dist/src/internal/expandable-row-styles.d.ts +0 -11
  239. package/dist/src/internal/expandable-row-styles.js +0 -27
  240. package/dist/src/internal/expandable-row-styles.js.map +0 -1
  241. package/dist/src/internal/table-expandable-helper.d.ts +0 -0
  242. package/dist/src/internal/table-expandable-helper.js +0 -2
  243. package/dist/src/internal/table-expandable-helper.js.map +0 -1
  244. package/dist/src/internal/table-row-expandable-helper.d.ts +0 -12
  245. package/dist/src/internal/table-row-expandable-helper.js +0 -32
  246. package/dist/src/internal/table-row-expandable-helper.js.map +0 -1
  247. package/dist/src/internal/table-row-expandable-styles.d.ts +0 -11
  248. package/dist/src/internal/table-row-expandable-styles.js +0 -12
  249. package/dist/src/internal/table-row-expandable-styles.js.map +0 -1
  250. package/dist/src/nile-group-header/index.d.ts +0 -1
  251. package/dist/src/nile-group-header/index.js +0 -2
  252. package/dist/src/nile-group-header/index.js.map +0 -1
  253. package/dist/src/nile-group-header/nile-group-header.css.d.ts +0 -12
  254. package/dist/src/nile-group-header/nile-group-header.css.js +0 -30
  255. package/dist/src/nile-group-header/nile-group-header.css.js.map +0 -1
  256. package/dist/src/nile-group-header/nile-group-header.d.ts +0 -19
  257. package/dist/src/nile-group-header/nile-group-header.js +0 -36
  258. package/dist/src/nile-group-header/nile-group-header.js.map +0 -1
  259. package/dist/src/nile-group-header/nile-option-header.css.d.ts +0 -12
  260. package/dist/src/nile-group-header/nile-option-header.css.js +0 -30
  261. package/dist/src/nile-group-header/nile-option-header.css.js.map +0 -1
  262. package/dist/src/nile-group-header/nile-option-header.d.ts +0 -33
  263. package/dist/src/nile-group-header/nile-option-header.js +0 -51
  264. package/dist/src/nile-group-header/nile-option-header.js.map +0 -1
  265. package/dist/src/nile-option-header/index.d.ts +0 -1
  266. package/dist/src/nile-option-header/index.js +0 -2
  267. package/dist/src/nile-option-header/index.js.map +0 -1
  268. package/dist/src/nile-option-header/nile-option-header.css.d.ts +0 -12
  269. package/dist/src/nile-option-header/nile-option-header.css.js +0 -30
  270. package/dist/src/nile-option-header/nile-option-header.css.js.map +0 -1
  271. package/dist/src/nile-option-header/nile-option-header.d.ts +0 -33
  272. package/dist/src/nile-option-header/nile-option-header.js +0 -51
  273. package/dist/src/nile-option-header/nile-option-header.js.map +0 -1
  274. package/dist/src/nile-table-row/TableRowExpandableHelper.d.ts +0 -9
  275. package/dist/src/nile-table-row/TableRowExpandableHelper.js +0 -26
  276. package/dist/src/nile-table-row/TableRowExpandableHelper.js.map +0 -1
  277. package/dist/src/nile-table-row/helper.ts.d.ts +0 -37
  278. package/dist/src/nile-table-row/helper.ts.js +0 -105
  279. package/dist/src/nile-table-row/helper.ts.js.map +0 -1
  280. package/dist/src/nile-table-row/nile-table-row-expandable.d.ts +0 -37
  281. package/dist/src/nile-table-row/nile-table-row-expandable.js +0 -105
  282. package/dist/src/nile-table-row/nile-table-row-expandable.js.map +0 -1
  283. package/dist/src/nile-table-row-expandable/index.d.ts +0 -1
  284. package/dist/src/nile-table-row-expandable/index.js +0 -2
  285. package/dist/src/nile-table-row-expandable/index.js.map +0 -1
  286. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.d.ts +0 -12
  287. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.js +0 -17
  288. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.js.map +0 -1
  289. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.d.ts +0 -37
  290. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.js +0 -103
  291. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.js.map +0 -1
  292. package/dist/src/nile-tooltip/nile-tooltip-utils.d.ts +0 -18
  293. package/dist/src/nile-tooltip/nile-tooltip-utils.js +0 -216
  294. package/dist/src/nile-tooltip/nile-tooltip-utils.js.map +0 -1
  295. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +0 -1
  296. package/dist/src/nile-tooltip/nile-tooltip.test.js +0 -148
  297. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nile-code-editor.js","sourceRoot":"","sources":["../../../src/nile-code-editor/nile-code-editor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n CSSResultArray,\n TemplateResult,\n PropertyValueMap,\n} from 'lit';\n\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-code-editor.css';\nimport { EditorView } from 'codemirror';\nimport { ViewUpdate, placeholder } from '@codemirror/view';\nimport { \n Compartment,\n EditorState,\n Extension\n} from '@codemirror/state';\nimport { StyleSpec } from 'style-mod';\nimport {\n syntaxHighlighting,\n defaultHighlightStyle,\n} from '@codemirror/language';\n\nimport { lineNumbers } from '@codemirror/view';\nimport {\n javascript,\n javascriptLanguage,\n} from '@codemirror/lang-javascript';\nimport { sql } from '@codemirror/lang-sql';\nimport { json } from '@codemirror/lang-json';\nimport { html as htmlLang } from '@codemirror/lang-html';\nimport { autocompletion,closeCompletion,CompletionContext,CompletionResult, completionStatus } from '@codemirror/autocomplete';\nimport NileElement from '../internal/nile-element';\nimport { basicSetup } from './extensionSetup';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { Theme as DefaultTheme, customisedThemeCss } from './theme';\nimport { keymap } from '@codemirror/view';\nimport { acceptCompletion } from '@codemirror/autocomplete';\n\n// Choose the appropriate mode for your use case\n\n/**\n * Nile icon component.\n *\n * @tag nile-code-editor\n *\n */\n@customElement('nile-code-editor')\nexport class NileCodeEditor extends NileElement {\n \n @query('.code__editor__container') codeEditor: HTMLInputElement;\n\n @property({ type: String, reflect: true , attribute: true }) value = '';\n\n @property({ type: String, reflect: true , attribute: true }) expandIcon = \"expand-2\";\n\n @property({ type: String, reflect: true , attribute: true }) placeholder = \"\";\n\n @property({ type: Object, reflect: true , attribute: true }) customAutoCompletions: object | any = {};\n\n @property({ type: Array, reflect: true , attribute: true }) customCompletionsPaths: string[] = [];\n\n @property({ type: String, reflect: true , attribute: true}) language: 'javascript' | 'sql' | 'json' | 'html' = 'javascript';\n\n @property({ type: String, reflect: true , attribute: 'error-message' }) errorMessage: string = '';\n\n @property({ type: Boolean, reflect: true , attribute: true }) error: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableSearch: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) noborder: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) multiline: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableFoldGutters: boolean = false;\n \n @property({ type: Boolean, reflect: true , attribute: true }) allowVariableInCustomSuggestion: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbers: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: false }) disableSyntaxHighlighting: boolean = false;\n\n @property({ type: Object, attribute: false }) customThemeCSS: object | null = customisedThemeCss;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbersMultiline: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) hasScroller: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) expandable: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true}) readonly: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) debounce: boolean = false;\n\n @property({ type: Number, reflect: true , attribute: true}) debounceTimeout: number = 200;\n\n @property({ type: Boolean, reflect: true , attribute: true}) aboveCursor: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) tabCompletion: boolean = true;\n\n public view: EditorView;\n public viewState:EditorState;\n private timeOut: any = null;\n\n // Compartments for initialiazing and switching extensions\n private lineNumbersComp = new Compartment();\n private restrictSingleLineComp = new Compartment();\n private readOnlyComp = new Compartment();\n private customCompletionComp = new Compartment();\n private placeholderComp = new Compartment();\n private defaultSyntaxHighlightingComp = new Compartment();\n private themeComp = new Compartment();\n\n private isSpacePressed:boolean = false;\n /**\n * The styles for CodeEditor\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.emit('nile-init',undefined,false);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.view.destroy()\n this.emit('nile-destroy',undefined,false);\n }\n\n firstUpdated() {\n this.createNewView()\n this.emit('nile-after-init',{ \n codeMirrorInstance: this.view, \n createNewView: this.createNewView, \n insertAtCursor: this.insertBetweenCode \n }, false )\n }\n\n getTabCompletionKeymap() {\n return this.tabCompletion\n ? keymap.of([\n {\n key: 'Tab',\n run: acceptCompletion,\n }\n ])\n : [];\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void{\n super.updated(changedProperties);\n if (changedProperties.has('value') && this.view.state.doc.toString()!=this.value) {\n // Editor has already been initialized, update its state\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('multiline')) {\n this.view.dispatch({\n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())\n ],\n })\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('readonly')) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('placeholder')) {\n this.view.dispatch({ \n effects: [\n this.placeholderComp.reconfigure(this.getPlaceholderExtension()),\n ]\n })\n }\n if (changedProperties.has('lineNumbers') || changedProperties.has('lineNumbersMultiline')) {\n this.view.dispatch({ \n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n ]\n })\n }\n if(changedProperties.has('customAutoCompletions') || changedProperties.has('customCompletionsPaths')){\n this.view.dispatch({ \n effects: [\n this.customCompletionComp.reconfigure(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }))\n ]\n })\n }\n if(changedProperties.has('disableSyntaxHighlighting')){\n this.view.dispatch({ \n effects: [\n this.defaultSyntaxHighlightingComp.reconfigure(this.getDefaultSyntaxHighlightingExtension())\n ]\n })\n }\n if(changedProperties.has('customThemeCSS')){\n this.view.dispatch({ \n effects: [\n this.themeComp.reconfigure(this.getCustomThemeExtension())\n ]\n })\n }\n }\n\n public render(): TemplateResult {\n const hasErrorMessage = !!this.errorMessage;\n const hasError = !!this.error;\n const noborder = !!this.noborder;\n const noScrollbar = !this.hasScroller\n return html`<div\n part=\"code-editor-base\"\n class=${classMap({\n 'code__editor__container': true,\n 'noborder': noborder,\n 'error': hasError || hasErrorMessage,\n 'code__editor__singleline': !this.multiline,\n 'no-scroller': noScrollbar\n })}\n >\n ${this.expandable\n ? html` \n <div @click=\"${(e: CustomEvent) => this.emit('nile-expand')}\" class=\"expand__icon__container\">\n <nile-icon\n name=\"${this.expandIcon}\"\n size=\"16\"\n color=\"black\"\n ></nile-icon>\n </div>`\n : ''}\n </div>\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}`;\n }\n\n createNewView(emitEvent=true){\n if(this.view) this.view.destroy();\n this.createState()\n this.view = new EditorView({\n state: this.viewState,\n parent: this.codeEditor\n });\n\n this.view.dom.addEventListener('keydown', (e: KeyboardEvent) => {\n this.checkForSpaceKey(e);\n this.handleEscapeKey(e);\n }, true);\n if (emitEvent) this.emit('nile-after-update', { createNewView: this.createNewView, codeMirrorInstance: this.view, }, false );\n }\n\n checkForSpaceKey(e: KeyboardEvent) {\n if (e.code === 'Space' && !e.ctrlKey) {\n this.isSpacePressed = true;\n } else {\n this.isSpacePressed = false;\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.view && completionStatus(this.view.state) !== null) {\n e.stopPropagation(); \n e.preventDefault(); \n closeCompletion(this.view);\n }\n }\n\n createState(){\n const lineNumbersExtension = this.lineNumbersComp.of(this.getLineNumbersExension());\n const readOnlyExtension = this.readOnlyComp.of(this.getReadOnlyExtension());\n const restrictSingleLineExtension = this.restrictSingleLineComp.of(this.getSingleLineExtension())\n const placeholderExtension = this.placeholderComp.of(this.getPlaceholderExtension())\n const customThemeExtension=this.themeComp.of(this.getCustomThemeExtension());\n const defaultSyntaxHighlightingExtension = this.defaultSyntaxHighlightingComp.of(this.getDefaultSyntaxHighlightingExtension());\n const language = this.getLanguageExtension()\n const customAutoCompletions = this.customCompletionComp.of(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }));\n\n this.viewState = EditorState.create({\n doc: !this.multiline ? convertToSingleLine(this.value) : this.value,\n extensions: [\n basicSetup({\n highlightActiveLine: false,\n foldGutter: this.enableFoldGutters,\n enableSearch:this.enableSearch\n }),\n lineNumbersExtension,\n readOnlyExtension,\n restrictSingleLineExtension,\n customAutoCompletions,\n placeholderExtension,\n defaultSyntaxHighlightingExtension,\n autocompletion({aboveCursor: this.aboveCursor}),\n language,\n customThemeExtension,\n this.getTabCompletionKeymap(),\n EditorView.updateListener.of((v: ViewUpdate) => {\n if (v.docChanged) {\n this.debounce ? this.emitAfterTimeout({ value: this.view.state.doc.toString() }) : this.emit('nile-change', { value: this.view.state.doc.toString() })\n }\n }),\n EditorView.domEventHandlers({\n focus: () => this.dispatchEvent(new Event('nile-focus')),\n blur: () => this.dispatchEvent(new Event('nile-blur')),\n }),\n ],\n });\n return this.viewState\n }\n /**\n * Custom autocomplete handler for code editor suggestions\n * @param context CompletionContext from CodeMirror\n * @returns CompletionResult with suggestions or null if no suggestions\n */\n customAutocomplete = (context: CompletionContext): CompletionResult | null => {\n // Getting the valid last line, last text from the code editor\n const text = context.state.doc.sliceString(0, context.pos);\n const lastWord = text.split('\\n').at(-1)?.split(' ').at(-1) || '';\n const [textBeforeCursor, baseTextAfterSeperation] = splitStringAtLastSeparator(lastWord);\n \n return this.getNestedSuggestions(context, textBeforeCursor, baseTextAfterSeperation) \n || this.getTopLevelSuggestions(context, textBeforeCursor);\n };\n\n /**\n * Gets nested property suggestions based on the current path\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @param baseTextAfterSeperation Text after the last separator (. or [)\n * @returns CompletionResult with nested suggestions or null\n */\n getNestedSuggestions(context: CompletionContext, textBeforeCursor: string, baseTextAfterSeperation: string) {\n // Return early if not a valid path or not ending with . or [\n if (!isValidPath(textBeforeCursor) || !['.', '['].includes(textBeforeCursor.at(-1)!)) {\n return null;\n }\n\n const path = parsePath(textBeforeCursor);\n if (!path) return null;\n\n const textAfterSeperation = baseTextAfterSeperation.replace(/[\"'\\[]/g, '');\n const isInString = textAfterSeperation !== baseTextAfterSeperation;\n const isBracket = textBeforeCursor.at(-1) === '[';\n\n // Return null if we're in a string after a dot\n if (textBeforeCursor.at(-1) === '.' && isInString) return null;\n\n // Get nested properties and filter by text after separation if it exists\n let resolved = resolveNestedProperties(this.customAutoCompletions, path);\n if (!resolved || typeof resolved !== 'object') return null;\n\n if (textAfterSeperation) {\n resolved = Object.fromEntries(\n Object.entries(resolved).filter(([key]) => \n key.toLowerCase().startsWith(textAfterSeperation.toLowerCase())\n )\n );\n }\n\n return {\n from: context.pos - textAfterSeperation.length,\n options: Object.keys(resolved).map(key => ({\n label: key,\n type: 'property',\n info: `Key of ${path[path.length - 1]}`,\n apply: !this.allowVariableInCustomSuggestion && (isBracket && !isInString) \n ? `'${key}'` \n : key,\n boost: 999\n }))\n };\n }\n\n /**\n * Gets top level suggestions based on custom completions and paths\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @returns CompletionResult with top level suggestions or null\n */\n getTopLevelSuggestions(context: CompletionContext,textBeforeCursor:string){\n const baseMatch: any = textBeforeCursor.match(/([a-zA-Z_$][\\w$]*)$/);\n \n if (!baseMatch) {\n const trimmedText = textBeforeCursor.trim();\n if (trimmedText === '' && !this.isSpacePressed) {\n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length\n );\n \n const options = optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }));\n \n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths.forEach(path => {\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n });\n });\n }\n \n return {\n from: context.pos,\n options: options\n };\n }\n return null;\n }\n \n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length && \n key.toLowerCase().startsWith(textBeforeCursor.toLowerCase())\n );\n \n const options=optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }))\n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths\n .filter(path=>path.toLocaleLowerCase().includes(textBeforeCursor.toLocaleLowerCase()))\n .forEach(path=>{\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n })\n })\n }\n return {\n from: context.pos - baseMatch[1].length,\n options: options\n }\n }\n\n emitAfterTimeout(value:any){\n if(this.timeOut) clearTimeout(this.timeOut);\n this.timeOut=setTimeout(()=> this.emit('nile-change', value, false), this.debounceTimeout)\n }\n \n public focusAtPosition(pos: number=this.view.state.doc.toString().length): void {\n if (this.view) {\n this.view.dispatch({\n selection: { anchor: pos },\n });\n this.view.focus();\n }\n }\n\n public insertBetweenCode=(text: string) => {\n const transaction = this.view.state.changeByRange(range => {\n const { from, to } = range;\n return { changes: { from:from, to, insert: text }, range };\n });\n this.view.dispatch(transaction);\n }\n\n singleLineMultiLineToggle() {\n this.view.dispatch({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: !this.multiline\n ? convertToSingleLine(this.value)\n : this.value,\n },\n });\n }\n\n //EXTENSION CONFIGURATIONS\n getLineNumbersExension() {\n return (!this.multiline && this.lineNumbers) || (this.multiline && this.lineNumbersMultiline) ? lineNumbers() : [];\n }\n \n getLanguageExtension():Extension{\n switch(this.language){\n case 'sql':\n return sql();\n case 'json':\n return json();\n case 'html':\n return htmlLang();\n default:\n return javascript(); \n }\n }\n\n getReadOnlyExtension() {\n return this.readonly ? EditorState.readOnly.of(true) : [];\n }\n\n getSingleLineExtension() {\n return !this.multiline ? EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n ) : [];\n }\n\n getPlaceholderExtension(){\n return this.placeholder ? placeholder(this.placeholder) : [];\n }\n \n getDefaultSyntaxHighlightingExtension(){\n return !this.disableSyntaxHighlighting ? syntaxHighlighting(defaultHighlightStyle, { fallback: true }):[]\n }\n\n getCustomThemeExtension(): Extension {\n if (this.customThemeCSS) {\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss)];\n }\n return [EditorView.theme(customisedThemeCss), EditorView.theme(DefaultTheme)];\n }\n\n restrictSingleLine() {\n return EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n );\n }\n /* #endregion */\n}\n\nexport default NileCodeEditor;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-code-editor': NileCodeEditor;\n }\n}\n\n/**\n * Parses a string path into an array of keys representing nested object access\n * @param text The path string to parse (e.g. \"foo.bar[0].baz\")\n * @returns Array of keys if valid path, null otherwise\n * @example\n * parsePath(\"foo.bar[0]\") // returns [\"foo\", \"bar\", \"0\"]\n * parsePath(\"invalid\") // returns null\n */\nfunction parsePath(text: string) {\n const regex = /([a-zA-Z_$][\\w$]*)(\\[(?:[^\\]]+)\\]|\\.[a-zA-Z_$][\\w$]*)*/g;\n const matches = [...text.matchAll(regex)];\n if (matches.length > 0) {\n const base = matches[0][1]; // The base object name\n const keys = [base];\n // Extract keys from dot or bracket notation\n const pathMatches = text.match(/\\[(.*?)\\]|\\.(\\w+)/g) || [];\n for (const match of pathMatches) {\n if (match.startsWith('[')) {\n keys.push(match.slice(1, -1).replace(/['\"]/g, '')); // Remove brackets and quotes\n } else if (match.startsWith('.')) {\n keys.push(match.slice(1));\n }\n }\n return keys;\n }\n return null;\n};\n\n/**\n * Splits a path string at the last separator (. or [)\n * @param input The path string to split\n * @returns Array containing [path up to last separator, remainder after separator]\n * @example\n * splitStringAtLastSeparator(\"foo.bar[0]\") // returns [\"foo.bar[\", \"0\"]\n */\nfunction splitStringAtLastSeparator(input:string) {\n const lastSeparatorIndex = Math.max(input.lastIndexOf('.'), input.lastIndexOf('['));\n if (lastSeparatorIndex === -1) return [input, ''];\n return [input.slice(0, lastSeparatorIndex + 1), input.slice(lastSeparatorIndex + 1)];\n}\n\n/**\n * Traverses an object using an array of keys to access nested properties\n * @param obj The object to traverse\n * @param keys Array of keys defining the path to the desired property\n * @returns The value at the specified path, or null if path is invalid\n * @example\n * resolveNestedProperties({foo: {bar: 123}}, [\"foo\", \"bar\"]) // returns 123\n */\nfunction resolveNestedProperties (obj:any, keys:any[]){\n return keys.reduce((acc, key) => {\n if (acc && typeof acc === 'object') {\n return acc[key];\n }\n return null;\n }, obj);\n};\n\n/**\n * Validates if a string represents a valid object path format\n * @param path The path string to validate\n * @returns Boolean indicating if path format is valid\n * @example\n * isValidPath(\"foo.bar[0]\") // returns true\n * isValidPath(\"foo..bar\") // returns false\n */\nfunction isValidPath(path: string) {\n // Regex to validate the format of the string\n const regex = /^([a-zA-Z_$][\\w$]*)(\\.[a-zA-Z_$][\\w$]*|\\[\\s*(['\"]?[a-zA-Z0-9_$]*['\"]?)\\s*\\])*([\\.\\[])?$/;\n // Test the string against the regex\n return regex.test(path);\n}\n\n/**\n * Converts multi-line code into a single line by removing line breaks and extra whitespace\n * @param code The code string to convert\n * @returns Single line version of the code\n * @example\n * convertToSingleLine(\"foo\\n bar\") // returns \"foo bar\"\n */\nfunction convertToSingleLine(code: string) {\n if (!code) return '';\n // Remove line breaks and unnecessary whitespace\n return code.replace(/\\s+/g, ' ').trim();\n}\n\n"]}
1
+ {"version":3,"file":"nile-code-editor.js","sourceRoot":"","sources":["../../../src/nile-code-editor/nile-code-editor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n CSSResultArray,\n TemplateResult,\n PropertyValueMap,\n} from 'lit';\n\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-code-editor.css';\nimport { EditorView } from 'codemirror';\nimport { ViewUpdate, placeholder } from '@codemirror/view';\nimport { \n Compartment,\n EditorState,\n Extension\n} from '@codemirror/state';\nimport { StyleSpec } from 'style-mod';\nimport {\n syntaxHighlighting,\n defaultHighlightStyle,\n} from '@codemirror/language';\n\nimport { lineNumbers } from '@codemirror/view';\nimport {\n javascript,\n javascriptLanguage,\n} from '@codemirror/lang-javascript';\nimport { sql } from '@codemirror/lang-sql';\nimport { json } from '@codemirror/lang-json';\nimport { html as htmlLang } from '@codemirror/lang-html';\nimport { autocompletion,acceptCompletion, closeCompletion,CompletionContext,CompletionResult, completionStatus } from '@codemirror/autocomplete';\nimport NileElement from '../internal/nile-element';\nimport { basicSetup } from './extensionSetup';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { Theme as DefaultTheme, customisedThemeCss, fontFamily } from './theme';\nimport { keymap } from '@codemirror/view';\n\n// Choose the appropriate mode for your use case\n\n/**\n * Nile icon component.\n *\n * @tag nile-code-editor\n *\n */\n@customElement('nile-code-editor')\nexport class NileCodeEditor extends NileElement {\n \n @query('.code__editor__container') codeEditor: HTMLInputElement;\n\n @property({ type: String, reflect: true , attribute: true }) value = '';\n\n @property({ type: String, reflect: true , attribute: true }) expandIcon = \"expand-2\";\n\n @property({ type: String, reflect: true , attribute: true }) placeholder = \"\";\n\n @property({ type: Object, reflect: true , attribute: true }) customAutoCompletions: object | any = {};\n\n @property({ type: Array, reflect: true , attribute: true }) customCompletionsPaths: string[] = [];\n\n @property({ type: String, reflect: true , attribute: true}) language: 'javascript' | 'sql' | 'json' | 'html' = 'javascript';\n\n @property({ type: String, reflect: true , attribute: 'error-message' }) errorMessage: string = '';\n\n @property({ type: Boolean, reflect: true , attribute: true }) error: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableSearch: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) noborder: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) multiline: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableFoldGutters: boolean = false;\n \n @property({ type: Boolean, reflect: true , attribute: true }) allowVariableInCustomSuggestion: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbers: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: false }) disableSyntaxHighlighting: boolean = false;\n\n @property({ type: Object, attribute: false }) customThemeCSS: object | null = customisedThemeCss;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbersMultiline: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) hasScroller: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) expandable: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true}) readonly: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) debounce: boolean = false;\n\n @property({ type: Number, reflect: true , attribute: true}) debounceTimeout: number = 200;\n\n @property({ type: Boolean, reflect: true , attribute: true}) aboveCursor: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) tabCompletion: boolean = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) defaultFont: boolean = false;\n\n public view: EditorView;\n public viewState:EditorState;\n private timeOut: any = null;\n\n // Compartments for initialiazing and switching extensions\n private lineNumbersComp = new Compartment();\n private restrictSingleLineComp = new Compartment();\n private readOnlyComp = new Compartment();\n private customCompletionComp = new Compartment();\n private placeholderComp = new Compartment();\n private defaultSyntaxHighlightingComp = new Compartment();\n private themeComp = new Compartment();\n private autoCompletionComp = new Compartment();\n\n private isSpacePressed:boolean = false;\n /**\n * The styles for CodeEditor\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.emit('nile-init',undefined,false);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.view.destroy()\n this.emit('nile-destroy',undefined,false);\n }\n\n firstUpdated() {\n this.createNewView()\n this.emit('nile-after-init',{ \n codeMirrorInstance: this.view, \n createNewView: this.createNewView, \n insertAtCursor: this.insertBetweenCode \n }, false )\n }\n\n getTabCompletionKeymap() {\n return this.tabCompletion\n ? keymap.of([\n {\n key: 'Tab',\n run: acceptCompletion,\n }\n ])\n : [];\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void{\n super.updated(changedProperties);\n if (changedProperties.has('value') && this.view.state.doc.toString()!=this.value) {\n // Editor has already been initialized, update its state\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('multiline')) {\n this.view.dispatch({\n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())\n ],\n })\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('readonly')) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('aboveCursor')) {\n this.view.dispatch({\n effects: [\n this.autoCompletionComp.reconfigure(\n autocompletion({ aboveCursor: this.aboveCursor })\n )\n ]\n });\n } \n if (changedProperties.has('placeholder')) {\n this.view.dispatch({ \n effects: [\n this.placeholderComp.reconfigure(this.getPlaceholderExtension()),\n ]\n })\n }\n if (changedProperties.has('lineNumbers') || changedProperties.has('lineNumbersMultiline')) {\n this.view.dispatch({ \n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n ]\n })\n }\n if(changedProperties.has('customAutoCompletions') || changedProperties.has('customCompletionsPaths')){\n this.view.dispatch({ \n effects: [\n this.customCompletionComp.reconfigure(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }))\n ]\n })\n }\n if(changedProperties.has('disableSyntaxHighlighting')){\n this.view.dispatch({ \n effects: [\n this.defaultSyntaxHighlightingComp.reconfigure(this.getDefaultSyntaxHighlightingExtension())\n ]\n })\n }\n if(changedProperties.has('customThemeCSS')){\n this.view.dispatch({ \n effects: [\n this.themeComp.reconfigure(this.getCustomThemeExtension())\n ]\n })\n }\n }\n\n public render(): TemplateResult {\n const hasErrorMessage = !!this.errorMessage;\n const hasError = !!this.error;\n const noborder = !!this.noborder;\n const noScrollbar = !this.hasScroller\n return html`<div\n part=\"code-editor-base\"\n class=${classMap({\n 'code__editor__container': true,\n 'noborder': noborder,\n 'error': hasError || hasErrorMessage,\n 'code__editor__singleline': !this.multiline,\n 'no-scroller': noScrollbar\n })}\n >\n ${this.expandable\n ? html` \n <div @click=\"${(e: CustomEvent) => this.emit('nile-expand')}\" class=\"expand__icon__container\">\n <nile-icon\n name=\"${this.expandIcon}\"\n size=\"16\"\n color=\"black\"\n ></nile-icon>\n </div>`\n : ''}\n </div>\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}`;\n }\n\n createNewView(emitEvent=true){\n if(this.view) this.view.destroy();\n this.createState()\n this.view = new EditorView({\n state: this.viewState,\n parent: this.codeEditor\n });\n\n this.view.dom.addEventListener('keydown', (e: KeyboardEvent) => {\n this.checkForSpaceKey(e);\n this.handleEscapeKey(e);\n }, true);\n if (emitEvent) this.emit('nile-after-update', { createNewView: this.createNewView, codeMirrorInstance: this.view, }, false );\n }\n\n checkForSpaceKey(e: KeyboardEvent) {\n if (e.code === 'Space' && !e.ctrlKey) {\n this.isSpacePressed = true;\n } else {\n this.isSpacePressed = false;\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.view && completionStatus(this.view.state) !== null) {\n e.stopPropagation(); \n e.preventDefault(); \n closeCompletion(this.view);\n }\n }\n\n createState(){\n const lineNumbersExtension = this.lineNumbersComp.of(this.getLineNumbersExension());\n const readOnlyExtension = this.readOnlyComp.of(this.getReadOnlyExtension());\n const restrictSingleLineExtension = this.restrictSingleLineComp.of(this.getSingleLineExtension())\n const placeholderExtension = this.placeholderComp.of(this.getPlaceholderExtension())\n const customThemeExtension=this.themeComp.of(this.getCustomThemeExtension());\n const defaultSyntaxHighlightingExtension = this.defaultSyntaxHighlightingComp.of(this.getDefaultSyntaxHighlightingExtension());\n const language = this.getLanguageExtension()\n const customAutoCompletions = this.customCompletionComp.of(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }));\n\n this.viewState = EditorState.create({\n doc: !this.multiline ? convertToSingleLine(this.value) : this.value,\n extensions: [\n basicSetup({\n highlightActiveLine: false,\n foldGutter: this.enableFoldGutters,\n enableSearch:this.enableSearch\n }),\n lineNumbersExtension,\n readOnlyExtension,\n restrictSingleLineExtension,\n customAutoCompletions,\n placeholderExtension,\n defaultSyntaxHighlightingExtension,\n this.autoCompletionComp.of(\n autocompletion({ aboveCursor: this.aboveCursor })\n ),\n language,\n customThemeExtension,\n this.getTabCompletionKeymap(),\n EditorView.updateListener.of((v: ViewUpdate) => {\n if (v.docChanged) {\n this.debounce ? this.emitAfterTimeout({ value: this.view.state.doc.toString() }) : this.emit('nile-change', { value: this.view.state.doc.toString() })\n }\n }),\n EditorView.domEventHandlers({\n focus: () => this.dispatchEvent(new Event('nile-focus')),\n blur: () => this.dispatchEvent(new Event('nile-blur')),\n }),\n ],\n });\n return this.viewState\n }\n /**\n * Custom autocomplete handler for code editor suggestions\n * @param context CompletionContext from CodeMirror\n * @returns CompletionResult with suggestions or null if no suggestions\n */\n customAutocomplete = (context: CompletionContext): CompletionResult | null => {\n // Getting the valid last line, last text from the code editor\n const text = context.state.doc.sliceString(0, context.pos);\n const lastWord = text.split('\\n').at(-1)?.split(' ').at(-1) || '';\n const [textBeforeCursor, baseTextAfterSeperation] = splitStringAtLastSeparator(lastWord);\n \n return this.getNestedSuggestions(context, textBeforeCursor, baseTextAfterSeperation) \n || this.getTopLevelSuggestions(context, textBeforeCursor);\n };\n\n /**\n * Gets nested property suggestions based on the current path\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @param baseTextAfterSeperation Text after the last separator (. or [)\n * @returns CompletionResult with nested suggestions or null\n */\n getNestedSuggestions(context: CompletionContext, textBeforeCursor: string, baseTextAfterSeperation: string) {\n // Return early if not a valid path or not ending with . or [\n if (!isValidPath(textBeforeCursor) || !['.', '['].includes(textBeforeCursor.at(-1)!)) {\n return null;\n }\n\n const path = parsePath(textBeforeCursor);\n if (!path) return null;\n\n const textAfterSeperation = baseTextAfterSeperation.replace(/[\"'\\[]/g, '');\n const isInString = textAfterSeperation !== baseTextAfterSeperation;\n const isBracket = textBeforeCursor.at(-1) === '[';\n\n // Return null if we're in a string after a dot\n if (textBeforeCursor.at(-1) === '.' && isInString) return null;\n\n // Get nested properties and filter by text after separation if it exists\n let resolved = resolveNestedProperties(this.customAutoCompletions, path);\n if (!resolved || typeof resolved !== 'object') return null;\n\n if (textAfterSeperation) {\n resolved = Object.fromEntries(\n Object.entries(resolved).filter(([key]) => \n key.toLowerCase().startsWith(textAfterSeperation.toLowerCase())\n )\n );\n }\n\n return {\n from: context.pos - textAfterSeperation.length,\n options: Object.keys(resolved).map(key => ({\n label: key,\n type: 'property',\n info: `Key of ${path[path.length - 1]}`,\n apply: !this.allowVariableInCustomSuggestion && (isBracket && !isInString) \n ? `'${key}'` \n : key,\n boost: 999\n }))\n };\n }\n\n /**\n * Gets top level suggestions based on custom completions and paths\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @returns CompletionResult with top level suggestions or null\n */\n getTopLevelSuggestions(context: CompletionContext,textBeforeCursor:string){\n const baseMatch: any = textBeforeCursor.match(/([a-zA-Z_$][\\w$]*)$/);\n \n if (!baseMatch) {\n const trimmedText = textBeforeCursor.trim();\n if (trimmedText === '' && !this.isSpacePressed) {\n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length\n );\n \n const options = optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }));\n \n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths.forEach(path => {\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n });\n });\n }\n \n return {\n from: context.pos,\n options: options\n };\n }\n return null;\n }\n \n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length && \n key.toLowerCase().startsWith(textBeforeCursor.toLowerCase())\n );\n \n const options=optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }))\n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths\n .filter(path=>path.toLocaleLowerCase().includes(textBeforeCursor.toLocaleLowerCase()))\n .forEach(path=>{\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n })\n })\n }\n return {\n from: context.pos - baseMatch[1].length,\n options: options\n }\n }\n\n emitAfterTimeout(value:any){\n if(this.timeOut) clearTimeout(this.timeOut);\n this.timeOut=setTimeout(()=> this.emit('nile-change', value, false), this.debounceTimeout)\n }\n \n public focusAtPosition(pos: number=this.view.state.doc.toString().length): void {\n if (this.view) {\n this.view.dispatch({\n selection: { anchor: pos },\n });\n this.view.focus();\n }\n }\n\n public insertBetweenCode=(text: string) => {\n const transaction = this.view.state.changeByRange(range => {\n const { from, to } = range;\n return { changes: { from:from, to, insert: text }, range };\n });\n this.view.dispatch(transaction);\n }\n\n singleLineMultiLineToggle() {\n this.view.dispatch({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: !this.multiline\n ? convertToSingleLine(this.value)\n : this.value,\n },\n });\n }\n\n //EXTENSION CONFIGURATIONS\n getLineNumbersExension() {\n return (!this.multiline && this.lineNumbers) || (this.multiline && this.lineNumbersMultiline) ? lineNumbers() : [];\n }\n \n getLanguageExtension():Extension{\n switch(this.language){\n case 'sql':\n return sql();\n case 'json':\n return json();\n case 'html':\n return htmlLang();\n default:\n return javascript(); \n }\n }\n\n getReadOnlyExtension() {\n return this.readonly ? EditorState.readOnly.of(true) : [];\n }\n\n getSingleLineExtension() {\n return !this.multiline ? EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n ) : [];\n }\n\n getPlaceholderExtension(){\n return this.placeholder ? placeholder(this.placeholder) : [];\n }\n \n getDefaultSyntaxHighlightingExtension(){\n return !this.disableSyntaxHighlighting ? syntaxHighlighting(defaultHighlightStyle, { fallback: true }):[]\n }\n\n getCustomThemeExtension(): Extension {\n if(this.customThemeCSS) {\n if(this.defaultFont){\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss),EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss)];\n }\n if(this.defaultFont){\n return [EditorView.theme(customisedThemeCss), EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(customisedThemeCss)];\n }\n\n restrictSingleLine() {\n return EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n );\n }\n /* #endregion */\n}\n\nexport default NileCodeEditor;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-code-editor': NileCodeEditor;\n }\n}\n\n/**\n * Parses a string path into an array of keys representing nested object access\n * @param text The path string to parse (e.g. \"foo.bar[0].baz\")\n * @returns Array of keys if valid path, null otherwise\n * @example\n * parsePath(\"foo.bar[0]\") // returns [\"foo\", \"bar\", \"0\"]\n * parsePath(\"invalid\") // returns null\n */\nfunction parsePath(text: string) {\n const regex = /([a-zA-Z_$][\\w$]*)(\\[(?:[^\\]]+)\\]|\\.[a-zA-Z_$][\\w$]*)*/g;\n const matches = [...text.matchAll(regex)];\n if (matches.length > 0) {\n const base = matches[0][1]; // The base object name\n const keys = [base];\n // Extract keys from dot or bracket notation\n const pathMatches = text.match(/\\[(.*?)\\]|\\.(\\w+)/g) || [];\n for (const match of pathMatches) {\n if (match.startsWith('[')) {\n keys.push(match.slice(1, -1).replace(/['\"]/g, '')); // Remove brackets and quotes\n } else if (match.startsWith('.')) {\n keys.push(match.slice(1));\n }\n }\n return keys;\n }\n return null;\n};\n\n/**\n * Splits a path string at the last separator (. or [)\n * @param input The path string to split\n * @returns Array containing [path up to last separator, remainder after separator]\n * @example\n * splitStringAtLastSeparator(\"foo.bar[0]\") // returns [\"foo.bar[\", \"0\"]\n */\nfunction splitStringAtLastSeparator(input:string) {\n const lastSeparatorIndex = Math.max(input.lastIndexOf('.'), input.lastIndexOf('['));\n if (lastSeparatorIndex === -1) return [input, ''];\n return [input.slice(0, lastSeparatorIndex + 1), input.slice(lastSeparatorIndex + 1)];\n}\n\n/**\n * Traverses an object using an array of keys to access nested properties\n * @param obj The object to traverse\n * @param keys Array of keys defining the path to the desired property\n * @returns The value at the specified path, or null if path is invalid\n * @example\n * resolveNestedProperties({foo: {bar: 123}}, [\"foo\", \"bar\"]) // returns 123\n */\nfunction resolveNestedProperties (obj:any, keys:any[]){\n return keys.reduce((acc, key) => {\n if (acc && typeof acc === 'object') {\n return acc[key];\n }\n return null;\n }, obj);\n};\n\n/**\n * Validates if a string represents a valid object path format\n * @param path The path string to validate\n * @returns Boolean indicating if path format is valid\n * @example\n * isValidPath(\"foo.bar[0]\") // returns true\n * isValidPath(\"foo..bar\") // returns false\n */\nfunction isValidPath(path: string) {\n // Regex to validate the format of the string\n const regex = /^([a-zA-Z_$][\\w$]*)(\\.[a-zA-Z_$][\\w$]*|\\[\\s*(['\"]?[a-zA-Z0-9_$]*['\"]?)\\s*\\])*([\\.\\[])?$/;\n // Test the string against the regex\n return regex.test(path);\n}\n\n/**\n * Converts multi-line code into a single line by removing line breaks and extra whitespace\n * @param code The code string to convert\n * @returns Single line version of the code\n * @example\n * convertToSingleLine(\"foo\\n bar\") // returns \"foo bar\"\n */\nfunction convertToSingleLine(code: string) {\n if (!code) return '';\n // Remove line breaks and unnecessary whitespace\n return code.replace(/\\s+/g, ' ').trim();\n}\n\n"]}
@@ -33,6 +33,15 @@ export declare const CustomTheme: {
33
33
  fontFamily: string;
34
34
  };
35
35
  };
36
+ export declare const fontFamily: {
37
+ '.cm-tooltip.cm-tooltip-autocomplete > ul': {
38
+ fontFamily: string;
39
+ fontWeight: string;
40
+ };
41
+ '.cm-content': {
42
+ fontFamily: string;
43
+ };
44
+ };
36
45
  export declare const customisedThemeCss: {
37
46
  '.cm-content': {
38
47
  fontFamily: string;
@@ -33,6 +33,15 @@ export const CustomTheme = {
33
33
  fontFamily: 'inherit', // Ensure the gutter font matches
34
34
  },
35
35
  };
36
+ export const fontFamily = {
37
+ '.cm-tooltip.cm-tooltip-autocomplete > ul': {
38
+ fontFamily: 'monospace !important',
39
+ fontWeight: '400',
40
+ },
41
+ '.cm-content': {
42
+ fontFamily: 'monospace !important',
43
+ }
44
+ };
36
45
  export const customisedThemeCss = {
37
46
  '.cm-content': {
38
47
  fontFamily: 'inherit',
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/nile-code-editor/theme.ts"],"names":[],"mappings":"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","sourcesContent":["export const Theme = {\n '&': {\n fontSize: '14px',\n fontFamily: 'Colfax-regular',\n fontWeight: '400',\n },\n '.cm-content': {},\n \".cm-scroller\": {\n scrollbarWidth:'thin',\n },\n};\n\nexport const CustomTheme = {\n '&': {\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n lineHeight:'inherit',\n letterSpacing:'inherit'\n },\n \n '.cm-content': {\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n lineHeight:'inherit',\n letterSpacing:'inherit'\n },\n\n \".cm-scroller\":{\n fontFamily: 'inherit'\n },\n\n \".cm-gutters\": {\n fontFamily: 'inherit', // Ensure the gutter font matches\n },\n};\n\nexport const customisedThemeCss = {\n '.cm-content' : {\n fontFamily: 'inherit',\n },\n '.cm-scroller' : {\n fontFamily: 'inherit',\n },\n '.cm-tooltip-autocomplete': {\n padding: '9px 12px',\n backgroundColor: '#FFFFFF',\n display: 'block',\n fontSize: '14px',\n background: 'white',\n border: 'solid 1px #C7CED4',\n borderRadius: '0.25rem',\n paddingBlock: '0',\n paddingInline: '0',\n overscrollBehavior: 'none',\n color: 'hsl(240 5.3% 26.1%)',\n },\n '.cm-tooltip.cm-completionInfo.cm-completionInfo-right': {\n fontFamily: 'inherit',\n backgroundColor: '#FFFFFF',\n color: 'hsl(240 5.3% 26.1%)',\n padding: \"6px 12px\",\n borderTopRightRadius: \"0.25rem\",\n borderBottomRightRadius: \"0.25rem\",\n border: 'solid 1px #C7CED4',\n fontSize: '14px',\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul': {\n fontFamily: 'inherit',\n fontWeight: '400',\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul > li': {\n padding: '9px 12px'\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul > li:hover': {\n backgroundColor: '#005ea61a',\n color: 'rgb(0, 0, 0)',\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected=\"true\"]': {\n backgroundColor: '#005ea61a',\n color: '#005EA6',\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected=\"true\"]:hover': {\n color: '#005EA6',\n },\n '.cm-completionIcon': {\n display: 'block',\n position: 'relative'\n },\n '.cm-completionIcon::after': {\n display: 'block',\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjM2MDExIDYuMjVMNi45ODUxMSAxLjc1TDkuNjEwMTEgNi4yNUg0LjM2MDExWk01LjY5NTExIDUuNUg4LjMxMjYxTDcuMDAwMTEgMy4yNUw1LjY5NTExIDUuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNi4yNSAxMi4yNUgxLjc1VjcuNzVINi4yNVYxMi4yNVpNMi41IDExLjVINS41VjguNUgyLjVWMTEuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOC43NDk5NyAxMS44NzA4QzkuMTE5OTggMTIuMTE4IDkuNTU0OTkgMTIuMjUgMTAgMTIuMjVDMTAuNTk2NyAxMi4yNSAxMS4xNjkgMTIuMDEyOSAxMS41OTEgMTEuNTkxQzEyLjAxMjkgMTEuMTY5IDEyLjI1IDEwLjU5NjcgMTIuMjUgMTBDMTIuMjUgOS41NTQ5OSAxMi4xMTggOS4xMTk5OCAxMS44NzA4IDguNzQ5OTdDMTEuNjIzNiA4LjM3OTk2IDExLjI3MjIgOC4wOTE1NyAxMC44NjEgNy45MjEyN0MxMC40NDk5IDcuNzUwOTcgOS45OTc1MSA3LjcwNjQyIDkuNTYxMDUgNy43OTMyM0M5LjEyNDU5IDcuODgwMDUgOC43MjM2OCA4LjA5NDM0IDguNDA5MDEgOC40MDkwMUM4LjA5NDM0IDguNzIzNjggNy44ODAwNSA5LjEyNDU5IDcuNzkzMjMgOS41NjEwNUM3LjcwNjQyIDkuOTk3NTEgNy43NTA5NyAxMC40NDk5IDcuOTIxMjcgMTAuODYxQzguMDkxNTcgMTEuMjcyMiA4LjM3OTk2IDExLjYyMzYgOC43NDk5NyAxMS44NzA4Wk05LjE2NjY1IDguNzUyOEM5LjQxMzMyIDguNTg3OTggOS43MDMzMyA4LjUgMTAgOC41QzEwLjM5NzggOC41IDEwLjc3OTQgOC42NTgwNCAxMS4wNjA3IDguOTM5MzRDMTEuMzQyIDkuMjIwNjUgMTEuNSA5LjYwMjE4IDExLjUgMTBDMTEuNSAxMC4yOTY3IDExLjQxMiAxMC41ODY3IDExLjI0NzIgMTAuODMzNEMxMS4wODI0IDExLjA4IDEwLjg0ODEgMTEuMjcyMyAxMC41NzQgMTEuMzg1OEMxMC4yOTk5IDExLjQ5OTQgOS45OTgzNCAxMS41MjkxIDkuNzA3MzcgMTEuNDcxMkM5LjQxNjM5IDExLjQxMzMgOS4xNDkxMiAxMS4yNzA0IDguOTM5MzQgMTEuMDYwN0M4LjcyOTU2IDEwLjg1MDkgOC41ODY3IDEwLjU4MzYgOC41Mjg4MiAxMC4yOTI2QzguNDcwOTUgMTAuMDAxNyA4LjUwMDY1IDkuNzAwMDcgOC42MTQxOCA5LjQyNTk4QzguNzI3NzEgOS4xNTE4OSA4LjkxOTk3IDguOTE3NjIgOS4xNjY2NSA4Ljc1MjhaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionMatchedText' : {\n textDecoration: 'none',\n },\n '.cm-completionIcon.cm-completionIcon-property::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuNjA1MjEgMTEuOTExVjcuODg0ODFMMS44MjU3NiA1LjkxNDYxVjkuOTQwODFMNS42MDUyMSAxMS45MTFaTTYuNDMwOTcgMTEuOTExTDEyLjE3NDIgOC42MDY3OVY0LjU4MDU5TDYuNDMwOTcgNy44ODQ4MVYxMS45MTFaTTYuMDE4MDkgNy4yMzE0MUwxMS44NzI1IDMuODY5OTlMNy45NjYwMyAxLjg1Njg5TDIuMTI3NDggNS4yMTgzMUw2LjAxODA5IDcuMjMxNDFaTTEgMTAuMzc2NFY0Ljk1NzYxTDcuOTgxOTEgMUwxMyAzLjYwOTI5VjkuMDI4MDlMNi4wMTgwOSAxM0wxIDEwLjM3NjRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-keyword::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuMTk5OTUgNC4wMTQ0OUM2LjE5OTk1IDMuNzkyNyA2LjI3ODE0IDMuNjAzMjkgNi40MzQ1IDMuNDQ2MjZDNi41OTA3NyAzLjI4OTE0IDYuNzc5MjcgMy4yMTA1OCA3IDMuMjEwNThDNy4yMjA3MyAzLjIxMDU4IDcuNDA5MjMgMy4yODkxNCA3LjU2NTUgMy40NDYyNkM3LjcyMTg2IDMuNjAzMjkgNy44MDAwNSAzLjc5MjcgNy44MDAwNSA0LjAxNDQ5QzcuODAwMDUgNC4yMzYyOCA3LjcyMTg2IDQuNDI1NjkgNy41NjU1IDQuNTgyNzJDNy40MDkyMyA0LjczOTg0IDcuMjIwNzMgNC44MTg0IDcgNC44MTg0QzYuNzc5MjcgNC44MTg0IDYuNTkwNzcgNC43Mzk4NCA2LjQzNDUgNC41ODI3MkM2LjI3ODE0IDQuNDI1NjkgNi4xOTk5NSA0LjIzNjI4IDYuMTk5OTUgNC4wMTQ0OVpNNi45MzM1OSAxM0w1LjAyNTE4IDEwLjk3OTFMNS44MTE1OSA5LjkwNjQ1TDUuMDE0NjggOC44MTA5NUw1Ljc0OSA3LjgwNzk1VjYuNzU2OTlDNS4yMzggNi41MDY4OCA0LjgxODc3IDYuMTQ3MSA0LjQ5MTMyIDUuNjc3NjdDNC4xNjM3NyA1LjIwODMyIDQgNC42NTM5MyA0IDQuMDE0NDlDNCAzLjE3ODI5IDQuMjkxOTUgMi40NjY4MiA0Ljg3NTg2IDEuODgwMDlDNS40NTk3NyAxLjI5MzM2IDYuMTY3ODIgMSA3IDFDNy44MzIxOCAxIDguNTQwMjMgMS4yOTMzNiA5LjEyNDE0IDEuODgwMDlDOS43MDgwNSAyLjQ2NjgyIDEwIDMuMTc4MjkgMTAgNC4wMTQ0OUMxMCA0LjYyMzA1IDkuODQ2NjggNS4xNjEwNSA5LjU0MDA1IDUuNjI4NDhDOS4yMzM0MSA2LjA5NTk5IDguODAzNzMgNi40NzIxNyA4LjI1MSA2Ljc1Njk5VjExLjY3NjFMNi45MzM1OSAxM1pNNC42ODUzNiA0LjAxNDQ5QzQuNjg1MzYgNC41NDc2IDQuODUzNTUgNS4wMjc4MiA1LjE4OTkxIDUuNDU1MTRDNS41MjYyNyA1Ljg4MjQ3IDUuOTQxMDUgNi4xNTQ4MiA2LjQzNDIzIDYuMjcyMjFWOC4wNDU4Mkw1Ljg2NTA1IDguODA5MTdMNi42NTkwOSA5LjkyMDg0TDUuOTAxNDUgMTAuOTI0TDYuOTQ4MzIgMTIuMDEzTDcuNTY1NzcgMTEuMzkyNlY2LjI3MjIxQzguMDg2MDUgNi4xMzE0NCA4LjUwNzU5IDUuODU3NTggOC44MzA0MSA1LjQ1MDYyQzkuMTUzMjMgNS4wNDM2NiA5LjMxNDY0IDQuNTY0OTUgOS4zMTQ2NCA0LjAxNDQ5QzkuMzE0NjQgMy4zNzA4NSA5LjA4OSAyLjgyMjMxIDguNjM3NzMgMi4zNjg4NUM4LjE4NjQ1IDEuOTE1NCA3LjY0MDU1IDEuNjg4NjcgNyAxLjY4ODY3QzYuMzU5NDUgMS42ODg2NyA1LjgxMzU1IDEuOTE1NCA1LjM2MjI3IDIuMzY4ODVDNC45MTEgMi44MjIzMSA0LjY4NTM2IDMuMzcwODUgNC42ODUzNiA0LjAxNDQ5WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-variable::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuNjA1MjEgMTEuOTExVjcuODg0ODFMMS44MjU3NiA1LjkxNDYxVjkuOTQwODFMNS42MDUyMSAxMS45MTFaTTYuNDMwOTcgMTEuOTExTDEyLjE3NDIgOC42MDY3OVY0LjU4MDU5TDYuNDMwOTcgNy44ODQ4MVYxMS45MTFaTTYuMDE4MDkgNy4yMzE0MUwxMS44NzI1IDMuODY5OTlMNy45NjYwMyAxLjg1Njg5TDIuMTI3NDggNS4yMTgzMUw2LjAxODA5IDcuMjMxNDFaTTEgMTAuMzc2NFY0Ljk1NzYxTDcuOTgxOTEgMUwxMyAzLjYwOTI5VjkuMDI4MDlMNi4wMTgwOSAxM0wxIDEwLjM3NjRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-text::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuNjA1MjEgMTEuOTExVjcuODg0ODFMMS44MjU3NiA1LjkxNDYxVjkuOTQwODFMNS42MDUyMSAxMS45MTFaTTYuNDMwOTcgMTEuOTExTDEyLjE3NDIgOC42MDY3OVY0LjU4MDU5TDYuNDMwOTcgNy44ODQ4MVYxMS45MTFaTTYuMDE4MDkgNy4yMzE0MUwxMS44NzI1IDMuODY5OTlMNy45NjYwMyAxLjg1Njg5TDIuMTI3NDggNS4yMTgzMUw2LjAxODA5IDcuMjMxNDFaTTEgMTAuMzc2NFY0Ljk1NzYxTDcuOTgxOTEgMUwxMyAzLjYwOTI5VjkuMDI4MDlMNi4wMTgwOSAxM0wxIDEwLjM3NjRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-function::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMuNzE5ODMgNC4zNTY0NUwzLjMxODk0IDQuODA1NjZMMy4zNTgzNCA0Ljk3NTU5SDQuMzkwNjJDNC4xNzk4MyA2LjE4NDU3IDQuMDIyMjMgNy4yNzQ0MSAzLjcxOTgzIDguOTU0MUMzLjM1ODM0IDExLjA5NjcgMy4xNTA1IDExLjYyMyAzLjAyNzM4IDExLjgxNTRDMi45MTkwMyAxMi4wMDU5IDIuNzYzNCAxMi4xMDQ1IDIuNTUyNjEgMTIuMTA0NUMyLjMyMTEzIDEyLjEwNDUgMS45MDI1IDExLjkyMjkgMS42Nzc5MiAxMS43MTY4QzEuNTk3MTUgMTEuNjYyMSAxLjUwMTYxIDExLjY3NTggMS40MDAxNSAxMS43NDIyQzEuMTk3MjQgMTEuOTEyMSAxLjAwMDI0IDEyLjE3MzggMS4wMDAyNCAxMi40MDgyQzAuOTg4NDIgMTIuNzI0NiAxLjQxNDkzIDEzIDEuODIxNzMgMTNDMi4xODAyNyAxMyAyLjcwODI0IDEyLjc3NzMgMy4yNjM3OCAxMi4yNTM5QzQuMDIzMjIgMTEuNTQgNC41OTE1NiAxMC41NjA1IDUuMDY2MzMgOC40NDMzNkM1LjM3MTY5IDcuMDkxOCA1LjUxNTUgNi4yMTI4OSA1LjczMDIzIDQuOTc2NTZMNy4wMTI3IDQuODYxMzNMNy4yOTA0NyA0LjM1NjQ1SDUuODQ2NDZDNi4yMTk3NyAyLjAyODMyIDYuNTExMzMgMS42ODM1OSA2Ljg2OTg4IDEuNjgzNTlDNy4xMDgyNSAxLjY4MzU5IDcuMzg2MDIgMS44NjUyMyA3LjcwNTE2IDIuMjIyNjZDNy43OTk3MiAyLjM1MTU2IDcuOTQxNTYgMi4zMzc4OSA4LjA0OTkxIDIuMjVDOC4yMzIxNCAyLjE0MjU4IDguNDU2NzIgMS44NjcxOSA4LjQ3MTQ5IDEuNjE3MTlDOC40ODIzMyAxLjM0MTggOC4xNTEzNyAxIDcuNTgyMDMgMUM3LjA2NTg5IDEgNi4yNzQ5MyAxLjM0MTggNS42MTAwNiAyLjAxMzY3QzUuMDI2OTMgMi42MjU5OCA0LjcyMTU4IDMuMzkwNjIgNC41MTA3OSA0LjM1NjQ1SDMuNzE5ODNaTTcuODIzMzYgNS45MTUwNEM4LjIyMTMgNS4zODk2NSA4LjQ1OTY3IDUuMjE0ODQgOC41ODI4IDUuMjE0ODRDOC43MDk4NiA1LjIxNDg0IDguODExMzIgNS4zMzg4NyA5LjAyOSA2LjAzNjEzTDkuNDAxMzMgNy4yMjY1NkM4LjY4MTMgOC4zMTgzNiA4LjE1NDMyIDguOTI2NzYgNy44MzQxOSA4LjkyNjc2QzcuNzI3ODEgOC45MjY3NiA3LjYyMDQ1IDguODkzNTUgNy41NDQ2IDguODE5MzRDNy40Njk3NCA4Ljc0NTEyIDcuMzg3IDguNjgzNTkgNy4zMDYyMyA4LjY4MzU5QzcuMDQyMjUgOC42ODM1OSA2LjcxNTIzIDkuMDAwOTggNi43MDkzMiA5LjM5NDUzQzYuNzAzNDEgOS43OTU5IDYuOTg3MDkgMTAuMDgzIDcuMzU5NDIgMTAuMDgzQzcuOTk4NjkgMTAuMDgzIDguNTM5NDYgOS40NjA5NCA5LjU4MzU2IDcuODExNTJMOS44ODg5MSA4LjgzMjAzQzEwLjE1MDkgOS43MDg5OCAxMC40NTgyIDEwLjA4MyAxMC44NDI0IDEwLjA4M0MxMS4zMTcyIDEwLjA4MyAxMS45NTU0IDkuNjgxNjQgMTIuNjUxOCA4LjU5NjY4TDEyLjM2MDMgOC4yNjY2QzExLjk0MTcgOC43NjY2IDExLjY2MzkgOS4wMDA5OCAxMS40OTk0IDkuMDAwOThDMTEuMzE2MiA5LjAwMDk4IDExLjE1NTYgOC43MjM2MyAxMC45NDM4IDguMDQxOTlMMTAuNDk3NiA2LjYwMzUyQzEwLjc2MTYgNi4yMTc3NyAxMS4wMjE3IDUuODkzNTUgMTEuMjUwMiA1LjYzNDc3QzExLjUyMiA1LjMyNzE1IDExLjczMTkgNS4xOTYyOSAxMS44NzQ3IDUuMTk2MjlDMTEuOTk0OCA1LjE5NjI5IDEyLjA5OTMgNS4yNDcwNyAxMi4xNjQzIDUuMzE4MzZDMTIuMjUgNS40MTIxMSAxMi4zMDEyIDUuNDU2MDUgMTIuNDAyNiA1LjQ1NjA1QzEyLjYzMjEgNS40NTYwNSAxMi45ODY3IDUuMTY2OTkgMTIuOTk5NiA0Ljc4NDE4QzEzLjAxMTQgNC40Mjg3MSAxMi43ODg4IDQuMTI1OTggMTIuNDAyNiA0LjEyNTk4QzExLjgxOTUgNC4xMjU5OCAxMS4zMDUzIDQuNjI0MDIgMTAuMzE1NCA2LjA4MzAxTDEwLjExMTUgNS40NTcwM0M5LjgyNTg3IDQuNTc4MTIgOS42MzY3NSA0LjEyNTk4IDkuMjM4ODEgNC4xMjU5OEM4Ljc3NTg2IDQuMTI1OTggOC4xMzk1NSA0LjY5MDQzIDcuNTE3MDIgNS41ODQ5Nkw3LjgyMzM2IDUuOTE1MDRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-class::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuOTA2NjUgMTNMMS41IDEwVjRMNi45MDY2NSAxTDEyLjMxMzMgNFYxMEw2LjkwNjY1IDEzWk01LjE0ODk3IDUuNTA3MzJDNS4zNjUzNSA1LjI1NzQyIDUuNjI5MTQgNS4wNTkxOCA1Ljk0MDM0IDQuOTEyNTlDNi4yNTE2NSA0Ljc2NiA2LjU3Mzc1IDQuNjkyNzEgNi45MDY2NSA0LjY5MjcxQzcuMjM5NTQgNC42OTI3MSA3LjU2MTY0IDQuNzY2IDcuODcyOTYgNC45MTI1OUM4LjE4NDE1IDUuMDU5MTggOC40NDc5NCA1LjI1NzQyIDguNjY0MzIgNS41MDczMkwxMC45MjUzIDQuMjYyMjRMNi45MDY2NSAyLjAzMTc0TDIuODg3OTkgNC4yNjIyNEw1LjE0ODk3IDUuNTA3MzJaTTYuNDU4OTYgMTEuNzMzN1Y5LjI3ODJDNS45MjExNyA5LjE2Njg1IDUuNDc2ODEgOC44OTg0MSA1LjEyNTkgOC40NzI4OEM0Ljc3NDg3IDguMDQ3MjQgNC41OTkzNSA3LjU1NjI4IDQuNTk5MzUgN0M0LjU5OTM1IDYuODgzNDkgNC42MDU1NSA2Ljc2NDA1IDQuNjE3OTUgNi42NDE2OEM0LjYzMDIzIDYuNTE5NDMgNC42NjM3NSA2LjQwNTczIDQuNzE4NSA2LjMwMDU4TDIuMzk1MzcgNS4wMDQwMlY5LjQ3NTUyTDYuNDU4OTYgMTEuNzMzN1pNNi45MDY2NSA4LjQxMTkzQzcuMzA0MDUgOC40MTE5MyA3LjYzODcyIDguMjc1OTYgNy45MTA2NiA4LjAwNDAyQzguMTgyNiA3LjczMjA4IDguMzE4NTcgNy4zOTc0MSA4LjMxODU3IDdDOC4zMTg1NyA2LjYwMjU5IDguMTgyNiA2LjI2NzkyIDcuOTEwNjYgNS45OTU5OEM3LjYzODcyIDUuNzI0MDQgNy4zMDQwNSA1LjU4ODA3IDYuOTA2NjUgNS41ODgwN0M2LjUwOTI0IDUuNTg4MDcgNi4xNzQ1NyA1LjcyNDA0IDUuOTAyNjMgNS45OTU5OEM1LjYzMDY5IDYuMjY3OTIgNS40OTQ3MiA2LjYwMjU5IDUuNDk0NzIgN0M1LjQ5NDcyIDcuMzk3NDEgNS42MzA2OSA3LjczMjA4IDUuOTAyNjMgOC4wMDQwMkM2LjE3NDU3IDguMjc1OTYgNi41MDkyNCA4LjQxMTkzIDYuOTA2NjUgOC40MTE5M1pNNy4zNTQzMyAxMS43MzM3TDExLjQxNzkgOS40NzU1MlY1LjAwNDAyTDkuMDk0NzkgNi4zMDA1OEM5LjEzODA3IDYuNDA1NzMgOS4xNjg3MSA2LjUxOTQzIDkuMTg2NzQgNi42NDE2OEM5LjIwNDg3IDYuNzY0MDUgOS4yMTM5NCA2Ljg4MzQ5IDkuMjEzOTQgN0M5LjIxMzk0IDcuNTU2MjggOS4wMzg0MyA4LjA0NzI0IDguNjg3NCA4LjQ3Mjg4QzguMzM2NDggOC44OTg0MSA3Ljg5MjEzIDkuMTY2ODUgNy4zNTQzMyA5LjI3ODJWMTEuNzMzN1oiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo= \")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionLabel': {\n marginLeft: '18px',\n }\n};"]}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/nile-code-editor/theme.ts"],"names":[],"mappings":"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","sourcesContent":["export const Theme = {\n '&': {\n fontSize: '14px',\n fontFamily: 'Colfax-regular',\n fontWeight: '400',\n },\n '.cm-content': {},\n \".cm-scroller\": {\n scrollbarWidth:'thin',\n },\n};\n\nexport const CustomTheme = {\n '&': {\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n lineHeight:'inherit',\n letterSpacing:'inherit'\n },\n \n '.cm-content': {\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n lineHeight:'inherit',\n letterSpacing:'inherit'\n },\n\n \".cm-scroller\":{\n fontFamily: 'inherit'\n },\n\n \".cm-gutters\": {\n fontFamily: 'inherit', // Ensure the gutter font matches\n },\n};\n\nexport const fontFamily = {\n '.cm-tooltip.cm-tooltip-autocomplete > ul' : {\n fontFamily: 'monospace !important',\n fontWeight: '400',\n },\n '.cm-content' : {\n fontFamily: 'monospace !important',\n }\n}\n\nexport const customisedThemeCss = {\n '.cm-content' : {\n fontFamily: 'inherit',\n },\n '.cm-scroller' : {\n fontFamily: 'inherit',\n },\n '.cm-tooltip-autocomplete': {\n padding: '9px 12px',\n backgroundColor: '#FFFFFF',\n display: 'block',\n fontSize: '14px',\n background: 'white',\n border: 'solid 1px #C7CED4',\n borderRadius: '0.25rem',\n paddingBlock: '0',\n paddingInline: '0',\n overscrollBehavior: 'none',\n color: 'hsl(240 5.3% 26.1%)',\n },\n '.cm-tooltip.cm-completionInfo.cm-completionInfo-right': {\n fontFamily: 'inherit',\n backgroundColor: '#FFFFFF',\n color: 'hsl(240 5.3% 26.1%)',\n padding: \"6px 12px\",\n borderTopRightRadius: \"0.25rem\",\n borderBottomRightRadius: \"0.25rem\",\n border: 'solid 1px #C7CED4',\n fontSize: '14px',\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul': {\n fontFamily: 'inherit',\n fontWeight: '400',\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul > li': {\n padding: '9px 12px'\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul > li:hover': {\n backgroundColor: '#005ea61a',\n color: 'rgb(0, 0, 0)',\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected=\"true\"]': {\n backgroundColor: '#005ea61a',\n color: '#005EA6',\n },\n '.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected=\"true\"]:hover': {\n color: '#005EA6',\n },\n '.cm-completionIcon': {\n display: 'block',\n position: 'relative'\n },\n '.cm-completionIcon::after': {\n display: 'block',\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjM2MDExIDYuMjVMNi45ODUxMSAxLjc1TDkuNjEwMTEgNi4yNUg0LjM2MDExWk01LjY5NTExIDUuNUg4LjMxMjYxTDcuMDAwMTEgMy4yNUw1LjY5NTExIDUuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNi4yNSAxMi4yNUgxLjc1VjcuNzVINi4yNVYxMi4yNVpNMi41IDExLjVINS41VjguNUgyLjVWMTEuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOC43NDk5NyAxMS44NzA4QzkuMTE5OTggMTIuMTE4IDkuNTU0OTkgMTIuMjUgMTAgMTIuMjVDMTAuNTk2NyAxMi4yNSAxMS4xNjkgMTIuMDEyOSAxMS41OTEgMTEuNTkxQzEyLjAxMjkgMTEuMTY5IDEyLjI1IDEwLjU5NjcgMTIuMjUgMTBDMTIuMjUgOS41NTQ5OSAxMi4xMTggOS4xMTk5OCAxMS44NzA4IDguNzQ5OTdDMTEuNjIzNiA4LjM3OTk2IDExLjI3MjIgOC4wOTE1NyAxMC44NjEgNy45MjEyN0MxMC40NDk5IDcuNzUwOTcgOS45OTc1MSA3LjcwNjQyIDkuNTYxMDUgNy43OTMyM0M5LjEyNDU5IDcuODgwMDUgOC43MjM2OCA4LjA5NDM0IDguNDA5MDEgOC40MDkwMUM4LjA5NDM0IDguNzIzNjggNy44ODAwNSA5LjEyNDU5IDcuNzkzMjMgOS41NjEwNUM3LjcwNjQyIDkuOTk3NTEgNy43NTA5NyAxMC40NDk5IDcuOTIxMjcgMTAuODYxQzguMDkxNTcgMTEuMjcyMiA4LjM3OTk2IDExLjYyMzYgOC43NDk5NyAxMS44NzA4Wk05LjE2NjY1IDguNzUyOEM5LjQxMzMyIDguNTg3OTggOS43MDMzMyA4LjUgMTAgOC41QzEwLjM5NzggOC41IDEwLjc3OTQgOC42NTgwNCAxMS4wNjA3IDguOTM5MzRDMTEuMzQyIDkuMjIwNjUgMTEuNSA5LjYwMjE4IDExLjUgMTBDMTEuNSAxMC4yOTY3IDExLjQxMiAxMC41ODY3IDExLjI0NzIgMTAuODMzNEMxMS4wODI0IDExLjA4IDEwLjg0ODEgMTEuMjcyMyAxMC41NzQgMTEuMzg1OEMxMC4yOTk5IDExLjQ5OTQgOS45OTgzNCAxMS41MjkxIDkuNzA3MzcgMTEuNDcxMkM5LjQxNjM5IDExLjQxMzMgOS4xNDkxMiAxMS4yNzA0IDguOTM5MzQgMTEuMDYwN0M4LjcyOTU2IDEwLjg1MDkgOC41ODY3IDEwLjU4MzYgOC41Mjg4MiAxMC4yOTI2QzguNDcwOTUgMTAuMDAxNyA4LjUwMDY1IDkuNzAwMDcgOC42MTQxOCA5LjQyNTk4QzguNzI3NzEgOS4xNTE4OSA4LjkxOTk3IDguOTE3NjIgOS4xNjY2NSA4Ljc1MjhaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionMatchedText' : {\n textDecoration: 'none',\n },\n '.cm-completionIcon.cm-completionIcon-property::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuNjA1MjEgMTEuOTExVjcuODg0ODFMMS44MjU3NiA1LjkxNDYxVjkuOTQwODFMNS42MDUyMSAxMS45MTFaTTYuNDMwOTcgMTEuOTExTDEyLjE3NDIgOC42MDY3OVY0LjU4MDU5TDYuNDMwOTcgNy44ODQ4MVYxMS45MTFaTTYuMDE4MDkgNy4yMzE0MUwxMS44NzI1IDMuODY5OTlMNy45NjYwMyAxLjg1Njg5TDIuMTI3NDggNS4yMTgzMUw2LjAxODA5IDcuMjMxNDFaTTEgMTAuMzc2NFY0Ljk1NzYxTDcuOTgxOTEgMUwxMyAzLjYwOTI5VjkuMDI4MDlMNi4wMTgwOSAxM0wxIDEwLjM3NjRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-keyword::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuMTk5OTUgNC4wMTQ0OUM2LjE5OTk1IDMuNzkyNyA2LjI3ODE0IDMuNjAzMjkgNi40MzQ1IDMuNDQ2MjZDNi41OTA3NyAzLjI4OTE0IDYuNzc5MjcgMy4yMTA1OCA3IDMuMjEwNThDNy4yMjA3MyAzLjIxMDU4IDcuNDA5MjMgMy4yODkxNCA3LjU2NTUgMy40NDYyNkM3LjcyMTg2IDMuNjAzMjkgNy44MDAwNSAzLjc5MjcgNy44MDAwNSA0LjAxNDQ5QzcuODAwMDUgNC4yMzYyOCA3LjcyMTg2IDQuNDI1NjkgNy41NjU1IDQuNTgyNzJDNy40MDkyMyA0LjczOTg0IDcuMjIwNzMgNC44MTg0IDcgNC44MTg0QzYuNzc5MjcgNC44MTg0IDYuNTkwNzcgNC43Mzk4NCA2LjQzNDUgNC41ODI3MkM2LjI3ODE0IDQuNDI1NjkgNi4xOTk5NSA0LjIzNjI4IDYuMTk5OTUgNC4wMTQ0OVpNNi45MzM1OSAxM0w1LjAyNTE4IDEwLjk3OTFMNS44MTE1OSA5LjkwNjQ1TDUuMDE0NjggOC44MTA5NUw1Ljc0OSA3LjgwNzk1VjYuNzU2OTlDNS4yMzggNi41MDY4OCA0LjgxODc3IDYuMTQ3MSA0LjQ5MTMyIDUuNjc3NjdDNC4xNjM3NyA1LjIwODMyIDQgNC42NTM5MyA0IDQuMDE0NDlDNCAzLjE3ODI5IDQuMjkxOTUgMi40NjY4MiA0Ljg3NTg2IDEuODgwMDlDNS40NTk3NyAxLjI5MzM2IDYuMTY3ODIgMSA3IDFDNy44MzIxOCAxIDguNTQwMjMgMS4yOTMzNiA5LjEyNDE0IDEuODgwMDlDOS43MDgwNSAyLjQ2NjgyIDEwIDMuMTc4MjkgMTAgNC4wMTQ0OUMxMCA0LjYyMzA1IDkuODQ2NjggNS4xNjEwNSA5LjU0MDA1IDUuNjI4NDhDOS4yMzM0MSA2LjA5NTk5IDguODAzNzMgNi40NzIxNyA4LjI1MSA2Ljc1Njk5VjExLjY3NjFMNi45MzM1OSAxM1pNNC42ODUzNiA0LjAxNDQ5QzQuNjg1MzYgNC41NDc2IDQuODUzNTUgNS4wMjc4MiA1LjE4OTkxIDUuNDU1MTRDNS41MjYyNyA1Ljg4MjQ3IDUuOTQxMDUgNi4xNTQ4MiA2LjQzNDIzIDYuMjcyMjFWOC4wNDU4Mkw1Ljg2NTA1IDguODA5MTdMNi42NTkwOSA5LjkyMDg0TDUuOTAxNDUgMTAuOTI0TDYuOTQ4MzIgMTIuMDEzTDcuNTY1NzcgMTEuMzkyNlY2LjI3MjIxQzguMDg2MDUgNi4xMzE0NCA4LjUwNzU5IDUuODU3NTggOC44MzA0MSA1LjQ1MDYyQzkuMTUzMjMgNS4wNDM2NiA5LjMxNDY0IDQuNTY0OTUgOS4zMTQ2NCA0LjAxNDQ5QzkuMzE0NjQgMy4zNzA4NSA5LjA4OSAyLjgyMjMxIDguNjM3NzMgMi4zNjg4NUM4LjE4NjQ1IDEuOTE1NCA3LjY0MDU1IDEuNjg4NjcgNyAxLjY4ODY3QzYuMzU5NDUgMS42ODg2NyA1LjgxMzU1IDEuOTE1NCA1LjM2MjI3IDIuMzY4ODVDNC45MTEgMi44MjIzMSA0LjY4NTM2IDMuMzcwODUgNC42ODUzNiA0LjAxNDQ5WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-variable::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuNjA1MjEgMTEuOTExVjcuODg0ODFMMS44MjU3NiA1LjkxNDYxVjkuOTQwODFMNS42MDUyMSAxMS45MTFaTTYuNDMwOTcgMTEuOTExTDEyLjE3NDIgOC42MDY3OVY0LjU4MDU5TDYuNDMwOTcgNy44ODQ4MVYxMS45MTFaTTYuMDE4MDkgNy4yMzE0MUwxMS44NzI1IDMuODY5OTlMNy45NjYwMyAxLjg1Njg5TDIuMTI3NDggNS4yMTgzMUw2LjAxODA5IDcuMjMxNDFaTTEgMTAuMzc2NFY0Ljk1NzYxTDcuOTgxOTEgMUwxMyAzLjYwOTI5VjkuMDI4MDlMNi4wMTgwOSAxM0wxIDEwLjM3NjRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-text::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuNjA1MjEgMTEuOTExVjcuODg0ODFMMS44MjU3NiA1LjkxNDYxVjkuOTQwODFMNS42MDUyMSAxMS45MTFaTTYuNDMwOTcgMTEuOTExTDEyLjE3NDIgOC42MDY3OVY0LjU4MDU5TDYuNDMwOTcgNy44ODQ4MVYxMS45MTFaTTYuMDE4MDkgNy4yMzE0MUwxMS44NzI1IDMuODY5OTlMNy45NjYwMyAxLjg1Njg5TDIuMTI3NDggNS4yMTgzMUw2LjAxODA5IDcuMjMxNDFaTTEgMTAuMzc2NFY0Ljk1NzYxTDcuOTgxOTEgMUwxMyAzLjYwOTI5VjkuMDI4MDlMNi4wMTgwOSAxM0wxIDEwLjM3NjRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-function::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMuNzE5ODMgNC4zNTY0NUwzLjMxODk0IDQuODA1NjZMMy4zNTgzNCA0Ljk3NTU5SDQuMzkwNjJDNC4xNzk4MyA2LjE4NDU3IDQuMDIyMjMgNy4yNzQ0MSAzLjcxOTgzIDguOTU0MUMzLjM1ODM0IDExLjA5NjcgMy4xNTA1IDExLjYyMyAzLjAyNzM4IDExLjgxNTRDMi45MTkwMyAxMi4wMDU5IDIuNzYzNCAxMi4xMDQ1IDIuNTUyNjEgMTIuMTA0NUMyLjMyMTEzIDEyLjEwNDUgMS45MDI1IDExLjkyMjkgMS42Nzc5MiAxMS43MTY4QzEuNTk3MTUgMTEuNjYyMSAxLjUwMTYxIDExLjY3NTggMS40MDAxNSAxMS43NDIyQzEuMTk3MjQgMTEuOTEyMSAxLjAwMDI0IDEyLjE3MzggMS4wMDAyNCAxMi40MDgyQzAuOTg4NDIgMTIuNzI0NiAxLjQxNDkzIDEzIDEuODIxNzMgMTNDMi4xODAyNyAxMyAyLjcwODI0IDEyLjc3NzMgMy4yNjM3OCAxMi4yNTM5QzQuMDIzMjIgMTEuNTQgNC41OTE1NiAxMC41NjA1IDUuMDY2MzMgOC40NDMzNkM1LjM3MTY5IDcuMDkxOCA1LjUxNTUgNi4yMTI4OSA1LjczMDIzIDQuOTc2NTZMNy4wMTI3IDQuODYxMzNMNy4yOTA0NyA0LjM1NjQ1SDUuODQ2NDZDNi4yMTk3NyAyLjAyODMyIDYuNTExMzMgMS42ODM1OSA2Ljg2OTg4IDEuNjgzNTlDNy4xMDgyNSAxLjY4MzU5IDcuMzg2MDIgMS44NjUyMyA3LjcwNTE2IDIuMjIyNjZDNy43OTk3MiAyLjM1MTU2IDcuOTQxNTYgMi4zMzc4OSA4LjA0OTkxIDIuMjVDOC4yMzIxNCAyLjE0MjU4IDguNDU2NzIgMS44NjcxOSA4LjQ3MTQ5IDEuNjE3MTlDOC40ODIzMyAxLjM0MTggOC4xNTEzNyAxIDcuNTgyMDMgMUM3LjA2NTg5IDEgNi4yNzQ5MyAxLjM0MTggNS42MTAwNiAyLjAxMzY3QzUuMDI2OTMgMi42MjU5OCA0LjcyMTU4IDMuMzkwNjIgNC41MTA3OSA0LjM1NjQ1SDMuNzE5ODNaTTcuODIzMzYgNS45MTUwNEM4LjIyMTMgNS4zODk2NSA4LjQ1OTY3IDUuMjE0ODQgOC41ODI4IDUuMjE0ODRDOC43MDk4NiA1LjIxNDg0IDguODExMzIgNS4zMzg4NyA5LjAyOSA2LjAzNjEzTDkuNDAxMzMgNy4yMjY1NkM4LjY4MTMgOC4zMTgzNiA4LjE1NDMyIDguOTI2NzYgNy44MzQxOSA4LjkyNjc2QzcuNzI3ODEgOC45MjY3NiA3LjYyMDQ1IDguODkzNTUgNy41NDQ2IDguODE5MzRDNy40Njk3NCA4Ljc0NTEyIDcuMzg3IDguNjgzNTkgNy4zMDYyMyA4LjY4MzU5QzcuMDQyMjUgOC42ODM1OSA2LjcxNTIzIDkuMDAwOTggNi43MDkzMiA5LjM5NDUzQzYuNzAzNDEgOS43OTU5IDYuOTg3MDkgMTAuMDgzIDcuMzU5NDIgMTAuMDgzQzcuOTk4NjkgMTAuMDgzIDguNTM5NDYgOS40NjA5NCA5LjU4MzU2IDcuODExNTJMOS44ODg5MSA4LjgzMjAzQzEwLjE1MDkgOS43MDg5OCAxMC40NTgyIDEwLjA4MyAxMC44NDI0IDEwLjA4M0MxMS4zMTcyIDEwLjA4MyAxMS45NTU0IDkuNjgxNjQgMTIuNjUxOCA4LjU5NjY4TDEyLjM2MDMgOC4yNjY2QzExLjk0MTcgOC43NjY2IDExLjY2MzkgOS4wMDA5OCAxMS40OTk0IDkuMDAwOThDMTEuMzE2MiA5LjAwMDk4IDExLjE1NTYgOC43MjM2MyAxMC45NDM4IDguMDQxOTlMMTAuNDk3NiA2LjYwMzUyQzEwLjc2MTYgNi4yMTc3NyAxMS4wMjE3IDUuODkzNTUgMTEuMjUwMiA1LjYzNDc3QzExLjUyMiA1LjMyNzE1IDExLjczMTkgNS4xOTYyOSAxMS44NzQ3IDUuMTk2MjlDMTEuOTk0OCA1LjE5NjI5IDEyLjA5OTMgNS4yNDcwNyAxMi4xNjQzIDUuMzE4MzZDMTIuMjUgNS40MTIxMSAxMi4zMDEyIDUuNDU2MDUgMTIuNDAyNiA1LjQ1NjA1QzEyLjYzMjEgNS40NTYwNSAxMi45ODY3IDUuMTY2OTkgMTIuOTk5NiA0Ljc4NDE4QzEzLjAxMTQgNC40Mjg3MSAxMi43ODg4IDQuMTI1OTggMTIuNDAyNiA0LjEyNTk4QzExLjgxOTUgNC4xMjU5OCAxMS4zMDUzIDQuNjI0MDIgMTAuMzE1NCA2LjA4MzAxTDEwLjExMTUgNS40NTcwM0M5LjgyNTg3IDQuNTc4MTIgOS42MzY3NSA0LjEyNTk4IDkuMjM4ODEgNC4xMjU5OEM4Ljc3NTg2IDQuMTI1OTggOC4xMzk1NSA0LjY5MDQzIDcuNTE3MDIgNS41ODQ5Nkw3LjgyMzM2IDUuOTE1MDRaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K\")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionIcon.cm-completionIcon-class::after': {\n content: 'url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuOTA2NjUgMTNMMS41IDEwVjRMNi45MDY2NSAxTDEyLjMxMzMgNFYxMEw2LjkwNjY1IDEzWk01LjE0ODk3IDUuNTA3MzJDNS4zNjUzNSA1LjI1NzQyIDUuNjI5MTQgNS4wNTkxOCA1Ljk0MDM0IDQuOTEyNTlDNi4yNTE2NSA0Ljc2NiA2LjU3Mzc1IDQuNjkyNzEgNi45MDY2NSA0LjY5MjcxQzcuMjM5NTQgNC42OTI3MSA3LjU2MTY0IDQuNzY2IDcuODcyOTYgNC45MTI1OUM4LjE4NDE1IDUuMDU5MTggOC40NDc5NCA1LjI1NzQyIDguNjY0MzIgNS41MDczMkwxMC45MjUzIDQuMjYyMjRMNi45MDY2NSAyLjAzMTc0TDIuODg3OTkgNC4yNjIyNEw1LjE0ODk3IDUuNTA3MzJaTTYuNDU4OTYgMTEuNzMzN1Y5LjI3ODJDNS45MjExNyA5LjE2Njg1IDUuNDc2ODEgOC44OTg0MSA1LjEyNTkgOC40NzI4OEM0Ljc3NDg3IDguMDQ3MjQgNC41OTkzNSA3LjU1NjI4IDQuNTk5MzUgN0M0LjU5OTM1IDYuODgzNDkgNC42MDU1NSA2Ljc2NDA1IDQuNjE3OTUgNi42NDE2OEM0LjYzMDIzIDYuNTE5NDMgNC42NjM3NSA2LjQwNTczIDQuNzE4NSA2LjMwMDU4TDIuMzk1MzcgNS4wMDQwMlY5LjQ3NTUyTDYuNDU4OTYgMTEuNzMzN1pNNi45MDY2NSA4LjQxMTkzQzcuMzA0MDUgOC40MTE5MyA3LjYzODcyIDguMjc1OTYgNy45MTA2NiA4LjAwNDAyQzguMTgyNiA3LjczMjA4IDguMzE4NTcgNy4zOTc0MSA4LjMxODU3IDdDOC4zMTg1NyA2LjYwMjU5IDguMTgyNiA2LjI2NzkyIDcuOTEwNjYgNS45OTU5OEM3LjYzODcyIDUuNzI0MDQgNy4zMDQwNSA1LjU4ODA3IDYuOTA2NjUgNS41ODgwN0M2LjUwOTI0IDUuNTg4MDcgNi4xNzQ1NyA1LjcyNDA0IDUuOTAyNjMgNS45OTU5OEM1LjYzMDY5IDYuMjY3OTIgNS40OTQ3MiA2LjYwMjU5IDUuNDk0NzIgN0M1LjQ5NDcyIDcuMzk3NDEgNS42MzA2OSA3LjczMjA4IDUuOTAyNjMgOC4wMDQwMkM2LjE3NDU3IDguMjc1OTYgNi41MDkyNCA4LjQxMTkzIDYuOTA2NjUgOC40MTE5M1pNNy4zNTQzMyAxMS43MzM3TDExLjQxNzkgOS40NzU1MlY1LjAwNDAyTDkuMDk0NzkgNi4zMDA1OEM5LjEzODA3IDYuNDA1NzMgOS4xNjg3MSA2LjUxOTQzIDkuMTg2NzQgNi42NDE2OEM5LjIwNDg3IDYuNzY0MDUgOS4yMTM5NCA2Ljg4MzQ5IDkuMjEzOTQgN0M5LjIxMzk0IDcuNTU2MjggOS4wMzg0MyA4LjA0NzI0IDguNjg3NCA4LjQ3Mjg4QzguMzM2NDggOC44OTg0MSA3Ljg5MjEzIDkuMTY2ODUgNy4zNTQzMyA5LjI3ODJWMTEuNzMzN1oiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo= \")',\n position: 'absolute',\n left: '0px',\n top: '2px',\n lineHeight: '0',\n verticalAlign: 'middle'\n },\n '.cm-completionLabel': {\n marginLeft: '18px',\n }\n};\n"]}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import type { GridColumnDef, GridRowData, GridOptions } from './types.js';
8
+ export declare class GridDataProcessor {
9
+ private options;
10
+ private pageSize;
11
+ private currentPage;
12
+ private sortField;
13
+ private sortDirection;
14
+ private filterText;
15
+ constructor(options: GridOptions, pageSize?: number);
16
+ setOptions(options: GridOptions): void;
17
+ setPageSize(pageSize: number): void;
18
+ setCurrentPage(page: number): void;
19
+ setSortField(field: string): void;
20
+ setSortDirection(direction: 'asc' | 'desc'): void;
21
+ setFilterText(text: string): void;
22
+ processData(data: GridRowData[], columns: GridColumnDef[]): {
23
+ filteredData: GridRowData[];
24
+ sortedData: GridRowData[];
25
+ paginatedData: GridRowData[];
26
+ totalPages: number;
27
+ };
28
+ private applyFilters;
29
+ private applySorting;
30
+ private applyPagination;
31
+ getSortClass(column: GridColumnDef): string;
32
+ getSortIcon(column: GridColumnDef): string;
33
+ isAllSelected(paginatedData: GridRowData[]): boolean;
34
+ isPartiallySelected(paginatedData: GridRowData[]): boolean;
35
+ getSortField(): string;
36
+ getSortDirection(): 'asc' | 'desc';
37
+ }
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export class GridDataProcessor {
8
+ constructor(options, pageSize = 20) {
9
+ this.options = options;
10
+ this.pageSize = pageSize;
11
+ this.currentPage = 1;
12
+ this.sortField = '';
13
+ this.sortDirection = 'asc';
14
+ this.filterText = '';
15
+ }
16
+ setOptions(options) {
17
+ this.options = options;
18
+ }
19
+ setPageSize(pageSize) {
20
+ this.pageSize = pageSize;
21
+ }
22
+ setCurrentPage(page) {
23
+ this.currentPage = page;
24
+ }
25
+ setSortField(field) {
26
+ this.sortField = field;
27
+ }
28
+ setSortDirection(direction) {
29
+ this.sortDirection = direction;
30
+ }
31
+ setFilterText(text) {
32
+ this.filterText = text;
33
+ }
34
+ processData(data, columns) {
35
+ // Apply filtering
36
+ const filteredData = this.applyFilters(data, columns);
37
+ // Apply sorting
38
+ const sortedData = this.applySorting(filteredData, columns);
39
+ // Apply pagination
40
+ const totalPages = Math.ceil(sortedData.length / this.pageSize);
41
+ const paginatedData = this.applyPagination(sortedData);
42
+ return {
43
+ filteredData,
44
+ sortedData,
45
+ paginatedData,
46
+ totalPages
47
+ };
48
+ }
49
+ applyFilters(data, columns) {
50
+ if (!this.filterText || !this.options.enableFiltering) {
51
+ return data;
52
+ }
53
+ return data.filter(row => {
54
+ return columns.some(column => {
55
+ const value = row[column.field];
56
+ if (value == null)
57
+ return false;
58
+ return String(value).toLowerCase().includes(this.filterText.toLowerCase());
59
+ });
60
+ });
61
+ }
62
+ applySorting(data, columns) {
63
+ if (!this.sortField || !this.options.enableSorting) {
64
+ return data;
65
+ }
66
+ const column = columns.find(col => col.field === this.sortField);
67
+ if (!column)
68
+ return data;
69
+ return [...data].sort((a, b) => {
70
+ const aVal = a[column.field];
71
+ const bVal = b[column.field];
72
+ if (aVal == null && bVal == null)
73
+ return 0;
74
+ if (aVal == null)
75
+ return 1;
76
+ if (bVal == null)
77
+ return -1;
78
+ if (typeof aVal === 'string' && typeof bVal === 'string') {
79
+ return this.sortDirection === 'asc'
80
+ ? aVal.localeCompare(bVal)
81
+ : bVal.localeCompare(aVal);
82
+ }
83
+ if (typeof aVal === 'number' && typeof bVal === 'number') {
84
+ return this.sortDirection === 'asc' ? aVal - bVal : bVal - aVal;
85
+ }
86
+ return 0;
87
+ });
88
+ }
89
+ applyPagination(data) {
90
+ if (!this.options.enablePagination) {
91
+ return data;
92
+ }
93
+ const startIndex = (this.currentPage - 1) * this.pageSize;
94
+ const endIndex = startIndex + this.pageSize;
95
+ return data.slice(startIndex, endIndex);
96
+ }
97
+ getSortClass(column) {
98
+ if (this.sortField !== column.field)
99
+ return '';
100
+ return this.sortDirection === 'asc' ? 'sort-asc' : 'sort-desc';
101
+ }
102
+ getSortIcon(column) {
103
+ if (this.sortField !== column.field)
104
+ return '↕';
105
+ return this.sortDirection === 'asc' ? '↑' : '↓';
106
+ }
107
+ isAllSelected(paginatedData) {
108
+ return paginatedData.length > 0 && paginatedData.every(row => row.selected);
109
+ }
110
+ isPartiallySelected(paginatedData) {
111
+ const selectedCount = paginatedData.filter(row => row.selected).length;
112
+ return selectedCount > 0 && selectedCount < paginatedData.length;
113
+ }
114
+ // Getters for event handlers
115
+ getSortField() {
116
+ return this.sortField;
117
+ }
118
+ getSortDirection() {
119
+ return this.sortDirection;
120
+ }
121
+ }
122
+ //# sourceMappingURL=data-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-processor.js","sourceRoot":"","sources":["../../../src/nile-grid/data-processor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport type { GridColumnDef, GridRowData, GridOptions } from './types.js';\n\nexport class GridDataProcessor {\n private options: GridOptions;\n private pageSize: number;\n private currentPage: number;\n private sortField: string;\n private sortDirection: 'asc' | 'desc';\n private filterText: string;\n\n constructor(options: GridOptions, pageSize: number = 20) {\n this.options = options;\n this.pageSize = pageSize;\n this.currentPage = 1;\n this.sortField = '';\n this.sortDirection = 'asc';\n this.filterText = '';\n }\n\n setOptions(options: GridOptions): void {\n this.options = options;\n }\n\n setPageSize(pageSize: number): void {\n this.pageSize = pageSize;\n }\n\n setCurrentPage(page: number): void {\n this.currentPage = page;\n }\n\n setSortField(field: string): void {\n this.sortField = field;\n }\n\n setSortDirection(direction: 'asc' | 'desc'): void {\n this.sortDirection = direction;\n }\n\n setFilterText(text: string): void {\n this.filterText = text;\n }\n\n processData(data: GridRowData[], columns: GridColumnDef[]): {\n filteredData: GridRowData[];\n sortedData: GridRowData[];\n paginatedData: GridRowData[];\n totalPages: number;\n } {\n // Apply filtering\n const filteredData = this.applyFilters(data, columns);\n \n // Apply sorting\n const sortedData = this.applySorting(filteredData, columns);\n \n // Apply pagination\n const totalPages = Math.ceil(sortedData.length / this.pageSize);\n const paginatedData = this.applyPagination(sortedData);\n\n return {\n filteredData,\n sortedData,\n paginatedData,\n totalPages\n };\n }\n\n private applyFilters(data: GridRowData[], columns: GridColumnDef[]): GridRowData[] {\n if (!this.filterText || !this.options.enableFiltering) {\n return data;\n }\n\n return data.filter(row => {\n return columns.some(column => {\n const value = row[column.field];\n if (value == null) return false;\n return String(value).toLowerCase().includes(this.filterText.toLowerCase());\n });\n });\n }\n\n private applySorting(data: GridRowData[], columns: GridColumnDef[]): GridRowData[] {\n if (!this.sortField || !this.options.enableSorting) {\n return data;\n }\n\n const column = columns.find(col => col.field === this.sortField);\n if (!column) return data;\n\n return [...data].sort((a, b) => {\n const aVal = a[column.field];\n const bVal = b[column.field];\n \n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n\n if (typeof aVal === 'string' && typeof bVal === 'string') {\n return this.sortDirection === 'asc' \n ? aVal.localeCompare(bVal)\n : bVal.localeCompare(aVal);\n }\n\n if (typeof aVal === 'number' && typeof bVal === 'number') {\n return this.sortDirection === 'asc' ? aVal - bVal : bVal - aVal;\n }\n\n return 0;\n });\n }\n\n private applyPagination(data: GridRowData[]): GridRowData[] {\n if (!this.options.enablePagination) {\n return data;\n }\n\n const startIndex = (this.currentPage - 1) * this.pageSize;\n const endIndex = startIndex + this.pageSize;\n return data.slice(startIndex, endIndex);\n }\n\n getSortClass(column: GridColumnDef): string {\n if (this.sortField !== column.field) return '';\n return this.sortDirection === 'asc' ? 'sort-asc' : 'sort-desc';\n }\n\n getSortIcon(column: GridColumnDef): string {\n if (this.sortField !== column.field) return '↕';\n return this.sortDirection === 'asc' ? '↑' : '↓';\n }\n\n isAllSelected(paginatedData: GridRowData[]): boolean {\n return paginatedData.length > 0 && paginatedData.every(row => row.selected);\n }\n\n isPartiallySelected(paginatedData: GridRowData[]): boolean {\n const selectedCount = paginatedData.filter(row => row.selected).length;\n return selectedCount > 0 && selectedCount < paginatedData.length;\n }\n\n // Getters for event handlers\n getSortField(): string {\n return this.sortField;\n }\n\n getSortDirection(): 'asc' | 'desc' {\n return this.sortDirection;\n }\n}\n"]}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import type { GridColumnDef, GridRowData, GridOptions } from './types.js';
8
+ import type { GridDataProcessor } from './data-processor.js';
9
+ export declare class GridEventHandlers {
10
+ private options;
11
+ private dataProcessor;
12
+ private selectedRows;
13
+ private isResizing;
14
+ private resizingColumn;
15
+ private dragStartX;
16
+ private dragStartWidth;
17
+ constructor(options: GridOptions, dataProcessor: GridDataProcessor);
18
+ setOptions(options: GridOptions): void;
19
+ handleKeyDown(event: KeyboardEvent): void;
20
+ handleWheel(event: WheelEvent, updateVirtualScrolling: () => void): void;
21
+ handleColumnSort(column: GridColumnDef, onSort: (field: string, direction: 'asc' | 'desc') => void): void;
22
+ handleColumnFilter(column: GridColumnDef, value: string, onFilter: () => void): void;
23
+ handleRowSelection(row: GridRowData, event: Event, currentData: GridRowData[], onSelectionChange: () => void): void;
24
+ handleHeaderSelectionChange(event: Event, currentData: GridRowData[], onSelectionChange: () => void): void;
25
+ handleRowClick(row: GridRowData, event: Event): void;
26
+ handleCellEdit(row: GridRowData, column: GridColumnDef, value: any, onCellEdit: (row: GridRowData, column: GridColumnDef, oldValue: any, newValue: any) => void): void;
27
+ handleColumnResizeStart(column: GridColumnDef, event: MouseEvent): void;
28
+ private handleColumnResizeMove;
29
+ private handleColumnResizeEnd;
30
+ private handleArrowKeyNavigation;
31
+ private emit;
32
+ getSelectedRows(): GridRowData[];
33
+ isResizingColumn(): boolean;
34
+ getResizingColumn(): GridColumnDef | null;
35
+ }