sproutcore 1.4.5 → 1.5.0.pre.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +35 -0
- data/VERSION.yml +2 -2
- data/lib/Buildfile +13 -4
- data/lib/buildtasks/build.rake +20 -17
- data/lib/buildtasks/manifest.rake +143 -78
- data/lib/buildtasks/target.rake +1 -0
- data/lib/doc_templates/sproutcore/index.tmpl +18 -4
- data/lib/doc_templates/sproutcore/publish.js +1 -1
- data/lib/frameworks/sproutcore/Buildfile +24 -13
- data/lib/frameworks/sproutcore/{CHANGELOG-1.4.md → CHANGELOG.md} +0 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/controllers/file.js +8 -48
- data/lib/frameworks/sproutcore/apps/greenhouse/core.js +3 -5
- data/lib/frameworks/sproutcore/apps/greenhouse/data_source.js +1 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/app_page.js +26 -4
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/strings.js +7 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/main.js +1 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/models/design.js +6 -2
- data/lib/frameworks/sproutcore/apps/greenhouse/models/dir.js +8 -7
- data/lib/frameworks/sproutcore/apps/greenhouse/models/file.js +2 -2
- data/lib/frameworks/sproutcore/apps/greenhouse/states/inspector.js +133 -125
- data/lib/frameworks/sproutcore/apps/greenhouse/states/library.js +121 -112
- data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +233 -191
- data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +265 -258
- data/lib/frameworks/sproutcore/apps/greenhouse/states/ready.js +153 -141
- data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +21 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +108 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +36 -0
- data/lib/frameworks/sproutcore/apps/test_controls/core.js +29 -0
- data/lib/frameworks/sproutcore/apps/test_controls/main.js +14 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +142 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +45 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +84 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +40 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/loading.rhtml +9 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +60 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +144 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +42 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +48 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +76 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +98 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +60 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +53 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +50 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +44 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +41 -0
- data/lib/frameworks/sproutcore/apps/test_controls/theme.js +34 -0
- data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +7 -0
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/images/main-bg.png +0 -0
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +24 -6
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +36 -46
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/array.js +175 -195
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/controller.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/object.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/amber/core.js +201 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/ext/object.js +23 -23
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/ext/run_loop.js +47 -47
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/mixins/delegate_support.js +36 -36
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/mixins/responder_context.js +55 -55
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/mixins/selection_support.js +45 -45
- data/lib/frameworks/sproutcore/frameworks/amber/mixins/string.js +163 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/panes/main.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/panes/pane.js +123 -9
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/protocols/observable_protocol.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/protocols/sparse_array_delegate.js +40 -40
- data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → amber/resources}/core.css +0 -103
- data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → amber/resources}/view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/application.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/browser.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/builder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/amber/system/core_query.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/cursor.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/device.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/event.js +34 -14
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/json.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/locale.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/platform.js +30 -10
- data/lib/frameworks/sproutcore/frameworks/amber/system/ready.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/render_context.js +330 -255
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/responder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/root_responder.js +152 -60
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/system/selection_set.js +140 -145
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/system/sparse_array.js +101 -87
- data/lib/frameworks/sproutcore/frameworks/amber/system/theme.js +316 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/timer.js +149 -147
- data/lib/frameworks/sproutcore/frameworks/amber/system/utils.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/amber/system/utils/rect.js +98 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/array_case.js +41 -41
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/enum_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/null_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/selection_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/single_case.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/empty_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/multiple_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/single_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/single_enumerable_case.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/mixins/responder_context.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/amber/tests/mixins/string.js +55 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/builder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/core_query/within.js +7 -8
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/json.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/locale.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/begin.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/element.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/end.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/get.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_attr.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_basic.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_className.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_style.js +11 -3
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/init.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/join.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/push_text.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/tag.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/update.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeKeyPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeMainPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeMenuPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/root_responder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/targetForAction.js +46 -9
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/add.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/copy.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/indexSetForSource.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/isEqual.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/remove.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/sparse_array.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/amber/tests/system/theme.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/invalidate.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/invokeLater.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/isPaused.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/performAction.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/schedule.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/utils/normalizeURL.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/utils/rect.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/main_pane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/append_remove.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/firstResponder.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/keyPane.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/layout.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/sendEvent.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/pane/sendTouchEvent.js +267 -0
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/animation.js +320 -0
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/build.js +85 -0
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/build_children.js +89 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/clippingFrame.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/convertFrames.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/convertLayouts.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/createChildViews.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/createLayer.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/destroyLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/didAppendToDocument.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/findLayerInParentLayer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/init.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/insertBefore.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/isVisible.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/isVisibleInWindow.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutChildViews.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutDidChange.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutStyle.js +135 -64
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/parentViewDidChange.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/prepareContext.js +16 -8
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/removeChild.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/render.js +37 -5
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/render_delegate_support.js +163 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/replaceChild.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/theme.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/updateLayer.js +12 -10
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/updateLayerLocation.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/view.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/viewDidResize.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/amber/views/base.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/amber/views/layout_style.js +478 -0
- data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/views/view.js +1719 -1029
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +32 -18
- data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +10 -5
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/bench.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +24 -17
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +1 -13
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +72 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +66 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +58 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +5 -14
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +4 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +27 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +5 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +30 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +130 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +20 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +9 -27
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +32 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +57 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/helpers/slicing.js +34 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +30 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +175 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +109 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +70 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +58 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +39 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/source_list.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +79 -53
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +7 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +45 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +33 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +11 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +128 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +10 -10
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +35 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +162 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +153 -208
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +18 -48
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +26 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +3 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +112 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +388 -309
- data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +257 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +8 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation.js +237 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation_bar.js +181 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +14 -76
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +59 -164
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +80 -47
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +84 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +320 -289
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +212 -76
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +33 -36
- data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +347 -248
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +41 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +2 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +251 -0
- data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/default_styles.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/strings.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/mixins/edit_mode.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/forms/mixins/emptiness.js +95 -0
- data/lib/frameworks/sproutcore/frameworks/forms/renderer_delegates/form.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/forms/renderer_delegates/form_row.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_checkbox_field.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_field.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_label.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_radio_field.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_row.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_text_field.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +280 -0
- data/lib/frameworks/sproutcore/frameworks/forms/views/form_row.js +183 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +5 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +0 -150
- data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/benchmark.css +146 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +2 -14
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/strings.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +4 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/pinch.js +81 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/swipe.js +144 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/tap.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/license.js +24 -26
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +39 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +244 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +68 -23
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +626 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +214 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +89 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +139 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +25 -33
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/string.js +57 -209
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +100 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/container.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +97 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +111 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +360 -156
- data/lib/frameworks/sproutcore/frameworks/{runtime → foundation}/system/cookie.js +35 -35
- data/lib/frameworks/sproutcore/frameworks/foundation/system/core_query.js +19 -2012
- data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/gesture.js +363 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/{image_cache.js → image_queue.js} +19 -22
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +576 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/request.js +19 -22
- data/lib/frameworks/sproutcore/frameworks/foundation/system/response.js +73 -61
- data/lib/frameworks/sproutcore/frameworks/foundation/system/routes.js +122 -23
- data/lib/frameworks/sproutcore/frameworks/foundation/system/staticqueue.js +53 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +18 -15
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +82 -90
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +80 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +76 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/range.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +247 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/string.js +2 -57
- data/lib/frameworks/sproutcore/frameworks/{runtime → foundation}/tests/system/cookie.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +13 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +99 -49
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +24 -20
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +9 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +31 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +454 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/{view → text_field}/nextValidKeyView.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +9 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +1 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +381 -105
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +44 -171
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +69 -16
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +376 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +205 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +7179 -0
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +1 -3
- data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/mini/license.js +29 -28
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +366 -333
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/rangeObserver.js +73 -73
- data/lib/frameworks/sproutcore/frameworks/runtime/license.js +29 -28
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +160 -150
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +228 -220
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +27 -27
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +355 -305
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +32 -32
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +53 -51
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +49 -106
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +252 -252
- data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +22 -22
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +31 -31
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +234 -234
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +167 -157
- data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +84 -85
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +104 -91
- data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +102 -98
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +19 -49
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +53 -126
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +62 -33
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +41 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +133 -98
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +71 -45
- data/lib/frameworks/sproutcore/frameworks/statechart/core.js +3 -9
- data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +136 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +636 -99
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +951 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/async.js +94 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/advanced_event_handling.js +310 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/namespace/access_substates.js +252 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/is_current_state.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_history_state.js +88 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_advanced.js +234 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_async.js +123 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_basic.js +139 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_intermediate.js +119 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/send_event.js +183 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/default_responder.js +90 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_history_state.js +200 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_state.js +256 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_state_async.js +187 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/send_event.js +122 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/state_plugin.js +99 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/transient.js +162 -0
- data/lib/frameworks/sproutcore/frameworks/table/views/table_cell.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -1
- data/lib/frameworks/sproutcore/lib/index.rhtml +24 -1
- data/lib/frameworks/sproutcore/license.js +31 -30
- data/lib/frameworks/sproutcore/themes/ace/designs/dark.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/dark.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/light.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/light.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/active_select.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/normal_select.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/collection/source-list/selection.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/down.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/up.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/panel.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_empty.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_notoolbar.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers_notoolbar.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_content.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_indeterminate_content.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_track.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_unselected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/thumb.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/thumb.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_normal.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_normal.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_normal.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_normal.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/track.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/track.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/toolbar/toolbar.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/body.css +13 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +84 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +66 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +34 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/button.css +28 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/button.js +69 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +84 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +66 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.js +3 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/active_select.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/normal_select.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +20 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox.css +40 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox.css +40 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/checkbox.css +7 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +4 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/selection.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source-list.js +3 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source_list_view.css +36 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +24 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/loading.css +50 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/down.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +76 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/up.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/pane/pane.css +3 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.css +13 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.js +20 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +32 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +111 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.js +12 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_empty.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_notoolbar.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers_notoolbar.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +28 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_content.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/progress.js +78 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio.css +63 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_unselected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal.css +78 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_touch.css +91 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/thumb.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/thumb.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical.css +80 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_touch.css +92 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +91 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +91 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +95 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +79 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/slider.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/slider.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/slider.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +3 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.js +48 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +5 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/tab/tab.css +3 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +8 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/well/well.css +8 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/well/well.js +19 -0
- data/lib/frameworks/sproutcore/themes/ace/theme.js +14 -0
- data/lib/frameworks/sproutcore/themes/empty_theme/theme.js +16 -0
- data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +16 -21
- data/lib/sproutcore.rb +9 -2
- data/lib/sproutcore/builders.rb +2 -1
- data/lib/sproutcore/builders/base.rb +7 -2
- data/lib/sproutcore/builders/combine.rb +49 -1
- data/lib/sproutcore/builders/html.rb +2 -0
- data/lib/sproutcore/builders/javascript.rb +1 -1
- data/lib/sproutcore/builders/minify.rb +12 -12
- data/lib/sproutcore/builders/module.rb +72 -0
- data/lib/sproutcore/builders/string_wrapper.rb +43 -0
- data/lib/sproutcore/helpers/entry_sorter.rb +5 -9
- data/lib/sproutcore/helpers/static_helper.rb +13 -9
- data/lib/sproutcore/models/manifest_entry.rb +2 -2
- data/lib/sproutcore/models/target.rb +25 -11
- data/lib/sproutcore/rack/dev.rb +3 -3
- data/lib/sproutcore/tools.rb +51 -2
- data/lib/sproutcore/tools/build.rb +35 -7
- data/lib/sproutcore/version.rb +1 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +5 -5
- data/spec/fixtures/builder_tests/Buildfile +2 -2
- data/spec/lib/builders/bundle_spec.rb +8 -8
- data/spec/lib/builders/strings_spec.rb +1 -0
- data/sproutcore.gemspec +9 -2
- data/vendor/chance/.gitignore +5 -0
- data/vendor/chance/Gemfile +4 -0
- data/vendor/chance/Rakefile +2 -0
- data/vendor/chance/bin/chance +72 -0
- data/vendor/chance/chance.gemspec +28 -0
- data/vendor/chance/lib/chance.rb +139 -0
- data/vendor/chance/lib/chance/imager.rb +13 -0
- data/vendor/chance/lib/chance/imagers/data_url.rb +34 -0
- data/vendor/chance/lib/chance/importer.rb +64 -0
- data/vendor/chance/lib/chance/instance.rb +225 -0
- data/vendor/chance/lib/chance/parser.rb +831 -0
- data/vendor/chance/lib/chance/perf.rb +17 -0
- data/vendor/chance/lib/chance/sass_extensions.rb +24 -0
- data/vendor/chance/lib/chance/slicing.rb +104 -0
- data/vendor/chance/lib/chance/version.rb +3 -0
- data/vendor/chance/test/case/abc.png +0 -0
- data/vendor/chance/test/case/more/abc.png +0 -0
- data/vendor/chance/test/case/more/another.css +4 -0
- data/vendor/chance/test/case/test1.css +22 -0
- data/vendor/chance/test/case/test2.css +6 -0
- data/vendor/sproutcore/SCCompiler.jar +0 -0
- data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
- data/vendor/sproutcore/lib/htmlcompressor-0.9.3.jar +0 -0
- data/{lib/sproutcore/vendor/yui-compressor → vendor/sproutcore/lib}/yuicompressor-2.4.2.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/build.xml +74 -0
- data/vendor/sproutcore/src/SCCompiler/lib/args4j-2.0.12.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/lib/htmlcompressor-0.9.3.jar +0 -0
- data/{lib/sproutcore/vendor/yui-compressor/SCyuicompressor-2.4.2.jar → vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.2.jar} +0 -0
- data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.4.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/manifest.mf +3 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/build-impl.xml +894 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/genfiles.properties +8 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/config.properties +0 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.properties +10 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.xml +4 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/project.properties +90 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/project.xml +15 -0
- data/vendor/sproutcore/src/SCCompiler/src/com/sproutcore/Main.java +348 -0
- metadata +686 -177
- data/lib/frameworks/sproutcore/CHANGELOG +0 -93
- data/lib/frameworks/sproutcore/frameworks/datejs/core.js +0 -865
- data/lib/frameworks/sproutcore/frameworks/datejs/english.lproj/en-US.js +0 -186
- data/lib/frameworks/sproutcore/frameworks/datejs/extras.js +0 -332
- data/lib/frameworks/sproutcore/frameworks/datejs/license.js +0 -25
- data/lib/frameworks/sproutcore/frameworks/datejs/parser.js +0 -1116
- data/lib/frameworks/sproutcore/frameworks/datejs/spanish.lproj/es-CO.js +0 -186
- data/lib/frameworks/sproutcore/frameworks/datejs/sugarpak.js +0 -475
- data/lib/frameworks/sproutcore/frameworks/datejs/time.js +0 -269
- data/lib/frameworks/sproutcore/frameworks/datejs/validators/datejs.js +0 -34
- data/lib/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +0 -84
- data/lib/frameworks/sproutcore/frameworks/foundation/system/bundle.js +0 -337
- data/lib/frameworks/sproutcore/frameworks/foundation/system/ready.js +0 -197
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils.js +0 -710
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +0 -1334
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +0 -387
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +0 -405
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +0 -25
- data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart.js +0 -336
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/basic.js +0 -90
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/history.js +0 -71
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/nested.js +0 -59
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/transient.js +0 -148
- data/lib/sproutcore/builders/bundle.rb +0 -63
@@ -7,33 +7,33 @@
|
|
7
7
|
|
8
8
|
/**
|
9
9
|
@namespace
|
10
|
-
|
10
|
+
|
11
11
|
Implements some standard methods for comparing objects. Add this mixin to
|
12
12
|
any class you create that can compare its instances.
|
13
|
-
|
13
|
+
|
14
14
|
You should implement the compare() method.
|
15
|
-
|
15
|
+
|
16
16
|
@since SproutCore 1.0
|
17
17
|
*/
|
18
18
|
SC.Comparable = {
|
19
|
-
|
19
|
+
|
20
20
|
/**
|
21
21
|
walk like a duck. Indicates that the object can be compared.
|
22
|
-
|
22
|
+
|
23
23
|
@type Boolean
|
24
24
|
*/
|
25
25
|
isComparable: YES,
|
26
|
-
|
26
|
+
|
27
27
|
/**
|
28
28
|
Override to return the result of the comparison of the two parameters. The
|
29
29
|
compare method should return
|
30
30
|
-1 if a < b
|
31
31
|
0 if a == b
|
32
32
|
1 if a > b
|
33
|
-
|
33
|
+
|
34
34
|
Default implementation raises
|
35
35
|
an exception.
|
36
|
-
|
36
|
+
|
37
37
|
@param a {Object} the first object to compare
|
38
38
|
@param b {Object} the second object to compare
|
39
39
|
@returns {Integer} the result of the comparison
|
@@ -41,5 +41,5 @@ SC.Comparable = {
|
|
41
41
|
compare: function(a, b) {
|
42
42
|
throw "%@.compare() is not implemented".fmt(this.toString());
|
43
43
|
}
|
44
|
-
|
44
|
+
|
45
45
|
};
|
@@ -7,27 +7,27 @@
|
|
7
7
|
|
8
8
|
/**
|
9
9
|
@namespace
|
10
|
-
|
10
|
+
|
11
11
|
Impelements some standard methods for copying an object. Add this mixin to
|
12
|
-
any object you create that can create a copy of itself. This mixin is
|
12
|
+
any object you create that can create a copy of itself. This mixin is
|
13
13
|
added automatically to the built-in array.
|
14
|
-
|
15
|
-
You should generally implement the copy() method to return a copy of the
|
14
|
+
|
15
|
+
You should generally implement the copy() method to return a copy of the
|
16
16
|
receiver.
|
17
|
-
|
17
|
+
|
18
18
|
Note that frozenCopy() will only work if you also implement SC.Freezable.
|
19
19
|
|
20
20
|
@since SproutCore 1.0
|
21
21
|
*/
|
22
22
|
SC.Copyable = {
|
23
|
-
|
23
|
+
|
24
24
|
/**
|
25
25
|
Walk like a duck. Indicates that the object can be copied.
|
26
|
-
|
26
|
+
|
27
27
|
@type Boolean
|
28
28
|
*/
|
29
29
|
isCopyable: YES,
|
30
|
-
|
30
|
+
|
31
31
|
/**
|
32
32
|
Override to return a copy of the receiver. Default implementation raises
|
33
33
|
an exception.
|
@@ -38,18 +38,18 @@ SC.Copyable = {
|
|
38
38
|
copy: function(deep) {
|
39
39
|
throw "%@.copy() is not implemented";
|
40
40
|
},
|
41
|
-
|
41
|
+
|
42
42
|
/**
|
43
|
-
If the object implements SC.Freezable, then this will return a new copy
|
44
|
-
if the object is not frozen and the receiver if the object is frozen.
|
45
|
-
|
43
|
+
If the object implements SC.Freezable, then this will return a new copy
|
44
|
+
if the object is not frozen and the receiver if the object is frozen.
|
45
|
+
|
46
46
|
Raises an exception if you try to call this method on a object that does
|
47
47
|
not support freezing.
|
48
|
-
|
48
|
+
|
49
49
|
You should use this method whenever you want a copy of a freezable object
|
50
|
-
since a freezable object can simply return itself without actually
|
50
|
+
since a freezable object can simply return itself without actually
|
51
51
|
consuming more memory.
|
52
|
-
|
52
|
+
|
53
53
|
@returns {Object} copy of receiver or receiver
|
54
54
|
*/
|
55
55
|
frozenCopy: function() {
|
@@ -13,110 +13,110 @@ require('system/enumerator');
|
|
13
13
|
/**
|
14
14
|
@namespace
|
15
15
|
|
16
|
-
This mixin defines the common interface implemented by enumerable objects
|
16
|
+
This mixin defines the common interface implemented by enumerable objects
|
17
17
|
in SproutCore. Most of these methods follow the standard Array iteration
|
18
18
|
API defined up to JavaScript 1.8 (excluding language-specific features that
|
19
19
|
cannot be emulated in older versions of JavaScript).
|
20
|
-
|
20
|
+
|
21
21
|
This mixin is applied automatically to the Array class on page load, so you
|
22
22
|
can use any of these methods on simple arrays. If Array already implements
|
23
23
|
one of these methods, the mixin will not override them.
|
24
|
-
|
24
|
+
|
25
25
|
h3. Writing Your Own Enumerable
|
26
26
|
|
27
27
|
To make your own custom class enumerable, you need two items:
|
28
|
-
|
28
|
+
|
29
29
|
1. You must have a length property. This property should change whenever
|
30
30
|
the number of items in your enumerable object changes. If you using this
|
31
|
-
with an SC.Object subclass, you should be sure to change the length
|
31
|
+
with an SC.Object subclass, you should be sure to change the length
|
32
32
|
property using set().
|
33
|
-
|
33
|
+
|
34
34
|
2. If you must implement nextObject(). See documentation.
|
35
|
-
|
35
|
+
|
36
36
|
Once you have these two methods implement, apply the SC.Enumerable mixin
|
37
37
|
to your class and you will be able to enumerate the contents of your object
|
38
38
|
like any other collection.
|
39
|
-
|
39
|
+
|
40
40
|
h3. Using SproutCore Enumeration with Other Libraries
|
41
|
-
|
41
|
+
|
42
42
|
Many other libraries provide some kind of iterator or enumeration like
|
43
|
-
facility. This is often where the most common API conflicts occur.
|
44
|
-
SproutCore's API is designed to be as friendly as possible with other
|
43
|
+
facility. This is often where the most common API conflicts occur.
|
44
|
+
SproutCore's API is designed to be as friendly as possible with other
|
45
45
|
libraries by implementing only methods that mostly correspond to the
|
46
|
-
JavaScript 1.8 API.
|
47
|
-
|
46
|
+
JavaScript 1.8 API.
|
47
|
+
|
48
48
|
@since SproutCore 1.0
|
49
49
|
*/
|
50
50
|
SC.Enumerable = {
|
51
51
|
|
52
|
-
/**
|
52
|
+
/**
|
53
53
|
Walk like a duck.
|
54
|
-
|
54
|
+
|
55
55
|
@property {Boolean}
|
56
56
|
*/
|
57
57
|
isEnumerable: YES,
|
58
|
-
|
58
|
+
|
59
59
|
/**
|
60
60
|
Implement this method to make your class enumerable.
|
61
|
-
|
61
|
+
|
62
62
|
This method will be call repeatedly during enumeration. The index value
|
63
63
|
will always begin with 0 and increment monotonically. You don't have to
|
64
64
|
rely on the index value to determine what object to return, but you should
|
65
65
|
always check the value and start from the beginning when you see the
|
66
66
|
requested index is 0.
|
67
|
-
|
67
|
+
|
68
68
|
The previousObject is the object that was returned from the last call
|
69
|
-
to nextObject for the current iteration. This is a useful way to
|
69
|
+
to nextObject for the current iteration. This is a useful way to
|
70
70
|
manage iteration if you are tracing a linked list, for example.
|
71
|
-
|
72
|
-
Finally the context paramter will always contain a hash you can use as
|
71
|
+
|
72
|
+
Finally the context paramter will always contain a hash you can use as
|
73
73
|
a "scratchpad" to maintain any other state you need in order to iterate
|
74
|
-
properly. The context object is reused and is not reset between
|
74
|
+
properly. The context object is reused and is not reset between
|
75
75
|
iterations so make sure you setup the context with a fresh state whenever
|
76
76
|
the index parameter is 0.
|
77
|
-
|
77
|
+
|
78
78
|
Generally iterators will continue to call nextObject until the index
|
79
|
-
reaches the your current length-1. If you run out of data before this
|
79
|
+
reaches the your current length-1. If you run out of data before this
|
80
80
|
time for some reason, you should simply return undefined.
|
81
|
-
|
81
|
+
|
82
82
|
The default impementation of this method simply looks up the index.
|
83
83
|
This works great on any Array-like objects.
|
84
|
-
|
84
|
+
|
85
85
|
@param index {Number} the current index of the iteration
|
86
86
|
@param previousObject {Object} the value returned by the last call to nextObject.
|
87
87
|
@param context {Object} a context object you can use to maintain state.
|
88
|
-
@returns {Object} the next object in the iteration or undefined
|
89
|
-
*/
|
88
|
+
@returns {Object} the next object in the iteration or undefined
|
89
|
+
*/
|
90
90
|
nextObject: function(index, previousObject, context) {
|
91
91
|
return this.objectAt ? this.objectAt(index) : this[index] ;
|
92
92
|
},
|
93
|
-
|
93
|
+
|
94
94
|
/**
|
95
95
|
Helper method returns the first object from a collection. This is usually
|
96
|
-
used by bindings and other parts of the framework to extract a single
|
96
|
+
used by bindings and other parts of the framework to extract a single
|
97
97
|
object if the enumerable contains only one item.
|
98
|
-
|
99
|
-
If you override this method, you should implement it so that it will
|
98
|
+
|
99
|
+
If you override this method, you should implement it so that it will
|
100
100
|
always return the same value each time it is called. If your enumerable
|
101
101
|
contains only one object, this method should always return that object.
|
102
102
|
If your enumerable is empty, this method should return undefined.
|
103
|
-
|
103
|
+
|
104
104
|
@returns {Object} the object or undefined
|
105
105
|
*/
|
106
106
|
firstObject: function() {
|
107
107
|
if (this.get('length')===0) return undefined ;
|
108
108
|
if (this.objectAt) return this.objectAt(0); // support arrays out of box
|
109
|
-
|
109
|
+
|
110
110
|
// handle generic enumerables
|
111
111
|
var context = SC.Enumerator._popContext(), ret;
|
112
112
|
ret = this.nextObject(0, null, context);
|
113
|
-
context = SC.Enumerator._pushContext(context);
|
113
|
+
context = SC.Enumerator._pushContext(context);
|
114
114
|
return ret ;
|
115
115
|
}.property(),
|
116
|
-
|
116
|
+
|
117
117
|
/**
|
118
118
|
Helper method returns the last object from a collection.
|
119
|
-
|
119
|
+
|
120
120
|
@returns {Object} the object or undefined
|
121
121
|
*/
|
122
122
|
lastObject: function() {
|
@@ -124,36 +124,36 @@ SC.Enumerable = {
|
|
124
124
|
if (len===0) return undefined ;
|
125
125
|
if (this.objectAt) return this.objectAt(len-1); // support arrays out of box
|
126
126
|
}.property(),
|
127
|
-
|
127
|
+
|
128
128
|
/**
|
129
129
|
Returns a new enumerator for this object. See SC.Enumerator for
|
130
130
|
documentation on how to use this object. Enumeration is an alternative
|
131
131
|
to using one of the other iterators described here.
|
132
|
-
|
132
|
+
|
133
133
|
@returns {SC.Enumerator} an enumerator for the receiver
|
134
134
|
*/
|
135
135
|
enumerator: function() { return SC.Enumerator.create(this); },
|
136
|
-
|
136
|
+
|
137
137
|
/**
|
138
138
|
Iterates through the enumerable, calling the passed function on each
|
139
|
-
item. This method corresponds to the forEach() method defined in
|
139
|
+
item. This method corresponds to the forEach() method defined in
|
140
140
|
JavaScript 1.6.
|
141
|
-
|
141
|
+
|
142
142
|
The callback method you provide should have the following signature (all
|
143
143
|
parameters are optional):
|
144
|
-
|
144
|
+
|
145
145
|
{{{
|
146
|
-
function(item, index, enumerable) ;
|
146
|
+
function(item, index, enumerable) ;
|
147
147
|
}}}
|
148
|
-
|
148
|
+
|
149
149
|
- *item* is the current item in the iteration.
|
150
150
|
- *index* is the current index in the iteration
|
151
151
|
- *enumerable* is the enumerable object itself.
|
152
|
-
|
152
|
+
|
153
153
|
Note that in addition to a callback, you can also pass an optional target
|
154
154
|
object that will be set as "this" on the context. This is a good way
|
155
155
|
to give your iterator function access to the current object.
|
156
|
-
|
156
|
+
|
157
157
|
@params callback {Function} the callback to execute
|
158
158
|
@params target {Object} the target object to use
|
159
159
|
@returns {Object} this
|
@@ -162,7 +162,7 @@ SC.Enumerable = {
|
|
162
162
|
if (typeof callback !== "function") throw new TypeError() ;
|
163
163
|
var len = this.get ? this.get('length') : this.length ;
|
164
164
|
if (target === undefined) target = null;
|
165
|
-
|
165
|
+
|
166
166
|
var last = null ;
|
167
167
|
var context = SC.Enumerator._popContext();
|
168
168
|
for(var idx=0;idx<len;idx++) {
|
@@ -174,13 +174,13 @@ SC.Enumerable = {
|
|
174
174
|
context = SC.Enumerator._pushContext(context);
|
175
175
|
return this ;
|
176
176
|
},
|
177
|
-
|
177
|
+
|
178
178
|
/**
|
179
179
|
Retrieves the named value on each member object. This is more efficient
|
180
|
-
than using one of the wrapper methods defined here. Objects that
|
180
|
+
than using one of the wrapper methods defined here. Objects that
|
181
181
|
implement SC.Observable will use the get() method, otherwise the property
|
182
182
|
will be accessed directly.
|
183
|
-
|
183
|
+
|
184
184
|
@param {String} key the key to retrieve
|
185
185
|
@returns {Array} extracted values
|
186
186
|
*/
|
@@ -195,7 +195,7 @@ SC.Enumerable = {
|
|
195
195
|
efficient than using other methods defined on this helper. If the object
|
196
196
|
implements SC.Observable, the value will be changed to set(), otherwise
|
197
197
|
it will be set directly. null objects are skipped.
|
198
|
-
|
198
|
+
|
199
199
|
@param {String} key the key to set
|
200
200
|
@param {Object} value the object to set
|
201
201
|
@returns {Object} receiver
|
@@ -209,28 +209,28 @@ SC.Enumerable = {
|
|
209
209
|
}, this);
|
210
210
|
return this ;
|
211
211
|
},
|
212
|
-
|
212
|
+
|
213
213
|
/**
|
214
|
-
Maps all of the items in the enumeration to another value, returning
|
214
|
+
Maps all of the items in the enumeration to another value, returning
|
215
215
|
a new array. This method corresponds to map() defined in JavaScript 1.6.
|
216
|
-
|
216
|
+
|
217
217
|
The callback method you provide should have the following signature (all
|
218
218
|
parameters are optional):
|
219
|
-
|
219
|
+
|
220
220
|
{{{
|
221
|
-
function(item, index, enumerable) ;
|
221
|
+
function(item, index, enumerable) ;
|
222
222
|
}}}
|
223
|
-
|
223
|
+
|
224
224
|
- *item* is the current item in the iteration.
|
225
225
|
- *index* is the current index in the iteration
|
226
226
|
- *enumerable* is the enumerable object itself.
|
227
|
-
|
227
|
+
|
228
228
|
It should return the mapped value.
|
229
|
-
|
229
|
+
|
230
230
|
Note that in addition to a callback, you can also pass an optional target
|
231
231
|
object that will be set as "this" on the context. This is a good way
|
232
232
|
to give your iterator function access to the current object.
|
233
|
-
|
233
|
+
|
234
234
|
@params callback {Function} the callback to execute
|
235
235
|
@params target {Object} the target object to use
|
236
236
|
@returns {Array} The mapped array.
|
@@ -239,7 +239,7 @@ SC.Enumerable = {
|
|
239
239
|
if (typeof callback !== "function") throw new TypeError() ;
|
240
240
|
var len = this.get ? this.get('length') : this.length ;
|
241
241
|
if (target === undefined) target = null;
|
242
|
-
|
242
|
+
|
243
243
|
var ret = [];
|
244
244
|
var last = null ;
|
245
245
|
var context = SC.Enumerator._popContext();
|
@@ -256,38 +256,38 @@ SC.Enumerable = {
|
|
256
256
|
/**
|
257
257
|
Similar to map, this specialized function returns the value of the named
|
258
258
|
property on all items in the enumeration.
|
259
|
-
|
259
|
+
|
260
260
|
@params key {String} name of the property
|
261
261
|
@returns {Array} The mapped array.
|
262
262
|
*/
|
263
263
|
mapProperty: function(key) {
|
264
|
-
return this.map(function(next) {
|
264
|
+
return this.map(function(next) {
|
265
265
|
return next ? (next.get ? next.get(key) : next[key]) : null;
|
266
266
|
});
|
267
267
|
},
|
268
268
|
|
269
269
|
/**
|
270
270
|
Returns an array with all of the items in the enumeration that the passed
|
271
|
-
function returns YES for. This method corresponds to filter() defined in
|
271
|
+
function returns YES for. This method corresponds to filter() defined in
|
272
272
|
JavaScript 1.6.
|
273
|
-
|
273
|
+
|
274
274
|
The callback method you provide should have the following signature (all
|
275
275
|
parameters are optional):
|
276
|
-
|
276
|
+
|
277
277
|
{{{
|
278
|
-
function(item, index, enumerable) ;
|
278
|
+
function(item, index, enumerable) ;
|
279
279
|
}}}
|
280
|
-
|
280
|
+
|
281
281
|
- *item* is the current item in the iteration.
|
282
282
|
- *index* is the current index in the iteration
|
283
283
|
- *enumerable* is the enumerable object itself.
|
284
|
-
|
284
|
+
|
285
285
|
It should return the YES to include the item in the results, NO otherwise.
|
286
|
-
|
286
|
+
|
287
287
|
Note that in addition to a callback, you can also pass an optional target
|
288
288
|
object that will be set as "this" on the context. This is a good way
|
289
289
|
to give your iterator function access to the current object.
|
290
|
-
|
290
|
+
|
291
291
|
@params callback {Function} the callback to execute
|
292
292
|
@params target {Object} the target object to use
|
293
293
|
@returns {Array} A filtered array.
|
@@ -296,7 +296,7 @@ SC.Enumerable = {
|
|
296
296
|
if (typeof callback !== "function") throw new TypeError() ;
|
297
297
|
var len = this.get ? this.get('length') : this.length ;
|
298
298
|
if (target === undefined) target = null;
|
299
|
-
|
299
|
+
|
300
300
|
var ret = [];
|
301
301
|
var last = null ;
|
302
302
|
var context = SC.Enumerator._popContext();
|
@@ -310,11 +310,11 @@ SC.Enumerable = {
|
|
310
310
|
return ret ;
|
311
311
|
},
|
312
312
|
|
313
|
-
/**
|
313
|
+
/**
|
314
314
|
Returns an array sorted by the value of the passed key parameters.
|
315
315
|
null objects will be sorted first. You can pass either an array of keys
|
316
316
|
or multiple parameters which will act as key names
|
317
|
-
|
317
|
+
|
318
318
|
@param {String} key one or more key names
|
319
319
|
@returns {Array}
|
320
320
|
*/
|
@@ -322,18 +322,18 @@ SC.Enumerable = {
|
|
322
322
|
var keys = (typeof key === SC.T_STRING) ? arguments : key,
|
323
323
|
len = keys.length,
|
324
324
|
src;
|
325
|
-
|
326
|
-
// get the src array to sort
|
325
|
+
|
326
|
+
// get the src array to sort
|
327
327
|
if (this instanceof Array) src = this;
|
328
328
|
else {
|
329
329
|
src = [];
|
330
330
|
this.forEach(function(i) { src.push(i); });
|
331
331
|
}
|
332
|
-
|
332
|
+
|
333
333
|
if (!src) return [];
|
334
334
|
return src.sort(function(a,b) {
|
335
335
|
var idx, key, aValue, bValue, ret = 0;
|
336
|
-
|
336
|
+
|
337
337
|
for(idx=0;ret===0 && idx<len;idx++) {
|
338
338
|
key = keys[idx];
|
339
339
|
aValue = a ? (a.get ? a.get(key) : a[key]) : null;
|
@@ -343,13 +343,13 @@ SC.Enumerable = {
|
|
343
343
|
return ret ;
|
344
344
|
});
|
345
345
|
},
|
346
|
-
|
346
|
+
|
347
347
|
|
348
348
|
/**
|
349
349
|
Returns an array with just the items with the matched property. You
|
350
350
|
can pass an optional second argument with the target value. Otherwise
|
351
351
|
this will match any property that evaluates to true.
|
352
|
-
|
352
|
+
|
353
353
|
@params key {String} the property to test
|
354
354
|
@param value {String} optional value to test against.
|
355
355
|
@returns {Array} filtered array
|
@@ -370,7 +370,7 @@ SC.Enumerable = {
|
|
370
370
|
context = SC.Enumerator._pushContext(context);
|
371
371
|
return ret ;
|
372
372
|
},
|
373
|
-
|
373
|
+
|
374
374
|
/**
|
375
375
|
Returns the first item in the array for which the callback returns YES.
|
376
376
|
This method works similar to the filter() method defined in JavaScript 1.6
|
@@ -380,7 +380,7 @@ SC.Enumerable = {
|
|
380
380
|
parameters are optional):
|
381
381
|
|
382
382
|
{{{
|
383
|
-
function(item, index, enumerable) ;
|
383
|
+
function(item, index, enumerable) ;
|
384
384
|
}}}
|
385
385
|
|
386
386
|
- *item* is the current item in the iteration.
|
@@ -417,9 +417,9 @@ SC.Enumerable = {
|
|
417
417
|
Returns an the first item with a property matching the passed value. You
|
418
418
|
can pass an optional second argument with the target value. Otherwise
|
419
419
|
this will match any property that evaluates to true.
|
420
|
-
|
420
|
+
|
421
421
|
This method works much like the more generic find() method.
|
422
|
-
|
422
|
+
|
423
423
|
@params key {String} the property to test
|
424
424
|
@param value {String} optional value to test against.
|
425
425
|
@returns {Object} found item or null
|
@@ -439,43 +439,43 @@ SC.Enumerable = {
|
|
439
439
|
context = SC.Enumerator._pushContext(context);
|
440
440
|
return ret ;
|
441
441
|
},
|
442
|
-
|
442
|
+
|
443
443
|
/**
|
444
444
|
Returns YES if the passed function returns YES for every item in the
|
445
445
|
enumeration. This corresponds with the every() method in JavaScript 1.6.
|
446
|
-
|
446
|
+
|
447
447
|
The callback method you provide should have the following signature (all
|
448
448
|
parameters are optional):
|
449
|
-
|
449
|
+
|
450
450
|
{{{
|
451
|
-
function(item, index, enumerable) ;
|
451
|
+
function(item, index, enumerable) ;
|
452
452
|
}}}
|
453
|
-
|
453
|
+
|
454
454
|
- *item* is the current item in the iteration.
|
455
455
|
- *index* is the current index in the iteration
|
456
456
|
- *enumerable* is the enumerable object itself.
|
457
|
-
|
457
|
+
|
458
458
|
It should return the YES or NO.
|
459
|
-
|
459
|
+
|
460
460
|
Note that in addition to a callback, you can also pass an optional target
|
461
461
|
object that will be set as "this" on the context. This is a good way
|
462
462
|
to give your iterator function access to the current object.
|
463
|
-
|
463
|
+
|
464
464
|
h4. Example Usage
|
465
|
-
|
465
|
+
|
466
466
|
{{{
|
467
467
|
if (people.every(isEngineer)) { Paychecks.addBigBonus(); }
|
468
468
|
}}}
|
469
|
-
|
469
|
+
|
470
470
|
@params callback {Function} the callback to execute
|
471
471
|
@params target {Object} the target object to use
|
472
|
-
@returns {Boolean}
|
472
|
+
@returns {Boolean}
|
473
473
|
*/
|
474
474
|
every: function(callback, target) {
|
475
475
|
if (typeof callback !== "function") throw new TypeError() ;
|
476
476
|
var len = this.get ? this.get('length') : this.length ;
|
477
477
|
if (target === undefined) target = null;
|
478
|
-
|
478
|
+
|
479
479
|
var ret = YES;
|
480
480
|
var last = null ;
|
481
481
|
var context = SC.Enumerator._popContext();
|
@@ -512,35 +512,35 @@ SC.Enumerable = {
|
|
512
512
|
context = SC.Enumerator._pushContext(context);
|
513
513
|
return ret ;
|
514
514
|
},
|
515
|
-
|
516
|
-
|
515
|
+
|
516
|
+
|
517
517
|
/**
|
518
|
-
Returns YES if the passed function returns true for any item in the
|
518
|
+
Returns YES if the passed function returns true for any item in the
|
519
519
|
enumeration. This corresponds with the every() method in JavaScript 1.6.
|
520
|
-
|
520
|
+
|
521
521
|
The callback method you provide should have the following signature (all
|
522
522
|
parameters are optional):
|
523
|
-
|
523
|
+
|
524
524
|
{{{
|
525
|
-
function(item, index, enumerable) ;
|
525
|
+
function(item, index, enumerable) ;
|
526
526
|
}}}
|
527
|
-
|
527
|
+
|
528
528
|
- *item* is the current item in the iteration.
|
529
529
|
- *index* is the current index in the iteration
|
530
530
|
- *enumerable* is the enumerable object itself.
|
531
|
-
|
531
|
+
|
532
532
|
It should return the YES to include the item in the results, NO otherwise.
|
533
|
-
|
533
|
+
|
534
534
|
Note that in addition to a callback, you can also pass an optional target
|
535
535
|
object that will be set as "this" on the context. This is a good way
|
536
536
|
to give your iterator function access to the current object.
|
537
|
-
|
537
|
+
|
538
538
|
h4. Usage Example
|
539
|
-
|
539
|
+
|
540
540
|
{{{
|
541
541
|
if (people.some(isManager)) { Paychecks.addBiggerBonus(); }
|
542
542
|
}}}
|
543
|
-
|
543
|
+
|
544
544
|
@params callback {Function} the callback to execute
|
545
545
|
@params target {Object} the target object to use
|
546
546
|
@returns {Array} A filtered array.
|
@@ -549,7 +549,7 @@ SC.Enumerable = {
|
|
549
549
|
if (typeof callback !== "function") throw new TypeError() ;
|
550
550
|
var len = this.get ? this.get('length') : this.length ;
|
551
551
|
if (target === undefined) target = null;
|
552
|
-
|
552
|
+
|
553
553
|
var ret = NO;
|
554
554
|
var last = null ;
|
555
555
|
var context = SC.Enumerator._popContext();
|
@@ -569,7 +569,7 @@ SC.Enumerable = {
|
|
569
569
|
|
570
570
|
@params key {String} the property to test
|
571
571
|
@param value {String} optional value to test against.
|
572
|
-
@returns {Boolean} YES
|
572
|
+
@returns {Boolean} YES
|
573
573
|
*/
|
574
574
|
someProperty: function(key, value) {
|
575
575
|
var len = this.get ? this.get('length') : this.length ;
|
@@ -588,17 +588,17 @@ SC.Enumerable = {
|
|
588
588
|
},
|
589
589
|
|
590
590
|
/**
|
591
|
-
This will combine the values of the enumerator into a single value. It
|
591
|
+
This will combine the values of the enumerator into a single value. It
|
592
592
|
is a useful way to collect a summary value from an enumeration. This
|
593
593
|
corresponds to the reduce() method defined in JavaScript 1.8.
|
594
|
-
|
594
|
+
|
595
595
|
The callback method you provide should have the following signature (all
|
596
596
|
parameters are optional):
|
597
|
-
|
597
|
+
|
598
598
|
{{{
|
599
|
-
function(previousValue, item, index, enumerable) ;
|
599
|
+
function(previousValue, item, index, enumerable) ;
|
600
600
|
}}}
|
601
|
-
|
601
|
+
|
602
602
|
- *previousValue* is the value returned by the last call to the iterator.
|
603
603
|
- *item* is the current item in the iteration.
|
604
604
|
- *index* is the current index in the iteration
|
@@ -610,10 +610,10 @@ SC.Enumerable = {
|
|
610
610
|
will be raised if you do not pass an initial value and the enumerator is
|
611
611
|
empty.
|
612
612
|
|
613
|
-
Note that unlike the other methods, this method does not allow you to
|
613
|
+
Note that unlike the other methods, this method does not allow you to
|
614
614
|
pass a target object to set as this for the callback. It's part of the
|
615
615
|
spec. Sorry.
|
616
|
-
|
616
|
+
|
617
617
|
@params callback {Function} the callback to execute
|
618
618
|
@params initialValue {Object} initial value for the reduce
|
619
619
|
@params reducerProperty {String} internal use only. May not be available.
|
@@ -625,13 +625,13 @@ SC.Enumerable = {
|
|
625
625
|
|
626
626
|
// no value to return if no initial value & empty
|
627
627
|
if (len===0 && initialValue === undefined) throw new TypeError();
|
628
|
-
|
628
|
+
|
629
629
|
var ret = initialValue;
|
630
630
|
var last = null ;
|
631
631
|
var context = SC.Enumerator._popContext();
|
632
632
|
for(var idx=0;idx<len;idx++) {
|
633
633
|
var next = this.nextObject(idx, last, context) ;
|
634
|
-
|
634
|
+
|
635
635
|
// while ret is still undefined, just set the first value we get as ret.
|
636
636
|
// this is not the ideal behavior actually but it matches the FireFox
|
637
637
|
// implementation... :(
|
@@ -646,17 +646,17 @@ SC.Enumerable = {
|
|
646
646
|
}
|
647
647
|
last = null ;
|
648
648
|
context = SC.Enumerator._pushContext(context);
|
649
|
-
|
649
|
+
|
650
650
|
// uh oh...we never found a value!
|
651
651
|
if (ret === undefined) throw new TypeError() ;
|
652
652
|
return ret ;
|
653
653
|
},
|
654
|
-
|
654
|
+
|
655
655
|
/**
|
656
656
|
Invokes the named method on every object in the receiver that
|
657
657
|
implements it. This method corresponds to the implementation in
|
658
658
|
Prototype 1.6.
|
659
|
-
|
659
|
+
|
660
660
|
@param methodName {String} the name of the method
|
661
661
|
@param args {Object...} optional arguments to pass as well.
|
662
662
|
@returns {Array} return values from calling invoke.
|
@@ -664,16 +664,16 @@ SC.Enumerable = {
|
|
664
664
|
invoke: function(methodName) {
|
665
665
|
var len = this.get ? this.get('length') : this.length ;
|
666
666
|
if (len <= 0) return [] ; // nothing to invoke....
|
667
|
-
|
667
|
+
|
668
668
|
var idx;
|
669
|
-
|
669
|
+
|
670
670
|
// collect the arguments
|
671
671
|
var args = [] ;
|
672
672
|
var alen = arguments.length ;
|
673
673
|
if (alen > 1) {
|
674
674
|
for(idx=1;idx<alen;idx++) args.push(arguments[idx]) ;
|
675
675
|
}
|
676
|
-
|
676
|
+
|
677
677
|
// call invoke
|
678
678
|
var ret = [] ;
|
679
679
|
var last = null ;
|
@@ -691,7 +691,7 @@ SC.Enumerable = {
|
|
691
691
|
|
692
692
|
/**
|
693
693
|
Invokes the passed method and optional arguments on the receiver elements
|
694
|
-
as long as the methods return value matches the target value. This is
|
694
|
+
as long as the methods return value matches the target value. This is
|
695
695
|
a useful way to attempt to apply changes to a collection of objects unless
|
696
696
|
or until one fails.
|
697
697
|
|
@@ -712,7 +712,7 @@ SC.Enumerable = {
|
|
712
712
|
if (alen > 2) {
|
713
713
|
for(idx=2;idx<alen;idx++) args.push(arguments[idx]) ;
|
714
714
|
}
|
715
|
-
|
715
|
+
|
716
716
|
// call invoke
|
717
717
|
var ret = targetValue ;
|
718
718
|
var last = null ;
|
@@ -727,12 +727,12 @@ SC.Enumerable = {
|
|
727
727
|
context = SC.Enumerator._pushContext(context);
|
728
728
|
return ret ;
|
729
729
|
},
|
730
|
-
|
730
|
+
|
731
731
|
/**
|
732
732
|
Simply converts the enumerable into a genuine array. The order, of
|
733
|
-
course, is not gauranteed. Corresponds to the method implemented by
|
733
|
+
course, is not gauranteed. Corresponds to the method implemented by
|
734
734
|
Prototype.
|
735
|
-
|
735
|
+
|
736
736
|
@returns {Array} the enumerable as an array.
|
737
737
|
*/
|
738
738
|
toArray: function() {
|
@@ -740,37 +740,41 @@ SC.Enumerable = {
|
|
740
740
|
this.forEach(function(o) { ret.push(o); }, this);
|
741
741
|
return ret ;
|
742
742
|
},
|
743
|
-
|
743
|
+
|
744
744
|
/**
|
745
|
-
Converts an enumerable into a matrix, with inner arrays grouped based
|
745
|
+
Converts an enumerable into a matrix, with inner arrays grouped based
|
746
746
|
on a particular property of the elements of the enumerable.
|
747
747
|
|
748
748
|
@params key {String} the property to test
|
749
749
|
@returns {Array} matrix of arrays
|
750
|
-
*/
|
750
|
+
*/
|
751
751
|
groupBy: function(key){
|
752
752
|
var len = this.get ? this.get('length') : this.length,
|
753
753
|
ret = [],
|
754
754
|
last = null,
|
755
755
|
context = SC.Enumerator._popContext(),
|
756
756
|
grouped = [],
|
757
|
-
keyValues = []
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
757
|
+
keyValues = [],
|
758
|
+
idx, next, cur;
|
759
|
+
|
760
|
+
for(idx=0;idx<len;idx++) {
|
761
|
+
next = this.nextObject(idx, last, context) ;
|
762
|
+
cur = next ? (next.get ? next.get(key) : next[key]) : null;
|
763
|
+
if(SC.none(grouped[cur])) {
|
764
|
+
grouped[cur] = []; keyValues.push(cur);
|
765
|
+
}
|
762
766
|
grouped[cur].push(next);
|
763
767
|
last = next;
|
764
768
|
}
|
765
769
|
last = null;
|
766
770
|
context = SC.Enumerator._pushContext(context);
|
767
771
|
|
768
|
-
for(
|
772
|
+
for(idx=0,len=keyValues.length; idx < len; idx++){
|
769
773
|
ret.push(grouped[keyValues[idx]]);
|
770
774
|
}
|
771
775
|
return ret ;
|
772
776
|
}
|
773
|
-
|
777
|
+
|
774
778
|
} ;
|
775
779
|
|
776
780
|
// Build in a separate function to avoid unintential leaks through closures...
|
@@ -781,7 +785,7 @@ SC._buildReducerFor = function(reducerKey, reducerProperty) {
|
|
781
785
|
return this.unknownProperty ? this.unknownProperty(key, value) : null;
|
782
786
|
} else {
|
783
787
|
// Invoke the reduce method defined in enumerable instead of using the
|
784
|
-
// one implemented in the receiver. The receiver might be a native
|
788
|
+
// one implemented in the receiver. The receiver might be a native
|
785
789
|
// implementation that does not support reducerProperty.
|
786
790
|
var ret = SC.Enumerable.reduce.call(this, reducer, null, reducerProperty) ;
|
787
791
|
return ret ;
|
@@ -794,10 +798,10 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
794
798
|
This property will trigger anytime the enumerable's content changes.
|
795
799
|
You can observe this property to be notified of changes to the enumerables
|
796
800
|
content.
|
797
|
-
|
801
|
+
|
798
802
|
For plain enumerables, this property is read only. SC.Array overrides
|
799
803
|
this method.
|
800
|
-
|
804
|
+
|
801
805
|
@property {SC.Array}
|
802
806
|
*/
|
803
807
|
'[]': function(key, value) { return this ; }.property(),
|
@@ -805,32 +809,32 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
805
809
|
/**
|
806
810
|
Invoke this method when the contents of your enumerable has changed.
|
807
811
|
This will notify any observers watching for content changes. If your are
|
808
|
-
implementing an ordered enumerable (such as an array), also pass the
|
812
|
+
implementing an ordered enumerable (such as an array), also pass the
|
809
813
|
start and end values where the content changed so that it can be used to
|
810
814
|
notify range observers.
|
811
|
-
|
815
|
+
|
812
816
|
@param {Number} start optional start offset for the content change
|
813
817
|
@param {Number} length optional length of change
|
814
|
-
@returns {Object} receiver
|
818
|
+
@returns {Object} receiver
|
815
819
|
*/
|
816
820
|
enumerableContentDidChange: function(start, length) {
|
817
821
|
this.notifyPropertyChange('[]') ;
|
818
822
|
return this ;
|
819
823
|
},
|
820
|
-
|
824
|
+
|
821
825
|
/**
|
822
|
-
Call this method from your unknownProperty() handler to implement
|
823
|
-
automatic reduced properties. A reduced property is a property that
|
824
|
-
collects its contents dynamically from your array contents. Reduced
|
825
|
-
properties always begin with "@". Getting this property will call
|
826
|
+
Call this method from your unknownProperty() handler to implement
|
827
|
+
automatic reduced properties. A reduced property is a property that
|
828
|
+
collects its contents dynamically from your array contents. Reduced
|
829
|
+
properties always begin with "@". Getting this property will call
|
826
830
|
reduce() on your array with the function matching the key name as the
|
827
831
|
processor.
|
828
|
-
|
829
|
-
The return value of this will be either the return value from the
|
830
|
-
reduced property or undefined, which means this key is not a reduced
|
832
|
+
|
833
|
+
The return value of this will be either the return value from the
|
834
|
+
reduced property or undefined, which means this key is not a reduced
|
831
835
|
property. You can call this at the top of your unknownProperty handler
|
832
836
|
like so:
|
833
|
-
|
837
|
+
|
834
838
|
{{{
|
835
839
|
unknownProperty: function(key, value) {
|
836
840
|
var ret = this.handleReduceProperty(key, value) ;
|
@@ -839,36 +843,36 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
839
843
|
}
|
840
844
|
}
|
841
845
|
}}}
|
842
|
-
|
846
|
+
|
843
847
|
@param {String} key
|
844
848
|
the reduce property key
|
845
|
-
|
849
|
+
|
846
850
|
@param {Object} value
|
847
851
|
a value or undefined.
|
848
|
-
|
852
|
+
|
849
853
|
@param {Boolean} generateProperty
|
850
|
-
only set to false if you do not want an optimized computed property
|
854
|
+
only set to false if you do not want an optimized computed property
|
851
855
|
handler generated for this. Not common.
|
852
|
-
|
856
|
+
|
853
857
|
@returns {Object} the reduced property or undefined
|
854
858
|
*/
|
855
859
|
reducedProperty: function(key, value, generateProperty) {
|
856
|
-
|
860
|
+
|
857
861
|
if (!key || key.charAt(0) !== '@') return undefined ; // not a reduced property
|
858
|
-
|
862
|
+
|
859
863
|
// get the reducer key and the reducer
|
860
864
|
var matches = key.match(/^@([^(]*)(\(([^)]*)\))?$/) ;
|
861
865
|
if (!matches || matches.length < 2) return undefined ; // no match
|
862
|
-
|
866
|
+
|
863
867
|
var reducerKey = matches[1]; // = 'max' if key = '@max(balance)'
|
864
868
|
var reducerProperty = matches[3] ; // = 'balance' if key = '@max(balance)'
|
865
869
|
reducerKey = "reduce" + reducerKey.slice(0,1).toUpperCase() + reducerKey.slice(1);
|
866
870
|
var reducer = this[reducerKey] ;
|
867
871
|
|
868
|
-
// if there is no reduce function defined for this key, then we can't
|
872
|
+
// if there is no reduce function defined for this key, then we can't
|
869
873
|
// build a reducer for it.
|
870
874
|
if (SC.typeOf(reducer) !== SC.T_FUNCTION) return undefined;
|
871
|
-
|
875
|
+
|
872
876
|
// if we can't generate the property, just run reduce
|
873
877
|
if (generateProperty === NO) {
|
874
878
|
return SC.Enumerable.reduce.call(this, reducer, null, reducerProperty) ;
|
@@ -877,10 +881,10 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
877
881
|
// ok, found the reducer. Let's build the computed property and install
|
878
882
|
var func = SC._buildReducerFor(reducerKey, reducerProperty);
|
879
883
|
var p = this.constructor.prototype ;
|
880
|
-
|
884
|
+
|
881
885
|
if (p) {
|
882
886
|
p[key] = func ;
|
883
|
-
|
887
|
+
|
884
888
|
// add the function to the properties array so that new instances
|
885
889
|
// will have their dependent key registered.
|
886
890
|
var props = p._properties || [] ;
|
@@ -888,12 +892,12 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
888
892
|
p._properties = props ;
|
889
893
|
this.registerDependentKey(key, '[]') ;
|
890
894
|
}
|
891
|
-
|
895
|
+
|
892
896
|
// and reduce anyway...
|
893
897
|
return SC.Enumerable.reduce.call(this, reducer, null, reducerProperty) ;
|
894
898
|
},
|
895
|
-
|
896
|
-
/**
|
899
|
+
|
900
|
+
/**
|
897
901
|
Reducer for @max reduced property.
|
898
902
|
*/
|
899
903
|
reduceMax: function(previousValue, item, index, e, reducerProperty) {
|
@@ -904,11 +908,11 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
904
908
|
return (item > previousValue) ? item : previousValue ;
|
905
909
|
},
|
906
910
|
|
907
|
-
/**
|
911
|
+
/**
|
908
912
|
Reducer for @maxObject reduced property.
|
909
913
|
*/
|
910
914
|
reduceMaxObject: function(previousItem, item, index, e, reducerProperty) {
|
911
|
-
|
915
|
+
|
912
916
|
// get the value for both the previous and current item. If no
|
913
917
|
// reducerProperty was supplied, use the items themselves.
|
914
918
|
var previousValue = previousItem, itemValue = item ;
|
@@ -916,7 +920,7 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
916
920
|
if (item) {
|
917
921
|
itemValue = item.get ? item.get(reducerProperty) : item[reducerProperty] ;
|
918
922
|
}
|
919
|
-
|
923
|
+
|
920
924
|
if (previousItem) {
|
921
925
|
previousValue = previousItem.get ? previousItem.get(reducerProperty) : previousItem[reducerProperty] ;
|
922
926
|
}
|
@@ -925,7 +929,7 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
925
929
|
return (itemValue > previousValue) ? item : previousItem ;
|
926
930
|
},
|
927
931
|
|
928
|
-
/**
|
932
|
+
/**
|
929
933
|
Reducer for @min reduced property.
|
930
934
|
*/
|
931
935
|
reduceMin: function(previousValue, item, index, e, reducerProperty) {
|
@@ -936,7 +940,7 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
936
940
|
return (item < previousValue) ? item : previousValue ;
|
937
941
|
},
|
938
942
|
|
939
|
-
/**
|
943
|
+
/**
|
940
944
|
Reducer for @maxObject reduced property.
|
941
945
|
*/
|
942
946
|
reduceMinObject: function(previousItem, item, index, e, reducerProperty) {
|
@@ -948,7 +952,7 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
948
952
|
if (item) {
|
949
953
|
itemValue = item.get ? item.get(reducerProperty) : item[reducerProperty] ;
|
950
954
|
}
|
951
|
-
|
955
|
+
|
952
956
|
if (previousItem) {
|
953
957
|
previousValue = previousItem.get ? previousItem.get(reducerProperty) : previousItem[reducerProperty] ;
|
954
958
|
}
|
@@ -957,7 +961,7 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
957
961
|
return (itemValue < previousValue) ? item : previousItem ;
|
958
962
|
},
|
959
963
|
|
960
|
-
/**
|
964
|
+
/**
|
961
965
|
Reducer for @average reduced property.
|
962
966
|
*/
|
963
967
|
reduceAverage: function(previousValue, item, index, e, reducerProperty) {
|
@@ -967,10 +971,10 @@ SC.Reducers = /** @lends SC.Enumerable */ {
|
|
967
971
|
var ret = (previousValue || 0) + item ;
|
968
972
|
var len = e.get ? e.get('length') : e.length;
|
969
973
|
if (index >= len-1) ret = ret / len; //avg after last item.
|
970
|
-
return ret ;
|
974
|
+
return ret ;
|
971
975
|
},
|
972
976
|
|
973
|
-
/**
|
977
|
+
/**
|
974
978
|
Reducer for @sum reduced property.
|
975
979
|
*/
|
976
980
|
reduceSum: function(previousValue, item, index, e, reducerProperty) {
|
@@ -993,11 +997,11 @@ Array.prototype.isEnumerable = YES ;
|
|
993
997
|
// Implement the same enhancements on Array. We use specialized methods
|
994
998
|
// because working with arrays are so common.
|
995
999
|
(function() {
|
996
|
-
|
1000
|
+
|
997
1001
|
// These methods will be applied even if they already exist b/c we do it
|
998
1002
|
// better.
|
999
1003
|
var alwaysMixin = {
|
1000
|
-
|
1004
|
+
|
1001
1005
|
// this is supported so you can get an enumerator. The rest of the
|
1002
1006
|
// methods do not use this just to squeeze every last ounce of perf as
|
1003
1007
|
// possible.
|
@@ -1006,7 +1010,7 @@ Array.prototype.isEnumerable = YES ;
|
|
1006
1010
|
firstObject: SC.Enumerable.firstObject,
|
1007
1011
|
lastObject: SC.Enumerable.lastObject,
|
1008
1012
|
sortProperty: SC.Enumerable.sortProperty,
|
1009
|
-
|
1013
|
+
|
1010
1014
|
// see above...
|
1011
1015
|
mapProperty: function(key) {
|
1012
1016
|
var len = this.length ;
|
@@ -1028,26 +1032,28 @@ Array.prototype.isEnumerable = YES ;
|
|
1028
1032
|
if (matched) ret.push(next) ;
|
1029
1033
|
}
|
1030
1034
|
return ret ;
|
1031
|
-
},
|
1035
|
+
},
|
1032
1036
|
|
1033
1037
|
//returns a matrix
|
1034
1038
|
groupBy: function(key) {
|
1035
1039
|
var len = this.length,
|
1036
1040
|
ret = [],
|
1037
1041
|
grouped = [],
|
1038
|
-
keyValues = []
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
+
keyValues = [],
|
1043
|
+
idx, next, cur;
|
1044
|
+
|
1045
|
+
for(idx=0;idx<len;idx++) {
|
1046
|
+
next = this[idx] ;
|
1047
|
+
cur = next ? (next.get ? next.get(key) : next[key]) : null;
|
1042
1048
|
if(SC.none(grouped[cur])){ grouped[cur] = []; keyValues.push(cur); }
|
1043
1049
|
grouped[cur].push(next);
|
1044
1050
|
}
|
1045
|
-
|
1051
|
+
|
1052
|
+
for(idx=0,len=keyValues.length; idx < len; idx++){
|
1046
1053
|
ret.push(grouped[keyValues[idx]]);
|
1047
1054
|
}
|
1048
1055
|
return ret ;
|
1049
|
-
},
|
1050
|
-
|
1056
|
+
},
|
1051
1057
|
|
1052
1058
|
find: function(callback, target) {
|
1053
1059
|
if (typeof callback !== "function") throw new TypeError() ;
|
@@ -1073,7 +1079,7 @@ Array.prototype.isEnumerable = YES ;
|
|
1073
1079
|
}
|
1074
1080
|
next=null;
|
1075
1081
|
return ret ;
|
1076
|
-
},
|
1082
|
+
},
|
1077
1083
|
|
1078
1084
|
everyProperty: function(key, value) {
|
1079
1085
|
var len = this.length ;
|
@@ -1085,7 +1091,7 @@ Array.prototype.isEnumerable = YES ;
|
|
1085
1091
|
}
|
1086
1092
|
return ret ;
|
1087
1093
|
},
|
1088
|
-
|
1094
|
+
|
1089
1095
|
someProperty: function(key, value) {
|
1090
1096
|
var len = this.length ;
|
1091
1097
|
var ret = NO;
|
@@ -1096,7 +1102,7 @@ Array.prototype.isEnumerable = YES ;
|
|
1096
1102
|
}
|
1097
1103
|
return ret ; // return the invert
|
1098
1104
|
},
|
1099
|
-
|
1105
|
+
|
1100
1106
|
invoke: function(methodName) {
|
1101
1107
|
var len = this.length ;
|
1102
1108
|
if (len <= 0) return [] ; // nothing to invoke....
|
@@ -1155,7 +1161,7 @@ Array.prototype.isEnumerable = YES ;
|
|
1155
1161
|
}
|
1156
1162
|
return ret ;
|
1157
1163
|
},
|
1158
|
-
|
1164
|
+
|
1159
1165
|
getEach: function(key) {
|
1160
1166
|
var ret = [];
|
1161
1167
|
var len = this.length ;
|
@@ -1165,7 +1171,7 @@ Array.prototype.isEnumerable = YES ;
|
|
1165
1171
|
}
|
1166
1172
|
return ret ;
|
1167
1173
|
},
|
1168
|
-
|
1174
|
+
|
1169
1175
|
setEach: function(key, value) {
|
1170
1176
|
var len = this.length;
|
1171
1177
|
for(var idx=0;idx<len;idx++) {
|
@@ -1178,47 +1184,49 @@ Array.prototype.isEnumerable = YES ;
|
|
1178
1184
|
}
|
1179
1185
|
return this ;
|
1180
1186
|
}
|
1181
|
-
|
1182
|
-
};
|
1183
|
-
|
1184
|
-
// These methods will only be applied if they are not already defined b/c
|
1187
|
+
|
1188
|
+
};
|
1189
|
+
|
1190
|
+
// These methods will only be applied if they are not already defined b/c
|
1185
1191
|
// the browser is probably getting it.
|
1186
1192
|
var mixinIfMissing = {
|
1187
1193
|
|
1194
|
+
// QUESTION: The lack of DRY is burning my eyes [YK]
|
1188
1195
|
forEach: function(callback, target) {
|
1189
1196
|
if (typeof callback !== "function") throw new TypeError() ;
|
1190
|
-
|
1197
|
+
|
1198
|
+
// QUESTION: Is this necessary?
|
1191
1199
|
if (target === undefined) target = null;
|
1192
1200
|
|
1193
|
-
for(var
|
1194
|
-
var next = this[
|
1195
|
-
callback.call(target, next,
|
1201
|
+
for(var i=0, l=this.length; i<l; i++) {
|
1202
|
+
var next = this[i] ;
|
1203
|
+
callback.call(target, next, i, this);
|
1196
1204
|
}
|
1197
1205
|
return this ;
|
1198
1206
|
},
|
1199
1207
|
|
1200
1208
|
map: function(callback, target) {
|
1201
1209
|
if (typeof callback !== "function") throw new TypeError() ;
|
1202
|
-
|
1210
|
+
|
1203
1211
|
if (target === undefined) target = null;
|
1204
1212
|
|
1205
1213
|
var ret = [];
|
1206
|
-
for(var
|
1207
|
-
var next = this[
|
1208
|
-
ret[
|
1214
|
+
for(var i=0, l=this.length; i<l; i++) {
|
1215
|
+
var next = this[i] ;
|
1216
|
+
ret[i] = callback.call(target, next, i, this) ;
|
1209
1217
|
}
|
1210
1218
|
return ret ;
|
1211
1219
|
},
|
1212
1220
|
|
1213
1221
|
filter: function(callback, target) {
|
1214
1222
|
if (typeof callback !== "function") throw new TypeError() ;
|
1215
|
-
|
1223
|
+
|
1216
1224
|
if (target === undefined) target = null;
|
1217
1225
|
|
1218
1226
|
var ret = [];
|
1219
|
-
for(var
|
1220
|
-
var next = this[
|
1221
|
-
if(callback.call(target, next,
|
1227
|
+
for(var i=0, l=this.length; i<l; i++) {
|
1228
|
+
var next = this[i] ;
|
1229
|
+
if(callback.call(target, next, i, this)) ret.push(next) ;
|
1222
1230
|
}
|
1223
1231
|
return ret ;
|
1224
1232
|
},
|
@@ -1260,8 +1268,8 @@ Array.prototype.isEnumerable = YES ;
|
|
1260
1268
|
for(var idx=0;idx<len;idx++) {
|
1261
1269
|
var next = this[idx] ;
|
1262
1270
|
|
1263
|
-
// while ret is still undefined, just set the first value we get as
|
1264
|
-
// ret. this is not the ideal behavior actually but it matches the
|
1271
|
+
// while ret is still undefined, just set the first value we get as
|
1272
|
+
// ret. this is not the ideal behavior actually but it matches the
|
1265
1273
|
// FireFox implementation... :(
|
1266
1274
|
if (next !== null) {
|
1267
1275
|
if (ret === undefined) {
|
@@ -1275,24 +1283,24 @@ Array.prototype.isEnumerable = YES ;
|
|
1275
1283
|
// uh oh...we never found a value!
|
1276
1284
|
if (ret === undefined) throw new TypeError() ;
|
1277
1285
|
return ret ;
|
1278
|
-
}
|
1286
|
+
}
|
1279
1287
|
};
|
1280
|
-
|
1288
|
+
|
1281
1289
|
// Apply methods if missing...
|
1282
1290
|
for(var key in mixinIfMissing) {
|
1283
1291
|
if (!mixinIfMissing.hasOwnProperty(key)) continue ;
|
1284
|
-
|
1292
|
+
|
1285
1293
|
// The mixinIfMissing methods should be applied if they are not defined.
|
1286
1294
|
// If Prototype 1.6 is included, some of these methods will be defined
|
1287
|
-
// already, but we want to override them anyway in this special case
|
1295
|
+
// already, but we want to override them anyway in this special case
|
1288
1296
|
// because our version is faster and functionally identitical.
|
1289
1297
|
if (!Array.prototype[key] || ((typeof Prototype === 'object') && Prototype.Version.match(/^1\.6/))) {
|
1290
1298
|
Array.prototype[key] = mixinIfMissing[key] ;
|
1291
1299
|
}
|
1292
1300
|
}
|
1293
|
-
|
1301
|
+
|
1294
1302
|
// Apply other methods...
|
1295
1303
|
SC.mixin(Array.prototype, alwaysMixin) ;
|
1296
|
-
|
1304
|
+
|
1297
1305
|
})() ;
|
1298
1306
|
|