@teselagen/ove 0.7.27 → 0.7.28

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 (304) hide show
  1. package/AASliver.js +187 -0
  2. package/AddLaddersDialog.js +82 -0
  3. package/AdditionalCutsiteInfoDialog.js +599 -0
  4. package/AlignmentView/Mismatches.d.ts +3 -3
  5. package/AlignmentVisibilityTool.js +105 -0
  6. package/AnnotationContainerHolder.js +20 -0
  7. package/AnnotationPositioner.js +27 -0
  8. package/AutoAnnotate.js +501 -0
  9. package/AutoAnnotateBpMatchingDialog.js +208 -0
  10. package/Axis.js +151 -0
  11. package/AxisNumbers.js +35 -0
  12. package/Browser.js +106 -0
  13. package/Caret.js +63 -0
  14. package/Chromatogram.js +293 -0
  15. package/CircularDnaSequence.js +73 -0
  16. package/CircularView/Labels/index.d.ts +1 -1
  17. package/CircularView/index.d.ts +0 -1
  18. package/CircularZoomMinimap.js +16 -0
  19. package/ColorPicker.js +30 -0
  20. package/CommandHotkeyHandler.js +44 -0
  21. package/CreateAnnotationsPage.d.ts +4 -4
  22. package/CreateAnnotationsPage.js +98 -0
  23. package/Cutsite.js +18 -0
  24. package/CutsiteProperties.js +176 -0
  25. package/CutsiteSelectionLayers.js +47 -0
  26. package/Cutsites.js +271 -0
  27. package/DeletionLayer.js +28 -0
  28. package/DigestTool/Ladder.d.ts +1 -1
  29. package/DropHandler.css +21 -0
  30. package/DropHandler.js +64 -0
  31. package/EditCaretPosition.js +234 -0
  32. package/EditTrackNameDialog.js +30 -0
  33. package/Feature.js +83 -0
  34. package/FeatureProperties.js +6 -0
  35. package/FillWindow.js +47 -0
  36. package/GenbankView.js +74 -0
  37. package/GeneralProperties.js +117 -0
  38. package/GenericAnnotationProperties.js +406 -0
  39. package/GlobalDialog.js +73 -0
  40. package/GlobalDialogUtils.js +110 -0
  41. package/GoToDialog.js +25 -0
  42. package/HorizontalPanelDragHandle.js +35 -0
  43. package/Keyboard.js +85 -0
  44. package/Labels.js +327 -0
  45. package/Ladder.css +20 -0
  46. package/Ladder.js +303 -0
  47. package/MeltingTemp.js +85 -0
  48. package/Menlo.ttf +0 -0
  49. package/Minimap.js +515 -0
  50. package/Mismatches.js +134 -0
  51. package/Monaco.ttf +0 -0
  52. package/MultipleSeqsDetectedOnImportDialog.js +74 -0
  53. package/Orf.js +109 -0
  54. package/OrfProperties.js +117 -0
  55. package/Orfs.js +35 -0
  56. package/PCRTool.js +179 -0
  57. package/PairwiseAlignmentView.js +68 -0
  58. package/Part.js +34 -0
  59. package/PartProperties.js +9 -0
  60. package/PassThrough.js +3 -0
  61. package/PerformantSelectionLayer.js +32 -0
  62. package/PinchHelper.js +24 -0
  63. package/PointedAnnotation.js +347 -0
  64. package/PositionAnnotationOnCircle.js +26 -0
  65. package/Primer.js +41 -0
  66. package/PrimerProperties.js +19 -0
  67. package/Reflex/index.d.ts +0 -1
  68. package/ReflexContainer.js +802 -0
  69. package/ReflexElement.js +160 -0
  70. package/ReflexEvents.js +77 -0
  71. package/ReflexSplitter.js +205 -0
  72. package/RenameSequenceDialog.js +7 -0
  73. package/RotateCircularViewSlider.js +93 -0
  74. package/RowView/index.d.ts +0 -1
  75. package/SelectDialog.js +150 -0
  76. package/SequenceName.js +15 -0
  77. package/SimpleCircularOrLinearView.js +381 -0
  78. package/SimpleOligoPreview.js +39 -0
  79. package/SingleEnzymeCutsiteInfo.js +139 -0
  80. package/ToolBar/ToolbarItem.d.ts +1 -3
  81. package/ToolbarItem.js +192 -0
  82. package/Translation.js +198 -0
  83. package/TranslationProperties.js +149 -0
  84. package/UncontrolledSliderWithPlusMinusBtns.css +5 -0
  85. package/UncontrolledSliderWithPlusMinusBtns.js +134 -0
  86. package/VeTopRightContainer.js +12 -0
  87. package/ZoomCircularViewSlider.js +62 -0
  88. package/ZoomLinearView.js +47 -0
  89. package/addAlignment.js +6 -0
  90. package/addMetaToActionCreators.js +12 -0
  91. package/addWrappedAddons.js +20 -0
  92. package/alignmentTool.js +503 -0
  93. package/alignments.js +379 -0
  94. package/annotationLabelVisibility.js +2 -0
  95. package/annotationSearchSelector.js +24 -0
  96. package/annotationTypes.js +35 -0
  97. package/annotationVisibility.js +196 -0
  98. package/annotationsToSupport.js +104 -0
  99. package/arrayToObjWithIds.js +17 -0
  100. package/arrayUtils.js +19 -0
  101. package/array_move.js +10 -0
  102. package/calculateTickMarkPositionsForGivenRange.js +47 -0
  103. package/caretPosition.js +27 -0
  104. package/cdsFeaturesSelector.js +9 -0
  105. package/charWidth.js +22 -0
  106. package/circular.js +19 -0
  107. package/circularSelector.js +4 -0
  108. package/clickAndDragUtils.js +576 -0
  109. package/coerceInitialValue.js +7 -0
  110. package/combineReducersDontIgnoreKeys.js +12 -0
  111. package/commandUtils.js +20 -0
  112. package/constants.js +2 -0
  113. package/copyOptions.js +34 -0
  114. package/createFragmentLines.js +120 -0
  115. package/createMergedDefaultStateReducer.js +30 -0
  116. package/createMetaAction.js +12 -0
  117. package/createSequenceInputPopup.js +290 -0
  118. package/createSequenceInputPopupStyle.css +87 -0
  119. package/createSimpleDialog.js +89 -0
  120. package/createYourOwnEnzyme.js +39 -0
  121. package/cutsiteLabelColorSelector.js +6 -0
  122. package/cutsiteTool.js +88 -0
  123. package/cutsitesByRangeSelector.js +5 -0
  124. package/cutsitesSelector.js +61 -0
  125. package/darkmode.css +98 -0
  126. package/defaultConfig.js +150 -0
  127. package/deletionLayers.js +36 -0
  128. package/description.js +21 -0
  129. package/digestTool.js +34 -0
  130. package/dnaToColor.js +17 -0
  131. package/downloadTool.js +39 -0
  132. package/draggableClassnames.js +5 -0
  133. package/drawAnnotations.js +440 -0
  134. package/drawDirectedPiePiece.js +142 -0
  135. package/editTool.js +49 -0
  136. package/editorSelector.js +2 -0
  137. package/editorUtils.js +205 -0
  138. package/estimateRowHeight.js +184 -0
  139. package/featureLengthsToHide.js +27 -0
  140. package/featureTool.js +34 -0
  141. package/features.js +19 -0
  142. package/featuresSelector.js +8 -0
  143. package/filteredCutsitesSelector.js +136 -0
  144. package/filteredFeaturesSelector.js +32 -0
  145. package/filteredPartsSelector.js +57 -0
  146. package/filteredPrimersSelector.js +27 -0
  147. package/filteredRestrictionEnzymesSelector.js +1 -0
  148. package/find.png +0 -0
  149. package/findTool.js +79 -0
  150. package/findToolConstants.js +1 -0
  151. package/frameTranslations.js +52 -0
  152. package/fullscreen.png +0 -0
  153. package/getAdditionalEnzymesSelector.js +46 -0
  154. package/getAngleForPositionMidpoint.js +3 -0
  155. package/getAnnotationClassnames.js +12 -0
  156. package/getAnnotationNameAndStartStopString.js +61 -0
  157. package/getBpsPerRow.js +19 -0
  158. package/getCutsiteLabelHeights.js +56 -0
  159. package/getGapMap.js +12 -0
  160. package/getGaps.js +27 -0
  161. package/getInternalLabel.js +40 -0
  162. package/getOveHotkeyDefs.js +12 -0
  163. package/getPairwiseOverviewLinearViewOptions.js +38 -0
  164. package/getRangeAnglesSpecial.js +12 -0
  165. package/getStructuredBases.js +97 -0
  166. package/getTrackFromEvent.js +25 -0
  167. package/getVisibleStartEnd.js +7 -0
  168. package/getXStartAndWidthFromNonCircularRange.js +12 -0
  169. package/getXStartAndWidthOfRangeWrtRow.js +27 -0
  170. package/getXStartAndWidthOfRowAnnotation.js +19 -0
  171. package/getYOffset.js +15 -0
  172. package/hoveredAnnotation.js +24 -0
  173. package/{html2canvas.esm--JN4fLQL.js → html2canvas.esm-DiGWN1gP.js} +187 -229
  174. package/{html2canvas.esm-B7d7VJmQ.cjs → html2canvas.esm-J1esNpMJ.cjs} +187 -229
  175. package/importTool.js +27 -0
  176. package/index.cjs.js +48165 -47142
  177. package/index.es.js +47699 -46676
  178. package/index.js +71 -0
  179. package/inlineFindTool.js +38 -0
  180. package/isElementInViewport.js +29 -0
  181. package/isEnzymeFilterAndSelector.js +1 -0
  182. package/isTargetWithinEl.js +6 -0
  183. package/labelLineIntensity.js +25 -0
  184. package/labelSize.js +23 -0
  185. package/ladderDefaults.js +25 -0
  186. package/lastSavedId.js +20 -0
  187. package/lineageLines.js +11 -0
  188. package/linear.png +0 -0
  189. package/makeStore.js +34 -0
  190. package/massageTickSpacing.js +19 -0
  191. package/materiallyAvailable.js +19 -0
  192. package/middleware.js +112 -0
  193. package/minimumOrfSize.js +24 -0
  194. package/minimumOrfSizeSelector.js +2 -0
  195. package/modalActions.js +3 -0
  196. package/moveCaret.js +58 -0
  197. package/name.js +19 -0
  198. package/normalizeAngle.js +3 -0
  199. package/normalizeAngleRange.js +9 -0
  200. package/oligoTool.js +30 -0
  201. package/onlyUpdateForKeysDeep.js +31 -0
  202. package/orfFrameToColorMap.js +10 -0
  203. package/orfTool.js +136 -0
  204. package/orfsSelector.js +15 -0
  205. package/ove.css +12107 -0
  206. package/package.json +6 -5
  207. package/panelsShown.js +294 -0
  208. package/partLengthsToHide.js +23 -0
  209. package/partOverhangs.js +6 -0
  210. package/partTagSearch.js +69 -0
  211. package/partTool.js +45 -0
  212. package/parts.js +19 -0
  213. package/partsSelector.js +8 -0
  214. package/pie.png +0 -0
  215. package/polarToSpecialCartesian.js +7 -0
  216. package/positionCutsites.js +6 -0
  217. package/prepareRowData.js +64 -0
  218. package/primerBases.js +221 -0
  219. package/primerLengthsToHide.js +27 -0
  220. package/primers.js +19 -0
  221. package/primersSelector.js +8 -0
  222. package/print.png +0 -0
  223. package/printTool.js +31 -0
  224. package/propertiesTool.js +40 -0
  225. package/proteinUtils.js +3 -0
  226. package/pureNoFunc.js +18 -0
  227. package/readOnly.js +25 -0
  228. package/redoTool.js +30 -0
  229. package/reflex-styles.css +128 -0
  230. package/reflex-styles.css.map +9 -0
  231. package/relaxLabelAngles.js +157 -0
  232. package/relaxLabels_DEPRECATED.js +105 -0
  233. package/replacementLayers.js +36 -0
  234. package/restrictionEnzymes.js +52 -0
  235. package/restrictionEnzymesSelector.js +34 -0
  236. package/rowviewContants.js +3 -0
  237. package/ruler.css +89 -0
  238. package/save.png +0 -0
  239. package/saveTool.js +44 -0
  240. package/searchLayersSelector.js +71 -0
  241. package/selectedAnnotations.js +89 -0
  242. package/selectedAnnotationsSelector.js +1 -0
  243. package/selectedCutsitesSelector.js +21 -0
  244. package/selectedPartTags.js +21 -0
  245. package/selectionLayer.js +25 -0
  246. package/selectors/annotationSearchSelector.d.ts +1 -1
  247. package/sequence.js +12 -0
  248. package/sequenceDataHistory.js +43 -0
  249. package/sequenceDataSelector.js +2 -0
  250. package/sequenceLengthSelector.js +5 -0
  251. package/sequenceSelector.js +4 -0
  252. package/sharedActionCreators.js +0 -0
  253. package/shouldFlipText.js +4 -0
  254. package/shouldRerender.js +27 -0
  255. package/showFileDialog.js +25 -0
  256. package/showGCContent.js +23 -0
  257. package/show_cut_sites.png +0 -0
  258. package/show_features.png +0 -0
  259. package/show_orfs.png +0 -0
  260. package/show_primers.png +0 -0
  261. package/simpleDialog.css +13 -0
  262. package/specialCutsiteFilterOptions.js +22 -0
  263. package/src/Editor/DropHandler.js +2 -1
  264. package/src/Editor/index.js +0 -2
  265. package/src/RowItem/StackedAnnotations/getStructuredBases.js +20 -6
  266. package/src/ToolBar/cutsiteTool.js +1 -1
  267. package/src/helperComponents/PropertiesDialog/TranslationProperties.js +2 -1
  268. package/style.css +3 -12100
  269. package/tagsToBoldSelector.js +2 -0
  270. package/toggle_views.svg +1 -0
  271. package/toolBar.js +23 -0
  272. package/translationSearchMatchesSelector.js +14 -0
  273. package/translations.js +20 -0
  274. package/translationsRawSelector.js +8 -0
  275. package/translationsSelector.js +137 -0
  276. package/typeField.js +24 -0
  277. package/undoTool.js +30 -0
  278. package/updateEditor.d.ts +1 -3
  279. package/updateEditor.js +200 -0
  280. package/updateLabelsForInViewFeatures.js +55 -0
  281. package/updateLabelsForInViewFeaturesCircView.js +41 -0
  282. package/updateTrackHelper.js +58 -0
  283. package/uppercaseSequenceMapFont.js +25 -0
  284. package/upsertDeleteActionGenerator.js +31 -0
  285. package/useAAColorType.js +8 -0
  286. package/useAdditionalOrfStartCodons.js +24 -0
  287. package/useAnnotationLimits.js +42 -0
  288. package/useChromatogramPrefs.js +31 -0
  289. package/useFormValue.js +7 -0
  290. package/useLadders.js +6 -0
  291. package/useMeltingTemp.js +7 -0
  292. package/useTmType.js +10 -0
  293. package/userDefinedHandlersAndOpts.js +61 -0
  294. package/utils/getAnnotationNameAndStartStopString.d.ts +1 -5
  295. package/utils/selectionLayer.d.ts +2 -2
  296. package/utils.js +37 -0
  297. package/versionHistory.js +26 -0
  298. package/versionHistoryTool.js +21 -0
  299. package/viewSubmenu.js +479 -0
  300. package/visibilityTool.js +39 -0
  301. package/withEditorInteractions/getBpsPerRow.d.ts +1 -3
  302. package/withHover.js +113 -0
  303. package/withRestrictionEnzymes.js +15 -0
  304. package/index.umd.js +0 -188322
@@ -0,0 +1,104 @@
1
+ import createAction from "./utils/createMetaAction";
2
+ import createMergedDefaultStateReducer from "./utils/createMergedDefaultStateReducer";
3
+
4
+ //this determines whether or not to
5
+ const initialSupportedTypes = {
6
+ parts: true,
7
+ features: true,
8
+ translations: true,
9
+ primers: true,
10
+ cutsites: true,
11
+ orfs: true,
12
+ warnings: true,
13
+ assemblyPieces: true,
14
+ lineageAnnotations: true
15
+ };
16
+
17
+ // ------------------------------------
18
+ // Actions
19
+ // ------------------------------------
20
+ export const annotationSupportToggle = createAction("annotationSupportToggle");
21
+ //eg: annotationSupportToggle('features')
22
+ export const annotationSupportOn = createAction("annotationSupportOn");
23
+ export const annotationSupportOff = createAction("annotationSupportOff");
24
+
25
+ // ------------------------------------
26
+ // Reducer
27
+ // ------------------------------------
28
+ export default createMergedDefaultStateReducer(
29
+ {
30
+ [annotationSupportToggle]: (state, payload) => {
31
+ return {
32
+ ...state,
33
+ [payload]: !state[payload]
34
+ };
35
+ },
36
+ [annotationSupportOn]: (state, payload) => {
37
+ return {
38
+ ...state,
39
+ [payload]: false
40
+ };
41
+ },
42
+ [annotationSupportOff]: (state, payload) => {
43
+ return {
44
+ ...state,
45
+ [payload]: true
46
+ };
47
+ }
48
+ },
49
+ initialSupportedTypes
50
+ );
51
+
52
+ // import createAction from "./utils/createMetaAction";
53
+ // import createMergedDefaultStateReducer from "./utils/createMergedDefaultStateReducer";
54
+
55
+ // //this determines whether or not to
56
+ // const initialSupportedTypes = {
57
+ // parts: true,
58
+ // features: true,
59
+ // translations: true,
60
+ // primers: true,
61
+ // cutsites: true,
62
+ // orfs: true,
63
+ // warnings: true,
64
+ // assemblyPieces: true,
65
+ // lineageAnnotations: true
66
+ // };
67
+
68
+ // // ------------------------------------
69
+ // // Actions
70
+ // // ------------------------------------
71
+ // export const annotationSupportToggle = createAction(
72
+ // "ANNOTATION_SUPPORT_TOGGLE"
73
+ // );
74
+
75
+ // export const annotationSupportOn = createAction("ANNOTATION_SUPPORT_ON");
76
+ // export const annotationSupportOff = createAction("ANNOTATION_SUPPORT_OFF");
77
+
78
+ // export default function (state = initialSupportedTypes, action) {
79
+ // switch (action.type) {
80
+ // case "ANNOTATION_SUPPORT_TOGGLE":
81
+ // return {
82
+ // ...state,
83
+ // [action.payload]: !state[action.payload]
84
+ // };
85
+ // case "ANNOTATION_SUPPORT_ON":
86
+ // return {
87
+ // ...state,
88
+ // [action.payload]: true
89
+ // };
90
+ // case "ANNOTATION_SUPPORT_OFF":
91
+ // return {
92
+ // ...state,
93
+ // [action.payload]: false
94
+ // };
95
+ // default:
96
+ // if (action.mergeStateDeep) {
97
+ // return {
98
+ // ...initialSupportedTypes,
99
+ // ...state
100
+ // };
101
+ // }
102
+ // return state;
103
+ // }
104
+ // }
@@ -0,0 +1,17 @@
1
+ //helper function to make sure any arrays coming in
2
+
3
+ import shortid from "shortid";
4
+
5
+ //get converted to objects with unique ids
6
+ export default function arrayToObjWithIds(array) {
7
+ const newObj = {};
8
+ array.forEach(function (item) {
9
+ const newItem = {
10
+ ...item,
11
+ id: item.id || shortid()
12
+ };
13
+ newObj[newItem.id] = newItem;
14
+ });
15
+
16
+ return newObj;
17
+ }
package/arrayUtils.js ADDED
@@ -0,0 +1,19 @@
1
+ export function insertItem(array, item, index) {
2
+ return [...array.slice(0, index), item, ...array.slice(index)];
3
+ }
4
+
5
+ export function removeItem(array, i) {
6
+ return array.filter((_, j) => j !== Number(i));
7
+ }
8
+
9
+ export function getLowerCaseObj(obj = {}) {
10
+ let key;
11
+ const keys = Object.keys(obj);
12
+ let n = keys.length;
13
+ const newobj = {};
14
+ while (n--) {
15
+ key = keys[n];
16
+ newobj[key.toLowerCase()] = obj[key];
17
+ }
18
+ return newobj;
19
+ }
package/array_move.js ADDED
@@ -0,0 +1,10 @@
1
+ export function array_move(arr, old_index, new_index) {
2
+ if (new_index >= arr.length) {
3
+ let k = new_index - arr.length + 1;
4
+ while (k--) {
5
+ arr.push(undefined);
6
+ }
7
+ }
8
+ arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);
9
+ return arr; // for testing
10
+ }
@@ -0,0 +1,47 @@
1
+ import { normalizePositionByRangeLength as norm } from "@teselagen/range-utils";
2
+ import { getRangeLength } from "@teselagen/range-utils";
3
+
4
+ export default function calculateTickMarkPositionsForGivenRange({
5
+ tickSpacing: _tickSpacing = 10,
6
+ range,
7
+ sequenceLength,
8
+ isProtein,
9
+ increaseOffset
10
+ }) {
11
+ if (sequenceLength === 0) {
12
+ return [];
13
+ }
14
+ let tickSpacing = _tickSpacing;
15
+ if (isProtein) {
16
+ tickSpacing = Math.floor((_tickSpacing / 2) * 3);
17
+ }
18
+
19
+ const rangeLength = getRangeLength(range, sequenceLength);
20
+
21
+ let spacer = 0;
22
+ if (increaseOffset) {
23
+ spacer = range.start;
24
+ }
25
+ const firstTickOffsetFromRangeStart =
26
+ spacer + tickSpacing - (range.start % tickSpacing);
27
+
28
+ const tickMarks = [];
29
+ if (range.start === 0) tickMarks.push(isProtein ? 2 : 0);
30
+ let hasCrossedOrigin;
31
+ for (
32
+ let tick = firstTickOffsetFromRangeStart - 1;
33
+ tick < spacer + rangeLength;
34
+ tick += tickSpacing
35
+ ) {
36
+ let normed = norm(tick, sequenceLength);
37
+ if (!hasCrossedOrigin && normed < tick) {
38
+ if (!(normed % 10) && normed !== 0) {
39
+ tick = tick - 1;
40
+ normed = normed - 1;
41
+ }
42
+ if (normed !== 0) hasCrossedOrigin = true;
43
+ }
44
+ tickMarks.push(normed);
45
+ }
46
+ return tickMarks;
47
+ }
@@ -0,0 +1,27 @@
1
+ import { createReducer } from "redux-act";
2
+ import createAction from "./utils/createMetaAction";
3
+
4
+ // ------------------------------------
5
+ // Actions
6
+ // ------------------------------------
7
+ export const caretPositionClear = createAction("CARET_POSITION_CLEAR");
8
+ export const caretPositionUpdate = createAction("CARET_POSITION_UPDATE");
9
+
10
+ // ------------------------------------
11
+ // Reducer
12
+ // ------------------------------------
13
+ export default createReducer(
14
+ {
15
+ SELECTION_LAYER_UPDATE: () => {
16
+ //clear the caret if the selection layer is updated!
17
+ return -1;
18
+ },
19
+ [caretPositionClear]: () => {
20
+ return -1;
21
+ },
22
+ [caretPositionUpdate]: (unused, payload) => {
23
+ return typeof payload === "string" ? parseInt(payload, 10) : payload;
24
+ }
25
+ },
26
+ -1
27
+ );
@@ -0,0 +1,9 @@
1
+ import { createSelector } from "reselect";
2
+ import { filter } from "lodash-es";
3
+ import featuresSelector from "./featuresSelector";
4
+
5
+ function cdsFeaturesRawSelector(features) {
6
+ return filter(features, ({ type }) => type && type.toUpperCase() === "CDS");
7
+ }
8
+
9
+ export default createSelector(featuresSelector, cdsFeaturesRawSelector);
package/charWidth.js ADDED
@@ -0,0 +1,22 @@
1
+ import { createReducer } from "redux-act";
2
+ import createAction from "./utils/createMetaAction";
3
+
4
+ // ------------------------------------
5
+ // Actions
6
+ // ------------------------------------
7
+ export const updateSequenceSpacing = createAction("updateSequenceSpacing");
8
+
9
+ const newVal = window.localStorage.getItem("charWidth");
10
+
11
+ // ------------------------------------
12
+ // Reducer
13
+ // ------------------------------------
14
+ export default createReducer(
15
+ {
16
+ [updateSequenceSpacing]: (state, payload) => {
17
+ localStorage.setItem("charWidth", payload);
18
+ return payload;
19
+ }
20
+ },
21
+ newVal || 9
22
+ );
package/circular.js ADDED
@@ -0,0 +1,19 @@
1
+ import { createReducer } from "redux-act";
2
+ import createAction from "../utils/createMetaAction";
3
+
4
+ // ------------------------------------
5
+ // Actions
6
+ // ------------------------------------
7
+ export const _updateCircular = createAction("UPDATE_CIRCULAR");
8
+
9
+ // ------------------------------------
10
+ // Reducer
11
+ // ------------------------------------
12
+ export default createReducer(
13
+ {
14
+ [_updateCircular]: (state, payload) => {
15
+ return payload;
16
+ }
17
+ },
18
+ true
19
+ );
@@ -0,0 +1,4 @@
1
+ import sequenceDataSelector from "./sequenceDataSelector";
2
+ export default function (state) {
3
+ return sequenceDataSelector(state).circular;
4
+ }