ronds-metadata 1.3.89 → 1.3.91

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 (244) hide show
  1. package/README.md +25 -25
  2. package/es/api/index.d.ts +11 -1
  3. package/es/api/index.js +202 -47
  4. package/es/comps/Chart/bar/index.d.ts +8 -0
  5. package/es/comps/Chart/bar/index.js +136 -0
  6. package/es/comps/Chart/constants.d.ts +7 -0
  7. package/es/comps/Chart/constants.js +8 -0
  8. package/es/comps/Chart/index.d.ts +9 -0
  9. package/es/comps/Chart/index.js +31 -0
  10. package/es/comps/Chart/line/index.d.ts +8 -0
  11. package/es/comps/Chart/line/index.js +163 -0
  12. package/es/comps/Chart/pie/index.d.ts +8 -0
  13. package/es/comps/Chart/pie/index.js +67 -0
  14. package/es/comps/Chart/type.d.ts +19 -0
  15. package/es/comps/Chart/type.js +1 -0
  16. package/es/comps/Chart/utils.d.ts +1 -0
  17. package/es/comps/Chart/utils.js +19 -0
  18. package/es/comps/CodeEdit/index.d.ts +5 -2
  19. package/es/comps/CodeEdit/index.js +42 -91
  20. package/es/comps/CodeEdit/index.less +6 -6
  21. package/es/comps/CodeEdit/utils.d.ts +2 -0
  22. package/es/comps/CodeEdit/utils.js +173 -0
  23. package/es/comps/CodeEditor/config.d.ts +27 -0
  24. package/es/comps/CodeEditor/config.js +64 -0
  25. package/es/comps/CodeEditor/index.d.ts +42 -0
  26. package/es/comps/CodeEditor/index.js +320 -0
  27. package/es/comps/CodeEditor/index.less +3 -0
  28. package/es/comps/CodeEditor/suggestions/constants/cassandra.d.ts +7 -0
  29. package/es/comps/CodeEditor/suggestions/constants/cassandra.js +6 -0
  30. package/es/comps/CodeEditor/suggestions/constants/clickhouse.d.ts +7 -0
  31. package/es/comps/CodeEditor/suggestions/constants/clickhouse.js +6 -0
  32. package/es/comps/CodeEditor/suggestions/constants/dm.d.ts +7 -0
  33. package/es/comps/CodeEditor/suggestions/constants/dm.js +6 -0
  34. package/es/comps/CodeEditor/suggestions/constants/index.d.ts +33 -0
  35. package/es/comps/CodeEditor/suggestions/constants/index.js +19 -0
  36. package/es/comps/CodeEditor/suggestions/constants/pgsql.d.ts +7 -0
  37. package/es/comps/CodeEditor/suggestions/constants/pgsql.js +6 -0
  38. package/es/comps/CodeEditor/suggestions/constants/redis.d.ts +7 -0
  39. package/es/comps/CodeEditor/suggestions/constants/redis.js +6 -0
  40. package/es/comps/CodeEditor/suggestions/constants/sqlserver.d.ts +7 -0
  41. package/es/comps/CodeEditor/suggestions/constants/sqlserver.js +6 -0
  42. package/es/comps/CodeEditor/suggestions/register/database.d.ts +8 -0
  43. package/es/comps/CodeEditor/suggestions/register/database.js +61 -0
  44. package/es/comps/CodeEditor/suggestions/register/field.d.ts +10 -0
  45. package/es/comps/CodeEditor/suggestions/register/field.js +144 -0
  46. package/es/comps/CodeEditor/suggestions/register/index.d.ts +7 -0
  47. package/es/comps/CodeEditor/suggestions/register/index.js +7 -0
  48. package/es/comps/CodeEditor/suggestions/register/keyword.d.ts +6 -0
  49. package/es/comps/CodeEditor/suggestions/register/keyword.js +79 -0
  50. package/es/comps/CodeEditor/suggestions/register/prompt.d.ts +5 -0
  51. package/es/comps/CodeEditor/suggestions/register/prompt.js +40 -0
  52. package/es/comps/CodeEditor/suggestions/register/schema.d.ts +7 -0
  53. package/es/comps/CodeEditor/suggestions/register/schema.js +85 -0
  54. package/es/comps/CodeEditor/suggestions/register/table.d.ts +14 -0
  55. package/es/comps/CodeEditor/suggestions/register/table.js +173 -0
  56. package/es/comps/CodeEditor/utils.d.ts +13 -0
  57. package/es/comps/CodeEditor/utils.js +69 -0
  58. package/es/comps/DataMine/Line.js +0 -1
  59. package/es/comps/DraggableDiv/index.d.ts +9 -0
  60. package/es/comps/DraggableDiv/index.js +139 -0
  61. package/es/comps/DraggableDiv/index.less +45 -0
  62. package/es/comps/DynamicPorts/comps/ContextMenu.less +8 -8
  63. package/es/comps/DynamicPorts/comps/DragNode.js +1 -1
  64. package/es/comps/DynamicPorts/comps/GraphHandler/index.less +39 -39
  65. package/es/comps/DynamicPorts/comps/NodeElementAlgo.d.ts +6 -0
  66. package/es/comps/DynamicPorts/comps/NodeElementAlgo.js +76 -0
  67. package/es/comps/DynamicPorts/comps/NodeElementConfig.d.ts +6 -0
  68. package/es/comps/DynamicPorts/comps/NodeElementConfig.js +73 -0
  69. package/es/comps/DynamicPorts/comps/NodeElementRead.d.ts +6 -0
  70. package/es/comps/DynamicPorts/comps/NodeElementRead.js +76 -0
  71. package/es/comps/DynamicPorts/comps/contextMenu/EdgeContextMenu/index.less +5 -5
  72. package/es/comps/DynamicPorts/comps/contextMenu/GraphContextMenu/index.less +40 -40
  73. package/es/comps/DynamicPorts/comps/contextMenu/NodeContextMenu/index.js +1 -1
  74. package/es/comps/DynamicPorts/comps/contextMenu/NodeContextMenu/index.less +42 -42
  75. package/es/comps/DynamicPorts/comps/shape/connector.js +12 -2
  76. package/es/comps/DynamicPorts/comps/shape/edge.d.ts +2 -0
  77. package/es/comps/DynamicPorts/comps/shape/edge.js +30 -3
  78. package/es/comps/DynamicPorts/comps/shape/edge.less +8 -8
  79. package/es/comps/DynamicPorts/comps/shape/node.d.ts +15 -0
  80. package/es/comps/DynamicPorts/comps/shape/node.js +293 -5
  81. package/es/comps/DynamicPorts/constant/index.d.ts +2 -0
  82. package/es/comps/DynamicPorts/constant/index.js +3 -1
  83. package/es/comps/DynamicPorts/graph.d.ts +2 -2
  84. package/es/comps/DynamicPorts/graph.js +63 -38
  85. package/es/comps/DynamicPorts/index.d.ts +1 -1
  86. package/es/comps/DynamicPorts/index.js +1 -1
  87. package/es/comps/DynamicPorts/index.less +304 -3
  88. package/es/comps/DynamicPorts/interface.d.ts +7 -0
  89. package/es/comps/DynamicPorts/interface.js +1 -1
  90. package/es/comps/DynamicPorts/utils.d.ts +4 -0
  91. package/es/comps/DynamicPorts/utils.js +13 -2
  92. package/es/comps/Editable/DataCell/ButtonCell.js +28 -2
  93. package/es/comps/Editable/comps/EditableAction.d.ts +1 -0
  94. package/es/comps/Editable/comps/EditableAction.js +2 -1
  95. package/es/comps/Editable/comps/EditableRow.js +3 -2
  96. package/es/comps/Editable/comps/Texty.js +1 -2
  97. package/es/comps/Editable/comps/Texty.less +43 -43
  98. package/es/comps/Editable/comps/index.less +38 -38
  99. package/es/comps/Editable/index.d.ts +19 -0
  100. package/es/comps/Editable/index.js +15 -6
  101. package/es/comps/Editable/index.less +97 -97
  102. package/es/comps/Editable/interface.d.ts +1 -0
  103. package/es/comps/FileView/index.js +2 -2
  104. package/es/comps/FormGenerator/comps/Canvas/Preview.js +2 -1
  105. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/CassandraDs.d.ts +3 -0
  106. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/CassandraDs.js +258 -0
  107. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/KafkaDs.d.ts +3 -0
  108. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/KafkaDs.js +203 -0
  109. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/MinioDs.d.ts +3 -0
  110. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/MinioDs.js +203 -0
  111. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/PostgreSqlDs.d.ts +3 -0
  112. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/PostgreSqlDs.js +313 -0
  113. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/RedisDs.d.ts +3 -0
  114. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/datasource/RedisDs.js +203 -0
  115. package/es/comps/FormGenerator/comps/Canvas/core/RenderField/index.js +11 -1
  116. package/es/comps/FormGenerator/comps/Canvas/core/index.less +53 -0
  117. package/es/comps/FormGenerator/comps/Canvas/index.js +1 -1
  118. package/es/comps/FormGenerator/comps/Sidebar/index.js +3 -2
  119. package/es/comps/FormGenerator/comps/Sidebar/index.less +21 -21
  120. package/es/comps/FormGenerator/index.less +20 -20
  121. package/es/comps/FormGenerator/settings/index.d.ts +131 -8
  122. package/es/comps/FormGenerator/settings/index.js +41 -1
  123. package/es/comps/FormGenerator/settings/ruleConfig.d.ts +49 -0
  124. package/es/comps/FormGenerator/settings/ruleConfig.js +49 -0
  125. package/es/comps/FormGenerator/transformer.js +33 -7
  126. package/es/comps/JsonEdit/index.js +0 -1
  127. package/es/comps/JsonEdit/index.less +64 -64
  128. package/es/comps/JsonView/index.less +41 -41
  129. package/es/comps/MdEdit/index.less +6 -6
  130. package/es/comps/MdEditPro/index.less +166 -166
  131. package/es/comps/MdNavbar/index.less +1 -1
  132. package/es/comps/MdView/index.less +3 -3
  133. package/es/comps/MetadataEdit/components/MetaFieldsEdit.js +5 -5
  134. package/es/comps/MetadataEdit/constant/index.js +0 -2
  135. package/es/comps/MetadataEdit/index.js +3 -3
  136. package/es/comps/MetadataEdit/index.less +10 -10
  137. package/es/comps/MetadataEdit/type.d.ts +20 -20
  138. package/es/comps/MetadataForm/DataCell/Array.js +14 -2
  139. package/es/comps/MetadataForm/DataCell/Input.js +65 -8
  140. package/es/comps/MetadataForm/DataCell/Ref.js +6 -6
  141. package/es/comps/MetadataForm/DataCell/Select.js +72 -31
  142. package/es/comps/MetadataForm/DataCell/business/config.d.ts +32 -36
  143. package/es/comps/MetadataForm/DataCell/business/config.js +74 -67
  144. package/es/comps/MetadataForm/DataCell/business/index.js +44 -1
  145. package/es/comps/MetadataForm/DataCell/layout/TableArray.js +7 -7
  146. package/es/comps/MetadataForm/DataCell/plugin/ButtonSelect.d.ts +12 -0
  147. package/es/comps/MetadataForm/DataCell/plugin/ButtonSelect.js +68 -0
  148. package/es/comps/MetadataForm/DataCell/plugin/Datasource/Cassandra.d.ts +9 -1
  149. package/es/comps/MetadataForm/DataCell/plugin/Datasource/Cassandra.js +163 -90
  150. package/es/comps/MetadataForm/DataCell/plugin/Datasource/DataLake.d.ts +20 -0
  151. package/es/comps/MetadataForm/DataCell/plugin/Datasource/DataLake.js +255 -0
  152. package/es/comps/MetadataForm/DataCell/plugin/Datasource/DatasourceType.d.ts +17 -0
  153. package/es/comps/MetadataForm/DataCell/plugin/Datasource/DatasourceType.js +133 -0
  154. package/es/comps/MetadataForm/DataCell/plugin/Datasource/ExtraAttr.d.ts +10 -0
  155. package/es/comps/MetadataForm/DataCell/plugin/Datasource/ExtraAttr.js +65 -0
  156. package/es/comps/MetadataForm/DataCell/plugin/Datasource/Kafka.d.ts +11 -1
  157. package/es/comps/MetadataForm/DataCell/plugin/Datasource/Kafka.js +146 -60
  158. package/es/comps/MetadataForm/DataCell/plugin/Datasource/Minio.d.ts +18 -0
  159. package/es/comps/MetadataForm/DataCell/plugin/Datasource/Minio.js +92 -0
  160. package/es/comps/MetadataForm/DataCell/plugin/Datasource/PostgreSQL.d.ts +13 -3
  161. package/es/comps/MetadataForm/DataCell/plugin/Datasource/PostgreSQL.js +206 -124
  162. package/es/comps/MetadataForm/DataCell/plugin/Datasource/Redis.d.ts +18 -0
  163. package/es/comps/MetadataForm/DataCell/plugin/Datasource/Redis.js +92 -0
  164. package/es/comps/MetadataForm/DataCell/plugin/Datasource/SqlServer.d.ts +10 -1
  165. package/es/comps/MetadataForm/DataCell/plugin/Datasource/SqlServer.js +207 -122
  166. package/es/comps/MetadataForm/DataCell/plugin/Datasource/hooks.d.ts +2 -1
  167. package/es/comps/MetadataForm/DataCell/plugin/Datasource/hooks.js +39 -16
  168. package/es/comps/MetadataForm/DataCell/plugin/Datasource/index.js +359 -164
  169. package/es/comps/MetadataForm/DataCell/plugin/MappingTable.d.ts +12 -0
  170. package/es/comps/MetadataForm/DataCell/plugin/MappingTable.js +289 -0
  171. package/es/comps/MetadataForm/DataCell/plugin/RefreshSelect.js +17 -15
  172. package/es/comps/MetadataForm/DataCell/plugin/RunFrequency.d.ts +7 -0
  173. package/es/comps/MetadataForm/DataCell/plugin/RunFrequency.js +395 -0
  174. package/es/comps/MetadataForm/DataCell/plugin/RunStopSetting.d.ts +7 -0
  175. package/es/comps/MetadataForm/DataCell/plugin/RunStopSetting.js +238 -0
  176. package/es/comps/MetadataForm/DataCell/plugin/SparkSqlTable.d.ts +4 -1
  177. package/es/comps/MetadataForm/DataCell/plugin/SparkSqlTable.js +94 -78
  178. package/es/comps/MetadataForm/HOC/index.js +4 -4
  179. package/es/comps/MetadataForm/HOC/index.less +17 -6
  180. package/es/comps/MetadataForm/constants.d.ts +4 -0
  181. package/es/comps/MetadataForm/constants.js +6 -2
  182. package/es/comps/MetadataForm/hooks/index.js +5 -5
  183. package/es/comps/MetadataForm/index.d.ts +12 -0
  184. package/es/comps/MetadataForm/index.js +59 -3
  185. package/es/comps/MetadataForm/index.less +32 -29
  186. package/es/comps/MetadataForm/interface.d.ts +6 -0
  187. package/es/comps/MetadataForm/interface.js +2 -1
  188. package/es/comps/MetadataForm/utils.d.ts +2 -0
  189. package/es/comps/MetadataForm/utils.js +45 -9
  190. package/es/comps/Split/index.less +29 -29
  191. package/es/comps/VideoPlayer/index.d.ts +3 -0
  192. package/es/comps/VideoPlayer/index.js +14 -0
  193. package/es/comps/VideoPlayer/index.less +9 -0
  194. package/es/framework/canvas/EventBus.d.ts +21 -0
  195. package/es/framework/canvas/EventBus.js +66 -0
  196. package/es/framework/canvas/ImageLoadPool.d.ts +24 -0
  197. package/es/framework/canvas/ImageLoadPool.js +197 -0
  198. package/es/framework/canvas/index.d.ts +409 -0
  199. package/es/framework/canvas/index.js +2639 -0
  200. package/es/framework/canvas/shape/Circle.d.ts +7 -0
  201. package/es/framework/canvas/shape/Circle.js +35 -0
  202. package/es/framework/canvas/shape/Dot.d.ts +7 -0
  203. package/es/framework/canvas/shape/Dot.js +30 -0
  204. package/es/framework/canvas/shape/Grid.d.ts +12 -0
  205. package/es/framework/canvas/shape/Grid.js +82 -0
  206. package/es/framework/canvas/shape/Line.d.ts +6 -0
  207. package/es/framework/canvas/shape/Line.js +29 -0
  208. package/es/framework/canvas/shape/Polygon.d.ts +6 -0
  209. package/es/framework/canvas/shape/Polygon.js +24 -0
  210. package/es/framework/canvas/shape/Rect.d.ts +6 -0
  211. package/es/framework/canvas/shape/Rect.js +37 -0
  212. package/es/framework/canvas/shape/Shape.d.ts +42 -0
  213. package/es/framework/canvas/shape/Shape.js +49 -0
  214. package/es/framework/canvas/type.d.ts +17 -0
  215. package/es/framework/canvas/type.js +1 -0
  216. package/es/framework/graph/index.js +4 -4
  217. package/es/framework/graph/index.less +15 -15
  218. package/es/framework/http/index.js +8 -8
  219. package/es/framework/http/msgpack5/lib/helpers.js +0 -1
  220. package/es/framework/jsonQl/index.js +22 -22
  221. package/es/framework/libs/iconfont/iconfont.css +171 -3
  222. package/es/framework/libs/iconfont/iconfont.json +294 -0
  223. package/es/framework/libs/iconfont/iconfont.ttf +0 -0
  224. package/es/framework/libs/iconfont/iconfont.woff +0 -0
  225. package/es/framework/libs/iconfont/iconfont.woff2 +0 -0
  226. package/es/framework/libs/jquery.min.js +5 -5
  227. package/es/framework/metadata/MetadataService.d.ts +7 -0
  228. package/es/framework/metadata/MetadataService.js +124 -29
  229. package/es/framework/metadata/types.d.ts +14 -1
  230. package/es/framework/proto/index.d.ts +18 -0
  231. package/es/framework/proto/index.js +85 -1
  232. package/es/framework/rxjs-hooks/useMemoReplaySubject.d.ts +3 -0
  233. package/es/framework/rxjs-hooks/useMemoReplaySubject.js +49 -0
  234. package/es/framework/wave/index.d.ts +217 -0
  235. package/es/framework/wave/index.js +1448 -0
  236. package/es/framework/wave/type.d.ts +143 -0
  237. package/es/framework/wave/type.js +1 -0
  238. package/es/index.d.ts +10 -1
  239. package/es/index.js +13 -2
  240. package/es/theme.less +2 -0
  241. package/es/utils.js +1 -1
  242. package/package.json +122 -117
  243. package/es/comps/MetadataForm/DataCell/plugin/MapTable.d.ts +0 -8
  244. package/es/comps/MetadataForm/DataCell/plugin/MapTable.js +0 -297
@@ -0,0 +1,6 @@
1
+ import { DatabaseTypeCode } from '../../config';
2
+ export default {
3
+ type: DatabaseTypeCode.POSTGRESQL,
4
+ keywords: ['ALL', 'ANALYSE', 'ANALYZE', 'AND', 'ANY', 'ARRAY', 'AS', 'ASC', 'ASYMMETRIC', 'AUTHORIZATION', 'BINARY', 'BOTH', 'CASE', 'CAST', 'CHECK', 'COLLATE', 'COLLATION', 'COLUMN', 'CONCURRENTLY', 'CONSTRAINT', 'CREATE', 'CROSS', 'CURRENT_CATALOG', 'CURRENT_DATE', 'CURRENT_ROLE', 'CURRENT_SCHEMA', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'DEFAULT', 'DEFERRABLE', 'DESC', 'DISTINCT', 'DO', 'ELSE', 'END', 'EXCEPT', 'FALSE', 'FETCH', 'FOR', 'FOREIGN', 'FREEZE', 'FROM', 'FULL', 'GRANT', 'GROUP', 'HAVING', 'ILIKE', 'IN', 'INITIALLY', 'INNER', 'INTERSECT', 'INTO', 'IS', 'ISNULL', 'JOIN', 'LATERAL', 'LEADING', 'LEFT', 'LIKE', 'LIMIT', 'LOCALTIME', 'LOCALTIMESTAMP', 'NATURAL', 'NOT', 'NOTNULL', 'NULL', 'OFFSET', 'ON', 'ONLY', 'OR', 'ORDER', 'OUTER', 'OVERLAPS', 'PLACING', 'PRIMARY', 'REFERENCES', 'RETURNING', 'RIGHT', 'SELECT', 'SESSION_USER', 'SIMILAR', 'SOME', 'SYMMETRIC', 'TABLE', 'TABLESAMPLE', 'THEN', 'TO', 'TRAILING', 'TRUE', 'UNION', 'UNIQUE', 'USER', 'USING', 'VARIADIC', 'VERBOSE', 'WHEN', 'WHERE', 'WINDOW', 'WITH'],
5
+ functions: ['abbrev', 'abs', 'acldefault', 'aclexplode', 'acos', 'acosd', 'acosh', 'age', 'any', 'area', 'array_agg', 'array_append', 'array_cat', 'array_dims', 'array_fill', 'array_length', 'array_lower', 'array_ndims', 'array_position', 'array_positions', 'array_prepend', 'array_remove', 'array_replace', 'array_to_json', 'array_to_string', 'array_to_tsvector', 'array_upper', 'ascii', 'asin', 'asind', 'asinh', 'atan', 'atan2', 'atan2d', 'atand', 'atanh', 'avg', 'bit', 'bit_and', 'bit_count', 'bit_length', 'bit_or', 'bit_xor', 'bool_and', 'bool_or', 'bound_box', 'box', 'brin_desummarize_range', 'brin_summarize_new_values', 'brin_summarize_range', 'broadcast', 'btrim', 'cardinality', 'cbrt', 'ceil', 'ceiling', 'center', 'char_length', 'character_length', 'chr', 'circle', 'clock_timestamp', 'coalesce', 'col_description', 'concat', 'concat_ws', 'convert', 'convert_from', 'convert_to', 'corr', 'cos', 'cosd', 'cosh', 'cot', 'cotd', 'count', 'covar_pop', 'covar_samp', 'cume_dist', 'current_catalog', 'current_database', 'current_date', 'current_query', 'current_role', 'current_schema', 'current_schemas', 'current_setting', 'current_time', 'current_timestamp', 'current_user', 'currval', 'cursor_to_xml', 'cursor_to_xmlschema', 'date_bin', 'date_part', 'date_trunc', 'database_to_xml', 'database_to_xml_and_xmlschema', 'database_to_xmlschema', 'decode', 'degrees', 'dense_rank', 'diagonal', 'diameter', 'div', 'encode', 'enum_first', 'enum_last', 'enum_range', 'every', 'exp', 'extract', 'factorial', 'family', 'first_value', 'floor', 'format', 'format_type', 'gcd', 'gen_random_uuid', 'generate_series', 'generate_subscripts', 'get_bit', 'get_byte', 'get_current_ts_config', 'gin_clean_pending_list', 'greatest', 'grouping', 'has_any_column_privilege', 'has_column_privilege', 'has_database_privilege', 'has_foreign_data_wrapper_privilege', 'has_function_privilege', 'has_language_privilege', 'has_schema_privilege', 'has_sequence_privilege', 'has_server_privilege', 'has_table_privilege', 'has_tablespace_privilege', 'has_type_privilege', 'height', 'host', 'hostmask', 'inet_client_addr', 'inet_client_port', 'inet_merge', 'inet_same_family', 'inet_server_addr', 'inet_server_port', 'initcap', 'isclosed', 'isempty', 'isfinite', 'isopen', 'json_agg', 'json_array_elements', 'json_array_elements_text', 'json_array_length', 'json_build_array', 'json_build_object', 'json_each', 'json_each_text', 'json_extract_path', 'json_extract_path_text', 'json_object', 'json_object_agg', 'json_object_keys', 'json_populate_record', 'json_populate_recordset', 'json_strip_nulls', 'json_to_record', 'json_to_recordset', 'json_to_tsvector', 'json_typeof', 'jsonb_agg', 'jsonb_array_elements', 'jsonb_array_elements_text', 'jsonb_array_length', 'jsonb_build_array', 'jsonb_build_object', 'jsonb_each', 'jsonb_each_text', 'jsonb_extract_path', 'jsonb_extract_path_text', 'jsonb_insert', 'jsonb_object', 'jsonb_object_agg', 'jsonb_object_keys', 'jsonb_path_exists', 'jsonb_path_match', 'jsonb_path_query', 'jsonb_path_query_array', 'jsonb_path_exists_tz', 'jsonb_path_query_first', 'jsonb_path_query_array_tz', 'jsonb_path_query_first_tz', 'jsonb_path_query_tz', 'jsonb_path_match_tz', 'jsonb_populate_record', 'jsonb_populate_recordset', 'jsonb_pretty', 'jsonb_set', 'jsonb_set_lax', 'jsonb_strip_nulls', 'jsonb_to_record', 'jsonb_to_recordset', 'jsonb_to_tsvector', 'jsonb_typeof', 'justify_days', 'justify_hours', 'justify_interval', 'lag', 'last_value', 'lastval', 'lcm', 'lead', 'least', 'left', 'length', 'line', 'ln', 'localtime', 'localtimestamp', 'log', 'log10', 'lower', 'lower_inc', 'lower_inf', 'lpad', 'lseg', 'ltrim', 'macaddr8_set7bit', 'make_date', 'make_interval', 'make_time', 'make_timestamp', 'make_timestamptz', 'makeaclitem', 'masklen', 'max', 'md5', 'min', 'min_scale', 'mod', 'mode', 'multirange', 'netmask', 'network', 'nextval', 'normalize', 'now', 'npoints', 'nth_value', 'ntile', 'nullif', 'num_nonnulls', 'num_nulls', 'numnode', 'obj_description', 'octet_length', 'overlay', 'parse_ident', 'path', 'pclose', 'percent_rank', 'percentile_cont', 'percentile_disc', 'pg_advisory_lock', 'pg_advisory_lock_shared', 'pg_advisory_unlock', 'pg_advisory_unlock_all', 'pg_advisory_unlock_shared', 'pg_advisory_xact_lock', 'pg_advisory_xact_lock_shared', 'pg_backend_pid', 'pg_backup_start_time', 'pg_blocking_pids', 'pg_cancel_backend', 'pg_client_encoding', 'pg_collation_actual_version', 'pg_collation_is_visible', 'pg_column_compression', 'pg_column_size', 'pg_conf_load_time', 'pg_control_checkpoint', 'pg_control_init', 'pg_control_recovery', 'pg_control_system', 'pg_conversion_is_visible', 'pg_copy_logical_replication_slot', 'pg_copy_physical_replication_slot', 'pg_create_logical_replication_slot', 'pg_create_physical_replication_slot', 'pg_create_restore_point', 'pg_current_logfile', 'pg_current_snapshot', 'pg_current_wal_flush_lsn', 'pg_current_wal_insert_lsn', 'pg_current_wal_lsn', 'pg_current_xact_id', 'pg_current_xact_id_if_assigned', 'pg_current_xlog_flush_location', 'pg_current_xlog_insert_location', 'pg_current_xlog_location', 'pg_database_size', 'pg_describe_object', 'pg_drop_replication_slot', 'pg_event_trigger_ddl_commands', 'pg_event_trigger_dropped_objects', 'pg_event_trigger_table_rewrite_oid', 'pg_event_trigger_table_rewrite_reason', 'pg_export_snapshot', 'pg_filenode_relation', 'pg_function_is_visible', 'pg_get_catalog_foreign_keys', 'pg_get_constraintdef', 'pg_get_expr', 'pg_get_function_arguments', 'pg_get_function_identity_arguments', 'pg_get_function_result', 'pg_get_functiondef', 'pg_get_indexdef', 'pg_get_keywords', 'pg_get_object_address', 'pg_get_owned_sequence', 'pg_get_ruledef', 'pg_get_serial_sequence', 'pg_get_statisticsobjdef', 'pg_get_triggerdef', 'pg_get_userbyid', 'pg_get_viewdef', 'pg_get_wal_replay_pause_state', 'pg_has_role', 'pg_identify_object', 'pg_identify_object_as_address', 'pg_import_system_collations', 'pg_index_column_has_property', 'pg_index_has_property', 'pg_indexam_has_property', 'pg_indexes_size', 'pg_is_in_backup', 'pg_is_in_recovery', 'pg_is_other_temp_schema', 'pg_is_wal_replay_paused', 'pg_is_xlog_replay_paused', 'pg_jit_available', 'pg_last_committed_xact', 'pg_last_wal_receive_lsn', 'pg_last_wal_replay_lsn', 'pg_last_xact_replay_timestamp', 'pg_last_xlog_receive_location', 'pg_last_xlog_replay_location', 'pg_listening_channels', 'pg_log_backend_memory_contexts', 'pg_logical_emit_message', 'pg_logical_slot_get_binary_changes', 'pg_logical_slot_get_changes', 'pg_logical_slot_peek_binary_changes', 'pg_logical_slot_peek_changes', 'pg_ls_archive_statusdir', 'pg_ls_dir', 'pg_ls_logdir', 'pg_ls_tmpdir', 'pg_ls_waldir', 'pg_mcv_list_items', 'pg_my_temp_schema', 'pg_notification_queue_usage', 'pg_opclass_is_visible', 'pg_operator_is_visible', 'pg_opfamily_is_visible', 'pg_options_to_table', 'pg_partition_ancestors', 'pg_partition_root', 'pg_partition_tree', 'pg_postmaster_start_time', 'pg_promote', 'pg_read_binary_file', 'pg_read_file', 'pg_relation_filenode', 'pg_relation_filepath', 'pg_relation_size', 'pg_reload_conf', 'pg_replication_origin_advance', 'pg_replication_origin_create', 'pg_replication_origin_drop', 'pg_replication_origin_oid', 'pg_replication_origin_progress', 'pg_replication_origin_session_is_setup', 'pg_replication_origin_session_progress', 'pg_replication_origin_session_reset', 'pg_replication_origin_session_setup', 'pg_replication_origin_xact_reset', 'pg_replication_origin_xact_setup', 'pg_replication_slot_advance', 'pg_rotate_logfile', 'pg_safe_snapshot_blocking_pids', 'pg_size_bytes', 'pg_size_pretty', 'pg_sleep', 'pg_sleep_for', 'pg_sleep_until', 'pg_snapshot_xip', 'pg_snapshot_xmax', 'pg_snapshot_xmin', 'pg_start_backup', 'pg_stat_file', 'pg_statistics_obj_is_visible', 'pg_stop_backup', 'pg_switch_wal', 'pg_switch_xlog', 'pg_table_is_visible', 'pg_table_size', 'pg_tablespace_databases', 'pg_tablespace_location', 'pg_tablespace_size', 'pg_terminate_backend', 'pg_total_relation_size', 'pg_trigger_depth', 'pg_try_advisory_lock', 'pg_try_advisory_lock_shared', 'pg_try_advisory_xact_lock', 'pg_try_advisory_xact_lock_shared', 'pg_ts_config_is_visible', 'pg_ts_dict_is_visible', 'pg_ts_parser_is_visible', 'pg_ts_template_is_visible', 'pg_type_is_visible', 'pg_typeof', 'pg_visible_in_snapshot', 'pg_wal_lsn_diff', 'pg_wal_replay_pause', 'pg_wal_replay_resume', 'pg_walfile_name', 'pg_walfile_name_offset', 'pg_xact_commit_timestamp', 'pg_xact_commit_timestamp_origin', 'pg_xact_status', 'pg_xlog_location_diff', 'pg_xlog_replay_pause', 'pg_xlog_replay_resume', 'pg_xlogfile_name', 'pg_xlogfile_name_offset', 'phraseto_tsquery', 'pi', 'plainto_tsquery', 'point', 'polygon', 'popen', 'position', 'power', 'pqserverversion', 'query_to_xml', 'query_to_xml_and_xmlschema', 'query_to_xmlschema', 'querytree', 'quote_ident', 'quote_literal', 'quote_nullable', 'radians', 'radius', 'random', 'range_agg', 'range_intersect_agg', 'range_merge', 'rank', 'regexp_match', 'regexp_matches', 'regexp_replace', 'regexp_split_to_array', 'regexp_split_to_table', 'regr_avgx', 'regr_avgy', 'regr_count', 'regr_intercept', 'regr_r2', 'regr_slope', 'regr_sxx', 'regr_sxy', 'regr_syy', 'repeat', 'replace', 'reverse', 'right', 'round', 'row_number', 'row_security_active', 'row_to_json', 'rpad', 'rtrim', 'scale', 'schema_to_xml', 'schema_to_xml_and_xmlschema', 'schema_to_xmlschema', 'session_user', 'set_bit', 'set_byte', 'set_config', 'set_masklen', 'setseed', 'setval', 'setweight', 'sha224', 'sha256', 'sha384', 'sha512', 'shobj_description', 'sign', 'sin', 'sind', 'sinh', 'slope', 'split_part', 'sprintf', 'sqrt', 'starts_with', 'statement_timestamp', 'stddev', 'stddev_pop', 'stddev_samp', 'string_agg', 'string_to_array', 'string_to_table', 'strip', 'strpos', 'substr', 'substring', 'sum', 'suppress_redundant_updates_trigger', 'table_to_xml', 'table_to_xml_and_xmlschema', 'table_to_xmlschema', 'tan', 'tand', 'tanh', 'text', 'timeofday', 'timezone', 'to_ascii', 'to_char', 'to_date', 'to_hex', 'to_json', 'to_number', 'to_regclass', 'to_regcollation', 'to_regnamespace', 'to_regoper', 'to_regoperator', 'to_regproc', 'to_regprocedure', 'to_regrole', 'to_regtype', 'to_timestamp', 'to_tsquery', 'to_tsvector', 'transaction_timestamp', 'translate', 'trim', 'trim_array', 'trim_scale', 'trunc', 'ts_debug', 'ts_delete', 'ts_filter', 'ts_headline', 'ts_lexize', 'ts_parse', 'ts_rank', 'ts_rank_cd', 'ts_rewrite', 'ts_stat', 'ts_token_type', 'tsquery_phrase', 'tsvector_to_array', 'tsvector_update_trigger', 'tsvector_update_trigger_column', 'txid_current', 'txid_current_if_assigned', 'txid_current_snapshot', 'txid_snapshot_xip', 'txid_snapshot_xmax', 'txid_snapshot_xmin', 'txid_status', 'txid_visible_in_snapshot', 'unistr', 'unnest', 'upper', 'upper_inc', 'upper_inf', 'user', 'var_pop', 'var_samp', 'variance', 'version', 'websearch_to_tsquery', 'width', 'width_bucket', 'xml_is_well_formed', 'xml_is_well_formed_content', 'xml_is_well_formed_document', 'xmlagg', 'xmlcomment', 'xmlconcat', 'xmlelement', 'xmlexists', 'xmlforest', 'xmlparse', 'xmlpi', 'xmlroot', 'xmlserialize', 'xpath', 'xpath_exists']
6
+ };
@@ -0,0 +1,7 @@
1
+ import { DatabaseTypeCode } from '../../config';
2
+ declare const _default: {
3
+ type: DatabaseTypeCode;
4
+ keywords: string[];
5
+ functions: any[];
6
+ };
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { DatabaseTypeCode } from '../../config';
2
+ export default {
3
+ type: DatabaseTypeCode.REDIS,
4
+ keywords: ['APPEND', 'AUTH', 'BGREWRITEAOF', 'BGSAVE', 'BITCOUNT', 'BITFIELD', 'BITOP', 'BITPOS', 'BLPOP', 'BRPOP', 'BRPOPLPUSH', 'CLIENT', 'CLUSTER', 'COMMAND', 'CONFIG', 'DBSIZE', 'DEBUG', 'DECR', 'DECRBY', 'DEL', 'DISCARD', 'DUMP', 'ECHO', 'EVAL', 'EVALSHA', 'EXEC', 'EXISTS', 'EXPIRE', 'EXPIREAT', 'FLUSHALL', 'FLUSHDB', 'GEOADD', 'GEODIST', 'GEOHASH', 'GEOPOS', 'GEORADIUS', 'GEORADIUSBYMEMBER', 'GET', 'GETBIT', 'GETRANGE', 'GETSET', 'HDEL', 'HEXISTS', 'HGET', 'HGETALL', 'HINCRBY', 'HINCRBYFLOAT', 'HKEYS', 'HLEN', 'HMGET', 'HMSET', 'HSCAN', 'HSET', 'HSETNX', 'HTYPE', 'HVALS', 'INCR', 'INCRBY', 'INCRBYFLOAT', 'INFO', 'KEYS', 'LASTSAVE', 'LATENCY', 'LINDEX', 'LINSERT', 'LLEN', 'LPOP', 'LPUSH', 'LPUSHX', 'LRANGE', 'LREM', 'LSET', 'LTRIM', 'MEMORY', 'MIGRATE', 'MONITOR', 'MOVE', 'MSET', 'MSETNX', 'MULTI', 'OBJECT', 'PERSIST', 'PEXPIRE', 'PEXPIREAT', 'PFADD', 'PFCOUNT', 'PFMERGE', 'PING', 'PSETEX', 'PSUBSCRIBE', 'PTTL', 'PUBLISH', 'PUNSUBSCRIBE', 'QUIT', 'RANDOMKEY', 'READONLY', 'READWRITE', 'RENAME', 'RENAMENX', 'RESTORE', 'ROLE', 'RPOP', 'RPOPLPUSH', 'RPUSH', 'RPUSHX', 'SADD', 'SAVE', 'SCARD', 'SCRIPT', 'SDIFF', 'SDIFFSTORE', 'SELECT', 'SET', 'SETBIT', 'SETEX', 'SETNX', 'SETRANGE', 'SHUTDOWN', 'SINTER', 'SINTERSTORE', 'SISMEMBER', 'SLAVEOF', 'SLOWLOG', 'SMEMBERS', 'SMOVE', 'SORT', 'SPOP', 'SRANDMEMBER', 'SREM', 'STRLEN', 'SUBSCRIBE', 'SUNION', 'SUNIONSTORE', 'SWAPDB', 'SYNC', 'TIME', 'TOUCH', 'TTL', 'TYPE', 'UNSUBSCRIBE', 'UNLINK', 'UNWATCH', 'WAIT', 'WATCH', 'ZADD', 'ZCARD', 'ZCOUNT', 'ZINCRBY', 'ZINTERSTORE', 'ZLEXCOUNT', 'ZRANGE', 'ZRANGEBYLEX', 'ZRANGEBYSCORE', 'ZRANK', 'ZREM', 'ZREMRANGEBYLEX', 'ZREMRANGEBYRANK', 'ZREMRANGEBYSCORE', 'ZREVRANGE', 'ZREVRANGEBYLEX', 'ZREVRANGEBYSCORE', 'ZREVRANK', 'ZSCAN', 'ZSCORE', 'ZUNIONSTORE'],
5
+ functions: []
6
+ };
@@ -0,0 +1,7 @@
1
+ import { DatabaseTypeCode } from '../../config';
2
+ declare const _default: {
3
+ type: DatabaseTypeCode;
4
+ keywords: string[];
5
+ functions: string[];
6
+ };
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { DatabaseTypeCode } from '../../config';
2
+ export default {
3
+ type: DatabaseTypeCode.SQLSERVER,
4
+ keywords: ['ADD', 'ALL', 'ALTER', 'AND', 'ANY', 'AS', 'ASC', 'AUTHORIZATION', 'BACKUP', 'BEGIN', 'BETWEEN', 'BREAK', 'BROWSE', 'BULK', 'BY', 'CASCADE', 'CASE', 'CHECK', 'CLOSE', 'CLUSTERED', 'COALESCE', 'COLLATE', 'COLUMN', 'COMMIT', 'COMPUTE', 'CONSTRAINT', 'CONTAINS', 'CONTINUE', 'CREATE', 'CROSS', 'CURRENT', 'CURRENT_DATE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'CURSOR', 'DATABASE', 'DBCC', 'DEALLOCATE', 'DECLARE', 'DEFAULT', 'DELETE', 'DENY', 'DESC', 'DISK', 'DISTINCT', 'DISTRIBUTED', 'DOUBLE', 'DROP', 'DUMP', 'ELSE', 'END', 'ERRLVL', 'ESCAPE', 'EXCEPT', 'EXEC', 'EXECUTE', 'EXISTS', 'EXIT', 'EXTERNAL', 'FETCH', 'FILE', 'FILLFACTOR', 'FOR', 'FOREIGN', 'FREETEXT', 'FREETEXTTABLE', 'FROM', 'FULL', 'FUNCTION', 'GOTO', 'GRANT', 'GROUP', 'HAVING', 'HOLDLOCK', 'IDENTITY', 'IDENTITY_INSERT', 'IDENTITYCOL', 'IF', 'IN', 'INDEX', 'INNER', 'INSERT', 'INTERSECT', 'INTO', 'IS', 'JOIN', 'KEY', 'KILL', 'LEFT', 'LIKE', 'LINENO', 'LOAD', 'MERGE', 'NATIONAL', 'NOCHECK', 'NONCLUSTERED', 'NOT', 'NULL', 'NULLIF', 'OF', 'OFF', 'OFFSETS', 'ON', 'OPEN', 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML', 'OPTION', 'OR', 'ORDER', 'OUTER', 'OVER', 'PERCENT', 'PIVOT', 'PLAN', 'PRECISION', 'PRIMARY', 'PRINT', 'PROC', 'PROCEDURE', 'PUBLIC', 'RAISERROR', 'READ', 'READTEXT', 'RECONFIGURE', 'REFERENCES', 'REPLICATION', 'RESTORE', 'RESTRICT', 'RETURN', 'REVERT', 'REVOKE', 'RIGHT', 'ROLLBACK', 'ROWCOUNT', 'ROWGUIDCOL', 'RULE', 'SAVE', 'SCHEMA', 'SECURITYAUDIT', 'SELECT', 'SEMANTICKEYPHRASETABLE', 'SEMANTICSIMILARITYDETAILSTABLE', 'SEMANTICSIMILARITYTABLE', 'SESSION_USER', 'SET', 'SETUSER', 'SHUTDOWN', 'SOME', 'STATISTICS', 'SYSTEM_USER', 'TABLE', 'TABLESAMPLE', 'TEXTSIZE', 'THEN', 'TO', 'TOP', 'TRAN', 'TRANSACTION', 'TRIGGER', 'TRUNCATE', 'TRY_CONVERT', 'TSEQUAL', 'UNION', 'UNIQUE', 'UNPIVOT', 'UPDATE', 'UPDATETEXT', 'USE', 'USER', 'VALUES', 'VARYING', 'VIEW', 'WAITFOR', 'WHEN', 'WHERE', 'WHILE', 'WITH', 'WITHIN GROUP', 'WRITETEXT'],
5
+ functions: ['ABS', 'ACOS', 'APP_NAME', 'ASCII', 'ASIN', 'ATAN', 'ATN2', 'AVG', 'CAST', 'CEILING', 'CHAR', 'CHARINDEX', 'COALESCE', 'COL_LENGTH', 'COL_NAME', 'CONCAT', 'CONVERT', 'COS', 'COT', 'COUNT', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'DATABASEPROPERTYEX', 'DATALENGTH', 'DATEADD', 'DATEDIFF', 'DATEFROMPARTS', 'DATENAME', 'DATEPART', 'DAY', 'DB_ID', 'DB_NAME', 'DEGREES', 'EXP', 'FILE_ID', 'FILE_NAME', 'FLOOR', 'FORMAT', 'GETDATE', 'GETUTCDATE', 'HOST_ID', 'HOST_NAME', 'IDENT_CURRENT', 'IDENT_INCR', 'IDENT_SEED', 'IIF', 'INDEX_COL', 'ISDATE', 'ISNULL', 'ISNUMERIC', 'LAG', 'LEAD', 'LEFT', 'LEN', 'LOG', 'LOG10', 'LOWER', 'LTRIM', 'MAX', 'MIN', 'MONTH', 'NEWID', 'NEXT VALUE FOR', 'OBJECT_ID', 'OBJECT_NAME', 'PATINDEX', 'PERCENTILE_CONT', 'PERCENTILE_DISC', 'PI', 'POWER', 'QUOTENAME', 'RADIANS', 'RAND', 'RANK', 'REPLACE', 'REVERSE', 'RIGHT', 'ROUND', 'ROW_NUMBER', 'RTRIM', 'SCHEMA_ID', 'SCHEMA_NAME', 'SCOPE_IDENTITY', 'SERVERPROPERTY', 'SESSION_USER', 'SIGN', 'SIN', 'SOUNDEX', 'SPACE', 'SQRT', 'SQUARE', 'STATS_DATE', 'STDEV', 'STR', 'STUFF', 'SUBSTRING', 'SUM', 'SUSER_ID', 'SUSER_NAME', 'SYSTEM_USER', 'TAN', 'TEXTPTR', 'TEXTVALID', 'TRIM', 'TRY_CAST', 'TRY_CONVERT', 'TRY_PARSE', 'UNICODE', 'UPPER', 'USER_ID', 'USER_NAME', 'VAR', 'YEAR']
6
+ };
@@ -0,0 +1,8 @@
1
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
+ export declare const resetSuggestDatabase: () => void;
3
+ declare let suggestDatabase: monaco.IDisposable;
4
+ declare const registerSuggestDatabase: (databaseName: Array<{
5
+ name: string;
6
+ dataSourceName: string;
7
+ }>) => void;
8
+ export { suggestDatabase, registerSuggestDatabase };
@@ -0,0 +1,61 @@
1
+ /*
2
+ * @Author: wangxian
3
+ * @Date: 2024-11-11 14:24:37
4
+ * @LastEditTime: 2024-11-11 16:34:12
5
+ */
6
+ import { tr } from '../../../../framework/locale';
7
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
8
+ export var resetSuggestDatabase = function resetSuggestDatabase() {
9
+ suggestDatabase.dispose();
10
+ };
11
+ var suggestDatabase = monaco.languages.registerCompletionItemProvider('sql', {
12
+ provideCompletionItems: function provideCompletionItems() {
13
+ return {
14
+ suggestions: []
15
+ };
16
+ }
17
+ });
18
+ var checkTableContext = function checkTableContext(text) {
19
+ var normalizedText = text.trim().toUpperCase();
20
+ var tableKeywords = ['FROM', 'JOIN', 'INNER JOIN', 'LEFT JOIN', 'RIGHT JOIN', 'UPDATE'];
21
+ for (var _i = 0, _tableKeywords = tableKeywords; _i < _tableKeywords.length; _i++) {
22
+ var keyword = _tableKeywords[_i];
23
+ if (normalizedText.endsWith(keyword)) {
24
+ return true;
25
+ }
26
+ }
27
+ return false;
28
+ };
29
+ var registerSuggestDatabase = function registerSuggestDatabase(databaseName) {
30
+ resetSuggestDatabase();
31
+ suggestDatabase = monaco.languages.registerCompletionItemProvider('sql', {
32
+ triggerCharacters: [' ', '.'],
33
+ // @ts-ignore
34
+ provideCompletionItems: function provideCompletionItems(model, position) {
35
+ var lineContentUntilPosition = model.getValueInRange({
36
+ startLineNumber: position.lineNumber,
37
+ startColumn: 1,
38
+ endLineNumber: position.lineNumber,
39
+ endColumn: position.column
40
+ });
41
+ var isTableContext = checkTableContext(lineContentUntilPosition);
42
+ return {
43
+ suggestions: (databaseName || []).map(function (_ref) {
44
+ var name = _ref.name,
45
+ dataSourceName = _ref.dataSourceName;
46
+ return {
47
+ label: {
48
+ label: name,
49
+ detail: dataSourceName ? "(".concat(dataSourceName, ")") : null,
50
+ description: tr('数据库')
51
+ },
52
+ insertText: name,
53
+ sortText: isTableContext ? '01' : '08',
54
+ kind: monaco.languages.CompletionItemKind.Property
55
+ };
56
+ })
57
+ };
58
+ }
59
+ });
60
+ };
61
+ export { suggestDatabase, registerSuggestDatabase };
@@ -0,0 +1,10 @@
1
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
+ /** 当前库下的表 */
3
+ declare let suggestField: monaco.IDisposable;
4
+ export declare const resetSuggestField: () => void;
5
+ declare const addSuggestField: (props: {
6
+ tableName: string;
7
+ namespace: string;
8
+ }) => Promise<void>;
9
+ declare const registerSuggestField: (tableList: string[], namespace: string) => void;
10
+ export { suggestField, registerSuggestField, addSuggestField };
@@ -0,0 +1,144 @@
1
+ import "antd/es/message/style";
2
+ import _message from "antd/es/message";
3
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
4
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
5
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
6
+ /*
7
+ * @Author: wangxian
8
+ * @Date: 2024-11-11 16:39:08
9
+ * @LastEditTime: 2024-11-13 14:48:13
10
+ */
11
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
12
+ import { tr } from '../../../../framework/locale';
13
+ import { MetadataService } from '../../../../framework/metadata/MetadataService';
14
+ var fieldList = {};
15
+ /** 当前库下的表 */
16
+ var suggestField = monaco.languages.registerCompletionItemProvider('sql', {
17
+ provideCompletionItems: function provideCompletionItems() {
18
+ return {
19
+ suggestions: []
20
+ };
21
+ }
22
+ });
23
+ export var resetSuggestField = function resetSuggestField() {
24
+ suggestField.dispose();
25
+ };
26
+ var addSuggestField = /*#__PURE__*/function () {
27
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(props) {
28
+ var tableName, namespace, server, data;
29
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
30
+ while (1) switch (_context.prev = _context.next) {
31
+ case 0:
32
+ tableName = props.tableName, namespace = props.namespace;
33
+ if (fieldList[tableName]) {
34
+ _context.next = 7;
35
+ break;
36
+ }
37
+ server = new MetadataService();
38
+ _context.next = 5;
39
+ return server.getAllFieldFromTable({
40
+ tableName: tableName,
41
+ namespace: namespace
42
+ });
43
+ case 5:
44
+ data = _context.sent;
45
+ fieldList[tableName] = data;
46
+ case 7:
47
+ case "end":
48
+ return _context.stop();
49
+ }
50
+ }, _callee);
51
+ }));
52
+ return function addSuggestField(_x) {
53
+ return _ref.apply(this, arguments);
54
+ };
55
+ }();
56
+ function checkFieldContext(text) {
57
+ var normalizedText = text.trim().toUpperCase();
58
+ var columnKeywords = ['SELECT', 'WHERE', 'AND', 'OR', 'GROUP BY', 'ORDER BY', 'SET'];
59
+ for (var _i = 0, _columnKeywords = columnKeywords; _i < _columnKeywords.length; _i++) {
60
+ var keyword = _columnKeywords[_i];
61
+ if (normalizedText.endsWith(keyword)) {
62
+ return true;
63
+ }
64
+ }
65
+ return false;
66
+ }
67
+ var registerSuggestField = function registerSuggestField(tableList, namespace) {
68
+ try {
69
+ resetSuggestField();
70
+ fieldList = {};
71
+ suggestField = monaco.languages.registerCompletionItemProvider('sql', {
72
+ triggerCharacters: [',', '.', '('],
73
+ // @ts-ignore
74
+ provideCompletionItems: function () {
75
+ var _provideCompletionItems = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(model, position) {
76
+ var textUntilPosition, isFieldContext, match, schemaName, tableName, suggestions;
77
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
78
+ while (1) switch (_context2.prev = _context2.next) {
79
+ case 0:
80
+ // 获取到当前行文本
81
+ textUntilPosition = model.getValueInRange({
82
+ startLineNumber: position.lineNumber,
83
+ startColumn: 1,
84
+ endLineNumber: position.lineNumber,
85
+ endColumn: position.column
86
+ });
87
+ isFieldContext = checkFieldContext(textUntilPosition);
88
+ match = textUntilPosition.match(/^(?:"([^"]+)"\."([^"]+)"\.|"([^"]+)"\.([^"]+)\.|([^"\. ]+)\."([^"]+)"\.|([^"\. ]+)\.([^"]+)\.)$/);
89
+ if (match) {
90
+ if (match[1] && match[2]) {
91
+ schemaName = match[1];
92
+ tableName = match[2];
93
+ } else if (match[3] && match[4]) {
94
+ schemaName = match[3];
95
+ tableName = match[4];
96
+ } else if (match[5] && match[6]) {
97
+ schemaName = match[5];
98
+ tableName = match[6];
99
+ } else if (match[7] && match[8]) {
100
+ schemaName = match[7];
101
+ tableName = match[8];
102
+ }
103
+ }
104
+ if (tableName && schemaName && !fieldList[tableName]) {
105
+ addSuggestField({
106
+ tableName: tableName,
107
+ namespace: "".concat(namespace, ":").concat(schemaName)
108
+ });
109
+ }
110
+ suggestions = Object.keys(fieldList).reduce(function (acc, cur) {
111
+ var arr = fieldList[cur].map(function (fieldObj) {
112
+ return {
113
+ label: {
114
+ label: fieldObj.name,
115
+ detail: "(".concat(fieldObj === null || fieldObj === void 0 ? void 0 : fieldObj.belong, ")"),
116
+ description: tr('字段名')
117
+ },
118
+ kind: monaco.languages.CompletionItemKind.Field,
119
+ insertText: "\"".concat(fieldObj.name, "\""),
120
+ sortText: isFieldContext ? '01' : '08'
121
+ };
122
+ });
123
+ return [].concat(_toConsumableArray(acc), _toConsumableArray(arr));
124
+ }, []);
125
+ return _context2.abrupt("return", {
126
+ suggestions: suggestions
127
+ });
128
+ case 7:
129
+ case "end":
130
+ return _context2.stop();
131
+ }
132
+ }, _callee2);
133
+ }));
134
+ function provideCompletionItems(_x2, _x3) {
135
+ return _provideCompletionItems.apply(this, arguments);
136
+ }
137
+ return provideCompletionItems;
138
+ }()
139
+ });
140
+ } catch (e) {
141
+ _message.error(e);
142
+ }
143
+ };
144
+ export { suggestField, registerSuggestField, addSuggestField };
@@ -0,0 +1,7 @@
1
+ import { suggestKeyword, registerSuggestKeyword, resetSuggestKeyword } from './keyword';
2
+ import { suggestDatabase, registerSuggestDatabase, resetSuggestDatabase } from './database';
3
+ import { suggestTable, registerSuggestTable, resetSuggestTable } from './table';
4
+ import { suggestField, registerSuggestField, resetSuggestField } from './field';
5
+ import { registerSuggestSchema, resetSuggestSchema, suggestSchema } from './schema';
6
+ import { registerPromptWord } from './prompt';
7
+ export { suggestKeyword, registerSuggestKeyword, resetSuggestKeyword, suggestDatabase, registerSuggestDatabase, resetSuggestDatabase, suggestTable, registerSuggestTable, resetSuggestTable, suggestField, registerSuggestField, resetSuggestField, suggestSchema, registerSuggestSchema, resetSuggestSchema, registerPromptWord, };
@@ -0,0 +1,7 @@
1
+ import { suggestKeyword, registerSuggestKeyword, resetSuggestKeyword } from './keyword';
2
+ import { suggestDatabase, registerSuggestDatabase, resetSuggestDatabase } from './database';
3
+ import { suggestTable, registerSuggestTable, resetSuggestTable } from './table';
4
+ import { suggestField, registerSuggestField, resetSuggestField } from './field';
5
+ import { registerSuggestSchema, resetSuggestSchema, suggestSchema } from './schema';
6
+ import { registerPromptWord } from './prompt';
7
+ export { suggestKeyword, registerSuggestKeyword, resetSuggestKeyword, suggestDatabase, registerSuggestDatabase, resetSuggestDatabase, suggestTable, registerSuggestTable, resetSuggestTable, suggestField, registerSuggestField, resetSuggestField, suggestSchema, registerSuggestSchema, resetSuggestSchema, registerPromptWord };
@@ -0,0 +1,6 @@
1
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
+ import { DatabaseTypeCode } from '../../config';
3
+ export declare const resetSuggestKeyword: () => void;
4
+ declare let suggestKeyword: monaco.IDisposable;
5
+ declare const registerSuggestKeyword: (databaseCode?: DatabaseTypeCode) => void;
6
+ export { suggestKeyword, registerSuggestKeyword };
@@ -0,0 +1,79 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ /*
3
+ * @Author: wangxian
4
+ * @Date: 2024-11-11 14:24:37
5
+ * @LastEditTime: 2024-11-11 17:16:19
6
+ */
7
+ import { tr } from '../../../../framework/locale';
8
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
9
+ import suggestions from '../constants';
10
+ import { DatabaseTypeCode } from '../../config';
11
+ /** 关键词 */
12
+ var getSQLKeywords = function getSQLKeywords(keywords) {
13
+ return keywords.map(function (key) {
14
+ return {
15
+ label: {
16
+ label: key,
17
+ detail: '',
18
+ description: tr('关键词')
19
+ },
20
+ kind: monaco.languages.CompletionItemKind.Text,
21
+ insertText: key,
22
+ sortText: '08'
23
+ };
24
+ });
25
+ };
26
+ /** 函数 */
27
+ var getSQLFunctions = function getSQLFunctions(functions) {
28
+ return functions.map(function (key) {
29
+ return {
30
+ label: {
31
+ label: key,
32
+ detail: '',
33
+ description: tr('函数'),
34
+ sortText: '09'
35
+ },
36
+ kind: monaco.languages.CompletionItemKind.Function,
37
+ insertText: key
38
+ };
39
+ });
40
+ };
41
+ export var resetSuggestKeyword = function resetSuggestKeyword() {
42
+ suggestKeyword.dispose();
43
+ };
44
+ var suggestKeyword = monaco.languages.registerCompletionItemProvider('sql', {
45
+ provideCompletionItems: function provideCompletionItems() {
46
+ return {
47
+ suggestions: []
48
+ };
49
+ }
50
+ });
51
+ var registerSuggestKeyword = function registerSuggestKeyword(databaseCode) {
52
+ resetSuggestKeyword();
53
+ suggestKeyword = monaco.languages.registerCompletionItemProvider('sql', {
54
+ triggerCharacters: [' ', '('],
55
+ // @ts-ignore
56
+ provideCompletionItems: function provideCompletionItems(model, position) {
57
+ // 获取所有的编辑器实例
58
+ var commonSuggestions = Object.values(suggestions).find(function (v) {
59
+ return v.type === databaseCode;
60
+ });
61
+ if (commonSuggestions) {
62
+ return {
63
+ suggestions: [].concat(_toConsumableArray(getSQLKeywords(commonSuggestions === null || commonSuggestions === void 0 ? void 0 : commonSuggestions.keywords)), _toConsumableArray(getSQLFunctions(commonSuggestions === null || commonSuggestions === void 0 ? void 0 : commonSuggestions.functions)))
64
+ };
65
+ } else {
66
+ var intelliSenseMySQL = Object.values(suggestions).find(function (v) {
67
+ return v.type === DatabaseTypeCode.MYSQL;
68
+ });
69
+ if (!intelliSenseMySQL) return {
70
+ suggestions: []
71
+ };
72
+ return {
73
+ suggestions: [].concat(_toConsumableArray(getSQLKeywords(intelliSenseMySQL === null || intelliSenseMySQL === void 0 ? void 0 : intelliSenseMySQL.keywords)), _toConsumableArray(getSQLFunctions(intelliSenseMySQL === null || intelliSenseMySQL === void 0 ? void 0 : intelliSenseMySQL.functions)))
74
+ };
75
+ }
76
+ }
77
+ });
78
+ };
79
+ export { suggestKeyword, registerSuggestKeyword };
@@ -0,0 +1,5 @@
1
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
+ export declare const resetPromptWord: () => void;
3
+ declare let suggestPromptWord: monaco.IDisposable;
4
+ declare const registerPromptWord: (promptWord: string[]) => void;
5
+ export { suggestPromptWord, registerPromptWord };
@@ -0,0 +1,40 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
3
+ export var resetPromptWord = function resetPromptWord() {
4
+ suggestPromptWord.dispose();
5
+ };
6
+ var suggestPromptWord = monaco.languages.registerCompletionItemProvider('sql', {
7
+ provideCompletionItems: function provideCompletionItems() {
8
+ return {
9
+ suggestions: []
10
+ };
11
+ }
12
+ });
13
+ var keywordHintList = ['AND', 'OR', 'NOT', 'IS', 'NULL', 'IN', 'IS NOT NULL', 'IS NULL', 'IS NOT', 'NOT IN', 'EXISTS', 'BETWEEN', 'LIKE', 'ASC', 'DESC'];
14
+ var registerPromptWord = function registerPromptWord(promptWord) {
15
+ resetPromptWord();
16
+ suggestPromptWord = monaco.languages.registerCompletionItemProvider('sql', {
17
+ triggerCharacters: [],
18
+ // @ts-ignore
19
+ provideCompletionItems: function provideCompletionItems(model, position) {
20
+ var _keywordSuggest = (keywordHintList || []).map(function (item) {
21
+ return {
22
+ label: item,
23
+ insertText: item,
24
+ kind: monaco.languages.CompletionItemKind.Keyword
25
+ };
26
+ });
27
+ var _promptWordSuggest = (promptWord || []).map(function (item) {
28
+ return {
29
+ label: item,
30
+ insertText: "\"".concat(item, "\""),
31
+ kind: monaco.languages.CompletionItemKind.Field
32
+ };
33
+ });
34
+ return {
35
+ suggestions: [].concat(_toConsumableArray(_keywordSuggest), _toConsumableArray(_promptWordSuggest))
36
+ };
37
+ }
38
+ });
39
+ };
40
+ export { suggestPromptWord, registerPromptWord };
@@ -0,0 +1,7 @@
1
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
+ import { DatabaseTypeCode } from '../../config';
3
+ export declare const resetSuggestSchema: () => void;
4
+ /** 当前库下的表 */
5
+ declare let suggestSchema: monaco.IDisposable;
6
+ declare const registerSuggestSchema: (schemaName: string[], belong?: string | null, databaseCode?: DatabaseTypeCode, namespace?: string) => void;
7
+ export { suggestSchema, registerSuggestSchema };
@@ -0,0 +1,85 @@
1
+ /*
2
+ * @Author: wangxian
3
+ * @Date: 2024-11-11 16:36:17
4
+ * @LastEditTime: 2024-11-13 08:57:19
5
+ */
6
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
7
+ import { tr } from '../../../../framework/locale';
8
+ import { compatibleDataBaseName } from '../../utils';
9
+ import { addSuggestTable } from './table';
10
+ export var resetSuggestSchema = function resetSuggestSchema() {
11
+ suggestSchema.dispose();
12
+ };
13
+ /** 当前库下的表 */
14
+ var suggestSchema = monaco.languages.registerCompletionItemProvider('sql', {
15
+ provideCompletionItems: function provideCompletionItems() {
16
+ return {
17
+ suggestions: []
18
+ };
19
+ }
20
+ });
21
+ var checkTableContext = function checkTableContext(text) {
22
+ var normalizedText = text.trim().toUpperCase();
23
+ var tableKeywords = ['FROM', 'JOIN', 'INNER JOIN', 'LEFT JOIN', 'RIGHT JOIN', 'UPDATE'];
24
+ for (var _i = 0, _tableKeywords = tableKeywords; _i < _tableKeywords.length; _i++) {
25
+ var keyword = _tableKeywords[_i];
26
+ if (normalizedText.endsWith(keyword)) {
27
+ return true;
28
+ }
29
+ }
30
+ return false;
31
+ };
32
+ var handleInsertText = function handleInsertText(keyword, tableName, databaseCode) {
33
+ if (/^[\"\`\[]/.test(keyword)) {
34
+ return tableName;
35
+ }
36
+ return compatibleDataBaseName(tableName, databaseCode);
37
+ };
38
+ var registerSuggestSchema = function registerSuggestSchema(schemaName, belong, databaseCode, namespace) {
39
+ monaco.editor.registerCommand('addTableList', function (_) {
40
+ addSuggestTable(arguments.length <= 1 ? undefined : arguments[1]);
41
+ return;
42
+ });
43
+ resetSuggestSchema();
44
+ suggestSchema = monaco.languages.registerCompletionItemProvider('sql', {
45
+ triggerCharacters: [' ', '.'],
46
+ // @ts-ignore
47
+ provideCompletionItems: function provideCompletionItems(model, position) {
48
+ var lineContentUntilPosition = model.getValueInRange({
49
+ startLineNumber: position.lineNumber,
50
+ startColumn: 1,
51
+ endLineNumber: position.lineNumber,
52
+ endColumn: position.column
53
+ });
54
+ var isTableContext = checkTableContext(lineContentUntilPosition);
55
+ // 获取触发提示的字符
56
+ var match = lineContentUntilPosition.match(/\S+$/);
57
+ var word = match ? match[0] : '';
58
+ return {
59
+ suggestions: (schemaName || []).map(function (name) {
60
+ return {
61
+ label: {
62
+ label: name,
63
+ detail: belong ? "(".concat(belong, ")") : null,
64
+ description: tr('Schema')
65
+ },
66
+ kind: monaco.languages.CompletionItemKind.Struct,
67
+ insertText: handleInsertText(word, name, databaseCode),
68
+ // range: monaco.Range.fromPositions(position),
69
+ // documentation: tableName.comment,
70
+ sortText: isTableContext ? '01' : '08',
71
+ command: {
72
+ id: 'addTableList',
73
+ title: 'addTableList',
74
+ arguments: [{
75
+ schemaName: name,
76
+ namespace: namespace
77
+ }]
78
+ }
79
+ };
80
+ })
81
+ };
82
+ }
83
+ });
84
+ };
85
+ export { suggestSchema, registerSuggestSchema };
@@ -0,0 +1,14 @@
1
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
+ import { DatabaseTypeCode } from '../../config';
3
+ /** 当前库下的表 */
4
+ declare let suggestTable: monaco.IDisposable;
5
+ export declare const resetSuggestTable: () => void;
6
+ declare const addSuggestTable: (props: {
7
+ schemaName: string;
8
+ namespace: string;
9
+ }) => Promise<void>;
10
+ declare const registerSuggestTable: (_tableList: Array<{
11
+ name: string;
12
+ belong: string;
13
+ }>, databaseCode?: DatabaseTypeCode, namespace?: string) => void;
14
+ export { suggestTable, registerSuggestTable, addSuggestTable };