vsn 0.1.81 → 0.1.84
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/demo/demo.html +42 -148
- package/demo/vsn.js +2 -2
- package/dist/AST/ClassNode.d.ts +4 -2
- package/dist/AST/ClassNode.js +68 -45
- package/dist/AST/ClassNode.js.map +1 -1
- package/dist/AST/ElementAttributeNode.js +20 -6
- package/dist/AST/ElementAttributeNode.js.map +1 -1
- package/dist/Attribute.d.ts +1 -1
- package/dist/Attribute.js.map +1 -1
- package/dist/Component.js +1 -0
- package/dist/Component.js.map +1 -1
- package/dist/DOM.d.ts +1 -0
- package/dist/DOM.js +24 -4
- package/dist/DOM.js.map +1 -1
- package/dist/Tag.js +9 -1
- package/dist/Tag.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/AST/ClassNode.ts +23 -5
- package/src/AST/ElementAttributeNode.ts +10 -2
- package/src/Attribute.ts +1 -1
- package/src/Component.ts +2 -0
- package/src/DOM.ts +21 -1
- package/src/Tag.ts +8 -1
- package/src/version.ts +1 -1
- package/test/AST/ClassNode.spec.ts +11 -13
- package/dist/vsn.min.js +0 -3
- package/dist/vsn.min.js.LICENSE.txt +0 -9
package/demo/demo.html
CHANGED
|
@@ -81,154 +81,48 @@
|
|
|
81
81
|
</script>
|
|
82
82
|
</head>
|
|
83
83
|
<body>
|
|
84
|
-
|
|
85
|
-
<
|
|
86
|
-
</
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
<
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
<
|
|
108
|
-
<
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
<
|
|
113
|
-
|
|
114
|
-
<
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
<
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
</
|
|
126
|
-
|
|
127
|
-
<p>Bind to window attributes. </p>
|
|
128
|
-
<p>window.scrollX,Y <span vsn-bind="?(window).@scrollX"></span>, <span vsn-bind="?(window).@scrollY"></span></p>
|
|
129
|
-
|
|
130
|
-
<h2>Attribute Binding</h2>
|
|
131
|
-
<a href="/index.html" id="link" vsn-name="link_test">Home</a>
|
|
132
|
-
<input type="text" vsn-bind="#link.@text"/>
|
|
133
|
-
<input type="text" vsn-bind="#link.@href"/>
|
|
134
|
-
|
|
135
|
-
<h2>Attribute Formatters</h2>
|
|
136
|
-
<h3>Currency</h3>
|
|
137
|
-
<span vsn-bind="currency_format" vsn-type:currency_format="float" vsn-format="currency" id="formatter">1.5</span>
|
|
138
|
-
<input type="text" vsn-bind="#formatter.currency_format" />
|
|
139
|
-
<br />
|
|
140
|
-
<h3>Date</h3>
|
|
141
|
-
<span vsn-bind="date_format" vsn-type:date_format="date" vsn-format="date" id="date-formatter">Aug 11, 2021 01:03:00 PM PDT</span>
|
|
142
|
-
<input type="text" vsn-bind:|to="?(#date-formatter).date_format" />
|
|
143
|
-
<input type="text" vsn-on:keyup="?(#date-formatter).date_format = $value" value="Aug 11, 2021 01:03:00 PM PDT" />
|
|
144
|
-
|
|
145
|
-
<h2>$ Operator</h2>
|
|
146
|
-
<p></p>
|
|
147
|
-
<p>
|
|
148
|
-
<input type="text" vsn-bind="$marginTop" id="style-attribute" /> <input type="button" vsn-on:click="?(#style-attribute).$marginTop = $padding;$padding += 1px" vsn-on:contextmenu|preventdefault="$padding -= 1px" value="Button" /> <input type="button" vsn-on:click="?(#style-attribute).$marginTop = '0'" value="Button" />
|
|
149
|
-
</p>
|
|
150
|
-
|
|
151
|
-
<h2>Conditional Elements</h2>
|
|
152
|
-
<button vsn-on:click="show = !show">Toggle</button>
|
|
153
|
-
<span vsn-if="show">Show is true</span>
|
|
154
|
-
<span vsn-if="!show">Show is false</span>
|
|
155
|
-
|
|
156
|
-
<h2>Controllers</h2>
|
|
157
|
-
<div vsn-controller:controller="Controller">
|
|
158
|
-
<span vsn-if="controller.on">It's on!</span>
|
|
159
|
-
<span vsn-if="!controller.on">It's off...</span>
|
|
160
|
-
<a href="/" vsn-on:click="controller.doSomething($event, !controller.on)">Click Me</a>
|
|
161
|
-
</div>
|
|
162
|
-
|
|
163
|
-
<h2>Lists</h2>
|
|
164
|
-
<div vsn-controller:test="TestController" id="testing">
|
|
165
|
-
<h3>Value: <span vsn-bind="test.name">Testing</span> <span vsn-bind="test.age">32</span></h3>
|
|
166
|
-
<input type="text" vsn-bind="test.name"/>
|
|
167
|
-
<input type="text" vsn-bind="test.age"/>
|
|
168
|
-
<button vsn-on:click="test.reset()" vsn-if="test.name">Reset</button>
|
|
169
|
-
<button vsn-on:click="test.add();">Add New List Item</button>
|
|
170
|
-
<ul vsn-list:test.items vsn-list-item-model="TestItem" vsn-name="list">
|
|
171
|
-
<li vsn-list-item>
|
|
172
|
-
<span vsn-bind="item.name">Tom</span>, <span vsn-bind="item.age">22</span> Years Old <input type="text"
|
|
173
|
-
vsn-bind="item.name"/>
|
|
174
|
-
<input type="text" vsn-bind="item.age"/>
|
|
175
|
-
<button vsn-on:click="item.reset()">R</button>
|
|
176
|
-
<button vsn-on:click="list.remove(item)">X</button>
|
|
177
|
-
</li>
|
|
178
|
-
<li vsn-list-item>
|
|
179
|
-
<span vsn-bind="item.name">Steve</span>, <span vsn-bind="item.age">46</span> Years Old <input type="text"
|
|
180
|
-
vsn-bind="item.name"/>
|
|
181
|
-
<input type="text" vsn-bind="item.age"/>
|
|
182
|
-
<button vsn-on:click="item.reset()">R</button>
|
|
183
|
-
<button vsn-on:click="list.remove(item)">X</button>
|
|
184
|
-
</li>
|
|
185
|
-
<li vsn-list-item>
|
|
186
|
-
<span vsn-bind="item.name">Frank</span>, <span vsn-bind="item.age">31</span> Years Old <input type="text"
|
|
187
|
-
vsn-bind="item.name"/>
|
|
188
|
-
<input type="text" vsn-bind="item.age"/>
|
|
189
|
-
<button vsn-on:click="item.reset()">R</button>
|
|
190
|
-
<button vsn-on:click="list.remove(item)">X</button>
|
|
191
|
-
</li>
|
|
192
|
-
<li vsn-list-item>
|
|
193
|
-
<span vsn-name="wut" vsn-set:wut.test="1">Wut</span>
|
|
194
|
-
<span vsn-bind="item.name">Joe</span>, <span vsn-bind="item.age">91</span> Years Old <input type="text"
|
|
195
|
-
vsn-bind="item.name"/>
|
|
196
|
-
<input type="text" vsn-bind="item.age"/>
|
|
197
|
-
<button vsn-on:click="item.reset()">R</button>
|
|
198
|
-
<button vsn-on:click="list.remove(item)">X</button>
|
|
199
|
-
</li>
|
|
200
|
-
</ul>
|
|
201
|
-
</div>
|
|
202
|
-
|
|
203
|
-
<h2>Lazy XHR Component</h2>
|
|
204
|
-
<div vsn-lazy="@html = << './xhr.html'"></div>
|
|
205
|
-
|
|
206
|
-
<script type="text/javascript">
|
|
207
|
-
window.addEventListener('vsn', function () {
|
|
208
|
-
vision.registry.controllers.register('TestController', TestController);
|
|
209
|
-
vision.registry.controllers.register('TestItem', TestItem);
|
|
210
|
-
vision.registry.controllers.register('Controller', Controller);
|
|
211
|
-
vision.registry.controllers.register('MVal', MVal);
|
|
212
|
-
});
|
|
213
|
-
</script>
|
|
214
|
-
|
|
215
|
-
<script vsn-script type="text/vsn">
|
|
216
|
-
class .testing-class {
|
|
217
|
-
on click() {
|
|
218
|
-
@text = 'Clicked';
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
on mouseenter() {
|
|
222
|
-
@text = 'Hovered!';
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
on mouseleave() {
|
|
226
|
-
@text = 'Mouse left';
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
</script>
|
|
230
|
-
|
|
231
|
-
<button class="testing-class" test="1">Click me</button>
|
|
84
|
+
|
|
85
|
+
<template vsn-component:form-control-errors>
|
|
86
|
+
<span>Errors</span>
|
|
87
|
+
<ul></ul>
|
|
88
|
+
</template>
|
|
89
|
+
|
|
90
|
+
<template vsn-component:product-option>
|
|
91
|
+
<script type="text/vsn" vsn-script>
|
|
92
|
+
class product-option {
|
|
93
|
+
func construct() {
|
|
94
|
+
option = ?>([name])[0].@name;
|
|
95
|
+
log('option', option);
|
|
96
|
+
?>(form-control-errors).@for = option;
|
|
97
|
+
log('errors', ?>(form-control-errors));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
class [slot=option] {
|
|
101
|
+
func construct() {
|
|
102
|
+
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
</script>
|
|
107
|
+
<form-control-errors></form-control-errors>
|
|
108
|
+
<slot name="option"></slot>
|
|
109
|
+
</template>
|
|
110
|
+
|
|
111
|
+
<product-option>
|
|
112
|
+
<div slot="option">
|
|
113
|
+
|
|
114
|
+
<label><input type="radio" name="test"
|
|
115
|
+
value="{{ option_value.option_type_id }">asd</label>
|
|
116
|
+
</div>
|
|
117
|
+
</product-option>
|
|
118
|
+
|
|
119
|
+
<product-option>
|
|
120
|
+
<div slot="option">
|
|
121
|
+
|
|
122
|
+
<label><input type="radio" name="testing"
|
|
123
|
+
value="{{ option_value.option_type_id }">wut</label>
|
|
124
|
+
</div>
|
|
125
|
+
</product-option>
|
|
232
126
|
|
|
233
127
|
<script type="text/javascript" src="vsn.js"></script>
|
|
234
128
|
</body>
|