49 lines
862 B
Go
49 lines
862 B
Go
package component
|
|
|
|
import (
|
|
jsoniter "github.com/json-iterator/go"
|
|
)
|
|
|
|
// process
|
|
// yao.component.TagView
|
|
// yao.component.TagEdit
|
|
// yao.component.ImageView
|
|
// yao.component.UploadEdit
|
|
|
|
// Export processes
|
|
func Export() error {
|
|
exportProcess()
|
|
return nil
|
|
}
|
|
|
|
// MarshalJSON Custom JSON parse
|
|
func (dsl DSL) MarshalJSON() ([]byte, error) {
|
|
return jsoniter.Marshal(dsl.Map())
|
|
}
|
|
|
|
// Map cast to map[string]interface{}
|
|
func (dsl DSL) Map() map[string]interface{} {
|
|
res := map[string]interface{}{
|
|
"type": dsl.Type,
|
|
"props": map[string]interface{}(dsl.Props),
|
|
}
|
|
if dsl.Bind != "" {
|
|
res["bind"] = dsl.Bind
|
|
}
|
|
return res
|
|
}
|
|
|
|
// Clone Component
|
|
func (dsl *DSL) Clone() *DSL {
|
|
new := DSL{
|
|
Bind: dsl.Bind,
|
|
Type: dsl.Type,
|
|
Props: PropsDSL{},
|
|
}
|
|
if dsl.Props != nil {
|
|
for key, val := range dsl.Props {
|
|
new.Props[key] = val
|
|
}
|
|
}
|
|
return &new
|
|
}
|