vue-girder-slicer-cli-ui 0.0.8
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.
- package/README.md +102 -0
- package/dist/api/girderRest.d.ts +36 -0
- package/dist/api/girderSlicerApi.d.ts +32 -0
- package/dist/components/FileBrowser/DataBrowser.tw.vue.d.ts +177 -0
- package/dist/components/FileBrowser/Modal.tw.vue.d.ts +27 -0
- package/dist/components/FileBrowser/RootSelection.tw.vue.d.ts +41 -0
- package/dist/components/FileBrowser/utils.d.ts +9 -0
- package/dist/components/GirderControlsPanel.tw.vue.d.ts +29 -0
- package/dist/components/GirderSlicerParameter.tw.vue.d.ts +50 -0
- package/dist/components/GirderSlicerTaskButton.tw.vue.d.ts +42 -0
- package/dist/components/GirderSlicerTaskCard.tw.vue.d.ts +44 -0
- package/dist/components/GirderSlicerTaskMenu.tw.vue.d.ts +49 -0
- package/dist/components/GlicerSlicerTaskMenuModal.tw.vue.d.ts +34 -0
- package/dist/components/GlicerSlicerTaskMenuModalButton.tw.vue.d.ts +38 -0
- package/dist/components/GriderSlicerTasksIntegrated.tw.vue.d.ts +74 -0
- package/dist/components/Parameters/BaseParameter.tw.vue.d.ts +21 -0
- package/dist/components/Parameters/BooleanParameter.tw.vue.d.ts +18 -0
- package/dist/components/Parameters/ColorParameter.tw.vue.d.ts +19 -0
- package/dist/components/Parameters/EnumerationParameters.tw.vue.d.ts +19 -0
- package/dist/components/Parameters/FileParameter.tw.vue.d.ts +32 -0
- package/dist/components/Parameters/RangeParameter.tw.vue.d.ts +19 -0
- package/dist/favicon.ico +0 -0
- package/dist/girderTypes.d.ts +21 -0
- package/dist/index.d.ts +11 -0
- package/dist/parser/constraints.d.ts +4 -0
- package/dist/parser/convert.d.ts +7 -0
- package/dist/parser/defaultValue.d.ts +12 -0
- package/dist/parser/group.d.ts +9 -0
- package/dist/parser/index.d.ts +8 -0
- package/dist/parser/panel.d.ts +11 -0
- package/dist/parser/param.d.ts +6 -0
- package/dist/parser/parse.d.ts +20 -0
- package/dist/parser/parserTypes.d.ts +58 -0
- package/dist/parser/widget.d.ts +6 -0
- package/dist/style.css +1 -0
- package/dist/tailwind.css +1370 -0
- package/dist/utils.d.ts +5 -0
- package/dist/vue-girder-slicer-cli-ui.js +12987 -0
- package/dist/vue-girder-slicer-cli-ui.umd.cjs +59 -0
- package/package.json +135 -0
- package/src/components/FileBrowser/DataBrowser.tw.vue +842 -0
- package/src/components/FileBrowser/Modal.tw.vue +82 -0
- package/src/components/FileBrowser/RootSelection.tw.vue +83 -0
- package/src/components/FileBrowser/utils.ts +48 -0
- package/src/components/GirderControlsPanel.tw.vue +94 -0
- package/src/components/GirderSlicerParameter.tw.vue +84 -0
- package/src/components/GirderSlicerTaskButton.tw.vue +208 -0
- package/src/components/GirderSlicerTaskCard.tw.vue +184 -0
- package/src/components/GirderSlicerTaskMenu.tw.vue +217 -0
- package/src/components/GlicerSlicerTaskMenuModal.tw.vue +77 -0
- package/src/components/GlicerSlicerTaskMenuModalButton.tw.vue +106 -0
- package/src/components/GriderSlicerTasksIntegrated.tw.vue +73 -0
- package/src/components/Parameters/BaseParameter.tw.vue +76 -0
- package/src/components/Parameters/BooleanParameter.tw.vue +54 -0
- package/src/components/Parameters/ColorParameter.tw.vue +58 -0
- package/src/components/Parameters/EnumerationParameters.tw.vue +66 -0
- package/src/components/Parameters/FileParameter.tw.vue +172 -0
- package/src/components/Parameters/RangeParameter.tw.vue +74 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PropType } from "vue/types/v3-component-props";
|
|
2
|
+
import { SlicerImage } from "../api/girderSlicerApi";
|
|
3
|
+
declare const _default: import("vue").DefineComponent<{
|
|
4
|
+
apiUrl: {
|
|
5
|
+
type: StringConstructor;
|
|
6
|
+
default: string;
|
|
7
|
+
};
|
|
8
|
+
filter: {
|
|
9
|
+
type: PropType<(task: SlicerImage) => boolean>;
|
|
10
|
+
default: (_task: SlicerImage) => true;
|
|
11
|
+
};
|
|
12
|
+
}, {
|
|
13
|
+
modalOpen: import("vue").Ref<boolean>;
|
|
14
|
+
accept: () => void;
|
|
15
|
+
processSelected: (data: {
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
}) => void;
|
|
19
|
+
clearSelection: () => void;
|
|
20
|
+
selected: import("vue").Ref<string>;
|
|
21
|
+
selectedId: import("vue").Ref<string>;
|
|
22
|
+
selectedName: import("vue").Ref<string>;
|
|
23
|
+
loggedIn: import("vue").ComputedRef<string | null>;
|
|
24
|
+
mdiAlert: string;
|
|
25
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
26
|
+
apiUrl: {
|
|
27
|
+
type: StringConstructor;
|
|
28
|
+
default: string;
|
|
29
|
+
};
|
|
30
|
+
filter: {
|
|
31
|
+
type: PropType<(task: SlicerImage) => boolean>;
|
|
32
|
+
default: (_task: SlicerImage) => true;
|
|
33
|
+
};
|
|
34
|
+
}>>, {
|
|
35
|
+
filter: (task: SlicerImage) => boolean;
|
|
36
|
+
apiUrl: string;
|
|
37
|
+
}>;
|
|
38
|
+
export default _default;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Ref, PropType } from 'vue';
|
|
2
|
+
import type { XMLParameters } from '../parser/parserTypes';
|
|
3
|
+
import { SlicerImage } from '../api/girderSlicerApi';
|
|
4
|
+
declare const _default: import("vue").DefineComponent<{
|
|
5
|
+
apiUrl: {
|
|
6
|
+
type: StringConstructor;
|
|
7
|
+
default: string;
|
|
8
|
+
};
|
|
9
|
+
filter: {
|
|
10
|
+
type: PropType<(task: SlicerImage) => boolean>;
|
|
11
|
+
default: (_task: SlicerImage) => true;
|
|
12
|
+
};
|
|
13
|
+
defaults: {
|
|
14
|
+
type: PropType<(item: XMLParameters) => undefined | null | XMLParameters>;
|
|
15
|
+
default: (_item: XMLParameters) => undefined;
|
|
16
|
+
};
|
|
17
|
+
}, {
|
|
18
|
+
selected: Ref<string | null>;
|
|
19
|
+
select: (id: string) => void;
|
|
20
|
+
cancel: () => void;
|
|
21
|
+
menuModelButton: Ref<import("vue").DefineComponent<{
|
|
22
|
+
apiUrl: {
|
|
23
|
+
type: StringConstructor;
|
|
24
|
+
default: string;
|
|
25
|
+
};
|
|
26
|
+
filter: {
|
|
27
|
+
type: import("vue/types/v3-component-props").PropType<(task: SlicerImage) => boolean>;
|
|
28
|
+
default: (_task: SlicerImage) => true;
|
|
29
|
+
};
|
|
30
|
+
}, {
|
|
31
|
+
modalOpen: Ref<boolean>;
|
|
32
|
+
accept: () => void;
|
|
33
|
+
processSelected: (data: {
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
}) => void;
|
|
37
|
+
clearSelection: () => void;
|
|
38
|
+
selected: Ref<string>;
|
|
39
|
+
selectedId: Ref<string>;
|
|
40
|
+
selectedName: Ref<string>;
|
|
41
|
+
loggedIn: import("vue").ComputedRef<string | null>;
|
|
42
|
+
mdiAlert: string;
|
|
43
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
44
|
+
apiUrl: {
|
|
45
|
+
type: StringConstructor;
|
|
46
|
+
default: string;
|
|
47
|
+
};
|
|
48
|
+
filter: {
|
|
49
|
+
type: import("vue/types/v3-component-props").PropType<(task: SlicerImage) => boolean>;
|
|
50
|
+
default: (_task: SlicerImage) => true;
|
|
51
|
+
};
|
|
52
|
+
}>>, {
|
|
53
|
+
filter: (task: SlicerImage) => boolean;
|
|
54
|
+
apiUrl: string;
|
|
55
|
+
}> | null>;
|
|
56
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
57
|
+
apiUrl: {
|
|
58
|
+
type: StringConstructor;
|
|
59
|
+
default: string;
|
|
60
|
+
};
|
|
61
|
+
filter: {
|
|
62
|
+
type: PropType<(task: SlicerImage) => boolean>;
|
|
63
|
+
default: (_task: SlicerImage) => true;
|
|
64
|
+
};
|
|
65
|
+
defaults: {
|
|
66
|
+
type: PropType<(item: XMLParameters) => undefined | null | XMLParameters>;
|
|
67
|
+
default: (_item: XMLParameters) => undefined;
|
|
68
|
+
};
|
|
69
|
+
}>>, {
|
|
70
|
+
filter: (task: SlicerImage) => boolean;
|
|
71
|
+
apiUrl: string;
|
|
72
|
+
defaults: (item: XMLParameters) => undefined | null | XMLParameters;
|
|
73
|
+
}>;
|
|
74
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PropType, Ref } from 'vue';
|
|
2
|
+
import type { XMLBaseValue } from '../../parser/parserTypes';
|
|
3
|
+
import { XMLParameters } from '../../parser/parserTypes';
|
|
4
|
+
declare const _default: import("vue").DefineComponent<{
|
|
5
|
+
data: {
|
|
6
|
+
type: PropType<XMLParameters>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}, {
|
|
10
|
+
error: import("vue").ComputedRef<string | undefined>;
|
|
11
|
+
numberVectors: Ref<string[]>;
|
|
12
|
+
numbers: Ref<string[]>;
|
|
13
|
+
currentValue: Ref<XMLBaseValue>;
|
|
14
|
+
validate: (e: Event) => void;
|
|
15
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
16
|
+
data: {
|
|
17
|
+
type: PropType<XMLParameters>;
|
|
18
|
+
required: true;
|
|
19
|
+
};
|
|
20
|
+
}>>, {}>;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PropType, Ref } from 'vue';
|
|
2
|
+
import { XMLParameters } from '../../parser/parserTypes';
|
|
3
|
+
declare const _default: import("vue").DefineComponent<{
|
|
4
|
+
data: {
|
|
5
|
+
type: PropType<XMLParameters>;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
}, {
|
|
9
|
+
error: import("vue").ComputedRef<string | undefined>;
|
|
10
|
+
currentValue: Ref<boolean>;
|
|
11
|
+
validate: (e: Event) => void;
|
|
12
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
13
|
+
data: {
|
|
14
|
+
type: PropType<XMLParameters>;
|
|
15
|
+
required: true;
|
|
16
|
+
};
|
|
17
|
+
}>>, {}>;
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PropType, Ref } from 'vue';
|
|
2
|
+
import { XMLParameters } from '../../parser/parserTypes';
|
|
3
|
+
import type { XMLBaseValue } from '../../parser/parserTypes';
|
|
4
|
+
declare const _default: import("vue").DefineComponent<{
|
|
5
|
+
data: {
|
|
6
|
+
type: PropType<XMLParameters>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}, {
|
|
10
|
+
currentValue: Ref<XMLBaseValue>;
|
|
11
|
+
error: import("vue").ComputedRef<string | undefined>;
|
|
12
|
+
validate: (e: Event) => void;
|
|
13
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
14
|
+
data: {
|
|
15
|
+
type: PropType<XMLParameters>;
|
|
16
|
+
required: true;
|
|
17
|
+
};
|
|
18
|
+
}>>, {}>;
|
|
19
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PropType, Ref } from 'vue';
|
|
2
|
+
import type { XMLBaseValue } from '../../parser/parserTypes';
|
|
3
|
+
import { XMLParameters } from '../../parser/parserTypes';
|
|
4
|
+
declare const _default: import("vue").DefineComponent<{
|
|
5
|
+
data: {
|
|
6
|
+
type: PropType<XMLParameters>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}, {
|
|
10
|
+
error: import("vue").ComputedRef<string | undefined>;
|
|
11
|
+
currentValue: Ref<XMLBaseValue>;
|
|
12
|
+
validate: (e: Event) => void;
|
|
13
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
14
|
+
data: {
|
|
15
|
+
type: PropType<XMLParameters>;
|
|
16
|
+
required: true;
|
|
17
|
+
};
|
|
18
|
+
}>>, {}>;
|
|
19
|
+
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PropType, Ref } from 'vue';
|
|
2
|
+
import { XMLParameters } from '../../parser/parserTypes';
|
|
3
|
+
declare const _default: import("vue").DefineComponent<{
|
|
4
|
+
data: {
|
|
5
|
+
type: PropType<XMLParameters>;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
}, {
|
|
9
|
+
error: import("vue").ComputedRef<string | undefined>;
|
|
10
|
+
currentValue: Ref<string | null>;
|
|
11
|
+
placeHolder: Ref<string>;
|
|
12
|
+
showBrowser: Ref<boolean>;
|
|
13
|
+
mdiFolderOpen: string;
|
|
14
|
+
mdiPlusThick: string;
|
|
15
|
+
batchload: Ref<boolean>;
|
|
16
|
+
girderId: Ref<string | undefined>;
|
|
17
|
+
parentId: Ref<string | undefined>;
|
|
18
|
+
selectedName: Ref<string | undefined>;
|
|
19
|
+
acceptBrowser: ({ name, girderId, parentId, regExp, fileId }: {
|
|
20
|
+
name: string;
|
|
21
|
+
girderId: string;
|
|
22
|
+
parentId: string;
|
|
23
|
+
regExp?: boolean;
|
|
24
|
+
fileId?: string;
|
|
25
|
+
}) => void;
|
|
26
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
27
|
+
data: {
|
|
28
|
+
type: PropType<XMLParameters>;
|
|
29
|
+
required: true;
|
|
30
|
+
};
|
|
31
|
+
}>>, {}>;
|
|
32
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PropType, Ref } from 'vue';
|
|
2
|
+
import type { XMLBaseValue } from '../../parser/parserTypes';
|
|
3
|
+
import { XMLParameters } from '../../parser/parserTypes';
|
|
4
|
+
declare const _default: import("vue").DefineComponent<{
|
|
5
|
+
data: {
|
|
6
|
+
type: PropType<XMLParameters>;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
}, {
|
|
10
|
+
error: import("vue").ComputedRef<string | undefined>;
|
|
11
|
+
currentValue: Ref<XMLBaseValue>;
|
|
12
|
+
validate: (e: Event) => void;
|
|
13
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
|
14
|
+
data: {
|
|
15
|
+
type: PropType<XMLParameters>;
|
|
16
|
+
required: true;
|
|
17
|
+
};
|
|
18
|
+
}>>, {}>;
|
|
19
|
+
export default _default;
|
package/dist/favicon.ico
ADDED
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type GirderModelType = 'item' | 'folder' | 'file' | 'user' | 'collection';
|
|
2
|
+
interface GirderModelBase {
|
|
3
|
+
name: string;
|
|
4
|
+
_id: string;
|
|
5
|
+
_modelType: GirderModelType;
|
|
6
|
+
created: string;
|
|
7
|
+
updated: string;
|
|
8
|
+
public: boolean;
|
|
9
|
+
parentId?: string | null;
|
|
10
|
+
meta: {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}
|
|
15
|
+
interface GirderModel extends GirderModelBase {
|
|
16
|
+
baseParentType: GirderModelType;
|
|
17
|
+
creatorId: string;
|
|
18
|
+
description: string;
|
|
19
|
+
parentCollection?: string;
|
|
20
|
+
}
|
|
21
|
+
export type { GirderModelType, GirderModelBase, GirderModel, };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import GirderSlicerTaskButton from "./components/GirderSlicerTaskButton.tw.vue";
|
|
2
|
+
import GirderSlicerTaskCard from "./components/GirderSlicerTaskCard.tw.vue";
|
|
3
|
+
import GirderDataBrowser from "./components/FileBrowser/DataBrowser.tw.vue";
|
|
4
|
+
import GirderRootSelection from "./components/FileBrowser/RootSelection.tw.vue";
|
|
5
|
+
import GirderSlicerTasksIntegrated from "./components/GriderSlicerTasksIntegrated.tw.vue";
|
|
6
|
+
import './tailwind.css';
|
|
7
|
+
declare const _default: {
|
|
8
|
+
install(app: any): void;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
11
|
+
export { GirderSlicerTaskButton, GirderSlicerTaskCard, GirderDataBrowser, GirderRootSelection, GirderSlicerTasksIntegrated, };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert from a string to the given value type.
|
|
3
|
+
* @param {string} type A widget type
|
|
4
|
+
* @param {string} value The value to be converted
|
|
5
|
+
* @returns {*} The converted value
|
|
6
|
+
*/
|
|
7
|
+
export default function convert(type: string, value: string): string | number | true | number[] | string[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="jquery" />
|
|
2
|
+
/// <reference types="jquery" />
|
|
3
|
+
/**
|
|
4
|
+
* Parse a `default` tag returning an empty object when no default is given.
|
|
5
|
+
* If the default value appears to be a templated string, also return an
|
|
6
|
+
* empty object.
|
|
7
|
+
*/
|
|
8
|
+
export default function defaultValue(type: string, value: JQuery<HTMLElement>): {
|
|
9
|
+
value: string | number | true | number[] | string[];
|
|
10
|
+
} | {
|
|
11
|
+
value?: undefined;
|
|
12
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as constraints } from './constraints';
|
|
2
|
+
export { default as convert } from './convert';
|
|
3
|
+
export { default as defaultValue } from './defaultValue';
|
|
4
|
+
export { default as group } from './group';
|
|
5
|
+
export { default as panel } from './panel';
|
|
6
|
+
export { default as param } from './param';
|
|
7
|
+
export { default as parse } from './parse';
|
|
8
|
+
export { default as widget } from './widget';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a <parameters> tag into a "panel" object.
|
|
3
|
+
*/
|
|
4
|
+
export default function panel(panelTag: string, opts?: Record<string, any>): {
|
|
5
|
+
advanced: boolean;
|
|
6
|
+
groups: ({
|
|
7
|
+
label: string;
|
|
8
|
+
description: string;
|
|
9
|
+
parameters: any[];
|
|
10
|
+
} | null)[];
|
|
11
|
+
} | null;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { XMLSpecification } from './parserTypes';
|
|
2
|
+
/**
|
|
3
|
+
* This is a parser for Slicer's GUI Schema:
|
|
4
|
+
* https://www.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation#XML_Schema
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Parse a Slicer GUI spec into a json object for rendering
|
|
8
|
+
* the controlsPanel view. This function parses into the following structure:
|
|
9
|
+
*
|
|
10
|
+
* * global metadata
|
|
11
|
+
* * panels[] -- each is rendered in a different panel
|
|
12
|
+
* * groups[] -- each is rendered together separated by a horizontal line
|
|
13
|
+
* * parameters[] -- individual parameters
|
|
14
|
+
*
|
|
15
|
+
* @param {string|object} spec The slicer GUI spec content (accepts parsed or unparsed xml)
|
|
16
|
+
* @param {object} [opts] When provided this object will used to provide information about
|
|
17
|
+
* the outputs of the spec.
|
|
18
|
+
* @returns {object}
|
|
19
|
+
*/
|
|
20
|
+
export default function parse(spec: string | object, opts?: object): XMLSpecification;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export type ParamGUIType = 'number' | 'boolean' | 'string' | 'number-vector' | 'string-vector' | 'number-enumeration' | 'string-enumeration' | 'region' | 'image' | 'file' | 'item' | 'directory' | 'color' | 'multi';
|
|
2
|
+
export type ParamSlicerType = 'integer' | 'float' | 'double' | 'boolean' | 'string' | 'integer-vector' | 'float-vector' | 'double-vector' | 'string-vector' | 'integer-enumeration' | 'float-enumeration' | 'double-enumeration' | 'string-enumeration' | 'region' | 'image' | 'file' | 'item' | 'directory' | 'multi' | 'new-file';
|
|
3
|
+
export type XMLBaseValue = (number | string | number[] | string[] | boolean);
|
|
4
|
+
export interface XMLParameters {
|
|
5
|
+
type: ParamSlicerType;
|
|
6
|
+
slicerType: ParamGUIType;
|
|
7
|
+
title: string;
|
|
8
|
+
description: string;
|
|
9
|
+
channel?: 'input' | 'output';
|
|
10
|
+
id: string;
|
|
11
|
+
value?: XMLBaseValue;
|
|
12
|
+
values?: XMLBaseValue[];
|
|
13
|
+
constraints?: {
|
|
14
|
+
min?: XMLBaseValue;
|
|
15
|
+
max?: XMLBaseValue;
|
|
16
|
+
step?: XMLBaseValue;
|
|
17
|
+
};
|
|
18
|
+
defaultValue?: XMLBaseValue;
|
|
19
|
+
fileValue?: {
|
|
20
|
+
girderId: string;
|
|
21
|
+
name: string;
|
|
22
|
+
parentId: string;
|
|
23
|
+
regExp?: boolean | undefined;
|
|
24
|
+
fileId?: string | undefined;
|
|
25
|
+
};
|
|
26
|
+
required?: boolean;
|
|
27
|
+
extensions?: string | undefined;
|
|
28
|
+
reference?: string | undefined;
|
|
29
|
+
defaultNameMatch?: string | undefined;
|
|
30
|
+
defaultPathMatch?: string | undefined;
|
|
31
|
+
defaultRelativePath?: string | undefined;
|
|
32
|
+
multiple?: boolean;
|
|
33
|
+
datalist?: boolean;
|
|
34
|
+
shapes?: string | undefined;
|
|
35
|
+
error?: string | undefined;
|
|
36
|
+
}
|
|
37
|
+
export interface XMLGroups {
|
|
38
|
+
description: string;
|
|
39
|
+
label: string;
|
|
40
|
+
parameters: XMLParameters[];
|
|
41
|
+
}
|
|
42
|
+
export interface XMLPanel {
|
|
43
|
+
advanced: boolean;
|
|
44
|
+
groups: XMLGroups[];
|
|
45
|
+
}
|
|
46
|
+
export interface XMLSpecificationStrings {
|
|
47
|
+
title: string;
|
|
48
|
+
license: string;
|
|
49
|
+
description: string;
|
|
50
|
+
version: string;
|
|
51
|
+
'documentation-url'?: string;
|
|
52
|
+
acknowledgements?: string;
|
|
53
|
+
contributor?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface XMLSpecificationPanel {
|
|
56
|
+
panels: XMLPanel[];
|
|
57
|
+
}
|
|
58
|
+
export type XMLSpecification = XMLSpecificationStrings & XMLSpecificationPanel;
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
svg[data-v-76aa6b74]{transform:rotate(var(--r, 0deg)) scale(var(--sx, 1),var(--sy, 1))}path[data-v-76aa6b74]{fill:currentColor}.dropdown:hover>.dropdown-content[data-v-da513d4e]{display:block}.root-select[data-v-16a26624]{height:34px}.icon[data-v-2bec80c1]{color:var(--bs-heading-color)}.select-btn[data-v-2bec80c1]{border:1px solid gray;border-radius:0}.select-btn[data-v-2bec80c1]:hover{border:1px solid gray;background-color:#d3d3d3}.select-btn-multi[data-v-2bec80c1]{border:1px solid gray;border-radius:0 4px 4px 0}.select-btn-multi[data-v-2bec80c1]:hover{border:1px solid gray;background-color:#d3d3d3}a[data-v-cacb6a49]{color:#42b983}.icon[data-v-94c56404]:hover{cursor:pointer}.collapse-enter-active[data-v-94c56404]{animation:collapsing-94c56404 reverse .5s ease}.collapse-leave-active[data-v-94c56404]{animation:collapsing-94c56404 .5s ease}.pad-left[data-v-94c56404]{padding-left:15px}@keyframes collapsing-94c56404{0%{max-height:1000px}to{max-height:0px}}.dropdown:hover>.dropdown-content[data-v-c31cf4f1]{display:block}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.gsu-breadcrumb{border-left-width:2px;border-right-width:2px;border-top-width:2px;border-style:solid;border-color:var(--gsu-color-border);background-color:var(--gsu-color-background);color:var(--gsu-color-link)}.gsu-disabled-icon{color:var(--gsu-background-muted)}.gsu-disabled-icon:hover{cursor:default}.gsu-card{border-width:2px;border-color:var(--gsu-color-border);background-color:var(--gsu-color-background);color:var(--gsu-color-text)}.gsu-input{border-width:2px;border-style:solid;border-color:var(--gsu-color-border);background-color:var(--gsu-color-background)}.gsu-btn{border-width:2px;border-style:solid;border-color:var(--gsu-color-border);background-color:var(--gsu-color-background);color:var(--gsu-color-text)}.gsu-btn:hover{background-color:var(--gsu-background-muted)}.gsu-btn-accept{border-width:2px;border-style:solid;border-color:var(--gsu-color-border);color:var(--gsu-color-text)}.gsu-btn-accept:hover{cursor:pointer;background-color:var(--gsu-color-primary)}.gsu-btn-disabled{background-color:var(--gsu-background-muted);color:var(--gsu-color-muted-text)}.gsu-btn-disabled:hover{cursor:not-allowed;background-color:var(--gsu-color-background)}.gsu-icon{color:var(--gsu-color-link);display:inline}.gsu-clickable{color:var(--gsu-color-link)}.gsu-clickable:hover{cursor:pointer}.number-badge{position:relative;bottom:-10px;right:5px;font-size:10px}.gsu-item-row{border-left-width:2px;border-right-width:2px;border-top-width:2px;border-style:solid;border-color:var(--gsu-color-border)}.gsu-item-row:hover{cursor:pointer;background-color:var(--gsu-color-highlight)}.gsu-row-info{color:var(--gsu-color-text);padding-right:10px}.data-list{max-height:70vh;overflow-y:auto;overflow-x:hidden;border-bottom-width:2px;border-style:solid;border-color:var(--gsu-color-border)}.folder-header,.item-header{-webkit-user-select:none;-moz-user-select:none;user-select:none;border-left-width:2px;border-right-width:2px;border-top-width:2px;border-style:solid;border-color:var(--gsu-color-border)}.error-msg{font-weight:700;color:red}.gsu-selected-items{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity))}.header{color:var(--bs-body-color)}.number-input{border:1px solid gray}.gsu-disabled-button{cursor:not-allowed;background-color:var(--gsu-color-background);opacity:.5}.gsu-menu-item{border-width:2px;border-color:var(--gsu-color-border);background-color:var(--gsu-color-background);color:var(--gsu-color-text)}.gsu-menu-item:hover{cursor:pointer;background-color:var(--gsu-color-highlight)}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.left-44{left:11rem}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1 / span 1}.col-span-10{grid-column:span 10 / span 10}.col-span-12{grid-column:span 12 / span 12}.col-span-3{grid-column:span 3 / span 3}.col-span-4{grid-column:span 4 / span 4}.col-span-6{grid-column:span 6 / span 6}.col-span-7{grid-column:span 7 / span 7}.col-start-1{grid-column-start:1}.col-start-12{grid-column-start:12}.col-start-7{grid-column-start:7}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-ml-6{margin-left:-1.5rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.mr-5{margin-right:1.25rem}.mr-auto{margin-right:auto}.mt-1{margin-top:.25rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.w-1\/5{width:20%}.w-2\/3{width:66.666667%}.w-56{width:14rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-32{min-width:8rem}.max-w-5xl{max-width:64rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-grow,.grow{flex-grow:1}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.gap-4{gap:1rem}.justify-self-end{justify-self:end}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-solid{border-style:solid}.border-bgMutedColor{border-color:var(--gsu-background-muted)}.border-borderColor{border-color:var(--gsu-color-border)}.bg-backgroundColor{background-color:var(--gsu-color-background)}.bg-bgMutedColor{background-color:var(--gsu-background-muted)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-highlightedColor{background-color:var(--gsu-color-highlight)}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pl-12{padding-left:3rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-normal{font-weight:400}.font-semibold{font-weight:600}.leading-normal{line-height:1.5}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-textColor{color:var(--gsu-color-text)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.no-underline{text-decoration-line:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--gsu-color-primary: #90CAF9;--gsu-color-secondary: #9FA8DA;--gsu-color-link: #2c7596;--gsu-color-text: #FFFFFF;--gsu-color-muted-text: #B0BEC5;--gsu-color-background: rgb(39, 39, 39);--gsu-color-border: rgba(255,255,255,.3);--gsu-background-muted: #212121;--gsu-color-highlight: #717171bb;--gsu-color-selected: #A5D6A7}.hover\:bg-bgMutedColor:hover{background-color:var(--gsu-background-muted)}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity))}@media (min-width: 640px){.sm\:flex{display:flex}}@media (prefers-color-scheme: dark){.dark\:bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark\:text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}}
|