ende 0.2.3 → 0.2.4
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 +2 -1
- data/lib/assets/javascripts/aura/extensions/devise.js.coffee +3 -2
- data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +1 -2
- data/lib/assets/javascripts/aura/extensions/widget/lifecycleable.js.coffee +37 -16
- data/lib/assets/javascripts/ende.js.coffee +1 -1
- data/lib/assets/javascripts/widgets/dialog/main.js.coffee +100 -0
- data/lib/assets/javascripts/widgets/dialog/presenter.js.coffee +18 -0
- data/lib/assets/javascripts/widgets/dialog/states/default.html +2 -0
- data/lib/assets/javascripts/widgets/dialog/states/index.js.coffee +2 -0
- data/lib/assets/javascripts/widgets/list/main.js.coffee +1 -0
- data/lib/assets/stylesheets/ende.styl +1 -0
- data/lib/ende/version.rb +1 -1
- data/lib/ende.rb +6 -2
- data/vendor/assets/components/build.css +111 -0
- data/vendor/{components/indefinido-indemma/build/release.js → assets/components/build.js} +25468 -17590
- data/vendor/assets/components/ende_build.css +111 -0
- data/vendor/assets/components/ende_build.js +29571 -0
- data/vendor/assets/javascripts/ende/build.js +1962 -0
- data/vendor/components/component-classes/component.json +19 -0
- data/vendor/components/component-classes/index.js +165 -0
- data/vendor/components/component-css/component.json +18 -0
- data/vendor/components/component-css/index.js +34 -0
- data/vendor/components/component-delegate/component.json +2 -2
- data/vendor/components/component-delegate/index.js +4 -4
- data/vendor/components/component-dialog/component.json +23 -0
- data/vendor/components/component-dialog/dialog.css +92 -0
- data/vendor/components/component-dialog/index.js +292 -0
- data/vendor/components/component-dialog/template.js +1 -0
- data/vendor/components/component-dom/component.json +33 -0
- data/vendor/components/component-dom/index.js +725 -0
- data/vendor/components/component-domify/component.json +22 -0
- data/vendor/components/component-domify/index.js +71 -0
- data/vendor/components/component-emitter/component.json +13 -0
- data/vendor/components/component-emitter/index.js +156 -0
- data/vendor/components/component-event/index.js +8 -11
- data/vendor/components/component-indexof/component.json +15 -0
- data/vendor/components/component-indexof/index.js +10 -0
- data/vendor/components/component-overlay/component.json +22 -0
- data/vendor/components/component-overlay/index.js +111 -0
- data/vendor/components/component-overlay/overlay.css +19 -0
- data/vendor/components/component-overlay/template.js +1 -0
- data/vendor/components/component-query/component.json +2 -1
- data/vendor/components/component-sort/component.json +20 -0
- data/vendor/components/component-sort/index.js +43 -0
- data/vendor/components/component-value/component.json +25 -0
- data/vendor/components/component-value/index.js +95 -0
- data/vendor/components/indefinido-indemma/component.json +2 -3
- data/vendor/components/indefinido-indemma/lib/record/resource.js +2 -4
- data/vendor/components/mikeric-rivets/component.json +1 -1
- data/vendor/components/mikeric-rivets/dist/rivets.js +64 -44
- data/vendor/components/paulmillr-es6-shim/component.json +1 -1
- data/vendor/components/paulmillr-es6-shim/es6-shim.js +22 -11
- data/vendor/components/pluma-assimilate/component.json +1 -1
- data/vendor/components/pluma-assimilate/dist/assimilate.js +103 -63
- metadata +35 -246
- data/lib/tasks/component.thor +0 -63
- data/vendor/assets/components/KapIT-observe-utils/component.json +0 -16
- data/vendor/assets/components/KapIT-observe-utils/lib/observe-utils.js +0 -780
- data/vendor/assets/components/chaijs-assertion-error/component.json +0 -18
- data/vendor/assets/components/chaijs-assertion-error/index.js +0 -110
- data/vendor/assets/components/chaijs-chai/component.json +0 -47
- data/vendor/assets/components/chaijs-chai/index.js +0 -1
- data/vendor/assets/components/chaijs-chai/lib/chai/assertion.js +0 -130
- data/vendor/assets/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
- data/vendor/assets/components/chaijs-chai/lib/chai/interface/assert.js +0 -1080
- data/vendor/assets/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
- data/vendor/assets/components/chaijs-chai/lib/chai/interface/should.js +0 -76
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/index.js +0 -108
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/inspect.js +0 -320
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/test.js +0 -26
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
- data/vendor/assets/components/chaijs-chai/lib/chai/utils/type.js +0 -45
- data/vendor/assets/components/chaijs-chai/lib/chai.js +0 -80
- data/vendor/assets/components/chaijs-deep-eql/component.json +0 -18
- data/vendor/assets/components/chaijs-deep-eql/lib/eql.js +0 -257
- data/vendor/assets/components/chaijs-type-detect/component.json +0 -16
- data/vendor/assets/components/chaijs-type-detect/lib/type.js +0 -142
- data/vendor/assets/components/component-bind/component.json +0 -14
- data/vendor/assets/components/component-bind/index.js +0 -24
- data/vendor/assets/components/component-delegate/component.json +0 -19
- data/vendor/assets/components/component-delegate/index.js +0 -42
- data/vendor/assets/components/component-event/component.json +0 -13
- data/vendor/assets/components/component-event/index.js +0 -40
- data/vendor/assets/components/component-jquery/component.json +0 -14
- data/vendor/assets/components/component-jquery/index.js +0 -9601
- data/vendor/assets/components/component-link-delegate/component.json +0 -23
- data/vendor/assets/components/component-link-delegate/index.js +0 -60
- data/vendor/assets/components/component-matches-selector/component.json +0 -20
- data/vendor/assets/components/component-matches-selector/index.js +0 -45
- data/vendor/assets/components/component-query/component.json +0 -21
- data/vendor/assets/components/component-query/index.js +0 -21
- data/vendor/assets/components/component-type/component.json +0 -18
- data/vendor/assets/components/component-type/index.js +0 -32
- data/vendor/assets/components/component-url/component.json +0 -17
- data/vendor/assets/components/component-url/index.js +0 -63
- data/vendor/assets/components/discore-closest/component.json +0 -14
- data/vendor/assets/components/discore-closest/index.js +0 -18
- data/vendor/assets/components/indefinido-advisable/component.json +0 -21
- data/vendor/assets/components/indefinido-advisable/index.js +0 -1
- data/vendor/assets/components/indefinido-advisable/lib/advisable.js +0 -60
- data/vendor/assets/components/indefinido-indemma/component.json +0 -40
- data/vendor/assets/components/indefinido-indemma/index.js +0 -1
- data/vendor/assets/components/indefinido-indemma/lib/extensions/rivets.js +0 -23
- data/vendor/assets/components/indefinido-indemma/lib/record/associable.js +0 -217
- data/vendor/assets/components/indefinido-indemma/lib/record/maid.js +0 -24
- data/vendor/assets/components/indefinido-indemma/lib/record/resource.js +0 -104
- data/vendor/assets/components/indefinido-indemma/lib/record/rest.js +0 -36
- data/vendor/assets/components/indefinido-indemma/lib/record/restfulable.js +0 -326
- data/vendor/assets/components/indefinido-indemma/lib/record/scopable.js +0 -279
- data/vendor/assets/components/indefinido-indemma/lib/record/translationable.js +0 -19
- data/vendor/assets/components/indefinido-indemma/lib/record/validatable.js +0 -216
- data/vendor/assets/components/indefinido-indemma/lib/record/validations/associated.js +0 -30
- data/vendor/assets/components/indefinido-indemma/lib/record/validations/confirmation.js +0 -19
- data/vendor/assets/components/indefinido-indemma/lib/record/validations/cpf.js +0 -60
- data/vendor/assets/components/indefinido-indemma/lib/record/validations/presence.js +0 -19
- data/vendor/assets/components/indefinido-indemma/lib/record/validations/remote.js +0 -71
- data/vendor/assets/components/indefinido-indemma/lib/record.js +0 -167
- data/vendor/assets/components/indefinido-indemma/vendor/sinon.js +0 -4290
- data/vendor/assets/components/indefinido-indemma/vendor/stampit.js +0 -392
- data/vendor/assets/components/indefinido-observable/component.json +0 -25
- data/vendor/assets/components/indefinido-observable/components/cjohansen-sinon/sinon.js +0 -4290
- data/vendor/assets/components/indefinido-observable/index.js +0 -1
- data/vendor/assets/components/indefinido-observable/lib/adapters/rivets.js +0 -26
- data/vendor/assets/components/indefinido-observable/lib/observable.js +0 -320
- data/vendor/assets/components/indefinido-observable/vendor/shims/accessors-legacy.js +0 -92
- data/vendor/assets/components/indefinido-observable/vendor/shims/accessors.js +0 -173
- data/vendor/assets/components/indefinido-observable/vendor/shims/array.indexOf.js +0 -8
- data/vendor/assets/components/indefinido-observable/vendor/shims/object.create.js +0 -77
- data/vendor/assets/components/mikeric-rivets/component.json +0 -15
- data/vendor/assets/components/mikeric-rivets/dist/rivets.js +0 -1020
- data/vendor/assets/components/paulmillr-es6-shim/component.json +0 -17
- data/vendor/assets/components/paulmillr-es6-shim/es6-shim.js +0 -985
- data/vendor/assets/components/pluma-assimilate/component.json +0 -25
- data/vendor/assets/components/pluma-assimilate/dist/assimilate.js +0 -87
- data/vendor/assets/components/segmentio-extend/component.json +0 -13
- data/vendor/assets/components/segmentio-extend/index.js +0 -15
- data/vendor/components/chaijs-assertion-error/component.json +0 -18
- data/vendor/components/chaijs-assertion-error/index.js +0 -110
- data/vendor/components/chaijs-chai/component.json +0 -47
- data/vendor/components/chaijs-chai/index.js +0 -1
- data/vendor/components/chaijs-chai/lib/chai/assertion.js +0 -130
- data/vendor/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
- data/vendor/components/chaijs-chai/lib/chai/interface/assert.js +0 -1080
- data/vendor/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
- data/vendor/components/chaijs-chai/lib/chai/interface/should.js +0 -76
- data/vendor/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
- data/vendor/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
- data/vendor/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
- data/vendor/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
- data/vendor/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
- data/vendor/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
- data/vendor/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
- data/vendor/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
- data/vendor/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
- data/vendor/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
- data/vendor/components/chaijs-chai/lib/chai/utils/index.js +0 -108
- data/vendor/components/chaijs-chai/lib/chai/utils/inspect.js +0 -320
- data/vendor/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
- data/vendor/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
- data/vendor/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
- data/vendor/components/chaijs-chai/lib/chai/utils/test.js +0 -26
- data/vendor/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
- data/vendor/components/chaijs-chai/lib/chai/utils/type.js +0 -45
- data/vendor/components/chaijs-chai/lib/chai.js +0 -80
- data/vendor/components/chaijs-deep-eql/component.json +0 -18
- data/vendor/components/chaijs-deep-eql/lib/eql.js +0 -257
- data/vendor/components/chaijs-type-detect/component.json +0 -16
- data/vendor/components/chaijs-type-detect/lib/type.js +0 -142
- data/vendor/components/component-link-delegate/component.json +0 -23
- data/vendor/components/component-link-delegate/index.js +0 -60
- data/vendor/components/component-url/component.json +0 -17
- data/vendor/components/component-url/index.js +0 -63
- data/vendor/components/discore-closest/component.json +0 -14
- data/vendor/components/discore-closest/index.js +0 -18
- data/vendor/components/indefinido-indemma/.gitignore +0 -14
- data/vendor/components/indefinido-indemma/.ruby-gemset +0 -1
- data/vendor/components/indefinido-indemma/.ruby-version +0 -1
- data/vendor/components/indefinido-indemma/Gemfile +0 -13
- data/vendor/components/indefinido-indemma/Guardfile +0 -39
- data/vendor/components/indefinido-indemma/History.md +0 -0
- data/vendor/components/indefinido-indemma/Readme.md +0 -443
- data/vendor/components/indefinido-indemma/build/development.js +0 -331
- data/vendor/components/indefinido-indemma/build/test.js +0 -331
- data/vendor/components/indefinido-indemma/components/chaijs-assertion-error/component.json +0 -18
- data/vendor/components/indefinido-indemma/components/chaijs-assertion-error/index.js +0 -110
- data/vendor/components/indefinido-indemma/components/chaijs-chai/component.json +0 -47
- data/vendor/components/indefinido-indemma/components/chaijs-chai/index.js +0 -1
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/assertion.js +0 -130
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/assert.js +0 -1080
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/should.js +0 -76
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/eql.js +0 -129
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/index.js +0 -108
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/inspect.js +0 -320
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/test.js +0 -26
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/type.js +0 -45
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai.js +0 -80
- data/vendor/components/indefinido-indemma/components/component-bind/component.json +0 -14
- data/vendor/components/indefinido-indemma/components/component-bind/index.js +0 -24
- data/vendor/components/indefinido-indemma/components/component-jquery/component.json +0 -14
- data/vendor/components/indefinido-indemma/components/component-jquery/index.js +0 -9601
- data/vendor/components/indefinido-indemma/components/component-type/component.json +0 -18
- data/vendor/components/indefinido-indemma/components/component-type/index.js +0 -32
- data/vendor/components/indefinido-indemma/components/indefinido-advisable/component.json +0 -21
- data/vendor/components/indefinido-indemma/components/indefinido-advisable/index.js +0 -1
- data/vendor/components/indefinido-indemma/components/indefinido-advisable/lib/advisable.js +0 -60
- data/vendor/components/indefinido-indemma/components/indefinido-observable/component.json +0 -25
- data/vendor/components/indefinido-indemma/components/indefinido-observable/components/cjohansen-sinon/sinon.js +0 -4290
- data/vendor/components/indefinido-indemma/components/indefinido-observable/index.js +0 -1
- data/vendor/components/indefinido-indemma/components/indefinido-observable/lib/adapters/rivets.js +0 -26
- data/vendor/components/indefinido-indemma/components/indefinido-observable/lib/observable.js +0 -323
- data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors-legacy.js +0 -92
- data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors.js +0 -173
- data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/array.indexOf.js +0 -8
- data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/object.create.js +0 -77
- data/vendor/components/indefinido-indemma/components/kapit-observe-utils/component.json +0 -13
- data/vendor/components/indefinido-indemma/components/pluma-assimilate/component.json +0 -25
- data/vendor/components/indefinido-indemma/components/pluma-assimilate/dist/assimilate.js +0 -87
- data/vendor/components/indefinido-indemma/karma.conf.js +0 -86
- data/vendor/components/indefinido-indemma/lib/record/errors.js +0 -1
- data/vendor/components/indefinido-indemma/spec/record/associable_spec.js +0 -76
- data/vendor/components/indefinido-indemma/spec/record/resource_spec.js +0 -90
- data/vendor/components/indefinido-indemma/spec/record/rest_spec.js +0 -32
- data/vendor/components/indefinido-indemma/spec/record/restfulable_spec.js +0 -232
- data/vendor/components/indefinido-indemma/spec/record/scopable_spec.js +0 -201
- data/vendor/components/indefinido-indemma/spec/record/translationable.js +0 -28
- data/vendor/components/indefinido-indemma/spec/record/validatable_spec.js +0 -111
- data/vendor/components/indefinido-indemma/spec/record/validations/associated_spec.js +0 -43
- data/vendor/components/indefinido-indemma/spec/record/validations/confirmation_spec.js +0 -36
- data/vendor/components/indefinido-indemma/spec/record/validations/cpf_spec.js +0 -35
- data/vendor/components/indefinido-indemma/spec/record/validations/presence_spec.js +0 -28
- data/vendor/components/indefinido-indemma/spec/record/validations/remote_spec.js +0 -86
- data/vendor/components/indefinido-indemma/spec/record/validations/type_spec.js +0 -48
- data/vendor/components/indefinido-indemma/spec/record_spec.js +0 -37
- data/vendor/components/indefinido-indemma/spec/spec_helper.js +0 -11
- data/vendor/components/indefinido-indemma/spec/support/value_objects/phone.js +0 -45
- data/vendor/components/indefinido-indemma/src/lib/extensions/rivets.coffee +0 -17
- data/vendor/components/indefinido-indemma/src/lib/record/associable.coffee +0 -173
- data/vendor/components/indefinido-indemma/src/lib/record/errors.coffee +0 -20
- data/vendor/components/indefinido-indemma/src/lib/record/maid.coffee +0 -16
- data/vendor/components/indefinido-indemma/src/lib/record/resource.coffee +0 -103
- data/vendor/components/indefinido-indemma/src/lib/record/rest.coffee +0 -28
- data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +0 -314
- data/vendor/components/indefinido-indemma/src/lib/record/scopable.coffee +0 -266
- data/vendor/components/indefinido-indemma/src/lib/record/translationable.coffee +0 -18
- data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +0 -209
- data/vendor/components/indefinido-indemma/src/lib/record/validations/associated.coffee +0 -32
- data/vendor/components/indefinido-indemma/src/lib/record/validations/confirmation.coffee +0 -19
- data/vendor/components/indefinido-indemma/src/lib/record/validations/cpf.coffee +0 -58
- data/vendor/components/indefinido-indemma/src/lib/record/validations/presence.coffee +0 -19
- data/vendor/components/indefinido-indemma/src/lib/record/validations/remote.coffee +0 -65
- data/vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee +0 -32
- data/vendor/components/indefinido-indemma/src/lib/record.coffee +0 -123
- data/vendor/components/indefinido-indemma/src/spec/record/associable_spec.coffee +0 -63
- data/vendor/components/indefinido-indemma/src/spec/record/resource_spec.coffee +0 -64
- data/vendor/components/indefinido-indemma/src/spec/record/rest_spec.coffee +0 -22
- data/vendor/components/indefinido-indemma/src/spec/record/restfulable_spec.coffee +0 -164
- data/vendor/components/indefinido-indemma/src/spec/record/scopable_spec.coffee +0 -181
- data/vendor/components/indefinido-indemma/src/spec/record/translationable.coffee +0 -19
- data/vendor/components/indefinido-indemma/src/spec/record/validatable_spec.coffee +0 -100
- data/vendor/components/indefinido-indemma/src/spec/record/validations/associated_spec.coffee +0 -35
- data/vendor/components/indefinido-indemma/src/spec/record/validations/confirmation_spec.coffee +0 -25
- data/vendor/components/indefinido-indemma/src/spec/record/validations/cpf_spec.coffee +0 -28
- data/vendor/components/indefinido-indemma/src/spec/record/validations/presence_spec.coffee +0 -24
- data/vendor/components/indefinido-indemma/src/spec/record/validations/remote_spec.coffee +0 -72
- data/vendor/components/indefinido-indemma/src/spec/record/validations/type_spec.coffee +0 -33
- data/vendor/components/indefinido-indemma/src/spec/record_spec.coffee +0 -23
- data/vendor/components/indefinido-indemma/src/spec/spec_helper.coffee +0 -9
- data/vendor/components/indefinido-indemma/src/spec/support/value_objects/phone.coffee +0 -30
- data/vendor/components/indefinido-indemma/vendor/owl/pluralize.js +0 -190
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./lib/observable');
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
exports.adapter = {
|
|
2
|
-
subscribe: function(record, attribute_path, callback) {
|
|
3
|
-
if (record == null) {
|
|
4
|
-
throw new TypeError('observable.adapters.rivets.subscribe: No record provided for subscription');
|
|
5
|
-
}
|
|
6
|
-
return record.subscribe(attribute_path, callback);
|
|
7
|
-
},
|
|
8
|
-
unsubscribe: function(record, attribute_path, callback) {
|
|
9
|
-
if (record == null) {
|
|
10
|
-
throw new TypeError('observable.adapters.rivets.unsubscribe: No record provided for subscription');
|
|
11
|
-
}
|
|
12
|
-
return record.unsubscribe(attribute_path, callback);
|
|
13
|
-
},
|
|
14
|
-
read: function(record, attribute_path) {
|
|
15
|
-
if (record == null) {
|
|
16
|
-
throw new TypeError('observable.adapters.rivets.read: No record provided for subscription');
|
|
17
|
-
}
|
|
18
|
-
return record[attribute_path];
|
|
19
|
-
},
|
|
20
|
-
publish: function(record, attribute_path, value) {
|
|
21
|
-
if (record == null) {
|
|
22
|
-
throw new TypeError('observable.adapters.rivets.publish: No record provided for subscription');
|
|
23
|
-
}
|
|
24
|
-
return record[attribute_path] = value;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
// TODO Better keypath support
|
|
2
|
-
|
|
3
|
-
// Shim older browsers
|
|
4
|
-
if (!Object.create ) require('../vendor/shims/object.create');
|
|
5
|
-
if (!Array.prototype.indexOf) require('../vendor/shims/array.indexOf');
|
|
6
|
-
|
|
7
|
-
// Object.defineProperty (for ie5+)
|
|
8
|
-
if (typeof require != 'undefined') {
|
|
9
|
-
require('../vendor/shims/accessors.js');
|
|
10
|
-
|
|
11
|
-
// __lookup*__ and __define*__ for browsers with defineProperty support
|
|
12
|
-
// TODO Figure out why gives an infinity loop
|
|
13
|
-
require('../vendor/shims/accessors-legacy.js');
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// Require Dependencies
|
|
17
|
-
if (!window['jQuery']) jQuery = $ = require('jquery');
|
|
18
|
-
|
|
19
|
-
// Observable Implementation
|
|
20
|
-
var observable, requiresDomElement, check, lookup, mixin, generator, mutations;
|
|
21
|
-
|
|
22
|
-
// Support objects
|
|
23
|
-
|
|
24
|
-
// TODO implement Object.getOwnPropertyDescriptor
|
|
25
|
-
lookup = {
|
|
26
|
-
setter: Object.prototype.__lookupSetter__ || function (property) {
|
|
27
|
-
return this.observed && this.observed[property + '_setter'];
|
|
28
|
-
},
|
|
29
|
-
getter: Object.prototype.__lookupGetter__ || function (property) {
|
|
30
|
-
var default_getter;
|
|
31
|
-
return this.observed && this.observed[property + '_getter'] || (
|
|
32
|
-
(default_getter = $.proxy(lookup.default_getter, this, property)) &&
|
|
33
|
-
(default_getter.is_default = true) &&
|
|
34
|
-
(default_getter)
|
|
35
|
-
);
|
|
36
|
-
},
|
|
37
|
-
types: {
|
|
38
|
-
'undefined': undefined,
|
|
39
|
-
'null': null,
|
|
40
|
-
'true': true,
|
|
41
|
-
'false': false,
|
|
42
|
-
'NaN': NaN
|
|
43
|
-
},
|
|
44
|
-
// overrides: [Object.prototype.toString, String.prototype.toString, Array.prototype.toString, Number.prototype.toString],
|
|
45
|
-
basic_types: [undefined, null],
|
|
46
|
-
default_getter: function (property) {
|
|
47
|
-
var possible_value = this[property];
|
|
48
|
-
|
|
49
|
-
// Getter is the toString property of object
|
|
50
|
-
if (possible_value && possible_value.hasOwnProperty('toString')) {
|
|
51
|
-
|
|
52
|
-
if (possible_value.toString.is_default) return this.observed[property];
|
|
53
|
-
|
|
54
|
-
return possible_value.toString.call(this);
|
|
55
|
-
|
|
56
|
-
} else if (possible_value in lookup.types) {
|
|
57
|
-
|
|
58
|
-
return lookup.types[possible_value];
|
|
59
|
-
|
|
60
|
-
} else return possible_value;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
// Core Implementation
|
|
66
|
-
|
|
67
|
-
requiresDomElement = Object.defineProperty['requiresDomElement'];
|
|
68
|
-
|
|
69
|
-
mixin = {
|
|
70
|
-
subscribe: function observable_subscribe (keypath, callback) {
|
|
71
|
-
if (keypath == 'observed') throw new TypeError('observable.subscribe: cannot observe reserved property observed');
|
|
72
|
-
if ($.isArray(this[keypath])) generator.mutations.call(this, keypath);
|
|
73
|
-
generator.observe.call(this, keypath, callback);
|
|
74
|
-
return true;
|
|
75
|
-
},
|
|
76
|
-
unsubscribe: function (object, keypath, callback) {
|
|
77
|
-
console.error("observable.unsubscribe not implemented yet.");
|
|
78
|
-
console.log(object, keypath, callback);
|
|
79
|
-
},
|
|
80
|
-
publish: function observable_publish (keypath, value) {
|
|
81
|
-
// TODO actually call callbacks
|
|
82
|
-
return this[keypath] = value;
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if (requiresDomElement) {
|
|
88
|
-
|
|
89
|
-
observable = function (object) {
|
|
90
|
-
|
|
91
|
-
// observable() or observable(object)
|
|
92
|
-
if (this.document && this.location) {
|
|
93
|
-
if (!object) {
|
|
94
|
-
object = {};
|
|
95
|
-
}
|
|
96
|
-
// observable.call(...)
|
|
97
|
-
} else {
|
|
98
|
-
// observable.call(param, param)
|
|
99
|
-
if (object) {
|
|
100
|
-
throw new TypeError('Two objects provided! Call either with observable.call(object) or observable(object), not with observable.call(param, param)');
|
|
101
|
-
// observable.call(object)
|
|
102
|
-
} else {
|
|
103
|
-
object = this;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (!jQuery.isReady) throw new Error('observable.call: For compatibility reasons, observable can only be called when dom is loaded.');
|
|
108
|
-
var fix = document.createElement('fix');
|
|
109
|
-
|
|
110
|
-
if (!jQuery.isReady) $(function () {document.body.appendChild(fix);});
|
|
111
|
-
else document.body.appendChild(fix);
|
|
112
|
-
|
|
113
|
-
if (!object.observed) generator.observable_for(fix);
|
|
114
|
-
|
|
115
|
-
return $.extend(fix, object, mixin);
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
var ignores = document.createElement('fix'), fix_ignores = [], property;
|
|
119
|
-
|
|
120
|
-
for (property in ignores) {
|
|
121
|
-
fix_ignores.push(property);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
observable.ignores = fix_ignores;
|
|
125
|
-
|
|
126
|
-
} else {
|
|
127
|
-
|
|
128
|
-
observable = function (object) {
|
|
129
|
-
// observable() or observable(object)
|
|
130
|
-
if (this === window) {
|
|
131
|
-
if (!object) {
|
|
132
|
-
object = {};
|
|
133
|
-
}
|
|
134
|
-
// observable.call(...)
|
|
135
|
-
} else if (this !== window) {
|
|
136
|
-
// observable.call(param, param)
|
|
137
|
-
if (object) {
|
|
138
|
-
throw new TypeError('Two objects provided! Call either with observable.call(object) or observable(object), not with observable.call(param, param)');
|
|
139
|
-
// observable.call(object)
|
|
140
|
-
} else {
|
|
141
|
-
object = this;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
if (!object.observed) generator.observable_for(object);
|
|
146
|
-
|
|
147
|
-
return $.extend(object, mixin);
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
observable.ignores = [];
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
observable.unobserve = function (object) {
|
|
155
|
-
var property;
|
|
156
|
-
|
|
157
|
-
for (property in mixin) {
|
|
158
|
-
delete object[property];
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
delete object.observed;
|
|
162
|
-
return true;
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
check = function (keypath, value) {
|
|
166
|
-
this.observed[keypath] = value;
|
|
167
|
-
return true;
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
generator = {
|
|
171
|
-
observe: function(keypath, callback) {
|
|
172
|
-
return Object.defineProperty(this, keypath, {
|
|
173
|
-
get: generator.getter.call(this, keypath),
|
|
174
|
-
set: generator.setter.call(this, keypath, callback),
|
|
175
|
-
enumerable: true
|
|
176
|
-
});
|
|
177
|
-
},
|
|
178
|
-
|
|
179
|
-
observable_for: function (object) {
|
|
180
|
-
return Object.defineProperty(object, 'observed', {
|
|
181
|
-
configurable: true,
|
|
182
|
-
enumerable: false,
|
|
183
|
-
value: {}
|
|
184
|
-
});
|
|
185
|
-
},
|
|
186
|
-
|
|
187
|
-
// TODO improve readability
|
|
188
|
-
// TODO implement linked list
|
|
189
|
-
setter: function subscribed_setter (keypath, callback) {
|
|
190
|
-
var setter = lookup.setter.call(this, keypath), current, getter, old_setter;
|
|
191
|
-
|
|
192
|
-
// Set value
|
|
193
|
-
this.observed[keypath] = lookup.getter.call(this, keypath) && lookup.getter.call(this, keypath)() || this[keypath];
|
|
194
|
-
|
|
195
|
-
// First time subscribing
|
|
196
|
-
if (!setter) {
|
|
197
|
-
setter = function setter (value) {
|
|
198
|
-
check.call(this, keypath, value) !== false && setter.callback_thread.call(this, value);
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
// First time subscribing but does not have callback_thread associated
|
|
202
|
-
} else if (!setter.callback_thread) {
|
|
203
|
-
old_setter = setter;
|
|
204
|
-
setter = function setter (value) {
|
|
205
|
-
check.call(this, keypath, value) !== false && setter.callback_thread.call(this, value);
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
setter.callback_thread = old_setter;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
current = setter.callback_thread || $.noop;
|
|
212
|
-
|
|
213
|
-
setter.callback_thread = function thread (value) {
|
|
214
|
-
current.call(this, value) !== false && callback.call(this, value);
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
// TODO better implementation of loookup setter / lookup getter on accessors shim
|
|
218
|
-
if (requiresDomElement) this.observed[keypath + '_setter'] = setter;
|
|
219
|
-
|
|
220
|
-
return setter;
|
|
221
|
-
},
|
|
222
|
-
getter: function subscribed_getter (keypath) {
|
|
223
|
-
var object = this, getter;
|
|
224
|
-
|
|
225
|
-
getter = lookup.getter.call(this, keypath) || function root_getter () {
|
|
226
|
-
return object.observed[keypath];
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
// TODO better implementation of loookup setter / lookup getter on accessors shim
|
|
230
|
-
if (requiresDomElement) this.observed[keypath + '_getter'] = getter;
|
|
231
|
-
|
|
232
|
-
return getter;
|
|
233
|
-
},
|
|
234
|
-
mutations: function(keypath) {
|
|
235
|
-
var setter = lookup.setter.call(this, keypath),
|
|
236
|
-
array = this[keypath];
|
|
237
|
-
|
|
238
|
-
// First time subscribing, and it is an array
|
|
239
|
-
if (!setter) {
|
|
240
|
-
// TODO use this.subscribe instead of generator.observe.call
|
|
241
|
-
generator.observe.call(this, keypath, function(new_array) {
|
|
242
|
-
var i, type, j;
|
|
243
|
-
|
|
244
|
-
// Avoid non push operations!
|
|
245
|
-
// TODO remove jquery dependency
|
|
246
|
-
if ($.type(new_array) !== 'array') return;
|
|
247
|
-
|
|
248
|
-
// Skip this if it is not the first time
|
|
249
|
-
if (new_array.object === array.object && new_array.thread === array.thread) return;
|
|
250
|
-
i = new_array.length;
|
|
251
|
-
j = new_array.length;
|
|
252
|
-
|
|
253
|
-
new_array.thread = array.thread;
|
|
254
|
-
new_array.object = array.object;
|
|
255
|
-
new_array.key = keypath;
|
|
256
|
-
|
|
257
|
-
while (i--) {
|
|
258
|
-
// TODO remove jquery dependency
|
|
259
|
-
type = $.type(arguments[i]);
|
|
260
|
-
if (!new_array[i].observed
|
|
261
|
-
&& (type != 'object' || type != 'array')) {
|
|
262
|
-
new_array[i] = observable(new_array[i]);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
new_array.length = j;
|
|
267
|
-
|
|
268
|
-
// Update internal property value
|
|
269
|
-
$.extend(new_array, mutations.overrides);
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
setter = lookup.setter.call(this, keypath);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
// TODO Transform this code to define property
|
|
276
|
-
array.thread = setter.callback_thread;
|
|
277
|
-
array.object = this;
|
|
278
|
-
array.key = keypath;
|
|
279
|
-
|
|
280
|
-
// Override default array methods
|
|
281
|
-
$.extend(array, mutations.overrides);
|
|
282
|
-
|
|
283
|
-
if (!this.observed.mutate) this.observed.mutate = mutations.mutate;
|
|
284
|
-
}
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
mutations = {
|
|
288
|
-
mutate: function(thread, method, array) {
|
|
289
|
-
array.method = method;
|
|
290
|
-
thread.call(this, array);
|
|
291
|
-
this.publish(array.key, array); // TODO ver se é uma boa
|
|
292
|
-
delete array.method;
|
|
293
|
-
},
|
|
294
|
-
overrides: {
|
|
295
|
-
push: function() {
|
|
296
|
-
var i = arguments.length, operation;
|
|
297
|
-
|
|
298
|
-
while (i--) {
|
|
299
|
-
!arguments[i].observed && $.type(arguments[i]) == 'object' && (arguments[i] = observable(arguments[i]));
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
operation = Array.prototype.push.apply(this, arguments); // TODO Convert arguments for real array
|
|
303
|
-
this.object.observed.mutate.call(this.object, this.thread, 'push', this);
|
|
304
|
-
return operation;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
};
|
|
308
|
-
|
|
309
|
-
$('pop shift unshift'.split(' ')).each(function (i, method) {
|
|
310
|
-
mutations.overrides[method] = function () {
|
|
311
|
-
Array.prototype[method].apply(this, arguments);
|
|
312
|
-
this.object.observed.mutate.call(this.object, this.thread, method, this);
|
|
313
|
-
};
|
|
314
|
-
});
|
|
315
|
-
|
|
316
|
-
if (typeof exports != 'undefined') {
|
|
317
|
-
exports.mixin = observable;
|
|
318
|
-
} else {
|
|
319
|
-
window.observable = observable;
|
|
320
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Xccessors Legacy: Cross-browser legacy non-standard accessors
|
|
3
|
-
* http://github.com/eligrey/Xccessors
|
|
4
|
-
*
|
|
5
|
-
* 2010-03-21
|
|
6
|
-
*
|
|
7
|
-
* By Elijah Grey, http://eligrey.com
|
|
8
|
-
*
|
|
9
|
-
* A shim that implements __defineGetter__, __defineSetter__, __lookupGetter__,
|
|
10
|
-
* and __lookupSetter__
|
|
11
|
-
* in browsers that have ECMAScript 5 accessor support but not the legacy methods.
|
|
12
|
-
*
|
|
13
|
-
* Public Domain.
|
|
14
|
-
* NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/*global Element, Window, HTMLDocument */
|
|
18
|
-
|
|
19
|
-
/*jslint white: true, undef: true, nomen: true, eqeqeq: true, bitwise: true, regexp: true,
|
|
20
|
-
strict: true, newcap: true, immed: true, maxlen: 90 */
|
|
21
|
-
|
|
22
|
-
/*! @source http://purl.eligrey.com/github/Xccessors/blob/master/xccessors-legacy.js*/
|
|
23
|
-
|
|
24
|
-
"use strict";
|
|
25
|
-
|
|
26
|
-
(function () {
|
|
27
|
-
var
|
|
28
|
-
defineProp = Object.defineProperty,
|
|
29
|
-
getProp = Object.getOwnPropertyDescriptor,
|
|
30
|
-
|
|
31
|
-
// methods being implemented
|
|
32
|
-
methods = [
|
|
33
|
-
"__defineGetter__", "__defineSetter__", "__lookupGetter__", "__lookupSetter__"
|
|
34
|
-
],
|
|
35
|
-
|
|
36
|
-
// objects to implement legacy methods onto their prototypes
|
|
37
|
-
// Object.prototype[method] doesn't work on everything for IE
|
|
38
|
-
extend = [Object, String, Array, Function, Boolean, Number,
|
|
39
|
-
RegExp, Date, Error],
|
|
40
|
-
len = extend.length,
|
|
41
|
-
proto = "prototype",
|
|
42
|
-
extendMethod = function (method, fun) {
|
|
43
|
-
var i = len;
|
|
44
|
-
if (!(method in {})) {
|
|
45
|
-
while (i--) {
|
|
46
|
-
defineProp(extend[i][proto], method, {value: fun, enumerable: false})
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
// IE8 Does not support enumerable key so we abort!
|
|
52
|
-
// TODO Fix this without cluttering the prototype
|
|
53
|
-
try {defineProp({}, 'domo', {value: true, enumerable: false})} catch (e) {return;}
|
|
54
|
-
|
|
55
|
-
// IE7 Does not have Element, Window defined, so we check here
|
|
56
|
-
if (typeof Element != 'undefined') extend.push(Element);
|
|
57
|
-
if (typeof Window != 'undefined') extend.push(Window);
|
|
58
|
-
|
|
59
|
-
// IE9 Does not have html document defined, so we check here
|
|
60
|
-
if (typeof HTMLDocument != 'undefined') extend.push(HTMLDocument);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (defineProp) {
|
|
64
|
-
extendMethod(methods[0], function (prop, fun) { // __defineGetter__
|
|
65
|
-
defineProp(this, prop, { get: fun });
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
extendMethod(methods[1], function (prop, fun) { // __defineSetter__
|
|
69
|
-
defineProp(this, prop, { set: fun });
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (getProp && !defineProp.requiresDomElement) {
|
|
74
|
-
extendMethod(methods[2], function (prop) { // __lookupGetter__
|
|
75
|
-
var descriptor = getProp(this, prop);
|
|
76
|
-
if (descriptor && descriptor.get) return descriptor.get;
|
|
77
|
-
|
|
78
|
-
// look in prototype too
|
|
79
|
-
descriptor = getProp(this.constructor[proto], prop);
|
|
80
|
-
if (descriptor && descriptor.get) return descriptor.get;
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
extendMethod(methods[3], function (prop) { // __lookupSetter__
|
|
84
|
-
var descriptor = getProp(this, prop);
|
|
85
|
-
if (descriptor && descriptor.set) return descriptor.set;
|
|
86
|
-
|
|
87
|
-
// look in prototype too
|
|
88
|
-
descriptor = getProp(this.constructor[proto], prop);
|
|
89
|
-
if (descriptor && descriptor.set) return descriptor.set;
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}());
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
(function () {
|
|
4
|
-
// Cache native objects for better performacy and easy to use
|
|
5
|
-
// references
|
|
6
|
-
var ObjectProto = Object.prototype,
|
|
7
|
-
hasOwnProp = ObjectProto.hasOwnProperty,
|
|
8
|
-
getProp = Object.getOwnPropertyDescriptor,
|
|
9
|
-
defineProp = Object.defineProperty,
|
|
10
|
-
toStrings = [],
|
|
11
|
-
features = null,
|
|
12
|
-
stack = [], detach,
|
|
13
|
-
prototypeBase = [Object, String, Array, Function, Boolean, Number, RegExp, Date, Error];
|
|
14
|
-
|
|
15
|
-
// IE7 Does not have Element and Window defined, so only add them if
|
|
16
|
-
// they exists check here
|
|
17
|
-
if (typeof Element != 'undefined') prototypeBase.push(Element);
|
|
18
|
-
if (typeof Window != 'undefined') prototypeBase.push(Window);
|
|
19
|
-
|
|
20
|
-
features = {
|
|
21
|
-
allowsNonEnumerableProperty: function () {
|
|
22
|
-
var broken = false;
|
|
23
|
-
try {
|
|
24
|
-
defineProp({}, 'x', {})
|
|
25
|
-
} catch(e) {
|
|
26
|
-
broken = true;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return (!broken) && (!!defineProp);
|
|
30
|
-
},
|
|
31
|
-
supportsOnPropertyChangeEvent: function () {
|
|
32
|
-
var test = document.createElement('domo');
|
|
33
|
-
return 'onpropertychange' in test
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (!features.allowsNonEnumerableProperty() && features.supportsOnPropertyChangeEvent()) {
|
|
38
|
-
|
|
39
|
-
// Check if node is on document
|
|
40
|
-
var inDocument = function inDocument (node) {
|
|
41
|
-
var curr = node;
|
|
42
|
-
while (curr != null) {
|
|
43
|
-
curr = curr.parentNode;
|
|
44
|
-
if (curr == document) return true;
|
|
45
|
-
}
|
|
46
|
-
return false;
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
// Generate property event handler for setting some property
|
|
50
|
-
generate_setter = function generate_setter (object, property, descriptor) {
|
|
51
|
-
var setter = function object_define_property_shim_change_listener (event) {
|
|
52
|
-
var current_value, changed_value;
|
|
53
|
-
if (
|
|
54
|
-
// if we are setting this property
|
|
55
|
-
event.propertyName == property
|
|
56
|
-
|
|
57
|
-
// prevent firing setters again
|
|
58
|
-
// by checking callstack
|
|
59
|
-
&& stack.indexOf(property) === -1
|
|
60
|
-
) {
|
|
61
|
-
// Remove the event so it doesn't fire again and
|
|
62
|
-
// create a loop
|
|
63
|
-
object.detachEvent("onpropertychange", setter);
|
|
64
|
-
|
|
65
|
-
// If detaching the current setter
|
|
66
|
-
// just remove the event listener
|
|
67
|
-
if (detach) return;
|
|
68
|
-
|
|
69
|
-
// get the changed value, run it through the set function
|
|
70
|
-
changed_value = object[property];
|
|
71
|
-
descriptor.set.call(object, changed_value);
|
|
72
|
-
|
|
73
|
-
// Restore get function if it exists and there's no falsey value
|
|
74
|
-
if (descriptor.get && descriptor.value && descriptor.value.toString != descriptor.bound_getter) {
|
|
75
|
-
// TODO if (descriptor.get + '' === 'undefined') descriptor.get = ''; // Handle undefined getter
|
|
76
|
-
descriptor.value.toString = descriptor.bound_getter
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Update stored values
|
|
80
|
-
object[property] = descriptor.value = changed_value;
|
|
81
|
-
|
|
82
|
-
// restore the event handler
|
|
83
|
-
object.attachEvent("onpropertychange", setter);
|
|
84
|
-
|
|
85
|
-
// stack.pop();
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return setter;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Shim define property with apropriated fail cases exceptions
|
|
94
|
-
Object.defineProperty = function (obj, prop, descriptor) {
|
|
95
|
-
var fix;
|
|
96
|
-
|
|
97
|
-
if (!obj.attachEvent) throw new TypeError('Object.defineProperty: First parameter must be a dom element.');
|
|
98
|
-
|
|
99
|
-
if (!fix && !inDocument(obj)) throw new TypeError('Object.defineProperty: Dom element must be attached in document.');
|
|
100
|
-
|
|
101
|
-
if (!descriptor) throw new TypeError('Object.defineProperty (object, property, descriptor): Descriptor must be an object, was \'' + descriptor + '\'.');
|
|
102
|
-
|
|
103
|
-
if ((descriptor.get || descriptor.set) && descriptor.value) throw new TypeError('Object.defineProperty: Descriptor must have only getters and setters or value.');
|
|
104
|
-
|
|
105
|
-
// Store current value in descriptor
|
|
106
|
-
descriptor.value = descriptor.value || (descriptor.get && descriptor.get.call(obj)) || obj[prop];
|
|
107
|
-
|
|
108
|
-
if (descriptor.get || descriptor.set) {
|
|
109
|
-
// Detach old listeners if any
|
|
110
|
-
detach = true;
|
|
111
|
-
obj[prop] = 'detaching';
|
|
112
|
-
detach = false;
|
|
113
|
-
|
|
114
|
-
if (descriptor.get) {
|
|
115
|
-
descriptor.bound_getter = $.extend($.proxy(descriptor.get, obj), descriptor.get);
|
|
116
|
-
|
|
117
|
-
// We only bind the getter when we have a non falsey value
|
|
118
|
-
if (descriptor.value) descriptor.value.toString = descriptor.bound_getter;
|
|
119
|
-
|
|
120
|
-
// Although its not allowed for convention to have getters
|
|
121
|
-
// and setters with the descriptor value, here we just reuse
|
|
122
|
-
// the descriptor stored value
|
|
123
|
-
obj[prop] = descriptor.value;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
(fix || obj).attachEvent("onpropertychange", generate_setter(obj, prop, descriptor));
|
|
127
|
-
|
|
128
|
-
} else {
|
|
129
|
-
obj[prop] = descriptor.value;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return obj;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// Allow others to check requirements for define property
|
|
136
|
-
Object.defineProperty.requiresDomElement = true
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
// Since we shimed define property, we can also shim defineProperties
|
|
141
|
-
if (!Object.defineProperties) {
|
|
142
|
-
Object.defineProperties = function (obj, props) {
|
|
143
|
-
for (var prop in props) {
|
|
144
|
-
if (hasOwnProp.call(props, prop)) {
|
|
145
|
-
Object.defineProperty(obj, prop, props[prop]);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/* TODO Use define Property, and only define if
|
|
152
|
-
non-enumerable properties are allowed
|
|
153
|
-
|
|
154
|
-
also define __defineGetter__ and __defineSetter__
|
|
155
|
-
if (!Object.defineProperty.requiresDomElement) {
|
|
156
|
-
if (!Object.prototype.__lookupGetter__) {
|
|
157
|
-
Object.__lookupGetter__ = function () {
|
|
158
|
-
console && console.log('__lookupGetter__ not implemented yet');
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
if (!Object.__lookupSetter__) {
|
|
164
|
-
Object.prototype.__lookupSetter__ = function () {
|
|
165
|
-
console && console.log('__lookupSetter__ not implemented yet');
|
|
166
|
-
return null;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
*/
|
|
171
|
-
|
|
172
|
-
})();
|
|
173
|
-
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
// ES5 15.2.3.5
|
|
2
|
-
// http://es5.github.com/#x15.2.3.5
|
|
3
|
-
if (!Object.create) {
|
|
4
|
-
|
|
5
|
-
// Contributed by Brandon Benvie, October, 2012
|
|
6
|
-
var createEmpty;
|
|
7
|
-
var supportsProto = Object.prototype.__proto__ === null;
|
|
8
|
-
if (supportsProto || typeof document == 'undefined') {
|
|
9
|
-
createEmpty = function () {
|
|
10
|
-
return { "__proto__": null };
|
|
11
|
-
};
|
|
12
|
-
} else {
|
|
13
|
-
// In old IE __proto__ can't be used to manually set `null`, nor does
|
|
14
|
-
// any other method exist to make an object that inherits from nothing,
|
|
15
|
-
// aside from Object.prototype itself. Instead, create a new global
|
|
16
|
-
// object and *steal* its Object.prototype and strip it bare. This is
|
|
17
|
-
// used as the prototype to create nullary objects.
|
|
18
|
-
createEmpty = function () {
|
|
19
|
-
var iframe = document.createElement('iframe');
|
|
20
|
-
var parent = document.body || document.documentElement;
|
|
21
|
-
iframe.style.display = 'none';
|
|
22
|
-
parent.appendChild(iframe);
|
|
23
|
-
iframe.src = 'javascript:';
|
|
24
|
-
var empty = iframe.contentWindow.Object.prototype;
|
|
25
|
-
parent.removeChild(iframe);
|
|
26
|
-
iframe = null;
|
|
27
|
-
delete empty.constructor;
|
|
28
|
-
delete empty.hasOwnProperty;
|
|
29
|
-
delete empty.propertyIsEnumerable;
|
|
30
|
-
delete empty.isPrototypeOf;
|
|
31
|
-
delete empty.toLocaleString;
|
|
32
|
-
delete empty.toString;
|
|
33
|
-
delete empty.valueOf;
|
|
34
|
-
empty.__proto__ = null;
|
|
35
|
-
|
|
36
|
-
function Empty() {}
|
|
37
|
-
Empty.prototype = empty;
|
|
38
|
-
// short-circuit future calls
|
|
39
|
-
createEmpty = function () {
|
|
40
|
-
return new Empty();
|
|
41
|
-
};
|
|
42
|
-
return new Empty();
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
Object.create = function create(prototype, properties) {
|
|
47
|
-
|
|
48
|
-
var object;
|
|
49
|
-
function Type() {} // An empty constructor.
|
|
50
|
-
|
|
51
|
-
if (prototype === null) {
|
|
52
|
-
object = createEmpty();
|
|
53
|
-
} else {
|
|
54
|
-
if (typeof prototype !== "object" && typeof prototype !== "function") {
|
|
55
|
-
// In the native implementation `parent` can be `null`
|
|
56
|
-
// OR *any* `instanceof Object` (Object|Function|Array|RegExp|etc)
|
|
57
|
-
// Use `typeof` tho, b/c in old IE, DOM elements are not `instanceof Object`
|
|
58
|
-
// like they are in modern browsers. Using `Object.create` on DOM elements
|
|
59
|
-
// is...err...probably inappropriate, but the native version allows for it.
|
|
60
|
-
throw new TypeError("Object prototype may only be an Object or null"); // same msg as Chrome
|
|
61
|
-
}
|
|
62
|
-
Type.prototype = prototype;
|
|
63
|
-
object = new Type();
|
|
64
|
-
// IE has no built-in implementation of `Object.getPrototypeOf`
|
|
65
|
-
// neither `__proto__`, but this manually setting `__proto__` will
|
|
66
|
-
// guarantee that `Object.getPrototypeOf` will work as expected with
|
|
67
|
-
// objects created using `Object.create`
|
|
68
|
-
object.__proto__ = prototype;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (properties !== void 0) {
|
|
72
|
-
Object.defineProperties(object, properties);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return object;
|
|
76
|
-
};
|
|
77
|
-
}
|