@litejs/ui 24.11.0 → 25.5.0

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/el/Slider.tpl DELETED
@@ -1,269 +0,0 @@
1
-
2
- %css
3
- .Slider {
4
- width: 200px;
5
- background: transparent;
6
- touch-action: none;
7
- }
8
- .Slider.is-vertical {
9
- width: auto;
10
- height: 200px;
11
- }
12
- .is-vertical > .Slider-track {
13
- margin: 0 14px;
14
- width: 4px;
15
- height: 100%;
16
- }
17
- .is-vertical > * > .Slider-fill {
18
- top: auto;
19
- bottom: 0;
20
- width: 4px;
21
- }
22
- .is-vertical > * > * > .Slider-knob {
23
- margin: -10px -8px 0 0;
24
- }
25
- .Slider-track {
26
- position: relative;
27
- margin: 14px 0;
28
- }
29
- .Slider-track,
30
- .Slider-fill {
31
- height: 4px;
32
- border-radius: 2px;
33
- overflow: visible;
34
- background: #999;
35
- }
36
- .Slider-fill {
37
- background: rgba(0,0,0,.5);
38
- }
39
- .Slider-knob,
40
- .Toggle-knob {
41
- position: relative; /* for IE6 overflow:visible bug */
42
- width: 20px;
43
- height: 20px;
44
- border-radius: 50%;
45
- box-shadow:
46
- 0 0 0 0 rgb(0, 0, 0, .2),
47
- 0 1px 4px rgba(0, 0, 0, .2);
48
- }
49
- .Slider-knob {
50
- float: right;
51
- margin: -8px -10px 0 0;
52
- outline: none;
53
- background: #f5f5f5;
54
- background-color: rgb(245, 245, 245);
55
- }
56
- :hover > * > * > .Slider-knob,
57
- :focus > * > * > .Slider-knob,
58
- :focus > .Toggle-knob,
59
- :hover > .Toggle-knob {
60
- box-shadow:
61
- 0 0 0 8px rgb(0, 0, 0, .2),
62
- 0 1px 4px rgba(0, 0, 0, .3);
63
- }
64
- .Slider-knob.is-active {
65
- box-shadow:
66
- 0 0 0 12px rgb(0, 0, 0, .2),
67
- 0 1px 5px 5px rgba(0, 0, 0, .3);
68
- }
69
- /* value bubble */
70
- .Slider-knob.is-active:before,
71
- .Slider-knob.is-active:after {
72
- position: absolute;
73
- width: 32px;
74
- height: 32px;
75
- left: -6px;
76
- display: block;
77
- top: -44px;
78
- animation: .1s linear 0s 1 forwards Slider-active;
79
- }
80
- .Slider-knob.is-active:before {
81
- content: "";
82
- border-radius: 50% 50% 50% 0;
83
- transform: rotate(-45deg);
84
- background: inherit;
85
- box-shadow:
86
- 0 1px 4px rgba(0, 0, 0, .2);
87
- }
88
- .Slider-knob.is-active:after {
89
- content: attr(data-val);
90
- color: #000;
91
- font-size: 14px;
92
- line-height: 32px;
93
- text-align: center;
94
- }
95
- .Toggle {
96
- position: relative;
97
- display: block;
98
- width: 36px;
99
- height: 22px;
100
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
101
- }
102
- .Toggle:before {
103
- display: block;
104
- content: "";
105
- background: #bdbdbd;
106
- position: absolute;
107
- width: 36px;
108
- height: 14px;
109
- top: 4px;
110
- border-radius: 7px;
111
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
112
- }
113
- .Toggle-knob {
114
- background-color: #666;
115
- top: 1px;
116
- left: 0px;
117
- }
118
- input:checked + .Toggle-knob {
119
- background-color: #00a651;
120
- left: 16px;
121
- }
122
- @keyframes Slider-active {
123
- 0% {
124
- top: 0px;
125
- opacity: 0;
126
- }
127
- to {
128
- top: -44px;
129
- opacity: 1;
130
- }
131
- }
132
- /*
133
- .Slider.color .Slider-fill {
134
- background: red;
135
- }
136
- .Slider.color .Slider-fill+.Slider-fill {
137
- background: green;
138
- }
139
- .Slider.color .Slider-fill+.Slider-fill+.Slider-fill {
140
- background: blue;
141
- }
142
- .Slider.no-first > .Slider-track > .Slider-fill:last-child {
143
- background: #666;
144
- }
145
- */
146
-
147
- %js
148
- var on = El.on
149
- , off = El.off
150
- El.$b.SliderInit = function(el) {
151
- var attr, range, knobLen, offset, px, drag, min, max, step, minPx, maxPx, value
152
- , vert = El.hasClass(el, "is-vertical")
153
- , track = el.firstChild
154
- , fill = track.firstChild
155
- , knob = fill.lastChild
156
- , emit = El.rate(El.emit.bind(el, el, "change"), 500)
157
- on(window, "blur", stop)
158
- on(el, "pointerdown", start)
159
- el.val = set
160
- setTimeout(function() { set(value||0) }, 10)
161
- function load() {
162
- attr = vert ? "offsetHeight" : "offsetWidth"
163
- range = (El.get(el, "range") || "").split(/[^+\-\d.]/) // min:max:step:margin
164
- min = +(range[0] || 0)
165
- max = +(range[1] || 100)
166
- step = +(range[2] || 1)
167
- knobLen = knob[attr]>>1
168
- minPx = 0
169
- maxPx = track[attr] - knobLen - knobLen
170
- px = maxPx / (max - min)
171
- }
172
- function start(e) {
173
- drag = true
174
- load()
175
- var tmp = el.getBoundingClientRect()
176
- offset = (vert ? tmp.top + maxPx + El.scrollTop() + knobLen : tmp.left + El.scrollLeft()) + knobLen
177
- tmp = offset - e.clientX + (value-min||0)*px
178
- if (tmp < knobLen && tmp > -knobLen) offset -= tmp
179
- if (track.childNodes.length > 1) {
180
- fill = track.firstChild
181
- var next
182
- , x = maxPx
183
- , tmp = fill
184
- , diff = vert ? offset - e.pageY : e.pageX - offset
185
- for (; tmp; tmp = tmp.nextSibling) {
186
- next = diff - tmp[attr] + knobLen
187
- if (next < 0 ? -next <= x : next < x) {
188
- fill = tmp
189
- knob = fill.firstChild
190
- x = next < 0 ? -next : next
191
- }
192
- }
193
- if (fill.previousSibling) {
194
- maxPx = fill.previousSibling[attr] - knobLen
195
- if (range[3]) maxPx -= px * range[3]
196
- }
197
- if (fill.nextSibling) {
198
- minPx = fill.nextSibling[attr] - knobLen
199
- if (range[3]) minPx += px * range[3]
200
- }
201
- }
202
- move(e)
203
- listen(on)
204
- }
205
- function move(e) {
206
- var diff = vert ? offset - e.pageY : e.pageX - offset
207
- diff = (diff > maxPx ? maxPx : (diff < minPx ? minPx : diff))
208
- set((diff / px) + min, e, diff)
209
- return El.stop(e)
210
- }
211
- function stop(e) {
212
- if (drag) {
213
- drag = false
214
- listen(off)
215
- set(value)
216
- }
217
- }
218
- function listen(on) {
219
- El.cls(fill, "anim", !drag)
220
- El.cls(knob, "is-active", drag)
221
- on(document, "pointerup", stop)
222
- on(document, "pointermove", move)
223
- }
224
- function set(val, e, pos) {
225
- load()
226
- val = El.step(val < min ? min : val > max ? max : val || 0, step)
227
- if (value !== void 0 && (!drag || pos !== void 0)) {
228
- El.css(fill, vert ? "height" : "width", ((pos || (val-min)*px)+knobLen) + "px", 0)
229
- }
230
- if (value !== val) {
231
- el.value = value = val
232
- if (drag && e) emit(e)
233
- var format = El.get(el, "format")
234
- El.set(knob, "data-val", format ? _(format, {val:val}) : val)
235
- }
236
- }
237
- }
238
-
239
- %el Slider
240
- button.Slider.reset ;SliderInit!
241
- .Slider-track
242
- .Slider-fill.abs.anim
243
- .Slider-knob.anim[tabindex=0]
244
-
245
- /%el Slider2
246
- / button.Slider.reset ;SliderInit!
247
- / .Slider-track
248
- / .Slider-fill.abs.anim
249
- / .Slider-knob.anim[tabindex=0]
250
- / .Slider-fill.abs.anim
251
- / .Slider-knob.anim[tabindex=0]
252
- /
253
- /%el Slider3
254
- / button.Slider.reset ;SliderInit!
255
- / .Slider-track
256
- / .Slider-fill.abs.anim
257
- / .Slider-knob.anim[tabindex=0]
258
- / .Slider-fill.abs.anim
259
- / .Slider-knob.anim[tabindex=0]
260
- / .Slider-fill.abs.anim
261
- / .Slider-knob.anim[tabindex=0]
262
-
263
- %el Toggle
264
- label.Toggle.reset[tabindex=0]
265
- input[type=checkbox].hide
266
- ;readonly: row && !row.write
267
- ;checked: model && (row && row.opts ? row.opts === model.get(row.path) : !!model.get(row.path))
268
- .Toggle-knob.anim
269
-