dazscript-framework 0.3.2 → 1.0.1
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 +327 -267
- package/package.json +7 -4
- package/src/Setup.dsa.ts +37 -9
- package/src/dialog/builders/list-view-builder.ts +5 -0
- package/src/examples/01-hello-world.dsa.ts +8 -0
- package/src/examples/02-persistence-dialog.dsa.ts +21 -0
- package/src/examples/02-persistence-dialog.ts +68 -0
- package/src/examples/03-simple-dialog.dsa.ts +23 -0
- package/src/examples/03-simple-dialog.ts +47 -0
- package/src/examples/04-settings-dialog.dsa.ts +29 -0
- package/src/examples/04-settings-dialog.ts +83 -0
- package/src/examples/05-list-dialog.dsa.ts +53 -0
- package/src/examples/05-list-dialog.ts +88 -0
- package/src/examples/06-showcase-dialog.dsa.ts +87 -0
- package/src/examples/06-showcase-dialog.ts +518 -0
- package/src/helpers/custom-action-helper.ts +2 -1
- package/src/helpers/custom-action-installer-helper.ts +39 -10
- package/src/lib/observable.test.ts +416 -0
- package/src/lib/observable.ts +24 -18
- package/src/lib/tree-node.test.ts +21 -0
- package/tsconfig.json +28 -112
- package/webpack.config.js +1 -0
- package/src/samples/hello-world.dsa.ts +0 -8
- package/src/samples/sample-dialog.dsa.ts +0 -47
- package/src/samples/sample-dialog.ts +0 -49
- /package/src/{samples → examples}/config.ts +0 -0
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { debug, dump } from '@dsf/common/log';
|
|
2
|
-
import { action } from '@dsf/core/action';
|
|
3
|
-
import { error } from '@dsf/helpers/message-box-helper';
|
|
4
|
-
import { getNodes, getSelectedNode } from '@dsf/helpers/scene-helper';
|
|
5
|
-
import { SampleDialog, SampleDialogModel } from './sample-dialog';
|
|
6
|
-
|
|
7
|
-
action({ text: 'Sample Dialog' }, () => {
|
|
8
|
-
let sceneNodes = getNodes()
|
|
9
|
-
let selectedNode = getSelectedNode()
|
|
10
|
-
if (!selectedNode) {
|
|
11
|
-
error('Please select a node.')
|
|
12
|
-
return
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
let model = new SampleDialogModel()
|
|
16
|
-
model.nodes$.value = sceneNodes
|
|
17
|
-
|
|
18
|
-
model.nodeLabel$.connect((label) => {
|
|
19
|
-
if (label === model.selectedNode$.value.getLabel()) return
|
|
20
|
-
model.selectedNode$.value.setLabel(label)
|
|
21
|
-
model.nodes$.value = getNodes()
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
let dialog = new SampleDialog(model)
|
|
25
|
-
|
|
26
|
-
model.selectedNode$.connect((node) => {
|
|
27
|
-
if (!node) return
|
|
28
|
-
debug(`Selected Node: ${node.getLabel()}`)
|
|
29
|
-
node.select(true)
|
|
30
|
-
model.nodeLabel$.value = node.getLabel()
|
|
31
|
-
model.showNode$.value = node.isVisible()
|
|
32
|
-
model.hideNode$.value = !node.isVisible()
|
|
33
|
-
})
|
|
34
|
-
dialog.onNodeVisibilityChanged = (node, visible) => {
|
|
35
|
-
node.setVisible(visible)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
model.selectedNode$.value = selectedNode
|
|
39
|
-
|
|
40
|
-
if (!dialog.run()) {
|
|
41
|
-
debug(`Dialog Cancelled`)
|
|
42
|
-
return
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
debug(`Dialog Closed`)
|
|
46
|
-
dump(model)
|
|
47
|
-
})
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { BasicDialog } from '@dsf/dialog/basic-dialog';
|
|
2
|
-
import { Observable } from '@dsf/lib/observable';
|
|
3
|
-
import { AppSettings } from '@dsf/lib/settings';
|
|
4
|
-
import { config } from './config';
|
|
5
|
-
|
|
6
|
-
export class SampleDialogModel extends AppSettings {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(`${config.author}/SampleDialog`);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
selectedNode$ = new Observable<DzNode>()
|
|
12
|
-
nodes$ = new Observable<DzNode[]>()
|
|
13
|
-
nodeLabel$ = new Observable<string>()
|
|
14
|
-
showNode$ = new Observable<boolean>()
|
|
15
|
-
hideNode$ = new Observable<boolean>()
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export class SampleDialog extends BasicDialog {
|
|
19
|
-
constructor(private readonly model: SampleDialogModel) {
|
|
20
|
-
super(`Sample Dialog`);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public onNodeChanged?: (node: DzNode) => void
|
|
24
|
-
|
|
25
|
-
public onNodeVisibilityChanged?: (node: DzNode, visible: boolean) => void
|
|
26
|
-
|
|
27
|
-
protected build(): void {
|
|
28
|
-
let add = this.add
|
|
29
|
-
let model = this.model
|
|
30
|
-
this.dialog.showAcceptButton(false)
|
|
31
|
-
this.dialog.setCancelButtonText(`Close`)
|
|
32
|
-
|
|
33
|
-
add.tab('General').build(() => {
|
|
34
|
-
add.group(`Selected Node`).build(() => {
|
|
35
|
-
add.nodeSelection().nodes(model.nodes$).value(model.selectedNode$)
|
|
36
|
-
add.horizontal((layout) => {
|
|
37
|
-
add.label(`Label:`)
|
|
38
|
-
layout.addSpacing(10)
|
|
39
|
-
add.edit().value(model.nodeLabel$)
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
add.group(`Visibility`).horizontal().build(() => {
|
|
43
|
-
add.radio(`Show`).value(model.showNode$).toolTip(`Show the selected node.`).toggled((checked) => { this.onNodeVisibilityChanged(model.selectedNode$.value, checked) })
|
|
44
|
-
add.radio(`Hide`).value(model.hideNode$).toolTip(`Hide the selected node.`)
|
|
45
|
-
})
|
|
46
|
-
})
|
|
47
|
-
})
|
|
48
|
-
}
|
|
49
|
-
}
|
|
File without changes
|