func CSSMarginRuleFromJS(value js.Wrapper) *CSSMarginRule {
	input := value.JSValue()
	if typ := input.Type(); typ == js.TypeNull || typ == js.TypeUndefined {
		return nil
	}
	ret := &CSSMarginRule{}
	ret.Value_JS = input
	return ret
}
CSSMarginRuleFromJS is casting a js.Wrapper into CSSMarginRule.
package cssom
import "syscall/js"
import (
	"github.com/gowebapi/webapi/css/typedom"
)
func unused(value interface{}) {
}
type Union struct {
	Value js.Value
}
func (u *Union) JSValue() js.Value {
	return u.Value
}
func UnionFromJS(value js.Value) *Union {
	return &Union{Value: value}
}
type CSSGroupingRule struct {
	CSSRule
}
func CSSGroupingRuleFromJS(value js.Wrapper) *CSSGroupingRule {
	input := value.JSValue()
	if typ := input.Type(); typ == js.TypeNull || typ == js.TypeUndefined {
		return nil
	}
	ret := &CSSGroupingRule{}
	ret.Value_JS = input
	return ret
}
func (_this *CSSGroupingRule) CssRules() *CSSRuleList {
	var ret *CSSRuleList
	value := _this.Value_JS.Get("cssRules")
	ret = CSSRuleListFromJS(value)
	return ret
}
func (_this *CSSGroupingRule) InsertRule(rule string, index *uint) (_result uint) {
	var (
		_args [2]interface{}
		_end  int
	)
	_p0 := rule
	_args[0] = _p0
	_end++
	if index != nil {
		var _p1 interface{}
		if index != nil {
			_p1 = *(index)
		} else {
			_p1 = nil
		}
		_args[1] = _p1
		_end++
	}
	_returned := _this.Value_JS.Call("insertRule", _args[0:_end]...)
	var (
		_converted uint  
	)
	_converted = (uint)((_returned).Int())
	_result = _converted
	return
}
func (_this *CSSGroupingRule) DeleteRule(index uint) {
	var (
		_args [1]interface{}
		_end  int
	)
	_p0 := index
	_args[0] = _p0
	_end++
	_this.Value_JS.Call("deleteRule", _args[0:_end]...)
	return
}
type CSSImportRule struct {
	CSSRule
}
func CSSImportRuleFromJS(value js.Wrapper) *CSSImportRule {
	input := value.JSValue()
	if typ := input.Type(); typ == js.TypeNull || typ == js.TypeUndefined {
		return nil
	}
	ret := &CSSImportRule{}
	ret.Value_JS = input
	return ret
}
func (_this *CSSImportRule) Href() string {
	var ret string
	value := _this.Value_JS.Get("href")
	ret = (value).String()
	return ret
}
func (_this *CSSImportRule) Media() *MediaList {
	var ret *MediaList
	value := _this.Value_JS.Get("media")
	ret = MediaListFromJS(value)
	return ret
}
func (_this *CSSImportRule) StyleSheet() *CSSStyleSheet {
	var ret *CSSStyleSheet
	value := _this.Value_JS.Get("styleSheet")
	ret = CSSStyleSheetFromJS(value)
	return ret
}
type CSSMarginRule struct {
	CSSRule
}