From 58547d0d51334d4ed8e2da16d76508df990ddd8b Mon Sep 17 00:00:00 2001 From: Shinobu Kawano Date: Wed, 27 Nov 2013 20:01:50 +0900 Subject: [PATCH] New version -- 1.1! new features, integrate into Sencah Architect, Siesta testing, etc. --- .gitignore | 6 +- .sencha/package/build-impl.xml | 358 + .sencha/package/build.properties | 8 + .sencha/package/codegen.json | 118 + .sencha/package/defaults.properties | 155 + .sencha/package/find-cmd-impl.xml | 58 + .sencha/package/init-impl.xml | 250 + .sencha/package/js-impl.xml | 71 + .sencha/package/plugin.xml | 32 + .sencha/package/resources-impl.xml | 32 + .sencha/package/sass-impl.xml | 114 + .sencha/package/sencha.cfg | 60 + .sencha/package/slice-impl.xml | 111 + .sencha/package/sub-builds.xml | 182 + .sencha/package/testing.properties | 17 + README.md | 41 +- architect/AccordionList.js | 126 + architect/AccordionListItem.js | 41 + architect/Ext.ux.AccordionList.aux | Bin 0 -> 188789 bytes build.xml | 75 + example/.sencha/app/build-impl.xml | 390 - example/.sencha/app/codegen.json | 101 - example/.sencha/app/sencha.cfg | 11 - example/resources/css/app.css | 1 - examples/.sencha/app/build-impl.xml | 503 + examples/.sencha/app/build.properties | 20 + examples/.sencha/app/codegen.json | 282 + examples/.sencha/app/defaults.properties | 584 + examples/.sencha/app/find-cmd-impl.xml | 58 + examples/.sencha/app/init-impl.xml | 214 + examples/.sencha/app/js-impl.xml | 78 + .../.sencha/app/microloader/development.js | 185 + .../.sencha/app/microloader/production.js | 742 + examples/.sencha/app/microloader/testing.js | 177 + .../.sencha/app/native.defaults.properties | 28 + examples/.sencha/app/native.properties | 8 + .../.sencha/app/package.defaults.properties | 27 + examples/.sencha/app/package.properties | 11 + examples/.sencha/app/packager-impl.xml | 127 + examples/.sencha/app/page-impl.xml | 182 + {example => examples}/.sencha/app/plugin.xml | 0 .../app/production.defaults.properties | 29 + examples/.sencha/app/production.properties | 8 + examples/.sencha/app/refresh-impl.xml | 152 + examples/.sencha/app/resolve-impl.xml | 83 + examples/.sencha/app/resources-impl.xml | 25 + examples/.sencha/app/sass-impl.xml | 225 + examples/.sencha/app/sencha.cfg | 14 + examples/.sencha/app/slice-impl.xml | 236 + .../.sencha/app/testing.defaults.properties | 21 + examples/.sencha/app/testing.properties | 8 + examples/.sencha/app/touch.properties | 35 + examples/.sencha/app/watch-impl.xml | 53 + .../.sencha/workspace/plugin.xml | 0 .../.sencha/workspace/sencha.cfg | 6 +- {example => examples}/app.js | 3 - {example => examples}/app.json | 18 +- {example => examples}/app/controller/Task.js | 2 +- {example => examples}/app/model/Components.js | 0 {example => examples}/app/model/PL.js | 0 {example => examples}/app/model/Task.js | 0 {example => examples}/app/store/BigTask.js | 0 {example => examples}/app/store/Components.js | 0 {example => examples}/app/store/Grouped.js | 2 +- {example => examples}/app/store/PL.js | 0 {example => examples}/app/store/Task.js | 0 {example => examples}/app/view/ListItem.js | 0 {example => examples}/app/view/Main.js | 10 +- examples/bootstrap.js | 1730 + examples/bootstrap.json | 7 + {example => examples}/build.xml | 2 +- {example => examples}/index.html | 4 +- {example => examples}/packager.json | 4 +- examples/resources/css/app.css | 1 + .../resources/data/componentsData.json | 0 .../resources/data/groupedData.json | 0 .../resources/data/plData.json | 0 .../resources/data/testBigData.json | 0 .../resources/data/testData.json | 0 .../resources/icons/Icon.png | Bin .../resources/icons/Icon@2x.png | Bin examples/resources/icons/Icon_Android36.png | Bin 0 -> 3736 bytes examples/resources/icons/Icon_Android48.png | Bin 0 -> 4925 bytes .../resources/icons/Icon~ipad.png | Bin .../resources/icons/Icon~ipad@2x.png | Bin .../resources/icons/iTunesArtwork.png | Bin .../resources/icons/icon-spot~ipad.png | Bin .../loading/Default-Landscape@2x~ipad.png | Bin .../loading/Default-LandscapeLeft~ipad.png | Bin .../loading/Default-LandscapeRight~ipad.png | Bin .../loading/Default-Landscape~ipad.png | Bin .../loading/Default-Portrait@2x~ipad.png | Bin .../Default-PortraitUpsideDown~ipad.png | Bin .../loading/Default-Portrait~ipad.png | Bin .../resources/loading/Default.png | Bin .../resources/loading/Default@2x.png | Bin .../resources/loading/Default~ipad.png | Bin {example => examples}/resources/sass/app.scss | 3 - .../resources/sass/config.rb | 0 .../sass/stylesheets/_accordionlist.scss | 0 .../sass/stylesheets/fonts/ios7/ios7.eot | Bin 0 -> 1588 bytes .../sass/stylesheets/fonts/ios7/ios7.svg | 16 + .../sass/stylesheets/fonts/ios7/ios7.ttf | Bin 0 -> 1424 bytes .../sass/stylesheets/fonts/ios7/ios7.woff | Bin 0 -> 1068 bytes .../stylesheets/fonts/pictos/pictos-web.eot | Bin .../stylesheets/fonts/pictos/pictos-web.svg | 0 .../stylesheets/fonts/pictos/pictos-web.ttf | Bin .../stylesheets/fonts/pictos/pictos-web.woff | Bin .../resources/startup/1496x2048.png | Bin .../resources/startup/1536x2008.png | Bin .../resources/startup/320x460.jpg | Bin .../resources/startup/640x920.png | Bin .../resources/startup/748x1024.png | Bin .../resources/startup/768x1004.png | Bin image1.png | Bin 140624 -> 0 bytes image2.png | Bin 187838 -> 0 bytes MIT.LICENSE => licenses/MIT.LICENSE | 0 package.json | 40 +- project.xml | 41 - resources/Readme.md | 3 + resources/architect.png | Bin 0 -> 249561 bytes resources/eyecatch.png | Bin 0 -> 379273 bytes resources/siesta.png | Bin 0 -> 224738 bytes sass/Readme.md | 7 + sass/config.rb | 2 + sass/etc/Readme.md | 4 + sass/etc/all.scss | 0 sass/example/custom.js | 12 + sass/example/render.js | 423 + sass/example/theme.html | 44 + sass/src/Readme.md | 4 + sass/src/_accordionlist.scss | 39 + sass/var/Readme.md | 3 + src/Readme.md | 4 + src/ux/AccordionList.js | 14 +- test/SpecRunner.html | 58 - test/jasmine/jasmine-html.js | 681 - test/jasmine/jasmine.css | 82 - test/jasmine/jasmine.js | 2600 -- test/resources/data/plData.json | 210 - test/resources/data/testData.json | 42 - test/run-jasmine.js | 86 - test/spec/AccordionListSpec.js | 132 - test/src/app.js | 1 - tests/browse-mobile.html | 44 + tests/index.html | 21 + tests/index.js | 28 + .../resources/css/fonts/icomoon.dev.svg | 74 + tests/siesta/resources/css/fonts/icomoon.eot | Bin 0 -> 3556 bytes tests/siesta/resources/css/fonts/icomoon.svg | 74 + tests/siesta/resources/css/fonts/icomoon.ttf | Bin 0 -> 3392 bytes tests/siesta/resources/css/fonts/icomoon.woff | Bin 0 -> 4032 bytes .../css/fonts/icomoon49753/Read Me.txt | 3 + .../css/fonts/icomoon49753/index.html | 263 + .../css/fonts/icomoon49753/license.txt | 2 + .../css/fonts/icomoon49753/lte-ie7.js | 46 + .../css/fonts/icomoon49753/style.css | 104 + ...aHBYDBqgeIAH2zlNHq-FFgoDNV3GTKpHwuvtI.woff | Bin 0 -> 25884 bytes ...fmlt9b38dHJxOBGMVNtom4QlEDNJaqqqzqdSs.woff | Bin 0 -> 24908 bytes tests/siesta/resources/css/siesta-all.css | 1858 + .../siesta/resources/css/siesta-touch-all.css | 334 + tests/siesta/resources/images/Play.png | Bin 0 -> 3880 bytes tests/siesta/resources/images/PlayAll.png | Bin 0 -> 4035 bytes tests/siesta/resources/images/PlayButton.png | Bin 0 -> 4386 bytes .../resources/images/PlayButtonBlue.png | Bin 0 -> 4268 bytes .../siesta/resources/images/PlayButtonRed.png | Bin 0 -> 4386 bytes tests/siesta/resources/images/PlayRed.png | Bin 0 -> 3596 bytes tests/siesta/resources/images/Stop.png | Bin 0 -> 3113 bytes tests/siesta/resources/images/StopButton.png | Bin 0 -> 4243 bytes tests/siesta/resources/images/arrow_in.png | Bin 0 -> 1187 bytes tests/siesta/resources/images/arrow_out.png | Bin 0 -> 1147 bytes .../images/arrow_rotate_anticlockwise.png | Bin 0 -> 608 bytes tests/siesta/resources/images/bodybg.gif | Bin 0 -> 964 bytes tests/siesta/resources/images/book.png | Bin 0 -> 593 bytes tests/siesta/resources/images/book_48.png | Bin 0 -> 5236 bytes .../resources/images/bryntum-logo-64.jpg | Bin 0 -> 2505 bytes tests/siesta/resources/images/bug-todo.png | Bin 0 -> 900 bytes tests/siesta/resources/images/bug.png | Bin 0 -> 862 bytes tests/siesta/resources/images/bug32.png | Bin 0 -> 2070 bytes .../resources/images/button_play_all.png | Bin 0 -> 2040 bytes .../resources/images/button_play_checked.png | Bin 0 -> 2238 bytes .../resources/images/button_play_checked.xcf | Bin 0 -> 4839 bytes .../resources/images/button_play_red.png | Bin 0 -> 2257 bytes tests/siesta/resources/images/cart.png | Bin 0 -> 421 bytes tests/siesta/resources/images/checked.gif | Bin 0 -> 959 bytes tests/siesta/resources/images/checkmark32.png | Bin 0 -> 2283 bytes tests/siesta/resources/images/clock_48.png | Bin 0 -> 6740 bytes tests/siesta/resources/images/clock_check.png | Bin 0 -> 783 bytes tests/siesta/resources/images/cross.png | Bin 0 -> 655 bytes .../siesta/resources/images/cursor-arrow.png | Bin 0 -> 530 bytes .../resources/images/cursor-hand-press.png | Bin 0 -> 1481 bytes tests/siesta/resources/images/cursor-hand.png | Bin 0 -> 1483 bytes tests/siesta/resources/images/document_16.png | Bin 0 -> 3269 bytes .../resources/images/domcontainer-bg.png | Bin 0 -> 4482 bytes tests/siesta/resources/images/expand.png | Bin 0 -> 313 bytes tests/siesta/resources/images/flag-green.png | Bin 0 -> 436 bytes tests/siesta/resources/images/flag-red.png | Bin 0 -> 769 bytes .../siesta/resources/images/folder_green.png | Bin 0 -> 599 bytes tests/siesta/resources/images/folder_red.png | Bin 0 -> 563 bytes .../siesta/resources/images/folder_yellow.png | Bin 0 -> 4468 bytes tests/siesta/resources/images/gear.png | Bin 0 -> 1417 bytes tests/siesta/resources/images/group.png | Bin 0 -> 753 bytes tests/siesta/resources/images/hourglass.png | Bin 0 -> 716 bytes tests/siesta/resources/images/key_down.png | Bin 0 -> 450 bytes tests/siesta/resources/images/key_press.png | Bin 0 -> 450 bytes tests/siesta/resources/images/key_up.png | Bin 0 -> 513 bytes tests/siesta/resources/images/leaf.png | Bin 0 -> 6949 bytes tests/siesta/resources/images/lightning.png | Bin 0 -> 683 bytes tests/siesta/resources/images/lightning32.png | Bin 0 -> 1520 bytes tests/siesta/resources/images/loading2.gif | Bin 0 -> 8388 bytes tests/siesta/resources/images/logo.png | Bin 0 -> 3333 bytes tests/siesta/resources/images/logo_small2.png | Bin 0 -> 18826 bytes tests/siesta/resources/images/logo_small3.png | Bin 0 -> 9395 bytes tests/siesta/resources/images/magnifier.png | Bin 0 -> 615 bytes tests/siesta/resources/images/monitor.png | Bin 0 -> 612 bytes tests/siesta/resources/images/ns.png | Bin 0 -> 7027 bytes tests/siesta/resources/images/ok-todo.png | Bin 0 -> 583 bytes tests/siesta/resources/images/ok.png | Bin 0 -> 607 bytes tests/siesta/resources/images/palmtree.png | Bin 0 -> 3144 bytes tests/siesta/resources/images/prompt.png | Bin 0 -> 4465 bytes tests/siesta/resources/images/spinner.gif | Bin 0 -> 701 bytes tests/siesta/resources/images/stop_2.png | Bin 0 -> 1832 bytes .../siesta/resources/images/stop_on_error.png | Bin 0 -> 1035 bytes .../resources/images/text_align_left.png | Bin 0 -> 209 bytes tests/siesta/resources/images/to_do_list.png | Bin 0 -> 1564 bytes .../resources/images/to_do_list_small.png | Bin 0 -> 742 bytes .../resources/images/trigger-groups.gif | Bin 0 -> 1287 bytes .../siesta/resources/images/trigger-leafs.gif | Bin 0 -> 2035 bytes tests/siesta/resources/images/unchecked.gif | Bin 0 -> 941 bytes tests/siesta/resources/images/video.png | Bin 0 -> 4868 bytes .../syntaxhighlighter_3.0.83/LGPL-LICENSE | 165 + .../syntaxhighlighter_3.0.83/MIT-LICENSE | 2 +- .../compass/_theme_template.scss | 120 + .../compass/config.rb | 14 + .../compass/shCore.scss | 216 + .../compass/shCoreDefault.scss | 2 + .../compass/shCoreDjango.scss | 2 + .../compass/shCoreEclipse.scss | 2 + .../compass/shCoreEmacs.scss | 2 + .../compass/shCoreFadeToGrey.scss | 2 + .../compass/shCoreMDUltra.scss | 2 + .../compass/shCoreMidnight.scss | 2 + .../compass/shCoreRDark.scss | 2 + .../compass/shThemeDefault.scss | 7 + .../compass/shThemeDjango.scss | 36 + .../compass/shThemeEclipse.scss | 48 + .../compass/shThemeEmacs.scss | 32 + .../compass/shThemeFadeToGrey.scss | 36 + .../compass/shThemeMDUltra.scss | 32 + .../compass/shThemeMidnight.scss | 32 + .../compass/shThemeRDark.scss | 32 + .../syntaxhighlighter_3.0.83/index.html | 22 + .../scripts/shAutoloader.js | 17 + .../scripts/shBrushAS3.js | 59 + .../scripts/shBrushAppleScript.js | 75 + .../scripts/shBrushBash.js | 59 + .../scripts/shBrushCSharp.js | 65 + .../scripts/shBrushColdFusion.js | 100 + .../scripts/shBrushCpp.js | 97 + .../scripts/shBrushCss.js | 91 + .../scripts/shBrushDelphi.js | 55 + .../scripts/shBrushDiff.js | 41 + .../scripts/shBrushErlang.js | 52 + .../scripts/shBrushGroovy.js | 67 + .../scripts/shBrushJScript.js | 52 + .../scripts/shBrushJava.js | 57 + .../scripts/shBrushJavaFX.js | 58 + .../scripts/shBrushPerl.js | 72 + .../scripts/shBrushPhp.js | 88 + .../scripts/shBrushPlain.js | 33 + .../scripts/shBrushPowerShell.js | 74 + .../scripts/shBrushPython.js | 64 + .../scripts/shBrushRuby.js | 55 + .../scripts/shBrushSass.js | 94 + .../scripts/shBrushScala.js | 51 + .../scripts/shBrushSql.js | 66 + .../scripts/shBrushVb.js | 56 + .../scripts/shBrushXml.js | 69 + .../scripts/shCore.js | 17 + .../scripts/shLegacy.js | 17 + .../src/shAutoloader.js | 130 + .../syntaxhighlighter_3.0.83/src/shCore.js | 1721 + .../syntaxhighlighter_3.0.83/src/shLegacy.js | 157 + .../styles/shCore.css | 226 + .../styles/shCoreDefault.css | 328 + .../styles/shCoreDjango.css | 331 + .../styles/shCoreEclipse.css | 339 + .../styles/shCoreEmacs.css | 324 + .../styles/shCoreFadeToGrey.css | 328 + .../styles/shCoreMDUltra.css | 324 + .../styles/shCoreMidnight.css | 324 + .../styles/shCoreRDark.css | 324 + .../styles/shThemeDefault.css | 117 + .../styles/shThemeDjango.css | 120 + .../styles/shThemeEclipse.css | 128 + .../styles/shThemeEmacs.css | 113 + .../styles/shThemeFadeToGrey.css | 117 + .../styles/shThemeMDUltra.css | 113 + .../styles/shThemeMidnight.css | 113 + .../styles/shThemeRDark.css | 113 + .../tests/brushes/sass.html | 204 + .../tests/brushes_tests.html | 136 + .../tests/cases/001_basic.html | 42 + .../tests/cases/002_brushes.html | 50 + .../tests/cases/003_script_tag.html | 42 + .../tests/cases/004_url_parsing.html | 43 + .../tests/cases/005_no_gutter.html | 33 + .../tests/cases/006_pad_line_numbers.html | 39 + .../tests/cases/007_collapse.html | 60 + .../tests/cases/007_collapse_interaction.html | 44 + .../tests/cases/008_first_line.html | 29 + .../tests/cases/009_class_name.html | 32 + .../tests/cases/010_highlight.html | 70 + .../tests/cases/011_smart_tabs.html | 98 + .../tests/cases/012_server_side.html | 35 + .../tests/cases/013_html_script.html | 34 + .../tests/cases/014_legacy.html | 70 + .../tests/commonjs_tests.js | 52 + .../tests/js/jquery-1.4.2.js | 6240 +++ .../tests/js/qunit.css | 135 + .../tests/js/qunit.js | 1069 + .../tests/syntaxhighlighter_tests.html | 242 + .../tests/theme_tests.html | 134 + .../syntaxhighlighter_3.0.83/tests/webrick.rb | 11 + .../syntaxhighlighter_3.0.83/tests/webrick.sh | 2 + tests/siesta/siesta-all.js | 34766 ++++++++++++++++ tests/siesta/siesta-touch-all.js | 32098 ++++++++++++++ tests/spec/010_basic.t.js | 62 + tests/spec/020_decorate.t.js | 16 + tests/spec/030_nested.t.js | 16 + tests/spec/040_paging.t.js | 21 + tests/spec/050_components.t.js | 16 + tests/spec/060_grouped.t.js | 21 + 333 files changed, 95439 insertions(+), 4488 deletions(-) create mode 100644 .sencha/package/build-impl.xml create mode 100644 .sencha/package/build.properties create mode 100644 .sencha/package/codegen.json create mode 100644 .sencha/package/defaults.properties create mode 100644 .sencha/package/find-cmd-impl.xml create mode 100644 .sencha/package/init-impl.xml create mode 100644 .sencha/package/js-impl.xml create mode 100644 .sencha/package/plugin.xml create mode 100644 .sencha/package/resources-impl.xml create mode 100644 .sencha/package/sass-impl.xml create mode 100644 .sencha/package/sencha.cfg create mode 100644 .sencha/package/slice-impl.xml create mode 100644 .sencha/package/sub-builds.xml create mode 100644 .sencha/package/testing.properties create mode 100644 architect/AccordionList.js create mode 100644 architect/AccordionListItem.js create mode 100644 architect/Ext.ux.AccordionList.aux create mode 100644 build.xml delete mode 100644 example/.sencha/app/build-impl.xml delete mode 100644 example/.sencha/app/codegen.json delete mode 100644 example/.sencha/app/sencha.cfg delete mode 100644 example/resources/css/app.css create mode 100644 examples/.sencha/app/build-impl.xml create mode 100644 examples/.sencha/app/build.properties create mode 100644 examples/.sencha/app/codegen.json create mode 100644 examples/.sencha/app/defaults.properties create mode 100644 examples/.sencha/app/find-cmd-impl.xml create mode 100644 examples/.sencha/app/init-impl.xml create mode 100644 examples/.sencha/app/js-impl.xml create mode 100644 examples/.sencha/app/microloader/development.js create mode 100644 examples/.sencha/app/microloader/production.js create mode 100644 examples/.sencha/app/microloader/testing.js create mode 100644 examples/.sencha/app/native.defaults.properties create mode 100644 examples/.sencha/app/native.properties create mode 100644 examples/.sencha/app/package.defaults.properties create mode 100644 examples/.sencha/app/package.properties create mode 100644 examples/.sencha/app/packager-impl.xml create mode 100644 examples/.sencha/app/page-impl.xml rename {example => examples}/.sencha/app/plugin.xml (100%) create mode 100644 examples/.sencha/app/production.defaults.properties create mode 100644 examples/.sencha/app/production.properties create mode 100644 examples/.sencha/app/refresh-impl.xml create mode 100644 examples/.sencha/app/resolve-impl.xml create mode 100644 examples/.sencha/app/resources-impl.xml create mode 100644 examples/.sencha/app/sass-impl.xml create mode 100644 examples/.sencha/app/sencha.cfg create mode 100644 examples/.sencha/app/slice-impl.xml create mode 100644 examples/.sencha/app/testing.defaults.properties create mode 100644 examples/.sencha/app/testing.properties create mode 100644 examples/.sencha/app/touch.properties create mode 100644 examples/.sencha/app/watch-impl.xml rename {example => examples}/.sencha/workspace/plugin.xml (100%) rename {example => examples}/.sencha/workspace/sencha.cfg (91%) rename {example => examples}/app.js (95%) rename {example => examples}/app.json (93%) rename {example => examples}/app/controller/Task.js (94%) rename {example => examples}/app/model/Components.js (100%) rename {example => examples}/app/model/PL.js (100%) rename {example => examples}/app/model/Task.js (100%) rename {example => examples}/app/store/BigTask.js (100%) rename {example => examples}/app/store/Components.js (100%) rename {example => examples}/app/store/Grouped.js (97%) rename {example => examples}/app/store/PL.js (100%) rename {example => examples}/app/store/Task.js (100%) rename {example => examples}/app/view/ListItem.js (100%) rename {example => examples}/app/view/Main.js (97%) create mode 100644 examples/bootstrap.js create mode 100644 examples/bootstrap.json rename {example => examples}/build.xml (98%) rename {example => examples}/index.html (91%) rename {example => examples}/packager.json (98%) create mode 100644 examples/resources/css/app.css rename {example => examples}/resources/data/componentsData.json (100%) rename {example => examples}/resources/data/groupedData.json (100%) rename {example => examples}/resources/data/plData.json (100%) rename {example => examples}/resources/data/testBigData.json (100%) rename {example => examples}/resources/data/testData.json (100%) rename {example => examples}/resources/icons/Icon.png (100%) rename {example => examples}/resources/icons/Icon@2x.png (100%) create mode 100644 examples/resources/icons/Icon_Android36.png create mode 100644 examples/resources/icons/Icon_Android48.png rename {example => examples}/resources/icons/Icon~ipad.png (100%) rename {example => examples}/resources/icons/Icon~ipad@2x.png (100%) rename {example => examples}/resources/icons/iTunesArtwork.png (100%) rename {example => examples}/resources/icons/icon-spot~ipad.png (100%) rename {example => examples}/resources/loading/Default-Landscape@2x~ipad.png (100%) rename {example => examples}/resources/loading/Default-LandscapeLeft~ipad.png (100%) rename {example => examples}/resources/loading/Default-LandscapeRight~ipad.png (100%) rename {example => examples}/resources/loading/Default-Landscape~ipad.png (100%) rename {example => examples}/resources/loading/Default-Portrait@2x~ipad.png (100%) rename {example => examples}/resources/loading/Default-PortraitUpsideDown~ipad.png (100%) rename {example => examples}/resources/loading/Default-Portrait~ipad.png (100%) rename {example => examples}/resources/loading/Default.png (100%) rename {example => examples}/resources/loading/Default@2x.png (100%) rename {example => examples}/resources/loading/Default~ipad.png (100%) rename {example => examples}/resources/sass/app.scss (99%) rename {example => examples}/resources/sass/config.rb (100%) rename {example => examples}/resources/sass/stylesheets/_accordionlist.scss (100%) create mode 100644 examples/resources/sass/stylesheets/fonts/ios7/ios7.eot create mode 100644 examples/resources/sass/stylesheets/fonts/ios7/ios7.svg create mode 100644 examples/resources/sass/stylesheets/fonts/ios7/ios7.ttf create mode 100644 examples/resources/sass/stylesheets/fonts/ios7/ios7.woff rename {example => examples}/resources/sass/stylesheets/fonts/pictos/pictos-web.eot (100%) rename {example => examples}/resources/sass/stylesheets/fonts/pictos/pictos-web.svg (100%) rename {example => examples}/resources/sass/stylesheets/fonts/pictos/pictos-web.ttf (100%) rename {example => examples}/resources/sass/stylesheets/fonts/pictos/pictos-web.woff (100%) rename {example => examples}/resources/startup/1496x2048.png (100%) rename {example => examples}/resources/startup/1536x2008.png (100%) rename {example => examples}/resources/startup/320x460.jpg (100%) rename {example => examples}/resources/startup/640x920.png (100%) rename {example => examples}/resources/startup/748x1024.png (100%) rename {example => examples}/resources/startup/768x1004.png (100%) delete mode 100644 image1.png delete mode 100644 image2.png rename MIT.LICENSE => licenses/MIT.LICENSE (100%) delete mode 100644 project.xml create mode 100644 resources/Readme.md create mode 100644 resources/architect.png create mode 100644 resources/eyecatch.png create mode 100644 resources/siesta.png create mode 100644 sass/Readme.md create mode 100644 sass/config.rb create mode 100644 sass/etc/Readme.md create mode 100644 sass/etc/all.scss create mode 100644 sass/example/custom.js create mode 100644 sass/example/render.js create mode 100644 sass/example/theme.html create mode 100644 sass/src/Readme.md create mode 100644 sass/src/_accordionlist.scss create mode 100644 sass/var/Readme.md create mode 100644 src/Readme.md delete mode 100644 test/SpecRunner.html delete mode 100644 test/jasmine/jasmine-html.js delete mode 100644 test/jasmine/jasmine.css delete mode 100644 test/jasmine/jasmine.js delete mode 100644 test/resources/data/plData.json delete mode 100644 test/resources/data/testData.json delete mode 100644 test/run-jasmine.js delete mode 100644 test/spec/AccordionListSpec.js delete mode 100644 test/src/app.js create mode 100644 tests/browse-mobile.html create mode 100644 tests/index.html create mode 100644 tests/index.js create mode 100644 tests/siesta/resources/css/fonts/icomoon.dev.svg create mode 100644 tests/siesta/resources/css/fonts/icomoon.eot create mode 100644 tests/siesta/resources/css/fonts/icomoon.svg create mode 100644 tests/siesta/resources/css/fonts/icomoon.ttf create mode 100644 tests/siesta/resources/css/fonts/icomoon.woff create mode 100644 tests/siesta/resources/css/fonts/icomoon49753/Read Me.txt create mode 100644 tests/siesta/resources/css/fonts/icomoon49753/index.html create mode 100644 tests/siesta/resources/css/fonts/icomoon49753/license.txt create mode 100644 tests/siesta/resources/css/fonts/icomoon49753/lte-ie7.js create mode 100644 tests/siesta/resources/css/fonts/icomoon49753/style.css create mode 100644 tests/siesta/resources/css/fonts/sourcesanspro/v5/ODelI1aHBYDBqgeIAH2zlNHq-FFgoDNV3GTKpHwuvtI.woff create mode 100644 tests/siesta/resources/css/fonts/sourcesanspro/v5/toadOcfmlt9b38dHJxOBGMVNtom4QlEDNJaqqqzqdSs.woff create mode 100644 tests/siesta/resources/css/siesta-all.css create mode 100644 tests/siesta/resources/css/siesta-touch-all.css create mode 100644 tests/siesta/resources/images/Play.png create mode 100644 tests/siesta/resources/images/PlayAll.png create mode 100644 tests/siesta/resources/images/PlayButton.png create mode 100644 tests/siesta/resources/images/PlayButtonBlue.png create mode 100644 tests/siesta/resources/images/PlayButtonRed.png create mode 100644 tests/siesta/resources/images/PlayRed.png create mode 100644 tests/siesta/resources/images/Stop.png create mode 100644 tests/siesta/resources/images/StopButton.png create mode 100644 tests/siesta/resources/images/arrow_in.png create mode 100644 tests/siesta/resources/images/arrow_out.png create mode 100644 tests/siesta/resources/images/arrow_rotate_anticlockwise.png create mode 100644 tests/siesta/resources/images/bodybg.gif create mode 100644 tests/siesta/resources/images/book.png create mode 100644 tests/siesta/resources/images/book_48.png create mode 100644 tests/siesta/resources/images/bryntum-logo-64.jpg create mode 100755 tests/siesta/resources/images/bug-todo.png create mode 100755 tests/siesta/resources/images/bug.png create mode 100644 tests/siesta/resources/images/bug32.png create mode 100644 tests/siesta/resources/images/button_play_all.png create mode 100644 tests/siesta/resources/images/button_play_checked.png create mode 100644 tests/siesta/resources/images/button_play_checked.xcf create mode 100644 tests/siesta/resources/images/button_play_red.png create mode 100644 tests/siesta/resources/images/cart.png create mode 100644 tests/siesta/resources/images/checked.gif create mode 100644 tests/siesta/resources/images/checkmark32.png create mode 100644 tests/siesta/resources/images/clock_48.png create mode 100644 tests/siesta/resources/images/clock_check.png create mode 100644 tests/siesta/resources/images/cross.png create mode 100644 tests/siesta/resources/images/cursor-arrow.png create mode 100644 tests/siesta/resources/images/cursor-hand-press.png create mode 100644 tests/siesta/resources/images/cursor-hand.png create mode 100644 tests/siesta/resources/images/document_16.png create mode 100644 tests/siesta/resources/images/domcontainer-bg.png create mode 100644 tests/siesta/resources/images/expand.png create mode 100644 tests/siesta/resources/images/flag-green.png create mode 100644 tests/siesta/resources/images/flag-red.png create mode 100644 tests/siesta/resources/images/folder_green.png create mode 100644 tests/siesta/resources/images/folder_red.png create mode 100644 tests/siesta/resources/images/folder_yellow.png create mode 100644 tests/siesta/resources/images/gear.png create mode 100644 tests/siesta/resources/images/group.png create mode 100644 tests/siesta/resources/images/hourglass.png create mode 100644 tests/siesta/resources/images/key_down.png create mode 100644 tests/siesta/resources/images/key_press.png create mode 100644 tests/siesta/resources/images/key_up.png create mode 100644 tests/siesta/resources/images/leaf.png create mode 100644 tests/siesta/resources/images/lightning.png create mode 100644 tests/siesta/resources/images/lightning32.png create mode 100644 tests/siesta/resources/images/loading2.gif create mode 100644 tests/siesta/resources/images/logo.png create mode 100644 tests/siesta/resources/images/logo_small2.png create mode 100644 tests/siesta/resources/images/logo_small3.png create mode 100755 tests/siesta/resources/images/magnifier.png create mode 100644 tests/siesta/resources/images/monitor.png create mode 100644 tests/siesta/resources/images/ns.png create mode 100755 tests/siesta/resources/images/ok-todo.png create mode 100644 tests/siesta/resources/images/ok.png create mode 100644 tests/siesta/resources/images/palmtree.png create mode 100644 tests/siesta/resources/images/prompt.png create mode 100644 tests/siesta/resources/images/spinner.gif create mode 100644 tests/siesta/resources/images/stop_2.png create mode 100644 tests/siesta/resources/images/stop_on_error.png create mode 100644 tests/siesta/resources/images/text_align_left.png create mode 100644 tests/siesta/resources/images/to_do_list.png create mode 100644 tests/siesta/resources/images/to_do_list_small.png create mode 100644 tests/siesta/resources/images/trigger-groups.gif create mode 100644 tests/siesta/resources/images/trigger-leafs.gif create mode 100644 tests/siesta/resources/images/unchecked.gif create mode 100644 tests/siesta/resources/images/video.png create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/LGPL-LICENSE rename test/jasmine/MIT.LICENSE => tests/siesta/resources/syntaxhighlighter_3.0.83/MIT-LICENSE (96%) create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/_theme_template.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/config.rb create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCore.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCoreDefault.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCoreDjango.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCoreEclipse.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCoreEmacs.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCoreFadeToGrey.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCoreMDUltra.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCoreMidnight.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shCoreRDark.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shThemeDefault.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shThemeDjango.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shThemeEclipse.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shThemeEmacs.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shThemeFadeToGrey.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shThemeMDUltra.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shThemeMidnight.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/compass/shThemeRDark.scss create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/index.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shAutoloader.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushAS3.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushAppleScript.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushBash.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushCSharp.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushColdFusion.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushCpp.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushCss.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushDelphi.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushDiff.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushErlang.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushGroovy.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushJScript.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushJava.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushJavaFX.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushPerl.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushPhp.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushPlain.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushPowerShell.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushPython.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushRuby.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushSass.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushScala.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushSql.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushVb.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shBrushXml.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shCore.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/scripts/shLegacy.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/src/shAutoloader.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/src/shCore.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/src/shLegacy.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCore.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCoreDefault.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCoreDjango.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCoreEclipse.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCoreEmacs.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCoreFadeToGrey.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCoreMDUltra.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCoreMidnight.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shCoreRDark.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shThemeDefault.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shThemeDjango.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shThemeEclipse.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shThemeEmacs.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shThemeFadeToGrey.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shThemeMDUltra.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shThemeMidnight.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/styles/shThemeRDark.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/brushes/sass.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/brushes_tests.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/001_basic.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/002_brushes.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/003_script_tag.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/004_url_parsing.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/005_no_gutter.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/006_pad_line_numbers.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/007_collapse.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/007_collapse_interaction.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/008_first_line.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/009_class_name.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/010_highlight.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/011_smart_tabs.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/012_server_side.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/013_html_script.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/cases/014_legacy.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/commonjs_tests.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/js/jquery-1.4.2.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/js/qunit.css create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/js/qunit.js create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/syntaxhighlighter_tests.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/theme_tests.html create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/webrick.rb create mode 100644 tests/siesta/resources/syntaxhighlighter_3.0.83/tests/webrick.sh create mode 100644 tests/siesta/siesta-all.js create mode 100644 tests/siesta/siesta-touch-all.js create mode 100644 tests/spec/010_basic.t.js create mode 100644 tests/spec/020_decorate.t.js create mode 100644 tests/spec/030_nested.t.js create mode 100644 tests/spec/040_paging.t.js create mode 100644 tests/spec/050_components.t.js create mode 100644 tests/spec/060_grouped.t.js diff --git a/.gitignore b/.gitignore index e90fa9c..5479997 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,12 @@ # Touch SDK -/example/touch/ +/examples/touch/ # Generated directories .ux-ant-cache/ .sass-cache/ .sencha_backup/ -/example/archive -/example/build +/examples/archive +/examples/build # Generated files /application/resources/css/ diff --git a/.sencha/package/build-impl.xml b/.sencha/package/build-impl.xml new file mode 100644 index 0000000..e242abd --- /dev/null +++ b/.sencha/package/build-impl.xml @@ -0,0 +1,358 @@ + + + + + + + + Using Sencha Cmd from ${cmd.dir} for ${ant.file} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.sencha/package/build.properties b/.sencha/package/build.properties new file mode 100644 index 0000000..83e7e5f --- /dev/null +++ b/.sencha/package/build.properties @@ -0,0 +1,8 @@ +# ============================================================================= +# This file provides an override point for default variables defined in +# defaults.properties. +# +# IMPORTANT - Sencha Cmd will merge your changes with its own during upgrades. +# To avoid potential merge conflicts avoid making large, sweeping changes to +# this file. +# ============================================================================= diff --git a/.sencha/package/codegen.json b/.sencha/package/codegen.json new file mode 100644 index 0000000..fe00b59 --- /dev/null +++ b/.sencha/package/codegen.json @@ -0,0 +1,118 @@ +{ + "sources": { + "package.json.tpl.merge": { + "12322b2f0769f491000df8ec0e012dd2d78a7eaf": "eJx1zrEKwjAQgOG9TxE6S9HV2VFcFBdxONJrDW1y8XIRSum7m2pTJzMd/3cHGQuVXunAYrlX5ei79pTmqdx8QQa/wiXNK2hGEOLZwJEbLMWQLURrgYfZzg9iUTksXqOA6bE+YNBsvBhy8+6RXKvqX1PUKA+6gxbz5Qs5LNu7altt19+Q9SDXP9oQW5BPzqknDX0qwhGXxPiMhjGkersXU/EGNatRVA\u003d\u003d" + }, + "theme.html.tpl.merge": { + "79ec5194c052d6cc313e842c4e2763fa562c7b70": "eJydVE1vEzEQve+vmO4JEF6nhQNKd3MJRYCQqEg4cHS8k9jFay/2JE1U9b/X3l1KWoKIYln74Tdv3vh55PLs/dfp/Mf1FShqzCQrzxjLAGDq2p3XK0XwQr6Ei9H5BYuPNwXM0Eol4JOVRcZYJAw8haKeJCaUpMng5GpL8HkGc4UNwkfhLYZQ8h7r4xokEWWpZfhrrTdVPnWW0BKb71rMQfZ/VU64JZ5kLiFK+4BUfZ9/YO/ySdYnGmqGL07UIIwBnxJ6rMFo+zOAsDUE6XVLoYtLdXfEBMdgU+WBdgaDQqQcKMoPqjKEHJTHZZXjVjStwaJb4kOCPus+40ZsRL+aQ/CyyouCx3kXsW9orgWpex6/WY2L9aq4Cfmk5H388SkXzlEgL9pn/ANukEKYGS3RRz89HrbhCEmPtkb/f73kfiOsXmKgwXjlPMn1CZq9c3Emvyj1EVuIgDyIEPhwHPy32IlWHqXxuIUTReQ6kGsOmtf1XZ8pjeJW1ysklnpfaBtP7e4RS6MRfqXtGM5H7fbyCRKJpMbwdvQX0rqgSbvIip0uSG/wKe426JfG3Y5ho4NemD34PvtT2ZaFro8YxRqQXv8TgVfPinatkJp2ser9zN32+bD/ku/dHwtX76JR3Ssh3QXzACi8aeE\u003d" + }, + "build.properties.merge": { + "8b81315dbe73ce9c08478f4c1d2df84f456efcf5": "eJytkEtOxEAMRPdzipKyhbkBCzQrFnzE5AKetJNYdOzI3UnE7XGA3GC8K5f9/GnwdM84NWhHKeglM2a3VRIXkMJWdg+B2UQrenMk7mnJFSu50C1HXWREOUEUAfr3yzk4M3sVLudTE8bL68f7Z/v81uIRV9ZuJFymhE1yxsQ+ML5tcUReh6BuUkdILbBNkRYXHbDMg1P6BaI10GqSYrXKWoUOSmfaZ+mi88+f6GvvzRTmA8rGPO/6mFMtYPW4fiff97U/al6C1w\u003d\u003d" + }, + "config.rb.tpl.merge": { + "33f446bd02c3fd24eb27891582eff6a2e789796b": "eJxLLi2KT8ksUrBVcMvMSdUDMvMSc1M14uPdPH1c4+M1ufJLSwpKS+KLSypzUoGqrPJSi0tSU7gALskTcA\u003d\u003d" + }, + "all.scss.merge": { + "da39a3ee5e6b4b0d3255bfef95601890afd80709": "eJwDAAAAAAE\u003d" + }, + "custom.js.merge": { + "199e99bbd15c3c0415569425cb21e77c95e9042a": "eJxlj0FOxDAMRfdziq9ZwUjTHIAlYslquIAncdtA4lSxC8PtSdoREmIV6f/4+dmdDjjhbY6KMSZGeycWrmQcQAqCGlWLMmEpUQzXb1xY/Ex4zgFnRMNXTAlSWseovCTybbbUDl6XsJHa1FH3sYX8B03cqqlS4OPQ//2V8CQ7K5fPriEBNjPU17gYjCZE6UnmYbacfj/GsaUNslUIhbVzu5lwq/2qVjIohGixCCVkkjiyWrOFzqWaXw0sViPr0IRYGVQ7yq+55X2HdObg7meo45udt4XnKyk7Je0Z5SWxqyyB6/Cu/Uh3ODj3crNhN28ar/f1D49P/7rLXUd7+QPuPI9g" + }, + "testing.properties.merge": { + "e65f969c42eb4f355c850fc58fea852582f20db8": "eJyVkUFywyAQBO9+xVb5oIutH/gX+QCCkbUOAooFOf59FsmqpHKKOFEwOzM0Z7r9f53O9DGx0Mge5DBygFDKMSEX1m0VOBpepLqhsndXnpPvv2Z/oefEdiKdLRNoMAJqdyqMI5lAJiXP1hSOQbbZ5msh0mskmuOvnDHHWY32JjbmDEkxOCqxBai6K5DC4d693RAWzjHMCOVCkmB5ZLhW9EWdINjJtBJv9T7cU0vXsk/2rWwxn9AisHA6AooLcgNhqi8riYXdimAn0P+07vXsCOuD8rNimLWaiDKkmBrK7UOUyR0B2RRQdzXedyp+CMVaUi0rQn3ninMxvurPspjBQ/54jjHvYLbHycGKG5Fm2SIf0u/ut9M3l43NIg\u003d\u003d" + }, + "sencha.cfg.tpl.merge": { + "6d1982cce48163a98dc46012d1d0cdfa209fbda6": "eJzFVdFq2zAUfc9XXNzBWmicvg0GgXZlD9vDWsge96LIcqJFljRJTuqN/vuOJNvJmqbbYLASim1dnXPuuVdXZ/R5LUizRpCpKeDZMr5hK0FT8mvTqooaFvg6LRUxriDrjBUudCQ1lbM+vvzqjZ6cTYbXGDr/YTerT3h4nEzORiKPEEHB0G4tE7D0A+lrT4ubxYK4cQ5xRle+TPsqUbNWBdoy1UalgCveP4SCGsG0BwYLSWEtlfBZl2fez7zjdM50NbxvmbvoE+IKH1IwwOLehOeMCXuVJX3QZLDoaGdc5S8Ta2mZFqq8j/+hgFkIMADZc85SxCxFlJ57X2I5WmDIh06Jkbx2piGmuz3lJXkRsimwaKmY3kBFnb/gl75cZsk6hmTAY12daSE6FtC2IduaUj1QiT3PKR1rGAPLUdkc4bmOWUn0jJumYVMvLHMsiIqU9CE2Um1UJZxHiYXbZ4uaykqkinoBpOF702LXUpB4sEpyGVSH0G+tdECMJggo56qt8IrSRt5lK1V1KDVBWRbW81df2qurN++GhUq6x5js3yrHo9kK5yAYPXij1L63YimAFtloJ7ECgSu5RTkYBbaKW4ue/m6AKPpuBztrg0ELSs6U6oAzpgroldAi62EWbbXs8pGEcULz/ogCQkkdPYlBOHdv4cMZEc1m1z0WXT/lP7BqTOtZq8bVp4ZlY/qKpnYqYGvRFzWd0xzsBXN8jRRq42hxu1gAKHuXjul+nHxkW7bgTtowdkLrsa/PGsmhG2CU0UdNCebTxe7b+w8SwDjw/ykDUL+cAQLGDCL5UeuQbKxxITUOTkkkTFmls4GehHjRp3jELsJv/EPADCRpJJwwEv3XT3BDVsWZXsQuXbM8zeMdkqQUZNqAGXQoIp9f0D2rIK0OV0bPlpznRgcmMfDFA2us+sXhc3+R6nV4nxxS9lv8SdYh4EVi3y6n/S4/HscBhu40yoI7SubWKWqH4YmbY1OkeZEv1tDZX4QBEtfkaV0DHXTN/+kfNN1i8uIGus83ukROU7pPteRpRX5P3mISCWV2B8MHNWdbgzwb4VZplhtdoxQBM19iLmqxg3eYJT5un/wEixPeXA\u003d\u003d" + } + }, + "targets": { + ".sencha/package/testing.properties": { + "source": "testing.properties.merge", + "version": "e65f969c42eb4f355c850fc58fea852582f20db8", + "parameters": { + "pkgName": "Ext.ux.AccordionList", + "senchadir": ".sencha", + "touchRelPath": "../${touch.dir}", + "extRelPath": "../${ext.dir}", + "pkgType": "code" + } + }, + ".sencha/package/build.properties": { + "source": "build.properties.merge", + "version": "8b81315dbe73ce9c08478f4c1d2df84f456efcf5", + "parameters": { + "pkgName": "Ext.ux.AccordionList", + "senchadir": ".sencha", + "touchRelPath": "../${touch.dir}", + "extRelPath": "../${ext.dir}", + "pkgType": "code" + } + }, + "package.json": { + "source": "package.json.tpl.merge", + "version": "12322b2f0769f491000df8ec0e012dd2d78a7eaf", + "parameters": { + "pkgName": "Ext.ux.AccordionList", + "senchadir": ".sencha", + "touchRelPath": "../${touch.dir}", + "extRelPath": "../${ext.dir}", + "pkgType": "code" + } + }, + "sass/example/theme.html": { + "source": "theme.html.tpl.merge", + "version": "79ec5194c052d6cc313e842c4e2763fa562c7b70", + "parameters": { + "pkgName": "Ext.ux.AccordionList", + "senchadir": ".sencha", + "touchRelPath": "../${touch.dir}", + "extRelPath": "../${ext.dir}", + "pkgType": "code" + } + }, + "sass/example/custom.js": { + "source": "custom.js.merge", + "version": "199e99bbd15c3c0415569425cb21e77c95e9042a", + "parameters": { + "pkgName": "Ext.ux.AccordionList", + "senchadir": ".sencha", + "touchRelPath": "../${touch.dir}", + "extRelPath": "../${ext.dir}", + "pkgType": "code" + } + }, + "sass/etc/all.scss": { + "source": "all.scss.merge", + "version": "da39a3ee5e6b4b0d3255bfef95601890afd80709", + "parameters": { + "pkgName": "Ext.ux.AccordionList", + "senchadir": ".sencha", + "touchRelPath": "../${touch.dir}", + "extRelPath": "../${ext.dir}", + "pkgType": "code" + } + }, + "sass/config.rb": { + "source": "config.rb.tpl.merge", + "version": "33f446bd02c3fd24eb27891582eff6a2e789796b", + "parameters": { + "pkgName": "Ext.ux.AccordionList", + "senchadir": ".sencha", + "touchRelPath": "../${touch.dir}", + "extRelPath": "../${ext.dir}", + "pkgType": "code" + } + }, + ".sencha/package/sencha.cfg": { + "source": "sencha.cfg.tpl.merge", + "version": "6d1982cce48163a98dc46012d1d0cdfa209fbda6", + "parameters": { + "pkgName": "Ext.ux.AccordionList", + "senchadir": ".sencha", + "touchRelPath": "../${touch.dir}", + "extRelPath": "../${ext.dir}", + "pkgType": "code" + } + } + } +} \ No newline at end of file diff --git a/.sencha/package/defaults.properties b/.sencha/package/defaults.properties new file mode 100644 index 0000000..dab58b1 --- /dev/null +++ b/.sencha/package/defaults.properties @@ -0,0 +1,155 @@ +# ============================================================================= +# This file defines properties used by build-impl.xml and the associated +# *-impl.xml files (sass-impl.xml, js-impl.xml, etc.), which are the core of +# the applications build process. +# +# IMPORTANT - This file is not modifiable by a package, and will be overwritten +# during each app upgrade. Please use build.properties for defining package +# customizations to these properties. +# ============================================================================= + +# =========================================== +# properties defining various directory +# locations +# =========================================== +build.dir=${package.build.dir} +build.resources.dir=${build.dir}/resources +package.resources.dir=${package.dir}/resources +package.sass.dir=${package.dir}/sass +package.licenses.dir=${package.dir}/licenses + +# =========================================== +# definitions of various file name patterns +# used for output artifacts +# =========================================== +build.name.prefix=${build.dir}/${package.name} +build.name.css.prefix=${build.resources.dir}/${package.name} +build.name.ruby=config.rb + +build.debug.suffix=-debug +build.all.suffix=-all +build.rtl.suffix=-rtl + +build.all.debug.suffix=${build.all.suffix}${build.debug.suffix} +build.all.rtl.suffix=${build.all.suffix}${build.rtl.suffix} +build.all.rtl.debug.suffix=${build.all.suffix}${build.rtl.suffix}${build.debug.suffix} + +# =========================================== +# define the output js file names for dev, +# debug, and compressed (no suffix) +# =========================================== +build.all.js=${build.name.prefix}.js +build.all.debug.js=${build.name.prefix}${build.debug.suffix}.js + +# =========================================== +# output file names for the scss files +# =========================================== +build.all.scss=${build.name.prefix}${build.all.debug.suffix}.scss +build.all.rtl.scss=${build.name.prefix}${build.all.rtl.debug.suffix}.scss + +# =========================================== +# output file names for the css files +# generated from the scss files by running +# a compass compilation +# =========================================== +build.all.css.debug.prefix=${package.name}${build.all.debug.suffix} +build.all.css.debug=${build.resources.dir}/${build.all.css.debug.prefix}.css +build.all.rtl.css.debug.prefix=${package.name}${build.all.rtl.debug.suffix} +build.all.rtl.css.debug=${build.resources.dir}/${build.all.rtl.css.debug.prefix}.css +build.all.css.prefix=${package.name}${build.all.suffix} +build.all.css=${build.resources.dir}/${build.all.css.prefix}.css +build.all.rtl.css.prefix=${package.name}${build.all.rtl.suffix} +build.all.rtl.css=${build.resources.dir}/${build.all.rtl.css.prefix}.css + +build.all.ruby=${build.dir}/${build.name.ruby} + +# =========================================== +# options to pass to the 'sencha fs slice' command +# =========================================== +build.slice.options= + +# =========================================== +# preprocessor options used when generating +# concatenated js output files +# =========================================== +build.compile.js.debug.options=debug:true +build.compile.js.options=debug:false + +# enables / disables removing text references from +# package js build files +build.remove.references=false + +# This property can be modified to change general build options +# such as excluding files from the set. The format expects newlines +# for each argument, for example: +# +# build.operations=\ +# exclude\n \ +# -namespace=Ext\n +# +# NOTE: modifications to build.operations are intended to be +# placed in an override of the "-after-init" target, where it +# can be calculated based on other +# ant properties +# +# build.operations= + +# =========================================== +# compression option used to generate '-all' +# js output file +# =========================================== +build.compile.js.compress=+yui + +# =========================================== +# selector count threshold to use when +# splitting a single css file into multiple +# css files (IE selector limit workaround) +# =========================================== +build.css.selector.limit=4095 + +# controls the ruby command used to execute compass. a full path +# to ruby may be specified rather than allowing the system shell +# to resolve the command +build.ruby.path=ruby + +# controls the working directory of the child compass process +# and the output location for the .sass-cache folder +compass.working.dir=${build.dir} + +# enables / disables console highlighting for compass +compass.compile.boring=false + +# enables / disables forced rebuilds for compass +compass.compile.force=true + +# enables / disables stack traces in compass failure output +compass.compile.trace=true + +# =========================================== +# Options for sub-packages + +# Set to true/1 to enable build.version inheritance by sub-pacakges +build.subpkgs.inherit.version=0 + +# =========================================== +# theme slicing example page settings +# =========================================== +package.example.dir=${package.dir}/sass/example +package.example.base=${build.all.rtl.css.debug.prefix} +package.example.css.rel=resources/${package.example.base}.css +package.example.css=${build.dir}/${package.example.css.rel} +package.example.scss=${build.dir}/${package.example.base}.scss +package.example.theme.html=${package.example.dir}/theme.html + +bootstrap.base.path=${package.example.dir} +bootstrap.example.js=${package.example.dir}/bootstrap.js + + +# =========================================== +# options controlling output packaging +# operations for output '.pkg' file +# =========================================== +pkg.build.dir=${workspace.build.dir}/${package.name} +pkg.file.name=${package.name}.pkg +pkg.includes=**/* +pkg.excludes=package.json diff --git a/.sencha/package/find-cmd-impl.xml b/.sencha/package/find-cmd-impl.xml new file mode 100644 index 0000000..55d6826 --- /dev/null +++ b/.sencha/package/find-cmd-impl.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + source ~/.bash_profile; sencha which -p cmd.dir -o '$cmddir$' + + + + + + \ No newline at end of file diff --git a/.sencha/package/init-impl.xml b/.sencha/package/init-impl.xml new file mode 100644 index 0000000..ce77788 --- /dev/null +++ b/.sencha/package/init-impl.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + Switch package version to ${build.version} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.sencha/package/js-impl.xml b/.sencha/package/js-impl.xml new file mode 100644 index 0000000..50e6992 --- /dev/null +++ b/.sencha/package/js-impl.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.sencha/package/plugin.xml b/.sencha/package/plugin.xml new file mode 100644 index 0000000..d57eba8 --- /dev/null +++ b/.sencha/package/plugin.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/.sencha/package/resources-impl.xml b/.sencha/package/resources-impl.xml new file mode 100644 index 0000000..19e2d48 --- /dev/null +++ b/.sencha/package/resources-impl.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + Merging resources from base package ${base.path} + + + + + + + + + + + + + + + + Merging resources from current package ${package.resources.dir} + + + + + \ No newline at end of file diff --git a/.sencha/package/sass-impl.xml b/.sencha/package/sass-impl.xml new file mode 100644 index 0000000..d86e2d6 --- /dev/null +++ b/.sencha/package/sass-impl.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.sencha/package/sencha.cfg b/.sencha/package/sencha.cfg new file mode 100644 index 0000000..ffb918a --- /dev/null +++ b/.sencha/package/sencha.cfg @@ -0,0 +1,60 @@ +# The name of the package - should match the "name" property in ./package.json +# +package.name=Ext.ux.AccordionList + +# The namespace to which this package's SASS corresponds. The default value of +# "Ext" means that the files in ./sass/src (and ./sass/var) match classes in +# the Ext" root namespace. In other words, "Ext.panel.Panel" maps to +# ./sass/src/panel/Panel.scss. +# +# To style classes from any namespace, set this to blank. If this is blank, +# then to style "Ext.panel.Panel" you would put SASS in +# ./sass/src/Ext/panel/Panel.scss. +# +package.sass.namespace=Ext + +# This is the comma-separated list of folders where classes reside. These +# classes must be explicitly required to be included in the build. +# +package.classpath=${package.dir}/src + +# This is the comma-separated list of folders of overrides. All files in this +# path will be given a tag of "packageOverrides" which is automatically +# required in generated apps by the presence of this line in app.js: +# +# //@require @packageOverrides +# +package.overrides=${package.dir}/overrides + +# This is the folder where SASS "src" resides. This is searched for SCSS +# files that match the JavaScript classes used by the application. +# +package.sass.srcpath=${package.dir}/sass/src + +# This is the folder where SASS "vars" resides. This is searched for SCSS +# files that match the JavaScript classes used by the application. +# +package.sass.varpath=${package.dir}/sass/var + +# This file is automatically imported into the SASS build before "vars". +# +package.sass.etcpath=${package.dir}/sass/etc/all.scss + +# This is the folder in which to place "sencha packaage build" output. +# +package.build.dir=${package.dir}/build + +# The folder that contains example application(s) for this package. +# +package.examples.dir=${package.dir}/examples + +# The folder that contains sub-packages of this package. Only valid for "framework" +# package type. +# +package.subpkgs.dir=${package.dir}/packages + +#============================================================================== +# Custom Properties - Place customizations below this line to avoid merge +# conflicts with newer versions + +package.cmd.version=4.0.1.45 diff --git a/.sencha/package/slice-impl.xml b/.sencha/package/slice-impl.xml new file mode 100644 index 0000000..8ca45dc --- /dev/null +++ b/.sencha/package/slice-impl.xml @@ -0,0 +1,111 @@ + + + + +/** + * This file is generated by Sencha Cmd and should NOT be edited. It is + * provided to support globbing requires, custom xtypes, and other + * metadata-driven class system features + */ + + + + + + + + + + + +/* + * This file is generated by Sencha Cmd and should NOT be edited. It redirects + * to the most recently built CSS file for the application to allow theme.html + * to load properly for image slicing (required to support non-CSS3 browsers + * such as IE9 and below). + */ +@import '${package.example.css.path}'; + + + + + + Capture theme image to ${build.dir}/theme-capture.png + + + + + + + Slicing theme images to ${build.resources.dir} + + + + + + + + + + \ No newline at end of file diff --git a/.sencha/package/sub-builds.xml b/.sencha/package/sub-builds.xml new file mode 100644 index 0000000..90f648e --- /dev/null +++ b/.sencha/package/sub-builds.xml @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + package + upgrade + + + + + + + + + + Building example in @{example-dir} + + + + + + + + + Upgrading example in @{example-dir} + + + app + upgrade + + + + + + + + + + Cleaning example in @{example-dir} + + + + + \ No newline at end of file diff --git a/.sencha/package/testing.properties b/.sencha/package/testing.properties new file mode 100644 index 0000000..60749a3 --- /dev/null +++ b/.sencha/package/testing.properties @@ -0,0 +1,17 @@ +# =========================================== +# This file defines properties used by +# build-impl.xml, which is the base impl +# of an applications build process. The +# properties from this file correspond to the +# 'testing' build environment, specified +# by 'sencha app build testing'. These will +# take precedence over defaults provided by +# build.properties. +# =========================================== + +# =========================================== +# compression option used to generate '-all' +# js output file. this value disables +# compression for testing builds +# =========================================== +build.compile.js.compress= diff --git a/README.md b/README.md index 13336e0..ba1c606 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,7 @@ Collapsible List with Ext.data.TreeStore. You can expand and collapse contents b This component was introduced at [Sencha Insight #6](http://us6.campaign-archive2.com/?u=35c628e5bf74b167e4791ffb8&id=f36913f231) -[![1](image1.png)](https://raw.github.com/kawanoshinobu/Ext.ux.AccordionList/master/image1.png) - -[![2](image2.png)](https://raw.github.com/kawanoshinobu/Ext.ux.AccordionList/master/image2.png) +[![1](eyecatch.png)](https://raw.github.com/kawanoshinobu/Ext.ux.AccordionList/master/resources/eyecatch.png) ## Demo @@ -44,31 +42,35 @@ If you use default design, import _accordionlist.scss and include accordionlist @import 'stylesheets/accordionlist'; @include accordionlist; -Before build with Sencha Cmd, you must define "${add.dir}/ux" to sencha.cfg: +Before build with Sencha Cmd, you must define "${add.dir}/../src/ux" to sencha.cfg: - app.classpath=${app.dir}/app.js,${app.dir}/ux,${app.dir}/app + app.classpath=${app.dir}/app.js,${app.dir}/../src/ux,${app.dir}/app ### Example Execute the following command in the sources root directory - sencha ant -f project.xml initialize + sencha ant -f build.xml initialize And compile .scss file. - compass compile example/resources/sass/ + compass compile examples/resources/sass/ Then to place example directory to server's application directory. -## Test +## Integrate into Sencha Architect -You can execute Jasmine and PhantomJS based unit test. +If you want to use AccordionList with Architect, please install ‘Ext.ux.AccordionList.aux’ file of `architect` directory. Then you will find this component at Toolbox section. Please drag component to design area, that’s all. -Example command line: +AccordionList creates lists instance dynamically, so you cannot see the preview, but able to define some config by config section. - phantomjs test/run-jasmine.js http://localhost:3333/Ext.ux.AccordionList/test/SpecRunner.html +[![2](architect.png)](https://raw.github.com/kawanoshinobu/Ext.ux.AccordionList/master/resources/architect.png) + +## Test -You will need to run the tests from a web server because XHR's cannot be made from the file:// protocol +You can execute Siesta based unit test. To run the test, install this project into where the web server can serve your apps, and access to http://localhost/Ext.ux.AccordionList/tests from browser. + +[![3](siesta.png)](https://raw.github.com/kawanoshinobu/Ext.ux.AccordionList/master/resources/siesta.png) ## useComponents @@ -122,18 +124,27 @@ That's ok. Accordion List appears components bound items. You can check it at ex ## Version -1.0.1 +1.1.0 ## Change log -[2013-06-15] **v1.0.1** KAWANO Shinobu (kawanoshinobu) +[2013-11-27] **v1.1.0** Shinobu Kawano (kawanoshinobu) + +* Add paging and pull refresh feature +* Add bind component feature +* Add grouping and index bar feature +* Add indent feature +* Add some config to integrate into Sencha Architect +* change test tool, Jasmine to Siesta + +[2013-06-15] **v1.0.1** Shinobu Kawano (kawanoshinobu) * Add singleMode feature * Add animation feature * Add showCount feature * Add new example (decorate) -[2013-05-05] **v1.0.0** KAWANO Shinobu (kawanoshinobu) +[2013-05-05] **v1.0.0** Shinobu Kawano (kawanoshinobu) * Update for Sencha Touch 2.2 * Refactoring code diff --git a/architect/AccordionList.js b/architect/AccordionList.js new file mode 100644 index 0000000..9ee56bc --- /dev/null +++ b/architect/AccordionList.js @@ -0,0 +1,126 @@ +{ + "className" : "Ext.ux.AccordionList", + "classAlias": "widget.accordionlist", + "inherits" : "container", + "autoName" : "MyAccordionList", + "noSetup" : true, + + "toolbox" : { + "name" : "AccordionList", + "category": "Views", + "groups" : ["Views"] + }, + + //add custom configs + configs : [ + { + name : 'store', + type : 'object', + hidden : false, + initialValue: 'YourTreeStoreInstance', + merge : false + }, + { + name : 'displayField', + type : 'string', + hidden : false, + initialValue: 'text', + merge : false + }, + { + name : 'headerOpenTpl', + type : 'string', + hidden : false, + initialValue: '
{0}
', + merge : false + }, + { + name : 'headerCloseTpl', + type : 'string', + hidden : false, + initialValue: '
{0}
', + merge : false + }, + { + name : 'contentItemTpl', + type : 'string', + hidden : false, + initialValue: '{0}', + merge : false + }, + { + name : 'listConfig', + type : 'object', + hidden : false, + initialValue: null, + merge : false + }, + { + name : 'defaultExpanded', + type : 'boolean', + hidden : false, + initialValue: false, + merge : false + }, + { + name : 'useSelectedHighlights', + type : 'boolean', + hidden : false, + initialValue: true, + merge : false + }, + { + name : 'singleMode', + type : 'boolean', + hidden : false, + initialValue: false, + merge : false + }, + { + name : 'animation', + type : 'boolean', + hidden : false, + initialValue: false, + merge : false + }, + { + name : 'showCount', + type : 'boolean', + hidden : false, + initialValue: false, + merge : false + }, + { + name : 'indent', + type : 'boolean', + hidden : false, + initialValue: false, + merge : false + }, + { + name : 'useComponents', + type : 'boolean', + hidden : false, + initialValue: false, + merge : false + }, + { + name : 'defaultType', + type : 'string', + hidden : false, + initialValue: '', + merge : false + }, + { + name : 'indexBar', + type : 'object', + hidden : false, + initialValue: null, + merge : false + } + ], + + //define listeners + listeners : [], + +} diff --git a/architect/AccordionListItem.js b/architect/AccordionListItem.js new file mode 100644 index 0000000..02c795c --- /dev/null +++ b/architect/AccordionListItem.js @@ -0,0 +1,41 @@ +{ + "className" : "Ext.ux.AccordionListItem", + "classAlias": "widget.accordionlistitem", + "inherits" : "Ext.dataview.component.ListItem", + "autoName" : "MyAccordionListItem", + "noSetup" : true, + + "toolbox" : { + "name" : "AccordionListItem", + "category": "Views", + "groups" : ["Views"] + }, + + //add custom configs + configs : [ + { + name : 'headerDataMap', + type : 'object', + hidden : false, + initialValue: {}, + merge : false + }, + { + name : 'contentDataMap', + type : 'object', + hidden : false, + initialValue: {}, + merge : false + }, + { + name : 'indent', + type : 'boolean', + hidden : false, + initialValue: false, + merge : false + } + ], + + //define listeners + listeners : [] +} diff --git a/architect/Ext.ux.AccordionList.aux b/architect/Ext.ux.AccordionList.aux new file mode 100644 index 0000000000000000000000000000000000000000..9e1cd99c21679562de04a3d1f0e2e70c2e38cb62 GIT binary patch literal 188789 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