@zakodium/nmrium-core-plugins-ui 0.1.22 → 0.1.24

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 (29) hide show
  1. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization.d.ts.map +1 -1
  2. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization.js +3 -1
  3. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization.js.map +1 -1
  4. package/lib/plugins/spectrum_1d_processings_ui/operators/{apodization_expand.d.ts → apodization_expanded.d.ts} +1 -1
  5. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization_expanded.d.ts.map +1 -0
  6. package/lib/plugins/spectrum_1d_processings_ui/operators/{apodization_expand.js → apodization_expanded.js} +1 -1
  7. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization_expanded.js.map +1 -0
  8. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization_tool.d.ts +3 -0
  9. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization_tool.d.ts.map +1 -0
  10. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization_tool.js +45 -0
  11. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization_tool.js.map +1 -0
  12. package/lib/plugins/spectrum_1d_processings_ui/operators/index.js.map +1 -1
  13. package/lib/plugins/spectrum_1d_processings_ui/operators/phase_correction.d.ts.map +1 -1
  14. package/lib/plugins/spectrum_1d_processings_ui/operators/phase_correction.js +4 -6
  15. package/lib/plugins/spectrum_1d_processings_ui/operators/phase_correction.js.map +1 -1
  16. package/lib/plugins/spectrum_1d_processings_ui/operators/phase_correction_expanded.d.ts +3 -0
  17. package/lib/plugins/spectrum_1d_processings_ui/operators/phase_correction_expanded.d.ts.map +1 -0
  18. package/lib/plugins/spectrum_1d_processings_ui/operators/phase_correction_expanded.js +50 -0
  19. package/lib/plugins/spectrum_1d_processings_ui/operators/phase_correction_expanded.js.map +1 -0
  20. package/package.json +5 -4
  21. package/src/plugins/spectrum_1d_processings_ui/operators/apodization.ts +3 -1
  22. package/src/plugins/spectrum_1d_processings_ui/operators/apodization_tool.tsx +81 -0
  23. package/src/plugins/spectrum_1d_processings_ui/operators/index.ts +1 -1
  24. package/src/plugins/spectrum_1d_processings_ui/operators/phase_correction.ts +12 -0
  25. package/src/plugins/spectrum_1d_processings_ui/operators/phase_correction_expanded.tsx +116 -0
  26. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization_expand.d.ts.map +0 -1
  27. package/lib/plugins/spectrum_1d_processings_ui/operators/apodization_expand.js.map +0 -1
  28. package/src/plugins/spectrum_1d_processings_ui/operators/phase_correction.tsx +0 -33
  29. /package/src/plugins/spectrum_1d_processings_ui/operators/{apodization_expand.tsx → apodization_expanded.tsx} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"apodization.d.ts","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,qGAOxB,CAAC"}
1
+ {"version":3,"file":"apodization.d.ts","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,qGAQxB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { defineProcessingOperatorUI } from '@zakodium/nmrium-core';
2
- import { ApodizationExpanded } from "./apodization_expand.js";
2
+ import { ApodizationExpanded } from "./apodization_expanded.js";
3
+ import { ApodizationTool } from "./apodization_tool.js";
3
4
  export const apodization1D = defineProcessingOperatorUI({
4
5
  id: '@zakodium/nmrium-core-plugins#apodization1D',
5
6
  name: 'Apodization / Window',
@@ -7,5 +8,6 @@ export const apodization1D = defineProcessingOperatorUI({
7
8
  isLiveEditable: true,
8
9
  defaultShouldProcessAll: false,
9
10
  Expanded: ApodizationExpanded,
11
+ Tool: ApodizationTool,
10
12
  });
11
13
  //# sourceMappingURL=apodization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apodization.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAA0B,CAAC;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,0BAA0B,CAAC;IACtD,EAAE,EAAE,6CAA6C;IACjD,IAAI,EAAE,sBAAsB;IAC5B,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,IAAI;IACpB,uBAAuB,EAAE,KAAK;IAC9B,QAAQ,EAAE,mBAAmB;CAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"apodization.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG,0BAA0B,CAAC;IACtD,EAAE,EAAE,6CAA6C;IACjD,IAAI,EAAE,sBAAsB;IAC5B,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,IAAI;IACpB,uBAAuB,EAAE,KAAK;IAC9B,QAAQ,EAAE,mBAAmB;IAC7B,IAAI,EAAE,eAAe;CACtB,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { ProcessingOperatorUIExpandedProps } from '@zakodium/nmrium-core';
2
2
  export declare function ApodizationExpanded(props: ProcessingOperatorUIExpandedProps<'@zakodium/nmrium-core-plugins#apodization1D'>): import("react").JSX.Element;
3
- //# sourceMappingURL=apodization_expand.d.ts.map
3
+ //# sourceMappingURL=apodization_expanded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apodization_expanded.d.ts","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization_expanded.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAG/E,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iCAAiC,CAAC,6CAA6C,CAAC,+BAoOxF"}
@@ -89,4 +89,4 @@ export function ApodizationExpanded(props) {
89
89
  },
90
90
  }, children: ({ Checkbox, state }) => (_jsxs(_Fragment, { children: [_jsx(Checkbox, { label: "Traf" }), state.value && (_jsx(AppField, { name: "traf.options.lineBroadening", children: ({ NumericInput }) => (_jsx(NumericInput, { label: "Line broadening", minorStepSize: 0.01, step: 0.1, majorStepSize: 1 })) }))] })) })] }));
91
91
  }
92
- //# sourceMappingURL=apodization_expand.js.map
92
+ //# sourceMappingURL=apodization_expanded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apodization_expanded.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization_expanded.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProcessingOperatorUIToolProps } from '@zakodium/nmrium-core';
2
+ export declare function ApodizationTool(props: ProcessingOperatorUIToolProps<'@zakodium/nmrium-core-plugins#apodization1D'>): import("react").JSX.Element | null;
3
+ //# sourceMappingURL=apodization_tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apodization_tool.d.ts","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization_tool.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,6BAA6B,EAE9B,MAAM,uBAAuB,CAAC;AAqB/B,wBAAgB,eAAe,CAC7B,KAAK,EAAE,6BAA6B,CAAC,6CAA6C,CAAC,sCAqDpF"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useHotkeys } from '@blueprintjs/core';
3
+ import { generateID, isSpectrum1DFid } from '@zakodium/nmrium-core';
4
+ import { SvgNmrApodization } from 'cheminfo-font';
5
+ import { useMemo } from 'react';
6
+ import { Toolbar, TooltipHelpContent } from 'react-science/ui';
7
+ import { useEventCallback } from 'usehooks-ts';
8
+ function defaultApodization1DOperation() {
9
+ return {
10
+ operatorId: '@zakodium/nmrium-core-plugins#apodization1D',
11
+ settings: { exponential: { apply: true, options: { lineBroadening: 1 } } },
12
+ options: undefined,
13
+ error: undefined,
14
+ uid: generateID(),
15
+ enabled: true,
16
+ };
17
+ }
18
+ const NO_SHORTCUTS = [];
19
+ export function ApodizationTool(props) {
20
+ const { spectrum, liveSpectrum, onTriggerOperation } = props;
21
+ const firstLiveProcessing = liveSpectrum?.processings?.[0]?.operatorId;
22
+ const isActive = firstLiveProcessing === '@zakodium/nmrium-core-plugins#apodization1D';
23
+ const isVisible = isSpectrum1DFid(spectrum) && spectrum.info.isComplex;
24
+ const triggerOperation = useEventCallback((event) => {
25
+ if ('stopImmediatePropagation' in event) {
26
+ // stopPropagation is not enough because
27
+ // nmrium keyboard listener is also on document
28
+ event.stopImmediatePropagation();
29
+ }
30
+ onTriggerOperation(defaultApodization1DOperation());
31
+ });
32
+ const hotkeys = useMemo(() => [
33
+ {
34
+ combo: 'A',
35
+ label: 'Apodization',
36
+ global: true,
37
+ onKeyDown: triggerOperation,
38
+ },
39
+ ], [triggerOperation]);
40
+ useHotkeys(isVisible ? hotkeys : NO_SHORTCUTS);
41
+ if (!isVisible)
42
+ return null;
43
+ return (_jsx(Toolbar.Item, { id: "@zakodium/nmrium-core-plugins#apodization1D", icon: _jsx(SvgNmrApodization, {}), tooltip: _jsx(TooltipHelpContent, { title: "Apodization / Window", shortcuts: ['a'], description: "Apply mathematical function that the FID is multiplied by before Fourier Transform.", link: "https://docs.nmrium.org/help/apodization" }), active: isActive, onClick: triggerOperation }));
44
+ }
45
+ //# sourceMappingURL=apodization_tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apodization_tool.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization_tool.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK/C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,SAAS,6BAA6B;IACpC,OAAO;QACL,UAAU,EAAE,6CAA6C;QACzD,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1E,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,UAAU,EAAE;QACjB,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAmB,EAAE,CAAC;AAExC,MAAM,UAAU,eAAe,CAC7B,KAAmF;IAEnF,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC;IAE7D,MAAM,mBAAmB,GAAG,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IACvE,MAAM,QAAQ,GACZ,mBAAmB,KAAK,6CAA6C,CAAC;IAExE,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;IAEvE,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,CAAC,KAAiC,EAAE,EAAE;QACpC,IAAI,0BAA0B,IAAI,KAAK,EAAE,CAAC;YACxC,wCAAwC;YACxC,+CAA+C;YAC/C,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACnC,CAAC;QAED,kBAAkB,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACtD,CAAC,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC;QACJ;YACE,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,gBAAgB;SAC5B;KACF,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;IACF,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE/C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO,CACL,KAAC,OAAO,CAAC,IAAI,IACX,EAAE,EAAC,6CAA6C,EAChD,IAAI,EAAE,KAAC,iBAAiB,KAAG,EAC3B,OAAO,EACL,KAAC,kBAAkB,IACjB,KAAK,EAAC,sBAAsB,EAC5B,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,WAAW,EAAC,qFAAqF,EACjG,IAAI,EAAC,0CAA0C,GAC/C,EAEJ,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,gBAAgB,GACzB,CACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAW,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAwB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAqC;IAC3D,eAAe;IACf,aAAa;IACb,aAAa;IACb,KAAK;IACL,QAAQ;IACR,iBAAiB;CAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAW,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAqC;IAC3D,eAAe;IACf,aAAa;IACb,aAAa;IACb,KAAK;IACL,QAAQ;IACR,iBAAiB;CAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"phase_correction.d.ts","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/phase_correction.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yGA8B5B,CAAC"}
1
+ {"version":3,"file":"phase_correction.d.ts","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/phase_correction.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,yGAO5B,CAAC"}
@@ -1,13 +1,11 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
1
  import { defineProcessingOperatorUI } from '@zakodium/nmrium-core';
2
+ import { PhaseCorrectionExpanded } from "./phase_correction_expanded.js";
3
3
  export const phaseCorrection1D = defineProcessingOperatorUI({
4
4
  id: '@zakodium/nmrium-core-plugins#phaseCorrection1D',
5
5
  name: 'Phase correction',
6
6
  isEditable: true,
7
- Expanded: (props) => {
8
- const { operation } = props;
9
- const { settings } = operation;
10
- return (_jsxs(_Fragment, { children: [_jsxs("label", { children: ["Algorithm:", _jsxs("select", { children: [_jsx("option", { value: "automatic", children: "Automatic" }), _jsx("option", { value: "manual", selected: true, children: "Manual" })] })] }), _jsxs("label", { children: ["PH0:", _jsx("input", { type: "number", value: settings.ph0 })] }), _jsxs("label", { children: ["PH1:", _jsx("input", { type: "number", value: settings.ph1 })] })] }));
11
- },
7
+ isLiveEditable: true,
8
+ Expanded: PhaseCorrectionExpanded,
9
+ defaultShouldProcessAll: false,
12
10
  });
13
11
  //# sourceMappingURL=phase_correction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"phase_correction.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/phase_correction.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;IAC1D,EAAE,EAAE,iDAAiD;IACrD,IAAI,EAAE,kBAAkB;IACxB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QAClB,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;QAE/B,OAAO,CACL,8BACE,0CAEE,6BACE,iBAAQ,KAAK,EAAC,WAAW,0BAAmB,EAC5C,iBAAQ,KAAK,EAAC,QAAQ,EAAC,QAAQ,6BAEtB,IACF,IACH,EACR,oCAEE,gBAAO,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,GAAI,IACtC,EACR,oCAEE,gBAAO,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,GAAI,IACtC,IACP,CACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"phase_correction.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/phase_correction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAiC,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;IAC1D,EAAE,EAAE,iDAAiD;IACrD,IAAI,EAAE,kBAAkB;IACxB,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,uBAAuB;IACjC,uBAAuB,EAAE,KAAK;CAC/B,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProcessingOperatorUIExpandedProps } from '@zakodium/nmrium-core';
2
+ export declare function PhaseCorrectionExpanded(props: ProcessingOperatorUIExpandedProps<'@zakodium/nmrium-core-plugins#phaseCorrection1D'>): import("react").JSX.Element;
3
+ //# sourceMappingURL=phase_correction_expanded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase_correction_expanded.d.ts","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/phase_correction_expanded.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAK/E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iCAAiC,CAAC,iDAAiD,CAAC,+BA4G5F"}
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { revalidateLogic } from '@tanstack/react-form';
3
+ import { castSpectrum1D } from '@zakodium/nmrium-core';
4
+ import { autoPhaseCorrection } from 'nmr-processing';
5
+ import { AppForm, useForm } from 'react-science/ui';
6
+ export function PhaseCorrectionExpanded(props) {
7
+ const { operation, core, children, onChange, onLiveChange, onMount, spectrum, } = props;
8
+ castSpectrum1D(spectrum);
9
+ const { settings } = operation;
10
+ const operator = core.getOperationOperator('@zakodium/nmrium-core-plugins#phaseCorrection1D', operation);
11
+ const { schemaSettings } = operator;
12
+ const form = useForm({
13
+ defaultValues: settings,
14
+ validators: { onDynamic: schemaSettings },
15
+ validationLogic: revalidateLogic(),
16
+ onSubmit: ({ value }) => {
17
+ if (!onChange)
18
+ return;
19
+ const newOperation = {
20
+ ...operation,
21
+ settings: schemaSettings.parse(value),
22
+ };
23
+ onChange(newOperation);
24
+ },
25
+ listeners: {
26
+ onMount: () => onMount(),
27
+ onChange: ({ formApi }) => {
28
+ const result = schemaSettings.safeParse(formApi.state.values);
29
+ if (!result.success)
30
+ return;
31
+ const liveOperation = { ...operation, settings: result.data };
32
+ onLiveChange(liveOperation);
33
+ },
34
+ },
35
+ });
36
+ return (_jsxs(AppForm, { form: form, layout: "stacked", children: [children?.(_jsx(form.SubmitButton, { variant: "outlined", size: "small", intent: "success", children: "Apply" })), _jsx(form.AppField, { name: "mode", listeners: {
37
+ onChange: ({ value, fieldApi }) => {
38
+ if (value === 'manual') {
39
+ const { ph0, ph1 } = autoPhaseCorrection(spectrum);
40
+ fieldApi.form.setFieldValue('ph0', ph0);
41
+ fieldApi.form.setFieldValue('ph1', ph1);
42
+ }
43
+ },
44
+ }, children: (field) => (_jsxs(_Fragment, { children: [_jsx(field.Select, { label: "Mode", layout: "inline", items: [
45
+ { value: 'automatic', label: 'Automatic' },
46
+ { value: 'manual', label: 'Manual' },
47
+ { value: 'absolute', label: 'Absolute' },
48
+ ] }), field.state.value === 'manual' && (_jsxs(_Fragment, { children: [_jsx(form.AppField, { name: "ph0", children: (field) => (_jsx(field.DraggableNumericInput, { label: "PH0", draggableLabel: "Change PH0 (click and drag)", draggableIntent: "success" })) }), _jsx(form.AppField, { name: "ph1", children: (field) => (_jsx(field.DraggableNumericInput, { label: "PH1", draggableLabel: "Change PH1 (click and drag)", draggableIntent: "success" })) })] }))] })) })] }));
49
+ }
50
+ //# sourceMappingURL=phase_correction_expanded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase_correction_expanded.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/phase_correction_expanded.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zakodium/nmrium-core-plugins-ui",
3
- "version": "0.1.22",
3
+ "version": "0.1.24",
4
4
  "license": "CC-BY-NC-SA-4.0",
5
5
  "description": "UI related plugins needed for cheminfo/nmrium",
6
6
  "keywords": [],
@@ -27,12 +27,13 @@
27
27
  "@blueprintjs/icons": "^6.13.0",
28
28
  "@blueprintjs/select": "^6.3.3",
29
29
  "@tanstack/react-form": "^1.33.2",
30
- "@zakodium/nmrium-core": "^0.7.48",
31
- "@zakodium/nmrium-core-plugins": "^0.7.64",
30
+ "@zakodium/nmrium-core": "^0.7.50",
31
+ "@zakodium/nmrium-core-plugins": "^0.7.66",
32
32
  "fifo-logger": "^2.0.1",
33
33
  "react": "^18.3.1",
34
34
  "react-dom": "^18.3.1",
35
35
  "react-science": "^20.6.1",
36
+ "usehooks-ts": "^3.1.1",
36
37
  "zod": "^4.4.3"
37
38
  },
38
39
  "devDependencies": {
@@ -42,5 +43,5 @@
42
43
  "typescript": "~6.0.3",
43
44
  "vitest": "^4.1.10"
44
45
  },
45
- "gitHead": "70cef3cf175a8ed98e2b015f3fcf85ebb162b59b"
46
+ "gitHead": "4f2c8c505e0a7a891c941540672a807da0594dd9"
46
47
  }
@@ -1,6 +1,7 @@
1
1
  import { defineProcessingOperatorUI } from '@zakodium/nmrium-core';
2
2
 
3
- import { ApodizationExpanded } from './apodization_expand.tsx';
3
+ import { ApodizationExpanded } from './apodization_expanded.tsx';
4
+ import { ApodizationTool } from './apodization_tool.tsx';
4
5
 
5
6
  export const apodization1D = defineProcessingOperatorUI({
6
7
  id: '@zakodium/nmrium-core-plugins#apodization1D',
@@ -9,4 +10,5 @@ export const apodization1D = defineProcessingOperatorUI({
9
10
  isLiveEditable: true,
10
11
  defaultShouldProcessAll: false,
11
12
  Expanded: ApodizationExpanded,
13
+ Tool: ApodizationTool,
12
14
  });
@@ -0,0 +1,81 @@
1
+ import type { HotkeyConfig } from '@blueprintjs/core';
2
+ import { useHotkeys } from '@blueprintjs/core';
3
+ import type {
4
+ ProcessingOperatorUIToolProps,
5
+ Spectrum1DProcessingTypeRegistry,
6
+ } from '@zakodium/nmrium-core';
7
+ import { generateID, isSpectrum1DFid } from '@zakodium/nmrium-core';
8
+ import { SvgNmrApodization } from 'cheminfo-font';
9
+ import type { MouseEvent } from 'react';
10
+ import { useMemo } from 'react';
11
+ import { Toolbar, TooltipHelpContent } from 'react-science/ui';
12
+ import { useEventCallback } from 'usehooks-ts';
13
+
14
+ function defaultApodization1DOperation(): Spectrum1DProcessingTypeRegistry['@zakodium/nmrium-core-plugins#apodization1D'] {
15
+ return {
16
+ operatorId: '@zakodium/nmrium-core-plugins#apodization1D',
17
+ settings: { exponential: { apply: true, options: { lineBroadening: 1 } } },
18
+ options: undefined,
19
+ error: undefined,
20
+ uid: generateID(),
21
+ enabled: true,
22
+ };
23
+ }
24
+
25
+ const NO_SHORTCUTS: HotkeyConfig[] = [];
26
+
27
+ export function ApodizationTool(
28
+ props: ProcessingOperatorUIToolProps<'@zakodium/nmrium-core-plugins#apodization1D'>,
29
+ ) {
30
+ const { spectrum, liveSpectrum, onTriggerOperation } = props;
31
+
32
+ const firstLiveProcessing = liveSpectrum?.processings?.[0]?.operatorId;
33
+ const isActive =
34
+ firstLiveProcessing === '@zakodium/nmrium-core-plugins#apodization1D';
35
+
36
+ const isVisible = isSpectrum1DFid(spectrum) && spectrum.info.isComplex;
37
+
38
+ const triggerOperation = useEventCallback(
39
+ (event: KeyboardEvent | MouseEvent) => {
40
+ if ('stopImmediatePropagation' in event) {
41
+ // stopPropagation is not enough because
42
+ // nmrium keyboard listener is also on document
43
+ event.stopImmediatePropagation();
44
+ }
45
+
46
+ onTriggerOperation(defaultApodization1DOperation());
47
+ },
48
+ );
49
+
50
+ const hotkeys = useMemo<HotkeyConfig[]>(
51
+ () => [
52
+ {
53
+ combo: 'A',
54
+ label: 'Apodization',
55
+ global: true,
56
+ onKeyDown: triggerOperation,
57
+ },
58
+ ],
59
+ [triggerOperation],
60
+ );
61
+ useHotkeys(isVisible ? hotkeys : NO_SHORTCUTS);
62
+
63
+ if (!isVisible) return null;
64
+
65
+ return (
66
+ <Toolbar.Item
67
+ id="@zakodium/nmrium-core-plugins#apodization1D"
68
+ icon={<SvgNmrApodization />}
69
+ tooltip={
70
+ <TooltipHelpContent
71
+ title="Apodization / Window"
72
+ shortcuts={['a']}
73
+ description="Apply mathematical function that the FID is multiplied by before Fourier Transform."
74
+ link="https://docs.nmrium.org/help/apodization"
75
+ />
76
+ }
77
+ active={isActive}
78
+ onClick={triggerOperation}
79
+ />
80
+ );
81
+ }
@@ -3,7 +3,7 @@ import type { ProcessingOperatorUI } from '@zakodium/nmrium-core';
3
3
  import { apodization1D } from './apodization.ts';
4
4
  import { digitalFilter1D } from './digital_filter.tsx';
5
5
  import { fft1D } from './fft.tsx';
6
- import { phaseCorrection1D } from './phase_correction.tsx';
6
+ import { phaseCorrection1D } from './phase_correction.ts';
7
7
  import { shiftX1D } from './shift_x.tsx';
8
8
  import { zeroFilling1D } from './zero_filling.tsx';
9
9
 
@@ -0,0 +1,12 @@
1
+ import { defineProcessingOperatorUI } from '@zakodium/nmrium-core';
2
+
3
+ import { PhaseCorrectionExpanded } from './phase_correction_expanded.tsx';
4
+
5
+ export const phaseCorrection1D = defineProcessingOperatorUI({
6
+ id: '@zakodium/nmrium-core-plugins#phaseCorrection1D',
7
+ name: 'Phase correction',
8
+ isEditable: true,
9
+ isLiveEditable: true,
10
+ Expanded: PhaseCorrectionExpanded,
11
+ defaultShouldProcessAll: false,
12
+ });
@@ -0,0 +1,116 @@
1
+ import { revalidateLogic } from '@tanstack/react-form';
2
+ import type { ProcessingOperatorUIExpandedProps } from '@zakodium/nmrium-core';
3
+ import { castSpectrum1D } from '@zakodium/nmrium-core';
4
+ import { autoPhaseCorrection } from 'nmr-processing';
5
+ import { AppForm, useForm } from 'react-science/ui';
6
+
7
+ export function PhaseCorrectionExpanded(
8
+ props: ProcessingOperatorUIExpandedProps<'@zakodium/nmrium-core-plugins#phaseCorrection1D'>,
9
+ ) {
10
+ const {
11
+ operation,
12
+ core,
13
+ children,
14
+ onChange,
15
+ onLiveChange,
16
+ onMount,
17
+ spectrum,
18
+ } = props;
19
+
20
+ castSpectrum1D(spectrum);
21
+
22
+ const { settings } = operation;
23
+ const operator = core.getOperationOperator(
24
+ '@zakodium/nmrium-core-plugins#phaseCorrection1D',
25
+ operation,
26
+ );
27
+
28
+ const { schemaSettings } = operator;
29
+ const form = useForm({
30
+ defaultValues: settings,
31
+ validators: { onDynamic: schemaSettings },
32
+ validationLogic: revalidateLogic(),
33
+ onSubmit: ({ value }) => {
34
+ if (!onChange) return;
35
+
36
+ const newOperation = {
37
+ ...operation,
38
+ settings: schemaSettings.parse(value),
39
+ };
40
+
41
+ onChange(newOperation);
42
+ },
43
+ listeners: {
44
+ onMount: () => onMount(),
45
+ onChange: ({ formApi }) => {
46
+ const result = schemaSettings.safeParse(formApi.state.values);
47
+ if (!result.success) return;
48
+
49
+ const liveOperation = { ...operation, settings: result.data };
50
+ onLiveChange(liveOperation);
51
+ },
52
+ },
53
+ });
54
+
55
+ return (
56
+ <AppForm form={form} layout="stacked">
57
+ {children?.(
58
+ <form.SubmitButton variant="outlined" size="small" intent="success">
59
+ Apply
60
+ </form.SubmitButton>,
61
+ )}
62
+
63
+ <form.AppField
64
+ name="mode"
65
+ listeners={{
66
+ onChange: ({ value, fieldApi }) => {
67
+ if (value === 'manual') {
68
+ const { ph0, ph1 } = autoPhaseCorrection(spectrum);
69
+
70
+ fieldApi.form.setFieldValue('ph0', ph0);
71
+ fieldApi.form.setFieldValue('ph1', ph1);
72
+ }
73
+ },
74
+ }}
75
+ >
76
+ {(field) => (
77
+ <>
78
+ <field.Select
79
+ label="Mode"
80
+ layout="inline"
81
+ items={[
82
+ { value: 'automatic', label: 'Automatic' },
83
+ { value: 'manual', label: 'Manual' },
84
+ { value: 'absolute', label: 'Absolute' },
85
+ ]}
86
+ />
87
+
88
+ {field.state.value === 'manual' && (
89
+ <>
90
+ <form.AppField name="ph0">
91
+ {(field) => (
92
+ <field.DraggableNumericInput
93
+ label="PH0"
94
+ draggableLabel="Change PH0 (click and drag)"
95
+ draggableIntent="success"
96
+ />
97
+ )}
98
+ </form.AppField>
99
+
100
+ <form.AppField name="ph1">
101
+ {(field) => (
102
+ <field.DraggableNumericInput
103
+ label="PH1"
104
+ draggableLabel="Change PH1 (click and drag)"
105
+ draggableIntent="success"
106
+ />
107
+ )}
108
+ </form.AppField>
109
+ </>
110
+ )}
111
+ </>
112
+ )}
113
+ </form.AppField>
114
+ </AppForm>
115
+ );
116
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"apodization_expand.d.ts","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization_expand.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAG/E,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iCAAiC,CAAC,6CAA6C,CAAC,+BAoOxF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"apodization_expand.js","sourceRoot":"","sources":["../../../../src/plugins/spectrum_1d_processings_ui/operators/apodization_expand.tsx"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { defineProcessingOperatorUI } from '@zakodium/nmrium-core';
2
-
3
- export const phaseCorrection1D = defineProcessingOperatorUI({
4
- id: '@zakodium/nmrium-core-plugins#phaseCorrection1D',
5
- name: 'Phase correction',
6
- isEditable: true,
7
- Expanded: (props) => {
8
- const { operation } = props;
9
- const { settings } = operation;
10
-
11
- return (
12
- <>
13
- <label>
14
- Algorithm:
15
- <select>
16
- <option value="automatic">Automatic</option>
17
- <option value="manual" selected>
18
- Manual
19
- </option>
20
- </select>
21
- </label>
22
- <label>
23
- PH0:
24
- <input type="number" value={settings.ph0} />
25
- </label>
26
- <label>
27
- PH1:
28
- <input type="number" value={settings.ph1} />
29
- </label>
30
- </>
31
- );
32
- },
33
- });