@map-colonies/react-components 3.8.1 → 3.10.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 (231) hide show
  1. package/.env +1 -0
  2. package/.storybook/main.js +2 -5
  3. package/CHANGELOG.md +54 -0
  4. package/dist/assets/img/dragIcon.png +0 -0
  5. package/dist/assets/img/dragIconLight.png +0 -0
  6. package/dist/assets/img/glyphicons_067_cleaning.png +0 -0
  7. package/dist/assets/img/glyphicons_094_vector_path_square.png +0 -0
  8. package/dist/assets/img/glyphicons_095_vector_path_circle.png +0 -0
  9. package/dist/assets/img/glyphicons_096_vector_path_polygon.png +0 -0
  10. package/dist/assets/img/glyphicons_097_vector_path_line.png +0 -0
  11. package/dist/assets/img/glyphicons_242_google_maps.png +0 -0
  12. package/dist/assets/img/map-marker.gif +0 -0
  13. package/dist/autocomplete/autocomplete.css +25 -0
  14. package/dist/autocomplete/autocomplete.d.ts +33 -0
  15. package/dist/autocomplete/autocomplete.js +480 -0
  16. package/dist/autocomplete/index.d.ts +1 -0
  17. package/dist/autocomplete/index.js +5 -0
  18. package/dist/box/box.d.ts +3 -0
  19. package/dist/box/box.js +35 -0
  20. package/dist/box/index.d.ts +1 -0
  21. package/dist/box/index.js +5 -0
  22. package/dist/cesium-map/data-sources/custom.data-source.d.ts +5 -0
  23. package/dist/cesium-map/data-sources/custom.data-source.js +23 -0
  24. package/dist/cesium-map/data-sources/drawings.data-source.d.ts +34 -0
  25. package/dist/cesium-map/data-sources/drawings.data-source.js +187 -0
  26. package/dist/cesium-map/data-sources/index.d.ts +2 -0
  27. package/dist/cesium-map/data-sources/index.js +14 -0
  28. package/dist/cesium-map/entities/entity.d.ts +5 -0
  29. package/dist/cesium-map/entities/entity.description.d.ts +6 -0
  30. package/dist/cesium-map/entities/entity.description.js +27 -0
  31. package/dist/cesium-map/entities/entity.js +23 -0
  32. package/dist/cesium-map/entities/graphics/polygon.graphics.d.ts +5 -0
  33. package/dist/cesium-map/entities/graphics/polygon.graphics.js +23 -0
  34. package/dist/cesium-map/entities/graphics/polyline.graphics.d.ts +5 -0
  35. package/dist/cesium-map/entities/graphics/polyline.graphics.js +23 -0
  36. package/dist/cesium-map/entities/graphics/rectangle.graphics.d.ts +5 -0
  37. package/dist/cesium-map/entities/graphics/rectangle.graphics.js +23 -0
  38. package/dist/cesium-map/entities/index.d.ts +4 -0
  39. package/dist/cesium-map/entities/index.js +16 -0
  40. package/dist/cesium-map/index.d.ts +7 -0
  41. package/dist/cesium-map/index.js +19 -0
  42. package/dist/cesium-map/layers/3d.tileset.d.ts +7 -0
  43. package/dist/cesium-map/layers/3d.tileset.js +39 -0
  44. package/dist/cesium-map/layers/3d.tileset.update.d.ts +1 -0
  45. package/dist/cesium-map/layers/3d.tileset.update.js +5 -0
  46. package/dist/cesium-map/layers/geojson.layer.d.ts +5 -0
  47. package/dist/cesium-map/layers/geojson.layer.js +23 -0
  48. package/dist/cesium-map/layers/imagery.layer.d.ts +6 -0
  49. package/dist/cesium-map/layers/imagery.layer.js +64 -0
  50. package/dist/cesium-map/layers/index.d.ts +7 -0
  51. package/dist/cesium-map/layers/index.js +19 -0
  52. package/dist/cesium-map/layers/osm.layer.d.ts +9 -0
  53. package/dist/cesium-map/layers/osm.layer.js +36 -0
  54. package/dist/cesium-map/layers/wms.layer.d.ts +9 -0
  55. package/dist/cesium-map/layers/wms.layer.js +36 -0
  56. package/dist/cesium-map/layers/wmts.layer.d.ts +9 -0
  57. package/dist/cesium-map/layers/wmts.layer.js +36 -0
  58. package/dist/cesium-map/layers/xyz.layer.d.ts +9 -0
  59. package/dist/cesium-map/layers/xyz.layer.js +36 -0
  60. package/dist/cesium-map/layers-manager.d.ts +47 -0
  61. package/dist/cesium-map/layers-manager.js +228 -0
  62. package/dist/cesium-map/map.css +54 -0
  63. package/dist/cesium-map/map.d.ts +46 -0
  64. package/dist/cesium-map/map.js +273 -0
  65. package/dist/cesium-map/map.types.d.ts +8 -0
  66. package/dist/cesium-map/map.types.js +12 -0
  67. package/dist/cesium-map/proxied.types.d.ts +19 -0
  68. package/dist/cesium-map/proxied.types.js +89 -0
  69. package/dist/cesium-map/settings/base-maps.css +37 -0
  70. package/dist/cesium-map/settings/base-maps.d.ts +7 -0
  71. package/dist/cesium-map/settings/base-maps.js +78 -0
  72. package/dist/cesium-map/settings/scene-modes.css +19 -0
  73. package/dist/cesium-map/settings/scene-modes.d.ts +7 -0
  74. package/dist/cesium-map/settings/scene-modes.js +65 -0
  75. package/dist/cesium-map/settings/settings.css +49 -0
  76. package/dist/cesium-map/settings/settings.d.ts +23 -0
  77. package/dist/cesium-map/settings/settings.js +79 -0
  78. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.d.ts +3 -0
  79. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.js +245 -0
  80. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.d.ts +9 -0
  81. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.js +202 -0
  82. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.d.ts +50 -0
  83. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.js +136 -0
  84. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.d.ts +2 -0
  85. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.js +38 -0
  86. package/dist/cesium-map/tools/coordinates-tracker.tool.css +11 -0
  87. package/dist/cesium-map/tools/coordinates-tracker.tool.d.ts +7 -0
  88. package/dist/cesium-map/tools/coordinates-tracker.tool.js +78 -0
  89. package/dist/cesium-map/tools/draw/drawHelper.css +101 -0
  90. package/dist/cesium-map/tools/draw/drawHelper.d.ts +28 -0
  91. package/dist/cesium-map/tools/draw/drawHelper.js +1694 -0
  92. package/dist/cesium-map/tools/geojson/geojson-to-primitive.d.ts +4 -0
  93. package/dist/cesium-map/tools/geojson/geojson-to-primitive.js +41 -0
  94. package/dist/cesium-map/tools/geojson/index.d.ts +2 -0
  95. package/dist/cesium-map/tools/geojson/index.js +14 -0
  96. package/dist/cesium-map/tools/geojson/point.geojson.d.ts +3 -0
  97. package/dist/cesium-map/tools/geojson/point.geojson.js +21 -0
  98. package/dist/cesium-map/tools/geojson/polygon.geojson.d.ts +3 -0
  99. package/dist/cesium-map/tools/geojson/polygon.geojson.js +24 -0
  100. package/dist/cesium-map/tools/geojson/rectangle.geojson.d.ts +3 -0
  101. package/dist/cesium-map/tools/geojson/rectangle.geojson.js +44 -0
  102. package/dist/cesium-map/tools/inspector.tool.d.ts +4 -0
  103. package/dist/cesium-map/tools/inspector.tool.js +33 -0
  104. package/dist/cesium-map/tools/scale-tracker.tool.css +16 -0
  105. package/dist/cesium-map/tools/scale-tracker.tool.d.ts +8 -0
  106. package/dist/cesium-map/tools/scale-tracker.tool.js +158 -0
  107. package/dist/cesium-map/tools/terranian-height.tool.d.ts +4 -0
  108. package/dist/cesium-map/tools/terranian-height.tool.js +113 -0
  109. package/dist/cssbaseline/cssbaseline.d.ts +5 -0
  110. package/dist/cssbaseline/cssbaseline.js +41 -0
  111. package/dist/cssbaseline/index.d.ts +1 -0
  112. package/dist/cssbaseline/index.js +6 -0
  113. package/dist/date-picker/date-picker.css +9 -0
  114. package/dist/date-picker/date-picker.d.ts +14 -0
  115. package/dist/date-picker/date-picker.js +78 -0
  116. package/dist/date-picker/index.d.ts +1 -0
  117. package/dist/date-picker/index.js +13 -0
  118. package/dist/date-range-picker/date-range-picker.css +9 -0
  119. package/dist/date-range-picker/date-range-picker.d.ts +26 -0
  120. package/dist/date-range-picker/date-range-picker.form-control.css +3 -0
  121. package/dist/date-range-picker/date-range-picker.form-control.d.ts +28 -0
  122. package/dist/date-range-picker/date-range-picker.form-control.js +95 -0
  123. package/dist/date-range-picker/date-range-picker.js +104 -0
  124. package/dist/date-range-picker/index.d.ts +2 -0
  125. package/dist/date-range-picker/index.js +14 -0
  126. package/dist/file-picker/file-picker.css +62 -0
  127. package/dist/file-picker/file-picker.d.ts +276 -0
  128. package/dist/file-picker/file-picker.js +151 -0
  129. package/dist/file-picker/fs-map.json +1557 -0
  130. package/dist/file-picker/index.d.ts +2 -0
  131. package/dist/file-picker/index.js +14 -0
  132. package/dist/file-picker/localization.d.ts +11 -0
  133. package/dist/file-picker/localization.js +124 -0
  134. package/dist/index.d.ts +13 -0
  135. package/dist/index.js +23 -16
  136. package/dist/map-filter-container/container-map.css +5 -0
  137. package/dist/map-filter-container/container-map.d.ts +11 -0
  138. package/dist/map-filter-container/container-map.js +31 -0
  139. package/dist/map-filter-container/index.d.ts +1 -0
  140. package/dist/map-filter-container/index.js +13 -0
  141. package/dist/map-filter-container/map-filter-container.d.ts +9 -0
  142. package/dist/map-filter-container/map-filter-container.js +78 -0
  143. package/dist/map-filter-container/polygon-selection-ui.d.ts +12 -0
  144. package/dist/map-filter-container/polygon-selection-ui.js +62 -0
  145. package/dist/models/defaults.d.ts +28 -0
  146. package/dist/models/defaults.js +32 -0
  147. package/dist/models/enums.d.ts +14 -0
  148. package/dist/models/enums.js +20 -0
  149. package/dist/models/index.d.ts +1 -0
  150. package/dist/models/index.js +13 -0
  151. package/dist/ol-map/feature.d.ts +6 -0
  152. package/dist/ol-map/feature.js +20 -0
  153. package/dist/ol-map/index.d.ts +6 -0
  154. package/dist/ol-map/index.js +18 -0
  155. package/dist/ol-map/interactions/draw.d.ts +8 -0
  156. package/dist/ol-map/interactions/draw.js +44 -0
  157. package/dist/ol-map/interactions/index.d.ts +1 -0
  158. package/dist/ol-map/interactions/index.js +13 -0
  159. package/dist/ol-map/layers/index.d.ts +3 -0
  160. package/dist/ol-map/layers/index.js +15 -0
  161. package/dist/ol-map/layers/tile-layer.d.ts +9 -0
  162. package/dist/ol-map/layers/tile-layer.js +48 -0
  163. package/dist/ol-map/layers/vector-layer.d.ts +4 -0
  164. package/dist/ol-map/layers/vector-layer.js +48 -0
  165. package/dist/ol-map/layers/vector-tile-layer.d.ts +10 -0
  166. package/dist/ol-map/layers/vector-tile-layer.js +66 -0
  167. package/dist/ol-map/map.css +17 -0
  168. package/dist/ol-map/map.d.ts +14 -0
  169. package/dist/ol-map/map.js +117 -0
  170. package/dist/ol-map/source/index.d.ts +6 -0
  171. package/dist/ol-map/source/index.js +18 -0
  172. package/dist/ol-map/source/mvt.d.ts +11 -0
  173. package/dist/ol-map/source/mvt.js +37 -0
  174. package/dist/ol-map/source/osm.d.ts +2 -0
  175. package/dist/ol-map/source/osm.js +14 -0
  176. package/dist/ol-map/source/vector-source.d.ts +4 -0
  177. package/dist/ol-map/source/vector-source.js +45 -0
  178. package/dist/ol-map/source/wms.d.ts +17 -0
  179. package/dist/ol-map/source/wms.js +30 -0
  180. package/dist/ol-map/source/wmts.d.ts +21 -0
  181. package/dist/ol-map/source/wmts.js +59 -0
  182. package/dist/ol-map/source/xyz.d.ts +12 -0
  183. package/dist/ol-map/source/xyz.js +27 -0
  184. package/dist/ol-map/style.d.ts +4 -0
  185. package/dist/ol-map/style.js +22 -0
  186. package/dist/popover/index.d.ts +1 -0
  187. package/dist/popover/index.js +5 -0
  188. package/dist/popover/popover.d.ts +3 -0
  189. package/dist/popover/popover.js +35 -0
  190. package/dist/smart-table/__mock-data__/smartTableMocks.d.ts +7 -0
  191. package/dist/smart-table/__mock-data__/smartTableMocks.js +17 -0
  192. package/dist/smart-table/index.d.ts +2 -0
  193. package/dist/smart-table/index.js +14 -0
  194. package/dist/smart-table/smart-table-head.d.ts +11 -0
  195. package/dist/smart-table/smart-table-head.js +22 -0
  196. package/dist/smart-table/smart-table-row.d.ts +12 -0
  197. package/dist/smart-table/smart-table-row.js +46 -0
  198. package/dist/smart-table/smart-table-types.d.ts +9 -0
  199. package/dist/smart-table/smart-table-types.js +2 -0
  200. package/dist/smart-table/smart-table.d.ts +17 -0
  201. package/dist/smart-table/smart-table.js +51 -0
  202. package/dist/theme/index.d.ts +1 -0
  203. package/dist/theme/index.js +13 -0
  204. package/dist/theme/theme.d.ts +8 -0
  205. package/dist/theme/theme.js +124 -0
  206. package/dist/utils/map.d.ts +3 -0
  207. package/dist/utils/map.js +21 -0
  208. package/dist/utils/projections.d.ts +6 -0
  209. package/dist/utils/projections.js +10 -0
  210. package/dist/utils/story.d.ts +12 -0
  211. package/dist/utils/story.js +2 -0
  212. package/package.json +103 -100
  213. package/public/assets/img/map-marker.gif +0 -0
  214. package/src/lib/cesium-map/map.tsx +22 -12
  215. package/src/lib/cesium-map/terrain-providers/terrain-provider-heights-tool.stories.tsx +155 -0
  216. package/src/lib/cesium-map/terrain-providers/terrain-provider.stories.tsx +5 -3
  217. package/src/lib/cesium-map/tools/coordinates-tracker.tool.tsx +1 -1
  218. package/src/lib/cesium-map/tools/inspector.tool.tsx +15 -0
  219. package/src/lib/cesium-map/tools/terranian-height.tool.tsx +167 -0
  220. package/src/lib/date-range-picker/{stories/DateRangePicker.stories.tsx → date-range-picker.stories.tsx} +5 -5
  221. package/src/lib/file-picker/file-picker.css +62 -0
  222. package/src/lib/file-picker/file-picker.stories.tsx +447 -0
  223. package/src/lib/file-picker/file-picker.tsx +180 -0
  224. package/src/lib/file-picker/fs-map.json +1557 -0
  225. package/src/lib/file-picker/index.ts +2 -0
  226. package/src/lib/file-picker/localization.ts +164 -0
  227. package/src/lib/index.ts +1 -0
  228. package/src/lib/models/enums.ts +1 -0
  229. package/src/lib/smart-table/smart-table-row.spec.tsx +1 -1
  230. package/tsbuildconfig.json +2 -2
  231. package/tsconfig.json +2 -1
package/.env ADDED
@@ -0,0 +1 @@
1
+ SKIP_PREFLIGHT_CHECK = true
@@ -1,16 +1,13 @@
1
1
  module.exports = {
2
- stories: [
3
- '../src/lib/date-range-picker/stories/DateRangePicker.stories.tsx',
4
- '../src/**/*.stories.tsx',
5
- ],
2
+ stories: ['../src/**/*.stories.tsx'],
6
3
  addons: [
7
4
  '@storybook/preset-create-react-app',
8
5
  '@storybook/addon-storysource',
9
6
  '@storybook/addon-actions',
10
7
  '@storybook/addon-knobs',
8
+ '@storybook/addon-docs',
11
9
  '@storybook/addon-controls',
12
10
  '@storybook/addon-links',
13
- '@storybook/addon-docs',
14
11
  'storybook-dark-mode',
15
12
  ],
16
13
  };
package/CHANGELOG.md CHANGED
@@ -3,6 +3,60 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.10.2](https://github.com/MapColonies/shared-components/compare/@map-colonies/react-components@3.10.1...@map-colonies/react-components@3.10.2) (2022-02-20)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * action data and rtl ([1903ebf](https://github.com/MapColonies/shared-components/commit/1903ebfa600fc5d024bb2df107f5891d5c2160f3))
12
+ * default formatters ([ae7913b](https://github.com/MapColonies/shared-components/commit/ae7913b73af0a5357aa2ef6194724dc93f2b238f))
13
+ * fix ([c1379ad](https://github.com/MapColonies/shared-components/commit/c1379ad0513bb64f67745087719c38ccc8e9bd7a))
14
+ * intl shape ([55b2624](https://github.com/MapColonies/shared-components/commit/55b2624393b28f1b74c24fc2064a0fb14e2b447d))
15
+ * prettier ([2ca12de](https://github.com/MapColonies/shared-components/commit/2ca12deece268225c1cf851a791dc3e7ec7411ef))
16
+ * prettier ([0a22d00](https://github.com/MapColonies/shared-components/commit/0a22d00df8da286792cc86a24519bce59388dfdd))
17
+ * stories hot reload and circular deps ([#117](https://github.com/MapColonies/shared-components/issues/117)) ([284abff](https://github.com/MapColonies/shared-components/commit/284abff1ed4a192e5a7f66d7a0f6e9dd5e2e028b))
18
+ * use native formatters ([ad577cf](https://github.com/MapColonies/shared-components/commit/ad577cf8f890b965ebac3785281f285e99e1c2df))
19
+
20
+
21
+
22
+
23
+
24
+ ## [3.10.1](https://github.com/MapColonies/shared-components/compare/@map-colonies/react-components@3.10.0...@map-colonies/react-components@3.10.1) (2022-02-10)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * file picker ref formatters ([#116](https://github.com/MapColonies/shared-components/issues/116)) ([1432b6a](https://github.com/MapColonies/shared-components/commit/1432b6a65290d0e170d9e956eddabbe1d909e744))
30
+
31
+
32
+
33
+
34
+
35
+ # [3.10.0](https://github.com/MapColonies/shared-components/compare/@map-colonies/react-components@3.8.0...@map-colonies/react-components@3.10.0) (2022-02-09)
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * height tool_ pin points from csv ([#114](https://github.com/MapColonies/shared-components/issues/114)) ([3af82b8](https://github.com/MapColonies/shared-components/commit/3af82b88226ea3bd19646e87b9d1add0b13e81e6))
41
+
42
+
43
+ ### Features
44
+
45
+ * file picker ([#113](https://github.com/MapColonies/shared-components/issues/113)) ([829d275](https://github.com/MapColonies/shared-components/commit/829d275e01a3417912fe82036cabae3a5247cc24))
46
+
47
+
48
+
49
+ ## 3.8.1 (2022-01-13)
50
+
51
+
52
+ ### Features
53
+
54
+ * dem quantized mesh ([#112](https://github.com/MapColonies/shared-components/issues/112)) ([3cd2010](https://github.com/MapColonies/shared-components/commit/3cd20105a63f2335a5dd3b178eb9d38f9690022c))
55
+
56
+
57
+
58
+
59
+
6
60
  # [3.8.0](https://github.com/MapColonies/shared-components/compare/@map-colonies/react-components@3.7.4...@map-colonies/react-components@3.8.0) (2021-11-01)
7
61
 
8
62
 
Binary file
Binary file
@@ -0,0 +1,25 @@
1
+ .react-autocomplete-input {
2
+ background-clip: padding-box;
3
+ background-color: #fff;
4
+ bottom: auto;
5
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
6
+ display: block;
7
+ font-size: 14px;
8
+ list-style: none;
9
+ padding: 1px;
10
+ position: absolute;
11
+ z-index: 20000;
12
+ margin-block-start: unset;
13
+ margin-block-end: unset;
14
+ }
15
+
16
+ .react-autocomplete-input > li {
17
+ cursor: pointer;
18
+ padding: 10px;
19
+ min-width: 100px;
20
+ }
21
+
22
+ .react-autocomplete-input > li.active {
23
+ background-color: #337ab7;
24
+ color: #fff;
25
+ }
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import './autocomplete.css';
3
+ export interface IAutocompleteProps {
4
+ Component: React.ReactElement;
5
+ ComponentProps: Record<string, unknown>;
6
+ defaultValue: string;
7
+ disabled: boolean;
8
+ maxOptions: number;
9
+ onBlur: () => void;
10
+ onChange: (val: string) => void;
11
+ onKeyDown: (evt: any) => void;
12
+ onRequestOptions: (val: string) => void;
13
+ onSelect: (val: string) => void;
14
+ changeOnSelect: (trigger: string, slug: string) => string;
15
+ options: string[];
16
+ regex: string;
17
+ matchAny: boolean;
18
+ minChars: number;
19
+ requestOnlyIfNoOptions: boolean;
20
+ spaceRemovers: string[];
21
+ spacer: string;
22
+ trigger: string | string[];
23
+ value: string | undefined;
24
+ offsetX: number;
25
+ offsetY: number;
26
+ passThroughEnter: boolean;
27
+ mode: 'autocomplete' | 'assist';
28
+ direction: 'ltr' | 'rtl';
29
+ }
30
+ interface IAutocompleteOptionalProps extends Partial<IAutocompleteProps> {
31
+ }
32
+ export declare const AutocompleteWithDefauls: React.FC<IAutocompleteOptionalProps>;
33
+ export default AutocompleteWithDefauls;
@@ -0,0 +1,480 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __rest = (this && this.__rest) || function (s, e) {
33
+ var t = {};
34
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35
+ t[p] = s[p];
36
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
37
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
38
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
39
+ t[p[i]] = s[p[i]];
40
+ }
41
+ return t;
42
+ };
43
+ var __importDefault = (this && this.__importDefault) || function (mod) {
44
+ return (mod && mod.__esModule) ? mod : { "default": mod };
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.AutocompleteWithDefauls = void 0;
48
+ /* eslint-disable */
49
+ var react_1 = __importStar(require("react"));
50
+ var textarea_caret_1 = __importDefault(require("textarea-caret"));
51
+ var get_input_selection_1 = __importStar(require("get-input-selection"));
52
+ require("./autocomplete.css");
53
+ var KEY_UP = 38;
54
+ var KEY_DOWN = 40;
55
+ var KEY_RETURN = 13;
56
+ var KEY_ENTER = 14;
57
+ var KEY_ESCAPE = 27;
58
+ var KEY_TAB = 9;
59
+ var OPTION_LIST_Y_OFFSET = 10;
60
+ var OPTION_LIST_MIN_WIDTH = 100;
61
+ var Autocomplete = function (props) {
62
+ var _a = react_1.useState(props.defaultValue), recentValue = _a[0], setRecentValue = _a[1];
63
+ var _b = react_1.useState(false), enableSpaceRemovers = _b[0], setEnableSpaceRemovers = _b[1];
64
+ var _c = react_1.useState({
65
+ helperVisible: false,
66
+ left: 0,
67
+ right: 0,
68
+ trigger: '',
69
+ matchLength: 0,
70
+ matchStart: 0,
71
+ options: [],
72
+ selection: 0,
73
+ top: 0,
74
+ value: '',
75
+ caret: 0,
76
+ width: 'unset',
77
+ }), state = _c[0], setState = _c[1];
78
+ var refInput = react_1.useRef(null);
79
+ react_1.useEffect(function () {
80
+ window.addEventListener('resize', handleResize);
81
+ return function () {
82
+ try {
83
+ window.removeEventListener('resize', handleResize);
84
+ }
85
+ catch (e) {
86
+ console.log('WINDOW "resize" remove listener failed', e);
87
+ }
88
+ };
89
+ }, []);
90
+ react_1.useEffect(function () {
91
+ var options = props.options;
92
+ var caret = state.caret;
93
+ // if (options.length !== prevProps.options.length) {
94
+ updateHelper(recentValue, caret, options);
95
+ // }
96
+ }, [props]);
97
+ var getMatch = function (str, caret, providedOptions) {
98
+ var trigger = props.trigger, matchAny = props.matchAny, regex = props.regex;
99
+ var re = new RegExp(regex);
100
+ var triggers = trigger;
101
+ if (!Array.isArray(triggers)) {
102
+ triggers = new Array(trigger);
103
+ }
104
+ triggers.sort();
105
+ var providedOptionsObject = {};
106
+ if (Array.isArray(providedOptions)) {
107
+ triggers.forEach(function (triggerStr) {
108
+ providedOptionsObject[triggerStr] = providedOptions;
109
+ });
110
+ }
111
+ var triggersMatch = arrayTriggerMatch(triggers, re);
112
+ var slugData = {};
113
+ for (var triggersIndex = 0; triggersIndex < triggersMatch.length; triggersIndex++) {
114
+ var _a = triggersMatch[triggersIndex], triggerStr = _a.triggerStr, triggerMatch = _a.triggerMatch, triggerLength = _a.triggerLength;
115
+ var _loop_1 = function (i) {
116
+ var substr = str.substring(i, caret);
117
+ var match = substr.match(re);
118
+ var matchStart = -1;
119
+ if (triggerLength > 0) {
120
+ var triggerIdx = triggerMatch ? i : i - triggerLength + 1;
121
+ if (triggerIdx < 0) {
122
+ return "break";
123
+ }
124
+ if (isTrigger(triggerStr, str, triggerIdx)) {
125
+ matchStart = triggerIdx + triggerLength;
126
+ }
127
+ if (!match && matchStart < 0) {
128
+ return "break";
129
+ }
130
+ }
131
+ else {
132
+ if (match && i > 0) {
133
+ return "continue";
134
+ }
135
+ matchStart = i === 0 && match ? 0 : i + 1;
136
+ if (caret - matchStart === 0) {
137
+ return "break";
138
+ }
139
+ }
140
+ if (matchStart >= 0) {
141
+ var triggerOptions = providedOptionsObject[triggerStr];
142
+ if (!Array.isArray(triggerOptions)) {
143
+ return "continue";
144
+ }
145
+ var matchedSlug_1 = str.substring(matchStart, caret);
146
+ var options = triggerOptions.filter(function (slug) {
147
+ var idx = slug.toLowerCase().indexOf(matchedSlug_1.toLowerCase());
148
+ return idx !== -1 && (matchAny || idx === 0);
149
+ });
150
+ var currTrigger = triggerStr;
151
+ var matchLength = matchedSlug_1.length;
152
+ if (slugData === {}) {
153
+ slugData = {
154
+ trigger: currTrigger,
155
+ matchStart: matchStart,
156
+ matchLength: matchLength,
157
+ options: options,
158
+ };
159
+ }
160
+ else {
161
+ slugData = __assign(__assign({}, slugData), { trigger: currTrigger, matchStart: matchStart,
162
+ matchLength: matchLength,
163
+ options: options });
164
+ }
165
+ }
166
+ };
167
+ for (var i = caret - 1; i >= 0; --i) {
168
+ var state_1 = _loop_1(i);
169
+ if (state_1 === "break")
170
+ break;
171
+ }
172
+ }
173
+ return slugData;
174
+ };
175
+ var arrayTriggerMatch = function (triggers, re) {
176
+ var triggersMatch = triggers.map(function (trigger) { return ({
177
+ triggerStr: trigger,
178
+ triggerMatch: trigger.match(re),
179
+ triggerLength: trigger.length,
180
+ }); });
181
+ return triggersMatch;
182
+ };
183
+ var isTrigger = function (trigger, str, i) {
184
+ if (!trigger || !trigger.length) {
185
+ return true;
186
+ }
187
+ if (str.substr(i, trigger.length) === trigger) {
188
+ return true;
189
+ }
190
+ return false;
191
+ };
192
+ var handleChange = function (e) {
193
+ var onChange = props.onChange, options = props.options, spaceRemovers = props.spaceRemovers, spacer = props.spacer, value = props.value;
194
+ var old = recentValue;
195
+ var str = e.target.value;
196
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
197
+ var caret = get_input_selection_1.default(getInputElement(e.target)).end;
198
+ if (!str.length) {
199
+ updateState(__assign(__assign({}, state), { helperVisible: false }));
200
+ }
201
+ setRecentValue(str);
202
+ updateState(__assign(__assign({}, state), { caret: caret, value: e.target.value }));
203
+ if (!str.length || !caret) {
204
+ return onChange(e.target.value);
205
+ }
206
+ // '@wonderjenny ,|' -> '@wonderjenny, |'
207
+ if (enableSpaceRemovers &&
208
+ spaceRemovers.length &&
209
+ str.length > 2 &&
210
+ spacer.length) {
211
+ for (var i = 0; i < Math.max(old.length, str.length); ++i) {
212
+ if (old[i] !== str[i]) {
213
+ if (i >= 2 &&
214
+ str[i - 1] === spacer &&
215
+ spaceRemovers.indexOf(str[i - 2]) === -1 &&
216
+ spaceRemovers.indexOf(str[i]) !== -1 &&
217
+ getMatch(str.substring(0, i - 2), caret - 3, options) !== {}) {
218
+ var newValue = "" + str.slice(0, i - 1) + str.slice(i, i + 1) + str.slice(i - 1, i) + str.slice(i + 1);
219
+ updateCaretPosition(i + 1);
220
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
221
+ if (refInput.current !== null) {
222
+ refInput.current.value = newValue;
223
+ }
224
+ if (!value) {
225
+ updateState(__assign(__assign({}, state), { value: newValue }));
226
+ }
227
+ return onChange(newValue);
228
+ }
229
+ break;
230
+ }
231
+ }
232
+ setEnableSpaceRemovers(false);
233
+ }
234
+ updateHelper(str, caret, options);
235
+ // if (!value) {
236
+ // updateState({
237
+ // ...state,
238
+ // value: e.target.value
239
+ // });
240
+ // }
241
+ return onChange(e.target.value);
242
+ };
243
+ var getInputElement = function (parent) {
244
+ if (parent !== undefined) {
245
+ if (parent.children.length > 0) {
246
+ var innerTextAreas = parent.getElementsByTagName('textarea');
247
+ if (innerTextAreas.length > 0) {
248
+ return innerTextAreas[0];
249
+ }
250
+ var innerInputs = parent.getElementsByTagName('input');
251
+ if (innerInputs.length > 0) {
252
+ return innerInputs[0];
253
+ }
254
+ }
255
+ else {
256
+ return parent;
257
+ }
258
+ }
259
+ return undefined;
260
+ };
261
+ var handleKeyDown = function (event) {
262
+ var helperVisible = state.helperVisible, options = state.options, selection = state.selection;
263
+ var onKeyDown = props.onKeyDown, passThroughEnter = props.passThroughEnter;
264
+ if (helperVisible) {
265
+ switch (event.keyCode) {
266
+ case KEY_ESCAPE:
267
+ event.preventDefault();
268
+ resetHelper();
269
+ break;
270
+ case KEY_UP:
271
+ event.preventDefault();
272
+ updateState(__assign(__assign({}, state), { selection: (options.length + selection - 1) % options.length }));
273
+ break;
274
+ case KEY_DOWN:
275
+ event.preventDefault();
276
+ updateState(__assign(__assign({}, state), { selection: (selection + 1) % options.length }));
277
+ break;
278
+ case KEY_ENTER:
279
+ case KEY_RETURN:
280
+ if (!passThroughEnter) {
281
+ event.preventDefault();
282
+ }
283
+ handleSelection(selection);
284
+ break;
285
+ case KEY_TAB:
286
+ handleSelection(selection);
287
+ break;
288
+ default:
289
+ onKeyDown(event);
290
+ break;
291
+ }
292
+ }
293
+ else {
294
+ onKeyDown(event);
295
+ }
296
+ };
297
+ var handleResize = function () {
298
+ updateState(__assign(__assign({}, state), { helperVisible: false }));
299
+ };
300
+ var handleSelection = function (idx) {
301
+ var spacer = props.spacer, onSelect = props.onSelect, changeOnSelect = props.changeOnSelect;
302
+ var matchStart = state.matchStart, matchLength = state.matchLength, options = state.options, trigger = state.trigger;
303
+ var slug = options[idx];
304
+ var value = recentValue;
305
+ var part1 = value.substring(0, matchStart - trigger.length);
306
+ var part2 = value.substring(matchStart + matchLength);
307
+ var event = { target: refInput.current };
308
+ var changedStr = changeOnSelect(trigger, slug);
309
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
310
+ if (event.target !== null) {
311
+ event.target.value = "" + part1 + changedStr + spacer + part2;
312
+ }
313
+ handleChange(event);
314
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
315
+ if (event.target !== null) {
316
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
317
+ onSelect(event.target.value);
318
+ }
319
+ resetHelper();
320
+ updateCaretPosition(part1.length + changedStr.length + 1);
321
+ setEnableSpaceRemovers(true);
322
+ };
323
+ var updateCaretPosition = function (caret) {
324
+ updateState(__assign(__assign({}, state), { caret: caret }));
325
+ var input = getInputElement(refInput.current);
326
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
327
+ get_input_selection_1.setCaretPosition(input, caret);
328
+ };
329
+ var updateState = function (val) {
330
+ setTimeout(function () {
331
+ setState(__assign({}, val));
332
+ }, 0);
333
+ };
334
+ var updateHelper = function (str, caret, options) {
335
+ var parent = refInput.current;
336
+ if (refInput.current === null) {
337
+ return;
338
+ }
339
+ var input = getInputElement(parent);
340
+ if (input === undefined) {
341
+ return;
342
+ }
343
+ var parentRect = parent.getBoundingClientRect();
344
+ var slug = getMatch(str, caret, options);
345
+ if (Object.keys(slug).length > 0 && input !== null) {
346
+ var caretPos = textarea_caret_1.default(input, caret);
347
+ var rect = input.getBoundingClientRect();
348
+ var minChars = props.minChars, onRequestOptions = props.onRequestOptions, requestOnlyIfNoOptions = props.requestOnlyIfNoOptions, mode = props.mode;
349
+ var top_1, left = void 0, right = void 0, width = 'unset';
350
+ if (mode === 'assist') {
351
+ top_1 =
352
+ parent === input
353
+ ? caretPos.top + input.offsetTop
354
+ : caretPos.top + parentRect.top;
355
+ left = Math.min(caretPos.left + input.offsetLeft - OPTION_LIST_Y_OFFSET, input.offsetLeft + rect.width - OPTION_LIST_MIN_WIDTH);
356
+ }
357
+ else {
358
+ top_1 = parentRect.top + parent.offsetHeight;
359
+ left = parent.offsetLeft;
360
+ right = parent.offsetLeft - parent.offsetWidth;
361
+ width = parentRect.width + "px";
362
+ }
363
+ if (slug.matchLength >= minChars &&
364
+ (slug.options.length > 1 ||
365
+ (slug.options.length === 1 &&
366
+ slug.options[0].length !== slug.matchLength))) {
367
+ updateState(__assign(__assign(__assign({}, state), { value: str, helperVisible: true, top: top_1,
368
+ left: left,
369
+ right: right,
370
+ width: width }), slug));
371
+ }
372
+ else {
373
+ if (!requestOnlyIfNoOptions || !slug.options.length) {
374
+ onRequestOptions(str.substr(slug.matchStart, slug.matchLength));
375
+ }
376
+ resetHelper();
377
+ }
378
+ }
379
+ else {
380
+ resetHelper();
381
+ }
382
+ };
383
+ var resetHelper = function () {
384
+ var timeDelay = 100;
385
+ setTimeout(function () {
386
+ updateState(__assign(__assign({}, state), { helperVisible: false, selection: 0 }));
387
+ }, timeDelay);
388
+ };
389
+ var renderAutocompleteList = function () {
390
+ var helperVisible = state.helperVisible, left = state.left, right = state.right, matchStart = state.matchStart, matchLength = state.matchLength, options = state.options, selection = state.selection, top = state.top, value = state.value, width = state.width;
391
+ if (!helperVisible) {
392
+ return null;
393
+ }
394
+ var maxOptions = props.maxOptions, offsetX = props.offsetX, offsetY = props.offsetY, direction = props.direction;
395
+ if (options.length === 0) {
396
+ return null;
397
+ }
398
+ if (selection >= options.length) {
399
+ updateState(__assign(__assign({}, state), { selection: 0 }));
400
+ return null;
401
+ }
402
+ var optionNumber = maxOptions === 0 ? options.length : maxOptions;
403
+ var helperOptions = options
404
+ .slice(0, optionNumber)
405
+ .map(function (val, idx) {
406
+ var highlightStart = val
407
+ .toLowerCase()
408
+ .indexOf(value.substr(matchStart, matchLength).toLowerCase());
409
+ return (react_1.default.createElement("li", { className: idx === selection ? 'active' : undefined, key: val, onClick: function () {
410
+ handleSelection(idx);
411
+ }, onMouseEnter: function () {
412
+ updateState(__assign(__assign({}, state), { selection: idx }));
413
+ } },
414
+ val.slice(0, highlightStart),
415
+ react_1.default.createElement("strong", null, val.substr(highlightStart, matchLength)),
416
+ val.slice(highlightStart + matchLength)));
417
+ });
418
+ var horizontalPosition = direction === 'ltr'
419
+ ? { left: left + offsetX }
420
+ : { right: right + offsetX };
421
+ return (react_1.default.createElement("ul", { className: "react-autocomplete-input", style: __assign(__assign({}, horizontalPosition), { top: top + offsetY, width: width }) }, helperOptions));
422
+ };
423
+ var Component = props.Component, ComponentProps = props.ComponentProps, defaultValue = props.defaultValue, disabled = props.disabled, onBlur = props.onBlur, value = props.value, rest = __rest(props, ["Component", "ComponentProps", "defaultValue", "disabled", "onBlur", "value"]);
424
+ var stateValue = recentValue; //state.value;
425
+ var propagated = Object.assign({}, rest);
426
+ Object.keys(props).forEach(function (k) {
427
+ delete propagated[k];
428
+ });
429
+ var val = '';
430
+ if (stateValue) {
431
+ val = stateValue;
432
+ }
433
+ else if (defaultValue) {
434
+ val = defaultValue;
435
+ }
436
+ else if (value !== undefined) {
437
+ val = value;
438
+ }
439
+ return (react_1.default.createElement(react_1.default.Fragment, null,
440
+ react_1.default.cloneElement(Component, __assign(__assign({ disabled: disabled, onBlur: onBlur, onChange: handleChange, onKeyDown: handleKeyDown, ref: refInput, value: val }, propagated), ComponentProps)),
441
+ renderAutocompleteList()));
442
+ };
443
+ var defaultProps = {
444
+ Component: react_1.default.createElement("textarea", null),
445
+ ComponentProps: {},
446
+ defaultValue: '',
447
+ disabled: false,
448
+ maxOptions: 6,
449
+ onBlur: function () { },
450
+ onChange: function (val) { },
451
+ onKeyDown: function (evt) { },
452
+ onRequestOptions: function (val) { },
453
+ onSelect: function (val) { },
454
+ changeOnSelect: function (trigger, slug) {
455
+ return "" + trigger + slug;
456
+ },
457
+ options: [],
458
+ regex: '^[A-Za-z0-9\\-_]+$',
459
+ matchAny: false,
460
+ minChars: 0,
461
+ requestOnlyIfNoOptions: true,
462
+ spaceRemovers: [',', '.', '!', '?'],
463
+ spacer: ' ',
464
+ trigger: '@',
465
+ offsetX: 0,
466
+ offsetY: 0,
467
+ value: undefined,
468
+ passThroughEnter: false,
469
+ mode: 'assist',
470
+ direction: 'ltr',
471
+ };
472
+ var AutocompleteWithDefauls = function (props) {
473
+ var compProps = __assign(__assign({}, defaultProps), props);
474
+ if (props.mode === 'autocomplete') {
475
+ compProps = __assign(__assign({}, compProps), { trigger: '', regex: '.', spacer: '' });
476
+ }
477
+ return react_1.default.createElement(Autocomplete, __assign({}, compProps));
478
+ };
479
+ exports.AutocompleteWithDefauls = AutocompleteWithDefauls;
480
+ exports.default = exports.AutocompleteWithDefauls;
@@ -0,0 +1 @@
1
+ export { AutocompleteWithDefauls as Autocomplete } from './autocomplete';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Autocomplete = void 0;
4
+ var autocomplete_1 = require("./autocomplete");
5
+ Object.defineProperty(exports, "Autocomplete", { enumerable: true, get: function () { return autocomplete_1.AutocompleteWithDefauls; } });
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { BoxProps } from '@material-ui/core';
3
+ export declare const McBox: React.FC<BoxProps>;