ende 0.3.5 → 0.3.6
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.
- checksums.yaml +4 -4
- data/component.json +4 -5
- data/lib/assets/javascripts/aura/extensions/loader.js.coffee +15 -11
- data/lib/assets/javascripts/aura/extensions/mask.js.coffee +13 -77
- data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +1 -1
- data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +1 -0
- data/lib/assets/javascripts/aura/extensions/routes.js.coffee +14 -9
- data/lib/assets/javascripts/aura/extensions/states.js.coffee +27 -22
- data/lib/assets/javascripts/config/initializers/jquery.js.coffee +7 -7
- data/lib/assets/javascripts/config/initializers/requirejs.js.coffee +1 -0
- data/lib/assets/javascripts/config/{initializers/load_components.js.coffee → load_components.js.coffee} +7 -4
- data/lib/assets/javascripts/ende.js.coffee +1 -0
- data/lib/assets/javascripts/widgets/viewer/main.js.coffee +80 -23
- data/lib/assets/javascripts/widgets/viewer/plugins/scopable.js.coffee +87 -15
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/components/build.css +111 -0
- data/vendor/assets/components/build.js +28280 -0
- data/vendor/assets/components/ende_build.js +4955 -6751
- data/vendor/components/indefinido-observable/component.json +1 -2
- data/vendor/components/indefinido-observable/lib/observable.js +28 -6
- data/vendor/components/mikeric-rivets/component.json +2 -2
- data/vendor/components/mikeric-rivets/dist/rivets.js +632 -873
- metadata +5 -3
@@ -1,39 +1,111 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
+
window.domo = []
|
4
|
+
|
3
5
|
# TODO define componentjs required packages, as requirejs packages
|
4
6
|
observable = require('indefinido-observable').mixin
|
5
7
|
|
6
|
-
define ->
|
7
|
-
(widget) ->
|
8
|
+
define ['stampit/stampit'], (stampit) ->
|
8
9
|
|
9
|
-
|
10
|
+
scopingable = stampit
|
11
|
+
start: ->
|
12
|
+
deferred = @widget.sandbox.data.deferred()
|
10
13
|
|
11
|
-
|
12
|
-
|
14
|
+
# Update the scope after resolution
|
15
|
+
deferred.done ->
|
16
|
+
for scope_name, data of @widget.scopings
|
17
|
+
@widget.forward_scope_data scope_name, data
|
13
18
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
19
|
+
# TODO think of a better method name than repopulate
|
20
|
+
@widget.repopulate()
|
21
|
+
|
22
|
+
@deferred = deferred
|
23
|
+
|
24
|
+
reset: ->
|
25
|
+
@start()
|
26
|
+
|
27
|
+
# TODO move bindings logic to here
|
28
|
+
enqueue: (scope_name, value) ->
|
29
|
+
@widget.scopings[scope_name] = value
|
30
|
+
,
|
31
|
+
deferred: null
|
32
|
+
scopings: null
|
33
|
+
, ->
|
34
|
+
|
35
|
+
@widget.scopings ||= {}
|
18
36
|
|
19
|
-
|
37
|
+
# Resolve scopings after scoping has ended
|
38
|
+
@resolve = _.debounce =>
|
39
|
+
@deferred.resolveWith @, [@scopings]
|
40
|
+
@reset()
|
20
41
|
|
42
|
+
@
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
scopable = stampit
|
47
|
+
forward_scope_data: (scope_name, data) ->
|
48
|
+
switch @scope['$' + scope_name].constructor
|
49
|
+
when Array
|
50
|
+
data = [data] unless $.type(data) == 'array'
|
51
|
+
@scope[scope_name] data...
|
52
|
+
else
|
53
|
+
@scope[scope_name] data
|
54
|
+
|
55
|
+
enhancable_presenter: (presenter) ->
|
56
|
+
widget = @
|
57
|
+
scoping = scopingable widget: @
|
58
|
+
scoping.start()
|
59
|
+
|
60
|
+
# Update presenter interface to support binders customization
|
61
|
+
presenter.presentation ||= {binders: {}}
|
62
|
+
presenter.presentation.binders ||= {}
|
63
|
+
{presentation: {binders}} = presenter
|
21
64
|
|
65
|
+
# Create custom bindings for this scope, for storing scope
|
66
|
+
# changes per widget instance
|
22
67
|
binders['scope-*'] =
|
23
68
|
bind: ->
|
24
69
|
@scope_name = @args[0].replace /-/g, '_'
|
70
|
+
@widget = widget
|
25
71
|
routine: (element, value) ->
|
26
|
-
|
72
|
+
scoping.enqueue @scope_name, value
|
73
|
+
scoping.resolve()
|
27
74
|
|
28
75
|
binders.scope =
|
29
|
-
|
76
|
+
bind: ->
|
77
|
+
@widget = widget
|
30
78
|
routine: (element, value) ->
|
31
79
|
keypath = @keypath.substring 1 if @keypath[0] == '_'
|
32
80
|
name = "by_#{@key}_#{keypath || @keypath}"
|
33
|
-
widget.scope_to widget.scope[name] value
|
34
81
|
|
35
|
-
|
36
|
-
|
82
|
+
scoping.enqueue name, value
|
83
|
+
scoping.resolve()
|
84
|
+
|
85
|
+
|
86
|
+
,
|
87
|
+
scopings: null
|
88
|
+
, ->
|
89
|
+
|
90
|
+
observable @widget
|
91
|
+
|
92
|
+
# TODO compose this factory with the widget factory instead of
|
93
|
+
# creating a new instance and merging methods
|
94
|
+
stampit.mixIn @widget, scopable.fixed.methods
|
95
|
+
|
96
|
+
# TODO transfer data from old scope to new one
|
97
|
+
# widget.subscribe 'scope', ->
|
98
|
+
|
99
|
+
# TODO @widget.scopings = scopings = []
|
100
|
+
@widget.scopings = []
|
101
|
+
@enhancable_presenter.call @widget, @widget.presenter
|
102
|
+
@widget.subscribe 'presenter', @widget.enhancable_presenter
|
103
|
+
|
104
|
+
@widget
|
105
|
+
|
106
|
+
|
107
|
+
(widget) -> scopable widget: widget
|
108
|
+
|
37
109
|
|
38
110
|
|
39
111
|
|
data/lib/ende/version.rb
CHANGED
@@ -0,0 +1,111 @@
|
|
1
|
+
.overlay {
|
2
|
+
position: absolute;
|
3
|
+
top: 0;
|
4
|
+
left: 0;
|
5
|
+
opacity: 1;
|
6
|
+
width: 100%;
|
7
|
+
height: 100%;
|
8
|
+
background: rgba(0,0,0,.75);
|
9
|
+
-webkit-transition: opacity 300ms;
|
10
|
+
-moz-transition: opacity 300ms;
|
11
|
+
transition: opacity 300ms;
|
12
|
+
z-index: 500;
|
13
|
+
}
|
14
|
+
|
15
|
+
.overlay.hide {
|
16
|
+
pointer-events: none;
|
17
|
+
opacity: 0;
|
18
|
+
}
|
19
|
+
|
20
|
+
#dialog {
|
21
|
+
position: fixed;
|
22
|
+
left: 50%;
|
23
|
+
top: 150px;
|
24
|
+
max-width: 600px;
|
25
|
+
min-width: 250px;
|
26
|
+
border: 1px solid #eee;
|
27
|
+
background: white;
|
28
|
+
z-index: 1000;
|
29
|
+
}
|
30
|
+
|
31
|
+
#dialog .content {
|
32
|
+
padding: 15px 20px;
|
33
|
+
}
|
34
|
+
|
35
|
+
#dialog h1 {
|
36
|
+
margin: 0 0 5px 0;
|
37
|
+
font-size: 16px;
|
38
|
+
font-weight: normal;
|
39
|
+
}
|
40
|
+
|
41
|
+
#dialog p {
|
42
|
+
margin: 0;
|
43
|
+
padding: 0;
|
44
|
+
font-size: .9em;
|
45
|
+
}
|
46
|
+
|
47
|
+
/* close */
|
48
|
+
|
49
|
+
#dialog .close {
|
50
|
+
position: absolute;
|
51
|
+
top: 3px;
|
52
|
+
right: 10px;
|
53
|
+
text-decoration: none;
|
54
|
+
color: #888;
|
55
|
+
font-size: 16px;
|
56
|
+
font-weight: bold;
|
57
|
+
display: none;
|
58
|
+
}
|
59
|
+
|
60
|
+
#dialog .close em {
|
61
|
+
display: none;
|
62
|
+
}
|
63
|
+
|
64
|
+
#dialog.closable .close {
|
65
|
+
display: block;
|
66
|
+
}
|
67
|
+
|
68
|
+
#dialog .close:hover {
|
69
|
+
color: black;
|
70
|
+
}
|
71
|
+
|
72
|
+
#dialog .close:active {
|
73
|
+
margin-top: 1px;
|
74
|
+
}
|
75
|
+
|
76
|
+
/* slide */
|
77
|
+
|
78
|
+
#dialog.slide {
|
79
|
+
-webkit-transition: opacity 300ms, top 300ms;
|
80
|
+
-moz-transition: opacity 300ms, top 300ms;
|
81
|
+
}
|
82
|
+
|
83
|
+
#dialog.slide.hide {
|
84
|
+
opacity: 0;
|
85
|
+
top: -500px;
|
86
|
+
}
|
87
|
+
|
88
|
+
/* fade */
|
89
|
+
|
90
|
+
#dialog.fade {
|
91
|
+
-webkit-transition: opacity 300ms;
|
92
|
+
-moz-transition: opacity 300ms;
|
93
|
+
}
|
94
|
+
|
95
|
+
#dialog.fade.hide {
|
96
|
+
opacity: 0;
|
97
|
+
}
|
98
|
+
|
99
|
+
/* scale */
|
100
|
+
|
101
|
+
#dialog.scale {
|
102
|
+
-webkit-transition: -webkit-transform 300ms;
|
103
|
+
-moz-transition: -moz-transform 300ms;
|
104
|
+
-webkit-transform: scale(1);
|
105
|
+
-moz-transform: scale(1);
|
106
|
+
}
|
107
|
+
|
108
|
+
#dialog.scale.hide {
|
109
|
+
-webkit-transform: scale(0);
|
110
|
+
-moz-transform: scale(0);
|
111
|
+
}
|