ende 0.4.20 → 0.4.21

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.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -3
  3. data/build/build.css +111 -0
  4. data/component.json +1 -0
  5. data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +4 -13
  6. data/lib/assets/javascripts/aura/extensions/platform.js.coffee +2 -8
  7. data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +21 -10
  8. data/lib/assets/javascripts/aura/extensions/states.js.coffee +25 -27
  9. data/lib/assets/javascripts/aura/extensions/widget/eventable.js.coffee +28 -23
  10. data/lib/assets/javascripts/aura/extensions/widget/lifecycleable.js.coffee +21 -34
  11. data/lib/assets/javascripts/aura/extensions/widget/napable.js.coffee +17 -13
  12. data/lib/assets/javascripts/config/load_components.js.coffee +5 -7
  13. data/lib/assets/javascripts/widgets/dialog/main.js.coffee +1 -2
  14. data/lib/assets/javascripts/widgets/list/presenter.js.coffee +5 -4
  15. data/lib/assets/javascripts/widgets/support/adapters/olark.js +1 -1
  16. data/lib/assets/javascripts/widgets/tray/main.js.coffee +16 -22
  17. data/lib/assets/javascripts/widgets/viewer/main.js.coffee +39 -102
  18. data/lib/assets/javascripts/widgets/viewer/plugins/scopable.js.coffee +7 -1
  19. data/lib/ende/version.rb +1 -1
  20. data/vendor/assets/components/ende_build.js +5732 -1047
  21. data/vendor/components/indefinido-indemma/build/development.js +2 -2
  22. data/vendor/components/indefinido-indemma/build/release.js +9 -4
  23. data/vendor/components/indefinido-indemma/build/test.js +115 -21916
  24. data/vendor/components/indefinido-indemma/component.json +0 -1
  25. data/vendor/components/indefinido-indemma/lib/record/restfulable.js +7 -2
  26. data/vendor/components/indefinido-indemma/lib/record/validatable.js +2 -2
  27. data/vendor/components/indefinido-indemma/src/lib/record/persistable.coffee +2 -0
  28. data/vendor/components/indefinido-indemma/src/lib/record/resource.coffee +3 -2
  29. data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +16 -4
  30. data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +3 -3
  31. data/vendor/components/indefinido-observable/.gitignore +15 -0
  32. data/vendor/components/indefinido-observable/.ruby-gemset +1 -0
  33. data/vendor/components/indefinido-observable/.ruby-version +1 -0
  34. data/vendor/components/indefinido-observable/Gemfile +13 -0
  35. data/vendor/components/indefinido-observable/Guardfile +39 -0
  36. data/vendor/components/indefinido-observable/History.md +0 -0
  37. data/vendor/components/indefinido-observable/Readme.md +116 -0
  38. data/vendor/components/indefinido-observable/build/build.js +14798 -0
  39. data/vendor/components/indefinido-observable/build/development.js +339 -0
  40. data/vendor/components/indefinido-observable/build/release.js +14937 -0
  41. data/vendor/components/indefinido-observable/build/test.js +339 -0
  42. data/vendor/components/indefinido-observable/component.json +7 -3
  43. data/vendor/components/indefinido-observable/components/chaijs-chai/component.json +46 -0
  44. data/vendor/components/indefinido-observable/components/chaijs-chai/index.js +1 -0
  45. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/assertion.js +132 -0
  46. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/core/assertions.js +1270 -0
  47. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/error.js +60 -0
  48. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/assert.js +1060 -0
  49. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/expect.js +12 -0
  50. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/should.js +76 -0
  51. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +94 -0
  52. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addMethod.js +37 -0
  53. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addProperty.js +40 -0
  54. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/eql.js +124 -0
  55. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/flag.js +32 -0
  56. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getActual.js +19 -0
  57. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +25 -0
  58. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getMessage.js +49 -0
  59. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getName.js +20 -0
  60. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getPathValue.js +102 -0
  61. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getProperties.js +35 -0
  62. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/index.js +108 -0
  63. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/inspect.js +316 -0
  64. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/objDisplay.js +48 -0
  65. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +51 -0
  66. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +54 -0
  67. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/test.js +26 -0
  68. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/transferFlags.js +44 -0
  69. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/type.js +45 -0
  70. data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai.js +79 -0
  71. data/vendor/components/indefinido-observable/components/cjohansen-sinon/sinon.js +4290 -0
  72. data/vendor/components/indefinido-observable/components/component-jquery/component.json +14 -0
  73. data/vendor/components/indefinido-observable/components/component-jquery/index.js +9601 -0
  74. data/vendor/components/indefinido-observable/components/kapit-observe-shim/component.json +11 -0
  75. data/vendor/components/indefinido-observable/components/kapit-observe-utils/component.json +13 -0
  76. data/vendor/components/indefinido-observable/karma.conf.js +92 -0
  77. data/vendor/components/indefinido-observable/lib/observable.js +9 -19
  78. data/vendor/components/indefinido-observable/spec/legacy/observable_spec.js +126 -0
  79. data/vendor/components/indefinido-observable/spec/observable_spec.js +92 -0
  80. data/vendor/components/indefinido-observable/spec/spec_helper.js +8 -0
  81. data/vendor/components/indefinido-observable/spec/vendor/accessors_spec.js +63 -0
  82. data/vendor/components/indefinido-observable/src/lib/adapters/rivets.js.coffee +15 -0
  83. data/vendor/components/indefinido-observable/src/spec/legacy/observable_spec.coffee +132 -0
  84. data/vendor/components/indefinido-observable/src/spec/observable_spec.coffee +85 -0
  85. data/vendor/components/indefinido-observable/src/spec/spec_helper.coffee +5 -0
  86. data/vendor/components/indefinido-observable/src/spec/vendor/accessors_spec.coffee +59 -0
  87. data/vendor/components/indefinido-observable/vendor/spec/boot.js +104 -0
  88. data/vendor/components/indefinido-observable/vendor/spec/jasmine.js +2054 -0
  89. metadata +60 -8
  90. data/lib/assets/javascripts/aura/extensions/domain.js.coffee +0 -55
  91. data/lib/assets/javascripts/aura/extensions/stamps.js.coffee +0 -35
  92. data/lib/assets/javascripts/aura/extensions/widget/composable.js.coffee +0 -135
  93. data/lib/assets/javascripts/aura/extensions/widget/flowable.js.coffee +0 -65
  94. data/lib/assets/javascripts/widgets/attachable/main.js.coffee +0 -77
  95. /data/{lib/assets/javascripts/aura/extensions/stamps → vendor/assets/javascripts/stampit}/stampit.js +0 -0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ende
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.20
4
+ version: 0.4.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heitor Salazar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-08 00:00:00.000000000 Z
11
+ date: 2014-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -67,11 +67,11 @@ files:
67
67
  - README.md
68
68
  - Rakefile
69
69
  - WTFP-LICENSE
70
+ - build/build.css
70
71
  - component.json
71
72
  - ende.gemspec
72
73
  - lib/assets/.gitkeep
73
74
  - lib/assets/javascripts/aura/extensions/devise.js.coffee
74
- - lib/assets/javascripts/aura/extensions/domain.js.coffee
75
75
  - lib/assets/javascripts/aura/extensions/loader.js.coffee
76
76
  - lib/assets/javascripts/aura/extensions/mask.js.coffee
77
77
  - lib/assets/javascripts/aura/extensions/mediator.js
@@ -82,12 +82,8 @@ files:
82
82
  - lib/assets/javascripts/aura/extensions/rivets/formatters.js.coffee
83
83
  - lib/assets/javascripts/aura/extensions/routes.js.coffee
84
84
  - lib/assets/javascripts/aura/extensions/screening.js.coffee
85
- - lib/assets/javascripts/aura/extensions/stamps.js.coffee
86
- - lib/assets/javascripts/aura/extensions/stamps/stampit.js
87
85
  - lib/assets/javascripts/aura/extensions/states.js.coffee
88
- - lib/assets/javascripts/aura/extensions/widget/composable.js.coffee
89
86
  - lib/assets/javascripts/aura/extensions/widget/eventable.js.coffee
90
- - lib/assets/javascripts/aura/extensions/widget/flowable.js.coffee
91
87
  - lib/assets/javascripts/aura/extensions/widget/lifecycleable.js.coffee
92
88
  - lib/assets/javascripts/aura/extensions/widget/napable.js.coffee
93
89
  - lib/assets/javascripts/aura/extensions/widget/presentable.js.coffee
@@ -98,7 +94,6 @@ files:
98
94
  - lib/assets/javascripts/config/load_components.js.coffee
99
95
  - lib/assets/javascripts/ende.js.coffee
100
96
  - lib/assets/javascripts/value_objects/phone.js.coffee
101
- - lib/assets/javascripts/widgets/attachable/main.js.coffee
102
97
  - lib/assets/javascripts/widgets/authenticator/main.js.coffee
103
98
  - lib/assets/javascripts/widgets/authenticator/presenter.js.coffee
104
99
  - lib/assets/javascripts/widgets/authenticator/states/default.html
@@ -160,6 +155,7 @@ files:
160
155
  - vendor/assets/javascripts/polyfills/es5-shim.js
161
156
  - vendor/assets/javascripts/polyfills/es6-map-shim.js
162
157
  - vendor/assets/javascripts/spin/spin.js
158
+ - vendor/assets/javascripts/stampit/stampit.js
163
159
  - vendor/components/KapIT-observe-utils/component.json
164
160
  - vendor/components/KapIT-observe-utils/lib/observe-utils.js
165
161
  - vendor/components/component-bind/component.json
@@ -359,14 +355,70 @@ files:
359
355
  - vendor/components/indefinido-indemma/vendor/owl/pluralize.js
360
356
  - vendor/components/indefinido-indemma/vendor/sinon.js
361
357
  - vendor/components/indefinido-indemma/vendor/stampit.js
358
+ - vendor/components/indefinido-observable/.gitignore
359
+ - vendor/components/indefinido-observable/.ruby-gemset
360
+ - vendor/components/indefinido-observable/.ruby-version
361
+ - vendor/components/indefinido-observable/Gemfile
362
+ - vendor/components/indefinido-observable/Guardfile
363
+ - vendor/components/indefinido-observable/History.md
364
+ - vendor/components/indefinido-observable/Readme.md
365
+ - vendor/components/indefinido-observable/build/build.js
366
+ - vendor/components/indefinido-observable/build/development.js
367
+ - vendor/components/indefinido-observable/build/release.js
368
+ - vendor/components/indefinido-observable/build/test.js
362
369
  - vendor/components/indefinido-observable/component.json
370
+ - vendor/components/indefinido-observable/components/chaijs-chai/component.json
371
+ - vendor/components/indefinido-observable/components/chaijs-chai/index.js
372
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai.js
373
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/assertion.js
374
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/core/assertions.js
375
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/error.js
376
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/assert.js
377
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/expect.js
378
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/should.js
379
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addChainableMethod.js
380
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addMethod.js
381
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addProperty.js
382
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/eql.js
383
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/flag.js
384
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getActual.js
385
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js
386
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getMessage.js
387
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getName.js
388
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getPathValue.js
389
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getProperties.js
390
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/index.js
391
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/inspect.js
392
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/objDisplay.js
393
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteMethod.js
394
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteProperty.js
395
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/test.js
396
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/transferFlags.js
397
+ - vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/type.js
398
+ - vendor/components/indefinido-observable/components/cjohansen-sinon/sinon.js
399
+ - vendor/components/indefinido-observable/components/component-jquery/component.json
400
+ - vendor/components/indefinido-observable/components/component-jquery/index.js
401
+ - vendor/components/indefinido-observable/components/kapit-observe-shim/component.json
402
+ - vendor/components/indefinido-observable/components/kapit-observe-utils/component.json
363
403
  - vendor/components/indefinido-observable/index.js
404
+ - vendor/components/indefinido-observable/karma.conf.js
364
405
  - vendor/components/indefinido-observable/lib/adapters/rivets.js
365
406
  - vendor/components/indefinido-observable/lib/observable.js
407
+ - vendor/components/indefinido-observable/spec/legacy/observable_spec.js
408
+ - vendor/components/indefinido-observable/spec/observable_spec.js
409
+ - vendor/components/indefinido-observable/spec/spec_helper.js
410
+ - vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
411
+ - vendor/components/indefinido-observable/src/lib/adapters/rivets.js.coffee
412
+ - vendor/components/indefinido-observable/src/spec/legacy/observable_spec.coffee
413
+ - vendor/components/indefinido-observable/src/spec/observable_spec.coffee
414
+ - vendor/components/indefinido-observable/src/spec/spec_helper.coffee
415
+ - vendor/components/indefinido-observable/src/spec/vendor/accessors_spec.coffee
366
416
  - vendor/components/indefinido-observable/vendor/shims/accessors-legacy.js
367
417
  - vendor/components/indefinido-observable/vendor/shims/accessors.js
368
418
  - vendor/components/indefinido-observable/vendor/shims/array.indexOf.js
369
419
  - vendor/components/indefinido-observable/vendor/shims/object.create.js
420
+ - vendor/components/indefinido-observable/vendor/spec/boot.js
421
+ - vendor/components/indefinido-observable/vendor/spec/jasmine.js
370
422
  - vendor/components/mikeric-rivets/component.json
371
423
  - vendor/components/mikeric-rivets/dist/rivets.js
372
424
  - vendor/components/paulmillr-es6-shim/component.json
@@ -1,55 +0,0 @@
1
- 'use strict'
2
-
3
- define 'aura/extensions/domain', ->
4
-
5
- # The purpose of this extension is have a business domain practice
6
- # integrated with the core application functionality
7
-
8
- version: '0.1.0'
9
-
10
- initialize: (application) ->
11
- {core: {mediator, stamp}} = application
12
-
13
- eventable = stamp
14
- on : mediator.on
15
- off : mediator.off
16
- once : mediator.once
17
- many : mediator.many
18
- emit : mediator.emit
19
- unlisten: mediator.removeAllListeners
20
-
21
- domainable = stamp()
22
-
23
- # application.use('extensions/models').use 'extensions/widget/flows'
24
- # TODO detect if flows extension and models extension have already been loaded
25
-
26
- # TODO require domain commands
27
- application.domain ||= eventable()
28
-
29
- afterAppStart: (application) ->
30
- {core: {resourceable: {every: resourceables}, Widgets: {Flow}, stamp, stamps}, domain} = application
31
-
32
- # TODO disponibilize the resourceables method through the resources extension
33
- extensions = {}
34
- for resourceable in resourceables
35
- resource = resourceable.resource.toString()
36
-
37
- namespaces = resource.split '/'
38
- method = namespaces.pop() + 'able'
39
-
40
- # Create namespaces
41
- node = extensions
42
- for namespace in namespaces
43
- node[namespace] ||= {}
44
- node = node[namespace]
45
-
46
- node[method] = resourceable
47
-
48
- stamp 'resourceables', extensions
49
-
50
- Flow.compose stamp.compose stamps.resourceables, stamp().enclose -> domain[@name] = @
51
-
52
-
53
-
54
-
55
-
@@ -1,35 +0,0 @@
1
- 'use strict'
2
-
3
- define 'aura/extensions/stamps', ->
4
-
5
-
6
- name: 'stamps'
7
-
8
- version: '0.1.0'
9
-
10
- require:
11
- paths:
12
- stampit: 'aura/extensions/stamps/stampit'
13
-
14
- initialize: (application) ->
15
- {sandbox, core} = application
16
- stampit = require 'stampit'
17
-
18
- core.stamps = {}
19
-
20
- # TODO store stamps on a sandbox basis too
21
- sandbox.stamp = core.stamp = stampit.mixIn (name, params...) ->
22
- unless typeof name == 'string'
23
- params.unshift name
24
- name = null
25
-
26
- stamp = stampit.apply stampit, params
27
-
28
- if name then core.stamps[name] = stamp else stamp
29
-
30
- , stampit
31
-
32
-
33
-
34
-
35
-
@@ -1,135 +0,0 @@
1
- 'use strict';
2
-
3
- define 'aura/extensions/widget/composable', ->
4
- stamp = extend = null
5
-
6
- advisorable = (advisor) ->
7
- # TODO merge advices in the composition chain
8
- advice_names = ['before', 'after', 'around']
9
-
10
- extract_advices = (object) ->
11
- found = []
12
- for key of object when key.indexOf('_') isnt -1
13
- [name, adviced] = key.split '_'
14
-
15
- if advice_names.indexOf(name) != -1
16
- callbacks = if object[key].length then object[key] else [object[key]]
17
-
18
- delete object[key]
19
-
20
- found.push
21
- key: key
22
- name: name
23
- adviced: adviced
24
- callbacks: callbacks
25
-
26
- found
27
-
28
- advisor.advice = (widget) ->
29
-
30
- advices = extract_advices widget
31
-
32
- for advice in advices
33
-
34
- # in order to preserve declaration order, we must reverse the callbacks order
35
- advice.callbacks.reverse() if advice.name == 'before'
36
-
37
- # Advice with all callbacks
38
- widget[advice.name] advice.adviced, callback for callback in advice.callbacks
39
-
40
- widget
41
-
42
- advisor.advisable = (factory) ->
43
- original = factory.compose
44
-
45
- stamp.mixIn factory,
46
- compose: (stamps...) ->
47
- {fixed: {methods: composition_methods}} = @composition
48
- advices = extract_advices composition_methods
49
-
50
- for stamped in stamps
51
- {fixed: {methods: stamp_methods}} = stamped
52
- advices = advices.concat extract_advices stamp_methods
53
-
54
- adviced_stamp = {}
55
- for advice in advices
56
- adviced_stamp[advice.key] ||= []
57
- adviced_stamp[advice.key] = adviced_stamp[advice.key].concat advice.callbacks
58
-
59
- # Create a ultimate stamp with all advices arrays or functions merged
60
- # TODO do not store advices definitions in the prototype chain
61
- stamps.push stamp adviced_stamp
62
-
63
- original.apply factory, stamps
64
-
65
- advice: advisor.advice
66
-
67
- advisor
68
-
69
- composerable = (compositor) ->
70
- compositor.composable = (methods, state, enclose) ->
71
- factory = (options) ->
72
-
73
- # Inherit defaults from widget
74
- options = _.defaults options, factory.composition.fixed.methods.options
75
-
76
- # Composition only will compose methods and state!
77
- instance = factory.composition options: options
78
- enclose.call instance, options
79
-
80
- # TODO check if it is needed to inherit compositions
81
- # if methods.composition
82
- # composition = methods.composition
83
- # delete methods.composition
84
- # composition = stamp.compose composition, stamp methods, state
85
- # else
86
- # composition = stamp methods, state
87
-
88
- stamp.mixIn factory,
89
- composition: stamp methods, state
90
- # Suport an extension with multiple compositions
91
- compose: -> @composition = stamp.compose @composition, arguments...
92
-
93
- extend: ->
94
- `var methods, state`
95
- {fixed} = @composition
96
- initializers = [enclose]
97
- methods = {}
98
- state = {}
99
-
100
- for definition in arguments
101
- {methods: definition_methods, state: definition_state} = definition
102
-
103
- methods = extend methods, fixed.methods, definition_methods or definition
104
- state = extend state , fixed.state , definition_state
105
-
106
- initializers.push fixed.enclose if fixed.enclose
107
- initializers.push definition.enclose if definition.enclose
108
-
109
- enclosed = (properties) ->
110
- initializers.forEach (initializer) => initializer.call @, properties
111
- @
112
-
113
- compositor.composable methods, state, enclosed or enclose
114
-
115
- compositor
116
-
117
- version: '0.1.2'
118
-
119
- initialize: (application) ->
120
- advisable = require 'advisable'
121
-
122
- {core: {Widgets, util: {extend}, stamp}} = application
123
-
124
- Widgets = composerable advisorable Widgets
125
-
126
- # THINK how to at the same time respect aura ways of instantiating
127
- # widgets and preserve widget logic composability
128
- Widgets.Default = Widgets.Base
129
- delete Widgets.Default.extend
130
-
131
- Widgets.Base = Widgets.advisable Widgets.composable advisable(Widgets.Default.prototype), null, (options) ->
132
- Object.defineProperty @, 'constructor', value: Widgets.Default, enumerable: false, configurable: false, writable: false
133
- Widgets.Default.call Widgets.advice(@), options
134
-
135
-
@@ -1,65 +0,0 @@
1
- 'use strict'
2
-
3
- define 'aura/extensions/widget/flowable', ->
4
-
5
- # The purpose of this extension is have a formalized widget type to
6
- # put domain comunication logic between other widgets
7
- (application) ->
8
-
9
- instantiation =
10
- composite_with: ->
11
-
12
- stampit = require 'stampit/stampit'
13
-
14
- # TODO Move each composable to its file
15
- eventable = stampit().enclose ->
16
- @on = @sandbox.on
17
- @off = @sandbox.off
18
- @once = @sandbox.once
19
- @many = @sandbox.many
20
- @emit = @sandbox.emit
21
- @unlisten = @sandbox.removeAllListeners
22
-
23
- @
24
-
25
- filterable = stampit()
26
-
27
- routeable = stampit()
28
-
29
- stateable = stampit(transit: (state) -> application.state = state).enclose ->
30
- Object.defineProperty @, 'state',
31
- set: @transit
32
- get: -> application.state
33
- configurable: false
34
-
35
- @stateless()
36
-
37
- elementless = stampit ->
38
- marker = " #{@name}.#{@identifier} flow "
39
- node = document.createComment marker
40
- @$el.replaceWith node
41
- @$el = $ node
42
-
43
- stampit.compose filterable, routeable, eventable, stateable, elementless
44
-
45
- create_widget_type: (flowable, application) ->
46
- {core: {Widgets}} = application
47
-
48
- Widgets.Flow = Widgets.composable Widgets.Default.prototype, null, (options) -> Widgets.Default.call @, options
49
- Widgets.Flow.compose flowable
50
-
51
- version: '0.1.0'
52
-
53
- initialize: (application) ->
54
- flowable = instantiation.composite_with application
55
- instantiation.create_widget_type flowable, application
56
-
57
- afterAppStart: (application) ->
58
- application.components.addSource 'flow', 'flows'
59
-
60
-
61
-
62
-
63
-
64
-
65
-
@@ -1,77 +0,0 @@
1
- define ->
2
-
3
- # TODO create diferent type for non-ui composable widgets
4
- # TODO think about how to make this widget dependent on eventable extension
5
- # TODO move this widtet to an extension when element is stored in the sandbox
6
- type: 'Base'
7
-
8
- version: '0.1.0'
9
-
10
- # TODO options: {state: 'reset' # Will preserve initial widget state }
11
-
12
- initialize: (options) ->
13
-
14
- @sandbox._attachments = []
15
-
16
- @$el.addClass "widget #{@name} composing"
17
-
18
- # TODO think how to extend widgets as a way of knowing all children have started
19
- @compose_when_parent()
20
-
21
- # TODO think how to extend widgets as a way of knowing all children have started
22
- compose_when_parent: ->
23
- @interval = setInterval =>
24
- if @sandbox._parent?
25
- @compose @sandbox._parent._widget
26
- clearInterval @interval
27
- , 800
28
-
29
- # Create a widget type to replace @$el for a html comment
30
- compose: (parent) ->
31
- @parent = parent
32
- parent_namespace = parent.name + '.' + parent.identifier
33
-
34
- # TODO move to elementless widgets
35
- @transform_into_elementless()
36
-
37
- @sandbox.on "#{parent_namespace}.reattach", @reattach, @
38
- @sandbox.on "#{parent_namespace}.detach" , @detach , @
39
- @sandbox.on "#{parent_namespace}.attach" , @attach , @
40
-
41
- transform_into_elementless: ->
42
- serializable_options = _.omit @options, '$el', 'el', 'ref', '_ref', 'require', 'baseUrl'
43
-
44
- marker = " #{@name}.#{@identifier} for #{@parent.name}.#{parent.identifier}"
45
- marker += " with #{JSON.stringify serializable_options} "
46
- node = document.createComment marker
47
- @$el.replaceWith node
48
-
49
- @$el = $ node
50
-
51
- reattach: (selector) ->
52
- @detach()
53
- @attach selector
54
-
55
- detach: ->
56
- @sandbox.stopListening()
57
- # TODO Support multiple deatachments events storage
58
- current_events = @sandbox._events
59
- @sandbox._events = @sandbox._attachments.shift() || []
60
- @sandbox._attachments.push current_events
61
-
62
- # TODO unbind and store jquery handlers
63
- # TODO store element position in the attachment
64
- @parent.$el.detach()
65
-
66
- attach: (selector) ->
67
- element = @sandbox.dom.find selector
68
- @sandbox.logger.error "attach: No element found for #{selector} for attachment" unless element.length
69
-
70
- # TODO Support multiple deatachments events storage
71
- @sandbox._attachments.push @sandbox._events
72
- @sandbox._events = @sandbox._attachments.shift() || []
73
- @sandbox.startListening()
74
-
75
- # TODO rebind jquery handlers
76
- # TODO restore element position of the attachment
77
- element.append @parent.$el