comment
This commit is contained in:
parent
b5d2dba267
commit
f15614066b
1 changed files with 23 additions and 3 deletions
|
|
@ -111,6 +111,23 @@ func _set(g *d2graph.Graph, key string, tag, value *string) error {
|
||||||
toSkip := 1
|
toSkip := 1
|
||||||
|
|
||||||
reserved := false
|
reserved := false
|
||||||
|
|
||||||
|
// If you're setting `(x -> y)[0].style.opacity`
|
||||||
|
// There's 3 cases you need to handle:
|
||||||
|
// 1. The edge has no map.
|
||||||
|
// 2. The edge has a style map with opacity not existing
|
||||||
|
// 3. The edge has a style map with opacity existing
|
||||||
|
//
|
||||||
|
// How each case is handled:
|
||||||
|
// 1. Append that mapkey to edge.
|
||||||
|
// 2. Append opacity to the style map
|
||||||
|
// 3. Set opacity
|
||||||
|
//
|
||||||
|
// There's certainly cleaner code to achieve this, but currently, there's a lot of logic to correctly scope, merge, append.
|
||||||
|
// The tests should be comprehensive enough for a safe refactor someday
|
||||||
|
//
|
||||||
|
// reservedKey = "style"
|
||||||
|
// reservedTargetKey = "opacity"
|
||||||
reservedKey := ""
|
reservedKey := ""
|
||||||
reservedTargetKey := ""
|
reservedTargetKey := ""
|
||||||
if mk.Key != nil {
|
if mk.Key != nil {
|
||||||
|
|
@ -295,6 +312,9 @@ func _set(g *d2graph.Graph, key string, tag, value *string) error {
|
||||||
}
|
}
|
||||||
if attrs != nil {
|
if attrs != nil {
|
||||||
if reservedTargetKey == "" {
|
if reservedTargetKey == "" {
|
||||||
|
if len(mk.Key.Path[reservedIndex:]) != 2 {
|
||||||
|
return errors.New("malformed style setting, expected 2 part path")
|
||||||
|
}
|
||||||
reservedTargetKey = mk.Key.Path[reservedIndex+1].Unbox().ScalarString()
|
reservedTargetKey = mk.Key.Path[reservedIndex+1].Unbox().ScalarString()
|
||||||
}
|
}
|
||||||
switch reservedTargetKey {
|
switch reservedTargetKey {
|
||||||
|
|
@ -312,6 +332,9 @@ func _set(g *d2graph.Graph, key string, tag, value *string) error {
|
||||||
}
|
}
|
||||||
case "style":
|
case "style":
|
||||||
if reservedTargetKey == "" {
|
if reservedTargetKey == "" {
|
||||||
|
if len(mk.Key.Path[reservedIndex:]) != 2 {
|
||||||
|
return errors.New("malformed style setting, expected 2 part path")
|
||||||
|
}
|
||||||
reservedTargetKey = mk.Key.Path[reservedIndex+1].Unbox().ScalarString()
|
reservedTargetKey = mk.Key.Path[reservedIndex+1].Unbox().ScalarString()
|
||||||
}
|
}
|
||||||
switch reservedTargetKey {
|
switch reservedTargetKey {
|
||||||
|
|
@ -416,9 +439,6 @@ func _set(g *d2graph.Graph, key string, tag, value *string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// func setStyleAttr(attr *d2graph.Attributes, k string, v *d2ast.Key) {
|
|
||||||
// }
|
|
||||||
|
|
||||||
func appendUniqueMapKey(m *d2ast.Map, mk *d2ast.Key) {
|
func appendUniqueMapKey(m *d2ast.Map, mk *d2ast.Key) {
|
||||||
for _, n := range m.Nodes {
|
for _, n := range m.Nodes {
|
||||||
if n.MapKey != nil && n.MapKey.Equals(mk) {
|
if n.MapKey != nil && n.MapKey.Equals(mk) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue