github.com/vugu/vugu@v0.3.6-0.20240430171613-3f6f402e014b/domrender/renderer-js-util.go (about)

     1  package domrender
     2  
     3  import "github.com/vugu/vugu"
     4  
     5  // namespaceToURI resolves the given namespaces to the URI with the specifications
     6  func namespaceToURI(namespace string) string {
     7  	switch namespace {
     8  	case "html":
     9  		return "http://www.w3.org/1999/xhtml"
    10  	case "math":
    11  		return "http://www.w3.org/1998/Math/MathML"
    12  	case "svg":
    13  		return "http://www.w3.org/2000/svg"
    14  	case "xlink":
    15  		return "http://www.w3.org/1999/xlink"
    16  	case "xml":
    17  		return "http://www.w3.org/XML/1998/namespace"
    18  	case "xmlns":
    19  		return "http://www.w3.org/2000/xmlns/"
    20  	default:
    21  		return ""
    22  	}
    23  }
    24  
    25  type renderedCtx struct {
    26  	eventEnv vugu.EventEnv
    27  	first    bool
    28  }
    29  
    30  // EventEnv implements RenderedCtx by returning the EventEnv.
    31  func (c *renderedCtx) EventEnv() vugu.EventEnv {
    32  	return c.eventEnv
    33  }
    34  
    35  // First returns true for the first render and otherwise false.
    36  func (c *renderedCtx) First() bool {
    37  	return c.first
    38  }
    39  
    40  type rendered0 interface {
    41  	Rendered()
    42  }
    43  type rendered1 interface {
    44  	Rendered(ctx vugu.RenderedCtx)
    45  }
    46  
    47  func invokeRendered(c interface{}, rctx *renderedCtx) {
    48  	if i, ok := c.(rendered0); ok {
    49  		i.Rendered()
    50  	} else if i, ok := c.(rendered1); ok {
    51  		i.Rendered(rctx)
    52  	}
    53  }